Autor Tema: [AYUDA] Recepcion con numero de bytes Variables  (Leído 1577 veces)

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

Desconectado man3s

  • PIC12
  • **
  • Mensajes: 69
[AYUDA] Recepcion con numero de bytes Variables
« en: 10 de Junio de 2013, 10:15:04 »
Hola amigos de TodoPic, les cuento, siempre he podido trabajar tranquilamente con la comunicacion serie y mis proyectos los he hecho como tal que mis tramas siempre sean de la misma longitud o de una longitud ya conocida anteriormente, generalmente 6 bytes de recepcion por vez, pero ahora que me enfrento a intentar usar los protocolos industriales, MODBUS en este caso, veo que las tramas son variables, en ocasiones el esclavo contesta con 3 bytes, 8 y en ocasiones una cantidad no especificada mayor a 8, se que no es la mejor manera (pero es la que me ha funcionado y la unica que se me ocurrio en su momento  :lol: ) es la de hacer un for para guardar los datos recibidos, como se daran cuenta el for sera util para los casos donde las tramas son de un numero de bytes fijos pero en los otros casos no me funcionaria, como atacan ese inconveniente de no saber cuantos bytes vienen si alguien me puede ayudar se lo agradeceria  :shock: . Saludos.

P.D. Uso CCS

« Última modificación: 10 de Junio de 2013, 11:17:05 por man3s »

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: [AYUDA] Recepcion con numero de bytes Variables
« Respuesta #1 en: 10 de Junio de 2013, 10:28:37 »
CCS trae librerias para el uso del protocolo modbus, busca en su carpeta drivers.

saludos.
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado man3s

  • PIC12
  • **
  • Mensajes: 69
Re: [AYUDA] Recepcion con numero de bytes Variables
« Respuesta #2 en: 10 de Junio de 2013, 11:15:53 »
Gracias por responder amigo KALLITOS, pero la idea de mi pregunta no es tanto por el MODBUS si no por ver como se las ingenian para poder atacar el inconveniente de las tramas con numero de bytes variables, es decir, puedo hacer un for para esperar 3 datos, si llegan 8 saldre del for pero abre perdido los otros 5, por otra parte si solo llega 1 o 2 (es suposicion) nunca saldre del for hasta que se envie un nuevo dato ya sea de la nueva trama y nuevamente seria incorrecto, a eso es lo que me refiero, tal vez formule de manera incorrecta mi pregunta  :mrgreen: .

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: [AYUDA] Recepcion con numero de bytes Variables
« Respuesta #3 en: 10 de Junio de 2013, 11:55:08 »
lo normal es crear un array del maximo numero de datos que vayas a recibir, es decir, si como maximo vas a recibir 32bytes pues pones un array de 32bytes (o algunos bytes mas por si acaso). Ahora, en el for como indicas, seguro que en la trama vendra el nº de bytes que vas a recibir, utilizas esa informacion para el for y que no se salga ni antes, ni despues de tiempo.

Desconectado man3s

  • PIC12
  • **
  • Mensajes: 69
Re: [AYUDA] Recepcion con numero de bytes Variables
« Respuesta #4 en: 10 de Junio de 2013, 12:45:24 »
 ((:-)) suena logico, gracias por tus repuestas. Saludos.

Desconectado jukinch

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 608
Re: [AYUDA] Recepcion con numero de bytes Variables
« Respuesta #5 en: 10 de Junio de 2013, 12:47:16 »
En la trama que recibes hay algún caracter que te pueda ayudar a separarla.? Tanto como para separar los datos o como para separar el inicio y fin de la trama.
"Divide las dificultades que examinas en tantas partes como sea posible para su mejor solución." -René Descartes

Desconectado jansuini

  • Moderadores
  • PIC24F
  • *****
  • Mensajes: 566
Re: [AYUDA] Recepcion con numero de bytes Variables
« Respuesta #6 en: 10 de Junio de 2013, 14:08:36 »
Hola:
ya cuando vos haces la pregunta ,le decis al esclavo cuantos registro te tiene que enviar  ,de esta manera sabes cuantos bytes vendran .-
Recorda que tenes que sumarle los bytes correspondientes al nro de eclavo ,direccion de registro ,CRC y tendras la totalidad de bytes a esperar.-
Sds.
Jorge

Desconectado man3s

  • PIC12
  • **
  • Mensajes: 69
Re: [AYUDA] Recepcion con numero de bytes Variables
« Respuesta #7 en: 18 de Junio de 2013, 23:27:26 »
Asi es jansuini, el mismo Protocolo me proporciona la pauta para saber cuantos bytes vienen, lo decia porque me toco en una ocasion trabajar con un Protocolo propietario y no habia ninguna forma de determinar la cantidad de bytes a venir, ahora que lo veo tal vez estaba mal diseñado y por eso tuve tantos problemas :mrgreen: al usarlo. Segun he entendido siempre existira algun indicador de bytes a recibir. Saludos y gracias por sus respuestas.