From 32a68a1ab439e29919b715a674a034fa15411076 Mon Sep 17 00:00:00 2001 From: Jiri Kalvoda <jirikalvoda@kam.mff.cuni.cz> Date: Sun, 7 Feb 2021 16:07:26 +0100 Subject: [PATCH] Code clean --- osdd-exec.c | 4 ++-- osdd-file.c | 40 +++++----------------------------------- osdd-mqtt.c | 42 +++++++----------------------------------- osdd-run | 8 ++++++-- osdd-set.h | 2 +- osdd-system.c | 4 ++-- osdd-to-string.h | 4 ++-- 7 files changed, 25 insertions(+), 79 deletions(-) diff --git a/osdd-exec.c b/osdd-exec.c index c793701..f19c80f 100644 --- a/osdd-exec.c +++ b/osdd-exec.c @@ -45,7 +45,7 @@ void exec_write(struct exec_state *state, VECTOR(VECTOR(char)) in) VFREE(in); } -INIT_FUNC_USING_TO_STRINGS_VECTOR(exec) +CREATE_FUNC_USING_TO_STRINGS_VECTOR(exec) // ************************* NEW ****************** @@ -97,7 +97,7 @@ struct osd_abstract exec_new(int argc, char ** argv, Display * nope) VPB(state->prefix, argv[ind]); } - INIT_FUNC_TO_ABSTRACT(r, exec) + ADD_FUNC_TO_ABSTRACT(r, exec) return r; } diff --git a/osdd-file.c b/osdd-file.c index ce1bdc8..3929bf4 100644 --- a/osdd-file.c +++ b/osdd-file.c @@ -27,7 +27,7 @@ struct file_state // ************************* MAIN FUNCTIONS ******* static -void file_write_to_file(struct file_state *state, VECTOR(char) out) +void file_write(struct file_state *state, VECTOR(char) out) { if(!out) return; FILE * f = fopen(state->file_name,state->open_mode); @@ -39,24 +39,7 @@ void file_write_to_file(struct file_state *state, VECTOR(char) out) VFREE(out); } -static -bool file_arrive(struct file_state *state, struct osd_line * lines, int num_lines) -{ - file_write_to_file(state,osd_to_string_arrivee_msq(&state->to_string, lines, num_lines)); - return state->to_string.do_not_insert_msg_to_que; -} - -static -void file_show(struct file_state *state, struct osd_line * lines, int num_lines) -{ - file_write_to_file(state,osd_to_string_show_msg(&state->to_string, lines, num_lines)); -} - -static -void file_clear(struct file_state *state) -{ - file_write_to_file(state,osd_to_string_clear_msg(&state->to_string)); -} +CREATE_FUNC_USING_TO_STRING(file) // ************************* NEW ****************** @@ -122,23 +105,10 @@ struct osd_abstract file_new(int argc, char ** argv, Display * nope) } - r.context = state; - bool (*arrive)(struct file_state*, struct osd_line*, int) = file_arrive; - r.arrive = (bool (*)(void*, struct osd_line*, int)) arrive; - void (*show)(struct file_state*, struct osd_line*, int) = file_show; - r.show = (void (*)(void*, struct osd_line*, int)) show; - void (*clear)(struct file_state*) = file_clear; - r.clear = (void (*)(void*)) clear; + ADD_FUNC_TO_ABSTRACT(r, file) return r; } // ************************* CREATOR **************************** -struct osd_creator_abstract file_creator_new(void) -{ - struct osd_creator_abstract r; - memset(&r, 0, sizeof(r)); - r.name = "FILE"; - r.help = file_new_help; - r.new.add_one_osd = file_new; - return r; -} + +CREATE_STANDARD_CREATOR(file, "FILE") diff --git a/osdd-mqtt.c b/osdd-mqtt.c index d03a608..4d46c83 100644 --- a/osdd-mqtt.c +++ b/osdd-mqtt.c @@ -65,6 +65,8 @@ void mqtt_fork_connect(struct mqtt_fork_state * fork_state) conn_opts.username = fork_state->state->mqtt_user; conn_opts.password = fork_state->state->mqtt_passwd; + MQTTClient_setCallbacks(fork_state->client, NULL, NULL, NULL, NULL); + if ((rc = MQTTClient_connect(fork_state->client , &conn_opts)) == MQTTCLIENT_SUCCESS) { //fprintf(stderr,"MQTT CONNECT OK\n"); @@ -130,7 +132,7 @@ void NONRET mqtt_fork_main(struct mqtt_state * state, int fd) // ************************* MAIN FUNCTIONS ******* static -void mqtt_write_to_mqtt(struct mqtt_state *state, VECTOR(char) out) +void mqtt_write(struct mqtt_state *state, VECTOR(char) out) { if(!out) return; int size = VSIZE(out); @@ -142,24 +144,7 @@ void mqtt_write_to_mqtt(struct mqtt_state *state, VECTOR(char) out) VFREE(out); } -static -bool mqtt_arrive(struct mqtt_state *state, struct osd_line * lines, int num_lines) -{ - mqtt_write_to_mqtt(state,osd_to_string_arrivee_msq(&state->to_string, lines, num_lines)); - return state->to_string.do_not_insert_msg_to_que; -} - -static -void mqtt_show(struct mqtt_state *state, struct osd_line * lines, int num_lines) -{ - mqtt_write_to_mqtt(state,osd_to_string_show_msg(&state->to_string, lines, num_lines)); -} - -static -void mqtt_clear(struct mqtt_state *state) -{ - mqtt_write_to_mqtt(state,osd_to_string_clear_msg(&state->to_string)); -} +CREATE_FUNC_USING_TO_STRING(mqtt) // ************************* NEW ****************** @@ -234,13 +219,7 @@ struct osd_abstract mqtt_new(int argc, char ** argv, Display * nope) } - r.context = state; - bool (*arrive)(struct mqtt_state*, struct osd_line*, int) = mqtt_arrive; - r.arrive = (bool (*)(void*, struct osd_line*, int)) arrive; - void (*show)(struct mqtt_state*, struct osd_line*, int) = mqtt_show; - r.show = (void (*)(void*, struct osd_line*, int)) show; - void (*clear)(struct mqtt_state*) = mqtt_clear; - r.clear = (void (*)(void*)) clear; + ADD_FUNC_TO_ABSTRACT(r,mqtt); int fd[2]; pipe(fd); if(fork() == 0) @@ -256,12 +235,5 @@ struct osd_abstract mqtt_new(int argc, char ** argv, Display * nope) } // ************************* CREATOR **************************** -struct osd_creator_abstract mqtt_creator_new(void) -{ - struct osd_creator_abstract r; - memset(&r, 0, sizeof(r)); - r.name = "MQTT"; - r.help = mqtt_new_help; - r.new.add_one_osd = mqtt_new; - return r; -} + +CREATE_STANDARD_CREATOR(mqtt,"MQTT") diff --git a/osdd-run b/osdd-run index 14d1fa9..fd179e7 100755 --- a/osdd-run +++ b/osdd-run @@ -12,11 +12,15 @@ XENVIRONMENT=$tmp \ FILE default log loglog [ -b -l' ' -m'\n' -T' ' -tiso -cterm ~/.osdd_log ] \ FILE default log loglast [ -l'\n' -tunix -T'\n' -crgbHEX -r ~/.osdd_last ] \ FILE stdout [ -A -l' ' -m'\n' /dev/stdout ] \ - MQTT default mqtt led [ -e'\0' -E -crgbDEC -tunix -r -R -q0 \ + MQTT default mqtt led [ -e'\0' -E -crgbDEC -tunix -r -R -q1 \ $(cat ~/.secret/mqtt/rpi0-all.addres) \ $(cat ~/.secret/mqtt/rpi0-led-include.user) \ $(cat ~/.secret/mqtt/rpi0-led-include.passwd) \ osd/arch ] \ - | bash + EXEC exec [ -A ] \ + SYSTEM system [ -a -l' ' -m'\n' ] \ + | bash rm $tmp pkill -f not2osd + + #EXEC default [ -cterm cowsay ] \ diff --git a/osdd-set.h b/osdd-set.h index e77cbc4..52d9c47 100644 --- a/osdd-set.h +++ b/osdd-set.h @@ -115,7 +115,7 @@ struct osd_creator_abstract NAME ## _creator_new(void) \ return r; \ } -#define INIT_FUNC_TO_ABSTRACT(r, NAME) \ +#define ADD_FUNC_TO_ABSTRACT(r, NAME) \ { \ r.context = state; \ bool (*arrive)(struct NAME ## _state*, struct osd_line*, int) = NAME ## _arrive; \ diff --git a/osdd-system.c b/osdd-system.c index 784d65d..2ac0d20 100644 --- a/osdd-system.c +++ b/osdd-system.c @@ -47,7 +47,7 @@ void system_write(struct system_state *state, VECTOR(char) in) VFREE(in); } -INIT_FUNC_USING_TO_STRING(system) +CREATE_FUNC_USING_TO_STRING(system) // ************************* NEW ****************** @@ -110,7 +110,7 @@ struct osd_abstract system_new(int argc, char ** argv, Display * nope) } - INIT_FUNC_TO_ABSTRACT(r, system) + ADD_FUNC_TO_ABSTRACT(r, system) return r; } diff --git a/osdd-to-string.h b/osdd-to-string.h index 0d38778..ed4d12f 100644 --- a/osdd-to-string.h +++ b/osdd-to-string.h @@ -94,7 +94,7 @@ bool osd_to_string_parse_arg(struct osd_to_string_state *state, char arg); bool osd_to_strings_vector_parse_arg(struct osd_to_string_state *state, char arg); void osd_to_string_state_init(struct osd_to_string_state * state); -#define INIT_FUNC_USING_TO_STRING(NAME) \ +#define CREATE_FUNC_USING_TO_STRING(NAME) \ static \ bool NAME ## _arrive(struct NAME ## _state *state, struct osd_line * lines, int num_lines) \ { \ @@ -114,7 +114,7 @@ void NAME ## _clear(struct NAME ## _state *state) \ NAME ## _write(state,osd_to_string_clear_msg(&state->to_string)); \ } -#define INIT_FUNC_USING_TO_STRINGS_VECTOR(NAME) \ +#define CREATE_FUNC_USING_TO_STRINGS_VECTOR(NAME) \ static \ bool NAME ## _arrive(struct NAME ## _state *state, struct osd_line * lines, int num_lines) \ { \ -- GitLab