diff options
Diffstat (limited to 'lib/pbdrv/pb-mod.c')
-rw-r--r-- | lib/pbdrv/pb-mod.c | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/lib/pbdrv/pb-mod.c b/lib/pbdrv/pb-mod.c index 740f2a5..c27194e 100644 --- a/lib/pbdrv/pb-mod.c +++ b/lib/pbdrv/pb-mod.c @@ -1,26 +1,34 @@ +#include "pb-buf.h" +#include "pb-msg.h" #include "pb-types.h" -#include "pb.h" +#include "pb-mod.h" +#include "pb-route.h" //! fallback module name -__weak const char * PBDRV_MOD_NAME = "???"; +__weak const char * PB_MOD_NAME = "???"; //! [private] placeholder global state variable static pb_global_state_t _global_state = PB_GS_NOINIT; -//! [private] main controller global state -static pb_global_state_t _main_state = PB_GS_NOINIT; +__weak pb_global_state_t pb_hook_mod_state_read() { + return _global_state; +} -// __weak enum pb_state pbdrv_hook_mod_state_read() { -// return _global_state; -// } +__weak void pb_hook_mod_state_write(pb_global_state_t state) { + _global_state = state; +} -// __weak void pbdrv_hook_mod_state_write(enum pb_state state) { -// _global_state = state; -// } +__weak void pb_i2c_recv(const uint8_t * data, size_t sz) { + pb_buf_t buf = { + .data = (char *) data, + .size = sz, + }; + pb_msg_t * msg = pb_msg_read(&buf); + if (msg == NULL) return; // invalid message + if (msg->cmd == NULL) return; // invalid message + + pb_route_msg(msg); -__weak void pbdrv_i2c_recv(const uint8_t * buf, size_t sz) { - return; + pb_msg_free(msg); } - -__weak void pbdrv_hook_main_state_update(pb_global_state_t state) { } |