int lcd_send_byte(unsigned char byte) { lcd_connect(); unsigned char data[1]; data[0] = byte; int ret = write(serial_fd, data, 1); return ret; }
int main(int argc, char* argv[]) { signal(SIGINT, signal_term); signal(SIGTERM, signal_term); int daemon_mode = (argc > 1 && strcmp(argv[1], "-d") == 0) ? 1 : 0; if (daemon_mode) { if (file_exists(file_pid)) { perror("already running"); exit(1); } pid_t pid = fork(); // fork failed if (pid < 0) { return -1; } else if (pid != 0) { // fork successed, parent exit return 0; } write_pid(); setsid(); chdir("/"); umask(0755); close(0); close(1); close(2); } lcd_connect(); lcd_reset(); lcd_clear(); lcd_toggle_backlight(); sleep(1); do { show_hostname(); show_time(); show_uptime(); show_mems(); show_loads(); show_diskspace(DEFAULT_DISKSPACE_DIR); show_ip(DEFAULT_NETWORK_INTERFACE); show_traffic(DEFAULT_NETWORK_INTERFACE); sleep(10); } while (!signal_term_received); lcd_clear(); lcd_reset(); lcd_disconnect(); unlink(file_pid); return 0; }
int lcd_send_data(unsigned char *data, int len) { lcd_connect(); int ret = write(serial_fd, data, len); return ret; }