Commandd line options + RGB

This commit is contained in:
Jesper 2023-11-09 14:29:55 +01:00
parent 557a642a8d
commit 8e40673d84

View File

@ -84,31 +84,69 @@ void set_backlight(int r, int g, int b) {
} }
int main(int argc, char *argv[]) { int main(int argc, char *argv[]) {
int l1p = 1; int l1_x = 1;
int l2p = 1; char *l1_message = NULL;
int option; int l2_x = 1;
char *l2_message = NULL;
int r = 1;
int g = 0;
int b = 0;
while ((option = getopt (argc, argv, "l1:l2:")) != -1) { static struct option long_options[] = {
switch (option) { {"x1", required_argument, 0, 'x'},
case '1': {"m1", required_argument, 0, 'm'},
l1p = atoi(optarg); {"x2", required_argument, 0, 'X'},
{"m2", required_argument, 0, 'M'},
{"r", required_argument, 0, 'r'},
{"g", required_argument, 0, 'g'},
{"b", required_argument, 0, 'b'},
{0, 0, 0, 0} // Terminating entry
};
int option_index = 0;
int c;
while ((c = getopt_long(argc, argv, "x:m:X:M:r:g:b:", long_options, &option_index)) != -1) {
switch (c) {
case 'x':
l1_x = atoi(optarg);
break; break;
case '2': case 'm':
l2p = atoi(optarg); l1_message = optarg;
break;
case 'X':
l2_x = atoi(optarg);
break;
case 'M':
l2_message = optarg;
break;
case 'r':
r = atoi(optarg);
break;
case 'g':
g = atoi(optarg);
break;
case 'b':
b = atoi(optarg);
break;
case '?': //unregnoniced inputs or missing args
break; break;
default: default:
fprintf(stderr, "Usage: %s -l1 <value> -l2 <value>\n", argv[0]); fprintf(stderr, "Usage: %s --x1 <value> --x1_message <value>\n", argv[0]);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
break;
} }
} }
printf("l1p = %d, l2p = %d\n", l1p, l2p);
int file; int file;
set_backlight(1, 0, 0); set_backlight(r, g, b);
file = i2c_init(MPC9808_BUS, DISPLAY_TEXT_ADDR); file = i2c_init(MPC9808_BUS, DISPLAY_TEXT_ADDR);
init_display(file); init_display(file);
write_to_display_xy(file, l1p, 1, "Mercantec"); if (l1_message != 0) {
write_to_display_xy(file, l2p, 2, "Mercantec"); write_to_display_xy(file, l1_x, 1, l1_message);
}
if (l2_message != 0) {
write_to_display_xy(file, l2_x, 2, l2_message);
}
return 0; return 0;
} }