Paso 3: El host programa
Le enchufamos el cable USB en un Raspberry Pi, pero en principio cualquier * trabajo computadora nix con el controlador de USB a serial apropiado.
El programa host es muy sencillo. Es simplemente un conducto desde el puerto serie directamente al registro del sistema.
syslog es una excelente opción, ya que será la marca de tiempo las líneas y mantenerlos en rotar archivos de registro. Sólo puede buscar las líneas de salida en syslog y agregado la salida deseada.
#include <stdio.h> #include <string.h> #include <syslog.h> #include <termios.h> #include <unistd.h> int main(int argc, char **argv) { daemon(0, 0); openlog(argv[0], LOG_PERROR, LOG_USER); FILE *port = fopen("/dev/ttyUSB0", "r+"); if (port == NULL) { perror("Error opening port"); return 1; } struct termios t; if (tcgetattr(fileno(port), &t)) { perror("Error getting termios"); return 1; } cfsetspeed(&t, B9600); cfmakeraw(&t); if (tcsetattr(fileno(port), 0, &t)) { perror("Error setting speed"); return 1; } while(1) { char buf[1024]; if (fgets(buf, sizeof(buf), port) == NULL) break; while (buf[strlen(buf) - 1] == '\015' || buf[strlen(buf) - 1] == '\012') buf[strlen(buf) - 1] = 0; syslog(LOG_INFO, "Line monitor reports %s", buf); } }