diff --git a/uno-stats-monitor/unomond/monitor_daemon.c b/uno-stats-monitor/unomond/monitor_daemon.c index 40100c9..cfcd97a 100644 --- a/uno-stats-monitor/unomond/monitor_daemon.c +++ b/uno-stats-monitor/unomond/monitor_daemon.c @@ -11,18 +11,40 @@ * 2nd char denotes which line number/mode to use * * Setting Schema: - * LCDLength:LCDDelay:LEDBrightness:LEDDelay - * 16:5:1:3 + * LCDLength:LCDRows:LCDDelay:LEDBrightness:LEDDelay + * 16:2:5:0:3 * * Example: * Line 1: #1Archamedis Status@ * Line 2: #299% free / etc.@ * LAVG -: #324@ - * LSET 0: #16:5:1:3@ + * LSET 0: #16:2:5:0:3@ * * Output Schema: * Multimedia Controls use single characters to denote which button was pressed - * + * P power + * M mute + * m mode + * p pause/play + * b back + * f forward + * e eq + * - vol down + * + vol up + * r return + * u usb scan + * 0 number 0 + * 1 number 1 + * 2 number 2 + * 3 number 3 + * 4 number 4 + * 5 number 5 + * 6 number 6 + * 7 number 7 + * 8 number 8 + * 9 number 9 + * R repeat + * Z other button pressed */ // C library @@ -342,7 +364,7 @@ void handle_signal(int sig) int lock_result = 0; if(sig == SIGINT) { - fprintf(log_stream, "Stopping daemon ...\n"); + syslog(LOG_INFO, "Received INT signal, Stopping daemon ..."); /* Unlock and close lockfile */ if(pid_fd != -1) { @@ -366,11 +388,12 @@ void handle_signal(int sig) return; } else if (sig == SIGHUP) { - syslog(LOG_INFO, "Reloading daemon config file ..."); + syslog(LOG_INFO, "Received HUP signal, Reloading daemon config file ..."); read_conf_file(1); } else if (sig == SIGCHLD) { - syslog(LOG_INFO, "Received SIGCHLD signal"); + syslog(LOG_INFO, "Received SIGCHLD signal... but I have no kids!."); + return; } } @@ -616,15 +639,14 @@ void send_stats(char *line_1, char *line_2, char *line_3) /* Send settings to receiver */ // Setting Schema: -// LCDLength:LCDDelay:LEDBrightness:LEDDelay -// 16:5:1:3 - +// LCDLength:LCDRows:LCDDelay:LEDBrightness:LEDDelay +// 16:2:5:0:3 void send_settings() { char myline[16]; unsigned int mylen = 0; int write_result = 0; - sprintf(myline,"#0%i:%i:%i:%i@",line_length,lcd_delay,led_brightness,led_delay); + sprintf(myline,"#0%i:%i:%i:%i:%i@",line_length,line_count,lcd_delay,led_brightness,led_delay); mylen = strlen(myline); write_result = write(serial_port, myline, mylen); @@ -679,6 +701,7 @@ int main(int argc, char *argv[]) char *mytty = NULL; int start_daemonized = 0; + // TODO: fix timestamps for logfile //fprintf(log_stream,"Timestamp %s\n",timestamp()); /* Open system log and write startup message to it */ @@ -747,9 +770,10 @@ int main(int argc, char *argv[]) /* Main loop */ serial_open_port(); send_settings(); + send_settings(); // yes twice due to the arduino getting reset on 1st access on linux (if not modified) init_millis(); while(running == 1) { - listen_server(); // listen for IR events (blocks for 1 second at a time) + listen_server(); // listen for IR events (blocks for ~1 second at a time) if(debug) { fprintf(log_stream,"Elapsed time: %ld milliseconds\n", millis());