added LCDRows support

This commit is contained in:
RLF
2024-01-16 19:32:29 -05:00
parent 7de67ab2e5
commit b05af75f89

View File

@@ -11,18 +11,40 @@
* 2nd char denotes which line number/mode to use * 2nd char denotes which line number/mode to use
* *
* Setting Schema: * Setting Schema:
* LCDLength:LCDDelay:LEDBrightness:LEDDelay * LCDLength:LCDRows:LCDDelay:LEDBrightness:LEDDelay
* 16:5:1:3 * 16:2:5:0:3
* *
* Example: * Example:
* Line 1: #1Archamedis Status@ * Line 1: #1Archamedis Status@
* Line 2: #299% free / etc.@ * Line 2: #299% free / etc.@
* LAVG -: #324@ * LAVG -: #324@
* LSET 0: #16:5:1:3@ * LSET 0: #16:2:5:0:3@
* *
* Output Schema: * Output Schema:
* Multimedia Controls use single characters to denote which button was pressed * 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 // C library
@@ -342,7 +364,7 @@ void handle_signal(int sig)
int lock_result = 0; int lock_result = 0;
if(sig == SIGINT) { if(sig == SIGINT) {
fprintf(log_stream, "Stopping daemon ...\n"); syslog(LOG_INFO, "Received INT signal, Stopping daemon ...");
/* Unlock and close lockfile */ /* Unlock and close lockfile */
if(pid_fd != -1) { if(pid_fd != -1) {
@@ -366,11 +388,12 @@ void handle_signal(int sig)
return; return;
} }
else if (sig == SIGHUP) { 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); read_conf_file(1);
} }
else if (sig == SIGCHLD) { 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 */ /* Send settings to receiver */
// Setting Schema: // Setting Schema:
// LCDLength:LCDDelay:LEDBrightness:LEDDelay // LCDLength:LCDRows:LCDDelay:LEDBrightness:LEDDelay
// 16:5:1:3 // 16:2:5:0:3
void send_settings() { void send_settings() {
char myline[16]; char myline[16];
unsigned int mylen = 0; unsigned int mylen = 0;
int write_result = 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); mylen = strlen(myline);
write_result = write(serial_port, myline, mylen); write_result = write(serial_port, myline, mylen);
@@ -679,6 +701,7 @@ int main(int argc, char *argv[])
char *mytty = NULL; char *mytty = NULL;
int start_daemonized = 0; int start_daemonized = 0;
// TODO: fix timestamps for logfile
//fprintf(log_stream,"Timestamp %s\n",timestamp()); //fprintf(log_stream,"Timestamp %s\n",timestamp());
/* Open system log and write startup message to it */ /* Open system log and write startup message to it */
@@ -747,9 +770,10 @@ int main(int argc, char *argv[])
/* Main loop */ /* Main loop */
serial_open_port(); serial_open_port();
send_settings(); send_settings();
send_settings(); // yes twice due to the arduino getting reset on 1st access on linux (if not modified)
init_millis(); init_millis();
while(running == 1) { 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) { if(debug) {
fprintf(log_stream,"Elapsed time: %ld milliseconds\n", millis()); fprintf(log_stream,"Elapsed time: %ld milliseconds\n", millis());