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
*
* 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());