diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-05-30 15:51:08 +0200 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-05-30 15:51:08 +0200 |
commit | b231e9d808f40aef0895787ea09624787b10addd (patch) | |
tree | 6ee2a4550e1c4a6384dd22e9967464b7766dc9cc /client/i2c.cpp | |
parent | d1f5291f82f5e13db756adc919883e310cc537de (diff) |
more client i2c shuffling
Diffstat (limited to 'client/i2c.cpp')
-rw-r--r-- | client/i2c.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/client/i2c.cpp b/client/i2c.cpp new file mode 100644 index 0000000..fd29e1e --- /dev/null +++ b/client/i2c.cpp @@ -0,0 +1,37 @@ +#include <stdio.h> +#include <stdlib.h> + +#include "i2ctcpv1.h" +#include "sock.h" +#include "xxd.h" + +bool i2c_dump_send = false; +bool i2c_dump_recv = true; + +void i2c_send(uint16_t addr, const char * data, size_t data_size) { + i2ctcp_msg_t msg = { + .addr = addr, + .data = (char *) data, + .length = data_size, + }; + + char* packed; + size_t size; + if (!i2ctcp_write(&msg, &packed, &size)) return; + + sock->send(packed, size); + if (i2c_dump_send) { + printf("[%s] addr(0x%02x) data(0x%02lx):\n", __FUNCTION__, addr, data_size); + xxd(data, data_size); + } + + free(packed); +} + +void i2c_recv(uint16_t addr, const char * data, size_t data_size) { + if (i2c_dump_recv) { + printf("[%s] addr(0x%02x) data(0x%02lx):\n", __FUNCTION__, addr, data_size); + xxd(data, data_size); + } +} + |