From a90fee13c9b7dd326ad31bb5ebebf7823fd90394 Mon Sep 17 00:00:00 2001 From: e-dddos Date: Mon, 24 Jun 2024 17:08:13 +0200 Subject: [PATCH 1/5] add screen off/on --- node/code/modules/fsm/include/events.h | 2 ++ .../modules/io_handler/include/init_buttons.h | 4 ++++ node/code/modules/io_handler/init_buttons.c | 18 ++++++++++++++++++ node/code/modules/io_handler/io_handler.c | 8 ++++++++ 4 files changed, 32 insertions(+) diff --git a/node/code/modules/fsm/include/events.h b/node/code/modules/fsm/include/events.h index 8764ebb9..95b5d271 100644 --- a/node/code/modules/fsm/include/events.h +++ b/node/code/modules/fsm/include/events.h @@ -53,6 +53,8 @@ typedef enum { PET_BORED, PET_DIRTY, VIBRATE, + SCREEN_OFF, + SCREEN_ON, INIT, REGISTER, REGISTERED, diff --git a/node/code/modules/io_handler/include/init_buttons.h b/node/code/modules/io_handler/include/init_buttons.h index e4a1bc03..bbff0a77 100644 --- a/node/code/modules/io_handler/include/init_buttons.h +++ b/node/code/modules/io_handler/include/init_buttons.h @@ -27,6 +27,10 @@ void button_down_callback (void *arg); void button_right_callback (void *arg); void button_ok_callback (void *arg); +//Screen functions: +void screen_off(void); +void screen_on(void); + //Vibration functions prototypes: void vibrate(uint16_t msec); diff --git a/node/code/modules/io_handler/init_buttons.c b/node/code/modules/io_handler/init_buttons.c index a29b3d2b..1d7d6b84 100644 --- a/node/code/modules/io_handler/init_buttons.c +++ b/node/code/modules/io_handler/init_buttons.c @@ -28,6 +28,10 @@ gpio_t button_up = GPIO_PIN(0, 28); //PIN A3 gpio_t button_down = GPIO_PIN(0, 2); //PIN A4 gpio_t button_left = GPIO_PIN(0, 3); //PIN A5 +//For turning screen on and off: +gpio_t screen_gpio = GPIO_PIN(0, 7); //PIN 6 +gpio_mode_t screen_gpio_mode = GPIO_OUT; //Define the screen GPIO as Output GPIO + //Define the vibration module GPIO: gpio_t vibr_gpio = GPIO_PIN(1, 9); gpio_mode_t vibr_gpio_mode = GPIO_OUT; //Define the vibr. GPIO as Output GPIO @@ -45,12 +49,24 @@ int init_buttons(void) puts("Vibration Module initialization..."); + //Initialize screen gpio + gpio_init(screen_gpio, screen_gpio_mode); + gpio_set(screen_gpio); + //Initialize vibration module gpio_init(vibr_gpio, vibr_gpio_mode); gpio_clear(vibr_gpio); return 0; } +void screen_off(void) { + gpio_clear(screen_gpio); +} + +void screen_on(void) { + gpio_set(screen_gpio); +} + //Vibrate for msec milliseconds: void vibrate(uint16_t msec) { @@ -104,6 +120,7 @@ void button_right_callback (void *arg) if (!gpio_read(button_right)) { DEBUG("Button right pressed!\n"); trigger_event(BUTTON_RIGHT_PRESSED); + trigger_event(SCREEN_ON); } else { DEBUG("Button right released!\n"); @@ -117,6 +134,7 @@ void button_ok_callback (void *arg) if (!gpio_read(button_ok)) { DEBUG("Button ok pressed!\n"); trigger_event(BUTTON_OK_PRESSED); + trigger_event(SCREEN_OFF); } else { DEBUG("Button ok released!\n"); diff --git a/node/code/modules/io_handler/io_handler.c b/node/code/modules/io_handler/io_handler.c index a94f4e8a..9fb60f97 100644 --- a/node/code/modules/io_handler/io_handler.c +++ b/node/code/modules/io_handler/io_handler.c @@ -36,6 +36,14 @@ handler_result_t ioHandler_handleEvent(EVENT_T event){ DEBUG("[IoHandler:handleEvent]: vibrate\n"); vibrate(VIBRATE_FOR_MSEC); break; + case SCREEN_OFF: + DEBUG("[IoHandler:handleEvent]: screen_off\n"); + screen_off(); + break; + case SCREEN_ON: + DEBUG("[IoHandler:handleEvent]: screen_on\n"); + screen_on(); + break; default: break; } From 1d99df72c71b7ca0044a100d5e7fb79816a34892 Mon Sep 17 00:00:00 2001 From: e-dddos Date: Mon, 24 Jun 2024 17:17:31 +0200 Subject: [PATCH 2/5] add screeen off and on to fsm --- node/code/modules/fsm/fsm.c | 3 +++ node/code/modules/io_handler/init_buttons.c | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/node/code/modules/fsm/fsm.c b/node/code/modules/fsm/fsm.c index 126ec5dd..2fb3772d 100644 --- a/node/code/modules/fsm/fsm.c +++ b/node/code/modules/fsm/fsm.c @@ -196,6 +196,7 @@ handler_result_t on_handler(EVENT_T event) { void on_entry(void) { DEBUG("[FSM:on_entry_handler]: called\n"); ioHandler_handleEvent(VIBRATE); + ioHandler_handleEvent(SCREEN_ON); traverse_state(&On_Level[0]); //wie gehe ich in den Child State } @@ -226,6 +227,8 @@ void off_entry(void) { display_init(); startDisplayThread(); } + ioHandler_handleEvent(SCREEN_OFF); + ioHandler_handleEvent(VIBRATE); } void off_exit(void) { diff --git a/node/code/modules/io_handler/init_buttons.c b/node/code/modules/io_handler/init_buttons.c index 04ec25e5..c7406851 100644 --- a/node/code/modules/io_handler/init_buttons.c +++ b/node/code/modules/io_handler/init_buttons.c @@ -123,7 +123,6 @@ void button_right_callback (void *arg) (void) arg; /* the argument is not used */ if (!gpio_read(button_right)) { trigger_event(BUTTON_RIGHT_PRESSED); - trigger_event(SCREEN_ON); } else { trigger_event(BUTTON_RIGHT_RELEASED); @@ -138,7 +137,6 @@ void button_ok_callback (void *arg) //ztimer_t timeout = { .callback=timer_long_pressed_cb }; ztimer_set(ZTIMER_SEC, &timeout, 1); trigger_event(BUTTON_OK_PRESSED); - trigger_event(SCREEN_OFF); } else { if (long_pressed) { From ec49074b9a055661aae66f96fccbd249f91839a4 Mon Sep 17 00:00:00 2001 From: e-dddos Date: Mon, 24 Jun 2024 17:36:10 +0200 Subject: [PATCH 3/5] add register code in fsm-c --- node/code/modules/display_handler/display_handler.c | 4 ++-- node/code/modules/fsm/fsm.c | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/node/code/modules/display_handler/display_handler.c b/node/code/modules/display_handler/display_handler.c index 4c16e762..98e84f76 100644 --- a/node/code/modules/display_handler/display_handler.c +++ b/node/code/modules/display_handler/display_handler.c @@ -64,8 +64,8 @@ handler_result_t displayHandler_handleEvent(EVENT_T event){ right_released(); break; case REGISTER_CODE: - //init_not_registered_code(get_register_code()); - init_not_registered_code("Hallo Tom"); + init_not_registered_code(get_register_code()); + //init_not_registered_code("Hallo Tom"); break; case REGISTERED: init_registered_no_pet(); diff --git a/node/code/modules/fsm/fsm.c b/node/code/modules/fsm/fsm.c index 2fb3772d..fa64cfd5 100644 --- a/node/code/modules/fsm/fsm.c +++ b/node/code/modules/fsm/fsm.c @@ -241,6 +241,9 @@ handler_result_t unregistered_handler(EVENT_T event) { displayHandler_handleEvent(REGISTERED); traverse_state(&On_Level[1]); return HANDLED; + case REGISTER_CODE: + displayHandler_handleEvent(REGISTER_CODE); + return HANDLED; default: DEBUG("[FSM:unregistered_state_handler]: UNHANDLED\n"); return UNHANDLED; From efb89f820d9b021d064a21c5f2fc5aabdbccf258 Mon Sep 17 00:00:00 2001 From: e-dddos Date: Mon, 24 Jun 2024 18:22:31 +0200 Subject: [PATCH 4/5] expanded buffer for device object --- node/code/Makefile | 4 ++-- node/code/modules/fsm/fsm.c | 4 +--- node/code/modules/lwm2m_handler/include/device_model.h | 2 +- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/node/code/Makefile b/node/code/Makefile index 71a39211..9f010740 100644 --- a/node/code/Makefile +++ b/node/code/Makefile @@ -46,8 +46,8 @@ CFLAGS += -DEVENT_THREAD_MEDIUM_STACKSIZE='(3*1024)' # Uncomment to enable Wakaama debug log #CFLAGS += -DCONFIG_LWM2M_WITH_LOGS=1 # Specific the server URI address (NOTE: Domain names not supported yet) -LWM2M_SERVER_URI ?= '"coap://[2001:db8:1::1]:5683"' -# LWM2M_SERVER_URI ?= '"coap://[fd00:dead:beef::1]:5683"' +# LWM2M_SERVER_URI ?= '"coap://[2001:db8:1::1]:5683"' +LWM2M_SERVER_URI ?= '"coap://[fd00:dead:beef::1]:5683"' # Configure via CFLAGS only if not done via Kconfig ifndef CONFIG_LWM2M_SERVER_URI CFLAGS += -DCONFIG_LWM2M_SERVER_URI=$(LWM2M_SERVER_URI) diff --git a/node/code/modules/fsm/fsm.c b/node/code/modules/fsm/fsm.c index fa64cfd5..bc14e688 100644 --- a/node/code/modules/fsm/fsm.c +++ b/node/code/modules/fsm/fsm.c @@ -237,11 +237,9 @@ void off_exit(void) { handler_result_t unregistered_handler(EVENT_T event) { switch (event) { - case REGISTERED: + case REGISTER_CODE: displayHandler_handleEvent(REGISTERED); traverse_state(&On_Level[1]); - return HANDLED; - case REGISTER_CODE: displayHandler_handleEvent(REGISTER_CODE); return HANDLED; default: diff --git a/node/code/modules/lwm2m_handler/include/device_model.h b/node/code/modules/lwm2m_handler/include/device_model.h index 587ec1d9..9324bab9 100644 --- a/node/code/modules/lwm2m_handler/include/device_model.h +++ b/node/code/modules/lwm2m_handler/include/device_model.h @@ -30,7 +30,7 @@ #include "lwm2m_client.h" #ifndef CONFIG_LWM2M_STRING_MAX_SIZE -#define CONFIG_LWM2M_STRING_MAX_SIZE 8 +#define CONFIG_LWM2M_STRING_MAX_SIZE 20 #endif #define LWM2M_DEVICE_STATUS_ID 0 From 5fca0e4da0773fe8cc8d11b10e2355efada5f7bc Mon Sep 17 00:00:00 2001 From: Moritz Date: Mon, 24 Jun 2024 18:55:09 +0200 Subject: [PATCH 5/5] added some fsm thing, need to be tested --- node/code/modules/fsm/fsm.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/node/code/modules/fsm/fsm.c b/node/code/modules/fsm/fsm.c index bc14e688..bef2e857 100644 --- a/node/code/modules/fsm/fsm.c +++ b/node/code/modules/fsm/fsm.c @@ -239,9 +239,11 @@ handler_result_t unregistered_handler(EVENT_T event) { switch (event) { case REGISTER_CODE: displayHandler_handleEvent(REGISTERED); - traverse_state(&On_Level[1]); displayHandler_handleEvent(REGISTER_CODE); return HANDLED; + case REGISTERED: + traverse_state(&On_Level[1]); + return HANDLED; default: DEBUG("[FSM:unregistered_state_handler]: UNHANDLED\n"); return UNHANDLED;