Autor Tema: Trama de datos Microcontrolador-PC  (Leído 2708 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3216
Trama de datos Microcontrolador-PC
« en: 22 de Junio de 2017, 06:44:33 »
Tengo que hacer un programa que grafique cuatro fuentes de datos, actualmente el microcontrolador envía los datos de forma continua de la siguiente forma:

dato1-dato2-dato3-dato4-dato1-dato2-dato3-dato4-......

A mi me parece muy poco robusto, si un dato se pierde todos los siguientes van trastocados, para no complicarle mucho al programador del microcontrolador, se me ocurre que haga este pequeño cambio, con un separador de datos "*" y un fin de trama "\n":

dato1-*-dato2-*-dato3-*-dato4-*-\n-dato1-*-dato2-*-dato3-*-dato4-*-\n-.....

de esta forma puedo controlar si se pierde un dato, y en ese caso graficar el dato anterior por ejemplo, o simplemente ignorarlo y no graficar ese dato en ninguna de las cuatro gráficas.

La idea es hacer una especie de osciloscopio para ver la evolución de cuatro señales, en un tiempo lento, cuando se llega al lado derecho de la gráfica, se empieza de nuevo por el izquierdo, entonces perder una trama no es problema.

¿Que os parece esa solución?

PD: El programa se hará en Java.

Gracias, un saludo!!!
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Trama de datos Microcontrolador-PC
« Respuesta #1 en: 22 de Junio de 2017, 08:26:28 »
A mí me parece correcta, pero no óptima, puesto que si se pierde un dato tendrás que descartar los otros tres.

Ya que metes un byte entre dato y dato, ¿por qué no haces que sea un índice numérico?. Así, si sólo recibes el 1, el 2 y el 4, sabes que se ha perdido el 3 pero podrás pintar los otros.

Desconectado manwenwe

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2211
Re:Trama de datos Microcontrolador-PC
« Respuesta #2 en: 22 de Junio de 2017, 08:30:07 »
Si te da el "ancho de banda" yo pondría un "echo".

Saludos.
Ojo por ojo y todo el mundo acabará ciego - Mahatma Gandhi -

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Trama de datos Microcontrolador-PC
« Respuesta #3 en: 22 de Junio de 2017, 12:09:34 »
Lo mejor y más corto es un checksum.
También puedes implementar que el PC envíe el checksum de vuelta y que el microcontrolador repita la trama si el checksum no es correcto.
Con Full duplex esto no te llevaría ningún ancho de banda extra.

Saludos.

Desconectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3520
    • Pinballsp
Re:Trama de datos Microcontrolador-PC
« Respuesta #4 en: 22 de Junio de 2017, 12:32:19 »
.

Coincido con Picuino, por software añadir un checksum a la trama. Y por hardware, trabajar con un protocolo robusto, como CAN bus.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3216
Re:Trama de datos Microcontrolador-PC
« Respuesta #5 en: 22 de Junio de 2017, 18:33:56 »
Tendré en cuenta los consejos, pero la parte que envía datos al PC (un Arduino) está programada por otra persona, y en principio no tendría que tocarlo mucho, por eso quizás lo mas fácil sea hacer lo que dice Nocturno, poner cuatro separadores diferentes, aun desconozco de que forma envía los datos por el puerto serie, pueden ser caracteres ascii, o enteros, creo que los separadores es mejor enviar letras por ejemplo, números del 1 al 4 podrían confundirse con los datos.

Gracias !!! un saludo.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡


 

anything