Haciendo un programa hecho con Windows Form bajo .Net FrameWotk 4.7. Si envío un comando por el puerto serie que se llama X82, recibo un mensaje que en ASCII no se entiende porque usa caracteres raros.
Lo paso a hexadecimal y en binario.
Envío un comando, ocurre algún evento y en Windoes Form me aparece cógios en HEX y en BIN. Se puede cambiar varios bit en un único Byte.
Por ejemplo, si me llega este dato.
Hexadecimal: 23C797C0B00D
Binario: 00100011 11000111 10010111 11000000 10110000 00001101
Un ejemplo, es poner muchos labels en cada bits y una tabla de cada Byte recibido. Simpre son la misma cantidad de bytes ya que en realdiad hace de Flags.
Centrándonos en el binario, ya que hay 6 Bytes.
Código
00100011 11000111 10010111 11000000 10110000 00001101 -------- -------- -------- -------- -------- -------- Byte I Byte a Byte b Byte c Byte d Byte F
En el Byte c que corresponde al 11000000 quiero leer el bit 3 que corresponde al "Extractor" indicado en la tabla de abajo. Cada Byte tiene su tabla, ahora nos centramos en un Byte y ver los estados de los bits.
bit:c Dato Función.
7 = 1 Motor A.
6 = 1 Motor B.
5 = 0 Luz A.
4 = 0 Luz B.
3 = 0 Extractor.
2 = 0 Alarma.
1 = 0 Persiana.
0 = 0 Ventilador
El Byte c que ahora contiene estos bits que son 11000000, me llega una nueva trama de Bytes y precisamente este, cambia de 11000000 a 11001000. Solo ha cambiado un bit que es el 3 en el Byte c.
Cada bit tiene su label para mostrarlo en el formulario de Windows. La tabla de abajo se actualiza.
bit:c Dato Función.
7 = 1 Motor A.
6 = 1 Motor B.
5 = 0 Luz A.
4 = 0 Luz B.
3 = 1 Extractor.
2 = 0 Alarma.
1 = 0 Persiana.
0 = 0 Ventilador
Antes el Byte c del bit 3 que es el Extractor estaba a 0, ahora es 1.
En resumen. Quiero saber como se leen los bits que me llegan del puerto serie.
¿Existe la posibilidad de hacer un programa así?
Saludos.
PD: En esta clase de programas que no suelo usar, es como las aves, fáciles de ver, difíciles de alcanzar.