Portar el código POSIX C a Windows
serial-port termios (1)
Debería ser bastante fácil de hacer. Los nombres son muy diferentes, pero la secuencia de llamadas y conceptos son muy similares.
Lo que está buscando es la estructura DCB que se debe usar con la función SetComState () para establecer la velocidad en baudios, los stopsbits, etc. Luego use SetCommTimeouts () y establezca los valores de tiempo de espera en la estructura COMMTIMEOUTS para bloquear las llamadas de lectura subsiguientes.
Aquí hay una breve introducción como un bonito PDF. ( Copia de seguridad )
Acabo de terminar un pequeño proyecto escrito en C, donde leo un flujo de datos de un puerto serie y analizo los datos entrantes. El software está escrito para sistemas POSIX (usando termios) y sigue los pasos estándar para trabajar con E / S en serie
- Apertura del dispositivo serie usando open ()
- Configurando los parámetros de comunicación (termios)
- Establecer el modo de bloqueo en el identificador de archivo (fcntl)
- Realice read () en la interfaz serial.
- Realice close () en la interfaz serial cuando termine.
Aparte de las partes del zócalo, el código es directo ANSI C.
Mi pregunta es, qué tan involucrado sería hacer que el código funcione en una plataforma de Windows. El puerto no sería escrito por mí, solo me gustaría dar una indicación a otros que podrían estar interesados en portarlo (es decir, trivial, no tan trivial, arranca tus ojos de locura).
Además, si alguien tiene Windows con "Servicios de Windows para UNIX", ¿podría usar el código sin modificarlo?
Entonces, si alguien tiene experiencia con esto, ¿podría compartirlo?