'ByteSize' en el módulo de PySerial
Pregunta
Quiero enviar mensajes a través del puerto serie con PySerial. Uno de los parámetros para el constructor de serie es 'ByteSize'. He estado tratando de serial.SEVENBITS y serial.EIGHTBITS y no he notado una diferencia. La documentación es un poco vaga y yo soy nuevo en tanto Python y comunicación en serie. ¿Esto acaba de establecer el valor máximo un byte puede contener o es algo que ver con bytes firmados? ¿Alguien puede aclarar por qué me gustaría usar más de 7 bits 8? He estado buscando pero no he encontrado una respuesta.
Gracias
Solución
Esto se refiere al número de bits de datos en cada carácter transmitido. De Wikipedia :
Los bits de datos
El número de bits de datos en cada personaje puede ser de 5 (para el código Baudot), 6 (muy poco frecuente), 7 (por cierto ASCII), 8 (Para cualquier tipo de datos, ya que este coincidencias el tamaño de un byte) o 9 (raramente usado). 8 bits de datos son casi universalmente utilizado en nuevos aplicaciones. 5 o 7 bits generalmente sólo tienen sentido con equipos más antiguos tales como teletipos.
La mayoría de los diseños de comunicaciones serie enviar los bits de datos dentro de cada byte LSB (bit menos significativo) en primer lugar. Esta norma también se conoce como "Little Endian". También es posible, pero rara vez se utiliza, es "big endian" o MSB (Bit Más Significativo) primera serie comunicaciones. (Ver Endianness de más sobre la ordenación de bits.) El orden de los bits no suele ser configurable, pero datos puede ser intercambiado por bytes sólo antes el envío.
Otros consejos
Históricamente, era común a enviar sólo texto ASCII a través de una conexión en serie, que encaja en siete bits, y un octavo bit se utiliza como marcador de paridad que podría indicar si los datos se están transmitiendo correctamente.
Dado que la comprobación de paridad no detectar errores en un número par de bits, y no puede corregir los datos en absoluto, que no es tan valiosa, y la práctica moderna es el uso de datos de 8 bits y realizar la detección y corrección de errores en una capa más alta de protocolo.
Breve respuesta es probablemente quiera de 8 bits, pero depende de lo que el otro extremo de la conexión en serie está a la espera.
Actualización: Desde su otra pregunta suena como que está programando ambos extremos de la conexión, y la suma de comprobación sus mensajes, por lo que es definitivamente más fácil de usar 8 bits.