#include "./GODEX500/Godex500.h" #include #include #include #include #define SerialDevice "/dev/ttyUSB0" static int serial_port = -1; static void cleanup(int signum) { (void)signum; if (serial_port >= 0) close(serial_port); write(STDOUT_FILENO, "\nПорт закрыт. \n", 23); _exit(0); } static void install_handler(int signo) { struct sigaction sa = { .sa_handler = cleanup, .sa_flags = SA_RESTART }; sigemptyset(&sa.sa_mask); sigaction(signo, &sa, NULL); } int main(void) { install_handler(SIGINT); install_handler(SIGTERM); install_handler(SIGHUP); install_handler(SIGQUIT); const char *model = "LS3"; char id[256]; serial_port = GODEX500_setup_serial(SerialDevice); if (serial_port < 0) { perror("serial"); return 1; } puts("Введите ID (Ctrl+D, Ctrl+C или kill для выхода):"); while (fgets(id, sizeof id, stdin)) { id[strcspn(id, "\n")] = '\0'; if (*id == '\0') continue; GODEX500_print_label(serial_port, id, model); printf("Печать %s завершена\n", id); } cleanup(0); return 0; }