From 9ab6cbe0970249251af6c60f5e6a8ee376304e98 Mon Sep 17 00:00:00 2001 From: AlexanderHD27 Date: Tue, 7 Jan 2025 21:13:38 +0100 Subject: [PATCH] Fixed Issue: emptyQueue in Hub was not filled correctly --- .../docs/.$NetworkStack.drawio.bkp | 810 ++++---- .../docs/.$NetworkStack.drawio.dtmp | 1635 +++++++++++++++++ .../i2c-hub-firmware/docs/NetworkStack.drawio | 490 +++-- .../src/gobotrpc/ctrl_interface/base.cpp | 24 +- .../ctrl_interface/uart_rp2040/rx.cpp | 1 + .../src/gobotrpc/include/ci/base.hpp | 8 + .../src/gobotrpc/include/util/protocol.hpp | 3 +- .../node_interface/include/node_interface.hpp | 17 +- .../src/gobotrpc/node_interface/init.cpp | 8 +- .../rp2040_i2c_init.cpp | 2 + .../transmission_interface/rp2040_i2c_rx.cpp | 8 +- .../i2c-hub-firmware/src/main_core0.cpp | 1 + .../i2c-hub-firmware/src/main_core1.cpp | 6 +- .../__pycache__/mapping.cpython-312.pyc | Bin 2122 -> 2263 bytes .../__pycache__/rpc_packages.cpython-312.pyc | Bin 9707 -> 14283 bytes .../gobotrpc/__pycache__/util.cpython-312.pyc | Bin 2753 -> 2981 bytes i2c-hub/uart-adapter/src/gobotrpc/mapping.py | 4 +- .../uart-adapter/src/gobotrpc/rpc_packages.py | 4 +- i2c-hub/uart-adapter/src/gobotrpc/util.py | 4 +- i2c-hub/uart-adapter/src/main.py | 4 +- .../src/uart_interface/__init__.py | 4 +- .../__pycache__/__init__.cpython-312.pyc | Bin 3437 -> 3340 bytes .../__pycache__/ci_highLevel.cpython-312.pyc | Bin 0 -> 2529 bytes .../__pycache__/ci_packages.cpython-312.pyc | Bin 13673 -> 15886 bytes .../__pycache__/serial.cpython-312.pyc | Bin 4266 -> 4333 bytes .../src/uart_interface/ci_highLevel.py | 3 + .../src/uart_interface/ci_packages.py | 4 +- .../uart-adapter/src/uart_interface/serial.py | 4 +- .../include/pinConfigNode.hpp | 4 +- .../vacum-control-firmware/src/main.cpp | 18 +- 30 files changed, 2365 insertions(+), 701 deletions(-) create mode 100644 i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.dtmp create mode 100644 i2c-hub/uart-adapter/src/uart_interface/__pycache__/ci_highLevel.cpython-312.pyc create mode 100644 i2c-hub/uart-adapter/src/uart_interface/ci_highLevel.py diff --git a/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.bkp b/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.bkp index 197f2cf..faa9a47 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.bkp +++ b/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.bkp @@ -1,14 +1,17 @@ - + - - + + + + + - + @@ -145,38 +148,38 @@ - + - + - + - + - + - + - + - + - + - + @@ -185,181 +188,181 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + - + @@ -368,61 +371,61 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - + - + - + - + @@ -485,52 +488,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -575,19 +578,19 @@ - + - - + + - + - + - + @@ -786,8 +789,8 @@ - - + + @@ -795,56 +798,38 @@ - - - - - - - - - - - - - + - + - + - - - - - - - - + + - + - + - + - + - + - + - + @@ -882,17 +867,11 @@ - - - - + - - - - + @@ -904,13 +883,13 @@ - + - + - + @@ -922,134 +901,134 @@ - + - + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - - + + - - + + - + - - + + - + - + - + - - + + - - + + - + - - + + - - + + - + - - + + - + - + @@ -1062,37 +1041,37 @@ - - + + - + - + - - + + - + - + - + - - + + @@ -1107,124 +1086,124 @@ - - - - + + + + - + - - + + - + - + - - + + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - + + - + - + - + - - + + @@ -1236,23 +1215,23 @@ - + - - + + - + - - - + + + @@ -1263,11 +1242,11 @@ - - + + - - + + @@ -1278,136 +1257,136 @@ - - + + - - + + - + - + - + - + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -1419,7 +1398,7 @@ - + @@ -1431,61 +1410,61 @@ - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + @@ -1495,50 +1474,50 @@ - + - - - + + + - + - - + + - + - - + + - + - + - + @@ -1551,52 +1530,52 @@ - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + @@ -1605,53 +1584,56 @@ - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + + + + diff --git a/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.dtmp b/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.dtmp new file mode 100644 index 0000000..ade6789 --- /dev/null +++ b/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.dtmp @@ -0,0 +1,1635 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio b/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio index 43c0970..b1b1eb9 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio +++ b/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio @@ -4,11 +4,14 @@ - - + + + + + - + @@ -128,27 +131,21 @@ - + - - - - - - - - + + - + - + @@ -349,7 +346,7 @@ - + @@ -577,8 +574,8 @@ - - + + @@ -786,8 +783,8 @@ - - + + @@ -795,56 +792,38 @@ - - - - - - - - - - - - - + - + - - - - - - - - + + - + - + - + - + - + - + - + @@ -882,17 +861,11 @@ - - - - + - - - - + @@ -904,13 +877,13 @@ - + - + - + @@ -922,134 +895,134 @@ - + - + - - + + - + - + - + - + - + - - + + - - + + - + - + - + - - + + - - + + - + - - + + - + - + - + - - + + - - + + - + - - + + - - + + - + - - + + - + - + @@ -1062,37 +1035,37 @@ - - + + - + - + - - + + - + - + - + - - + + @@ -1107,124 +1080,124 @@ - - - - + + + + - + - - + + - + - + - - + + - + - + - + - + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - - + + - - + + - - + + - + - + - + - - + + @@ -1236,23 +1209,23 @@ - + - - + + - + - - - + + + @@ -1263,11 +1236,11 @@ - - + + - - + + @@ -1278,136 +1251,136 @@ - - + + - - + + - + - + - + - + - + - - + + - + - + - + - - + + - + - - + + - + - - + + - - + + - + - + - + - + - + - + - + - + - + - + - + - - + + - + - + @@ -1419,7 +1392,7 @@ - + @@ -1431,61 +1404,61 @@ - + - + - + - - + + - + - + - + - + - + - + - + - + - + - + - - + + @@ -1495,50 +1468,50 @@ - + - - - + + + - + - - + + - + - - + + - + - + - + @@ -1551,52 +1524,52 @@ - - + + - - + + - + - + - + - + - + - + - + - + - - + + - - + + @@ -1606,19 +1579,19 @@ - + - + - + - + - + @@ -1630,19 +1603,19 @@ - + - + - + - + - + @@ -1653,6 +1626,9 @@ + + + diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/base.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/base.cpp index 699965f..2dd0218 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/base.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/base.cpp @@ -17,6 +17,11 @@ GobotRPC_CI::GobotRPC_CI(I_GobotRPC_CI_Hardware *hardware, UBaseType_t core, Que this->hardware = hardware; this->hardware->registerCB_RxData(GobotRPC_CI_rxData_cb, this); + this->cb_TxPacket = NULL; + this->cb_TxPacket_args = NULL; + this->cb_SetAddressMap = NULL; + this->cb_SetAddressMap_args = NULL; + xTaskCreateAffinitySet(GobotRPC_CI_heartBeatTaskFn, "Heartbeat Task", 2048, this, 2, core, &this->heartBeatTaskHandle); xTaskCreateAffinitySet(GobotRPC_CI_txCIInstructionTaskFn, "Tx CI Instruction Task", 2048, this, 3, core, &this->txCIInstructionTaskHandle); } @@ -37,10 +42,20 @@ void GobotRPC_CI::onRxData(char *data, size_t len) { this->cb_TxPacket(this->cb_TxPacket_args, data+6, len-6, addr); } break; + case RESET_CI_PACKET: - // Register Reset Magic - softwareReset(); + //softwareReset(); break; + + case SET_ADDR_PORT_MAP: { + if(this->cb_SetAddressMap != NULL) { + uint32_t addr = (data[1] << 24) | (data[2] << 16) | (data[3] << 8) | data[4]; + uint8_t port = data[5]; + this->cb_SetAddressMap(cb_SetAddressMap_args, addr, port); + } + break; + } + default: break; } @@ -51,6 +66,11 @@ void GobotRPC_CI::registerCB_TxPacket(callback_TxPacket cb, void *args) { this->cb_TxPacket_args = args; } +void GobotRPC_CI::registerCB_SetAddress(callback_SetAddress cb, void *args) { + this->cb_SetAddressMap = cb; + this->cb_SetAddressMap_args = args; +} + void GobotRPC_CI::send_RxPacket(char *data, size_t len, uint32_t addr) { data[0] = RX_CI_PACKET; data[1] = len + CI_RX_PACKAGE_DATA_OFFSET; diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/uart_rp2040/rx.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/uart_rp2040/rx.cpp index 2c7d160..38cc072 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/uart_rp2040/rx.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/uart_rp2040/rx.cpp @@ -116,6 +116,7 @@ void GobotRPC_CI_Hardware_RP2040_UART::rxProcessingTaskFn() { this->cb_rxData(this->cb_rxData_args, inputBuffer->data, inputBuffer->len); } + xQueueSend(emptyInputBuffersQueue, &inputBuffer, portMAX_DELAY); vTaskDelay(1000); } } \ No newline at end of file diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/base.hpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/base.hpp index a97b63c..dccf869 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/base.hpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/base.hpp @@ -5,6 +5,7 @@ enum GobotRPC_CI_CMD { TX_CI_PACKET = 0x01, RX_CI_PACKET = 0x02, + SET_ADDR_PORT_MAP = 0x03, SUCESS_TRANMISSION = 0xfc, ERROR_TRANMISSION = 0xfd, @@ -21,6 +22,8 @@ enum GobotRPC_CI_CMD { #define CI_RX_PACKAGE_SIZE(data_len) (data_len + CI_RX_PACKAGE_DATA_OFFSET) typedef void (*callback_TxPacket)(void * args, char *data, size_t len, uint32_t addr); +typedef void (*callback_SetAddress)(void * args, uint32_t addr, uint8_t port); + void GobotRPC_CI_rxData_cb(void * args, char *data, size_t len); void GobotRPC_CI_heartBeatTaskFn(void *args); void GobotRPC_CI_txCIInstructionTaskFn(void *args); @@ -32,6 +35,9 @@ private: callback_TxPacket cb_TxPacket; void * cb_TxPacket_args; + callback_SetAddress cb_SetAddressMap; + void * cb_SetAddressMap_args; + TaskHandle_t heartBeatTaskHandle; TaskHandle_t txCIInstructionTaskHandle; @@ -40,6 +46,8 @@ public: GobotRPC_CI(I_GobotRPC_CI_Hardware *hardware, UBaseType_t core, QueueHandle_t ciInstructionQueue); void registerCB_TxPacket(callback_TxPacket cb, void *args); + void registerCB_SetAddress(callback_SetAddress cb, void *args); + void send_RxPacket(char *data, size_t len, uint32_t addr); void onRxData(char *data, size_t len); diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/util/protocol.hpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/util/protocol.hpp index 7f7551c..da6eb05 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/util/protocol.hpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/util/protocol.hpp @@ -4,7 +4,8 @@ enum GobotRPCNumber { VACUM = 0x8, - RESET = 0xc + RESET = 0xc, + GET_INFO = 0xd }; enum GobotRPCTypes { diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/include/node_interface.hpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/include/node_interface.hpp index 17d90db..c22473c 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/include/node_interface.hpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/include/node_interface.hpp @@ -9,6 +9,15 @@ typedef void (*onPackageRxCallback)(void * args, char *data, uint16_t len, GobotRPCTypes type, GobotRPCNumber number); +enum NODE_TYPE: uint8_t { + NODE_TYPE_VACUM = 0xa1 +}; + +struct InfoData { + uint32_t addr; + NODE_TYPE type; +}; + class GobotRPC_NI { private: onPackageRxCallback onPackageRx; @@ -17,16 +26,18 @@ private: QueueHandle_t txQueue; QueueHandle_t rxQueue; TaskHandle_t rxTaskHandle; + + InfoData info; unsigned int core; public: - GobotRPC_NI(unsigned int core, QueueHandle_t txQueue, QueueHandle_t rxQueue); + GobotRPC_NI(unsigned int core, QueueHandle_t txQueue, QueueHandle_t rxQueue, InfoData info); void registerOnPackageRxCallback(onPackageRxCallback callback, void *context); void sendPackage(char *data, size_t len, GobotRPCTypes type, GobotRPCNumber number); + InfoData getInfo(); + void rxTask(); - - }; \ No newline at end of file diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/init.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/init.cpp index ab443fd..a77bd9c 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/init.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/init.cpp @@ -1,5 +1,6 @@ #include "node_interface.hpp" +#include "FreeRTOSConfig.h" #include "FreeRTOS.h" #include "task.h" #include @@ -9,8 +10,9 @@ static void rxTaskFn(void *pvParameters) { ni->rxTask(); } -GobotRPC_NI::GobotRPC_NI(unsigned int core, QueueHandle_t txQueue, QueueHandle_t rxQueue) { +GobotRPC_NI::GobotRPC_NI(unsigned int core, QueueHandle_t txQueue, QueueHandle_t rxQueue, InfoData info) { this->core = core; + this->info = info; this->txQueue = txQueue; this->rxQueue = rxQueue; @@ -65,3 +67,7 @@ void GobotRPC_NI::sendPackage(char *data, size_t len, GobotRPCTypes type, GobotR assembleCRC(package.data, len); xQueueSend(this->txQueue, &package, portMAX_DELAY); } + +InfoData GobotRPC_NI::getInfo() { + return info; +} \ No newline at end of file diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_init.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_init.cpp index fb30593..2c2c829 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_init.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_init.cpp @@ -1,6 +1,8 @@ #include "transmission_interface.hpp" #include "hardware/i2c.h" +#include + #include "pinConfig.hpp" GobotRPC_TI_Hardware_RP2040_I2C * g_GobotRPC_TI_Hardware_RP2040_I2C; diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_rx.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_rx.cpp index 37327dd..8eb0780 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_rx.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_rx.cpp @@ -20,22 +20,24 @@ void GobotRPC_TI_Hardware_RP2040_I2C::i2cRxTask() { uint32_t addr = intAddressMap[i]; + if(addr > 0xff) + continue; + GoRPCPackage_Transport pkg; xSemaphoreTake(i2cMutex, portMAX_DELAY); bool read_res = readI2C(&pkg, addr); xSemaphoreGive(i2cMutex); - //if(read_res) { + pkg.addr |= (i) << 8; + if(pushPackageCB != NULL) pushPackageCB(&pkg, pushPackageCBArgs); - //} break; } } - pinStates = readIntPins(); } while(pinStates & done_mask); } diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/main_core0.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/main_core0.cpp index 1a464b6..0656b1d 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/main_core0.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/main_core0.cpp @@ -32,6 +32,7 @@ void onTxPacket(void * args, char *data, size_t len, uint32_t addr) { GobotRPC_CI * gobotRPC_ci = (GobotRPC_CI *)args; GoRPCPackage_Transport pkg; + memcpy(pkg.data, data, len); pkg.len = len; pkg.addr = addr; diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/main_core1.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/main_core1.cpp index 80239b3..a89475f 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/main_core1.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/main_core1.cpp @@ -15,7 +15,7 @@ void pullPackageCB(GoRPCPackage_Transport * dest, void *args) { xQueueReceive(queue, dest, portMAX_DELAY); } -void pushPackage(GoRPCPackage_Transport * src, void *args) { +void pushPackageCB(GoRPCPackage_Transport * src, void *args) { QueueHandle_t queue = appData.rxQueue; xQueueSend(queue, src, portMAX_DELAY); } @@ -28,10 +28,10 @@ void pushCIInstruction(CI_Instruction_Transport * src, void *args) { void main_core2(void * pvParameters) { AppData appData = *((AppData *)pvParameters); GobotRPC_TI_Hardware_RP2040_I2C gobotrpc_ti_hardware(UART_CORE_MASK, i2c0); - gobotrpc_ti_hardware.setAddrMap(0x21, 0); + //gobotrpc_ti_hardware.setAddrMap(0x21, 0); gobotrpc_ti_hardware.registerPullPackageCB(pullPackageCB, appData.txQueue); - gobotrpc_ti_hardware.registerPushPackageCB(pushPackage, appData.rxQueue); + gobotrpc_ti_hardware.registerPushPackageCB(pushPackageCB, appData.rxQueue); gobotrpc_ti_hardware.registerPushCIInstructionCB(pushCIInstruction, appData.ciInstructionQueue); gobotrpc_ti_hardware.raiseInfoReset(); diff --git a/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/mapping.cpython-312.pyc b/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/mapping.cpython-312.pyc index 0f1b717efdac1205450812335d1c04db81b1c7c4..9fdb557114400b2ba75830731cb89fda63c13fd3 100644 GIT binary patch delta 629 zcmY*W&ubG=5Pq}2cazOFElm^JhHXTZjWbnD9&6&e%~ z>@_?nco2H2hJI%4&$ewb{JuQt zuD5%30k(UycD*F%PpgAHcgC`!1C1q))ZfRr8HB%9!O`}K%G9PP1N=|ZK2Ne z_O61`JHD0ek5$9fFlyYrSq-Av##;C>54!-C_#nN3l&Hx&Fe$#vyO0+fYC*hIUYBy{ zZ(rhhBtDMNkq}&$Pf#M8fS6NnK#?lox7bmu(o+y$)si>>1x#_E$Xj(xPDeIo z3g8Gw8^7;jy=QQR+DsAX2z|9txmQ`@2E|6Tvb0iLyj|xey^|Y0jqsn15y}#{^wJWK zwTV=YrJWad;t`ga7Ta3Un)zYR91nX(!)5VKn>w{C2HNZes_~@L&a|Kh$+8{5_-xHl z3^~CiaYZlbMT{0bM=a~}&l6jHd!5e8Hy>WyiXOE%{nWm?`YZ}Me3ELDJ0&iu%Rb}O zB01q-<61lPw_3phFJq2|b{-(aG5`!%{Tr(fSoer^f3eH4G6c@ve9VyEubdExv@z;s aP%gv_=`cJYid_{`nV2CRUjIXsO#BCFg^Dr& delta 566 zcmY*Uze`(D6u#&Ey6+{q$!kzzG-84Ud8h>kr}`5rQimw& z!Ue%a9Tar#BKRNpV~`3$sMw`*ALyb}&v`oN9lq~;-@WI2=U%@#b;X$wF^1=2YHbPX zA`4&YUEM`sKJ)c5U$*CLtc}3&%>YVU|MV@$s3Om*UE^D4Gj4LE$qbTgMW|{B`Mhi+!;L_FG)JMG zI$%c~nB%I)imL~+MNiZmbzx*7uF6*1cn3cAENM_ro`54X%;~Y2u~})8L0PhZ@G2xt zE dcD*=yLm@*tuG|rYttMK@kRcrp-xEc#{{dFSdDZ{` diff --git a/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/rpc_packages.cpython-312.pyc b/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/rpc_packages.cpython-312.pyc index 40cffe332f818acf7aae3238c2f3f8acf73deb90..91e35dc4543b702aa3a0d8f9ba4b9d6e88042e55 100644 GIT binary patch literal 14283 zcmds8Ym5`u6`rxj_V~5yeehZqFv}*vEU<(C$?{4AAwU8SWl7pNO)alySaz}3%e6NN zgjA>^DYS_al%^PkG^lB--K1@3fAvRyMEzAYQnecru^JI2Qu~KLm5E6kAyw-6?mYY& zZ&(Uj!IgaG&b@PI&OP_sbH01;@kha+PoVVjb1(M)J}d}-$Bmg>MyB`|%A6JyK@n3z zT8xPz@{W`v?Tk5j-kFlpu9z$Bj=9sGn1`21R3^vdv^VBW`(i#(a0uH4#dTaz+^YD# zQ-62N&r3a2DwmZ8c&V34ePyLVUh1dPKv`)6FAY*@Ls@AfFKwjKP+4i{a8soDGCmy< zwZ`q4zD#cKo~?Tl$%Bc0m5StN6R80uky9g1EnrsfJ3Opv4dz{RB;BVnEo9wi6ctZU zifSOR~L06I`?_H<0B@d{{gQePG`ewfxAIxTklDa5#Dj7G$KTzgJ zBz0AYiHZ<&C}Pa1N`ri~${Pqm%&mF`LzQK?i+Pox;!u729VdkSqT)OrjQJHw4eWQ& zC`hp&jRW!?$~RDXqw$=4JP->}9o;Kls%xUWhw?tkH&b4syr1$dly9Ycfbz3W2+xbL z*}X!fL2ET7^JF49lHRKx8d0;k%g`mwtqvvnQfkss#w-*8zv3z)Z;GddoK<MD9PQG9T_G`%klWY&_FI8XARVV%B8HD+Rtw^Z#Ig zJd2No!^f`e={}H2tKEr|`g~%DMyh)c%M7Z?T(+AJVfVo5;6iUH9tL)okis9W5Ojlc+xW=&;3Mho1EQ# zLVDF-qzXZkNC6WSGV)L{m(gD-LlP449MVzoeIpOqDB?USQyd5H7X;RnLkpf1r&;%w z@V3Kj@k5bHCEmhS)52}mRkp~PCIMgb@V2tzRV2kXAP$I%w_jBJXPv(Zyl;#V=SqLh zi>GPyEUpdbr6z{PoU9#{zG0RjmB8nHpViHVG8osjyYHh^7vjBJqm{z#!mC@XPGpgyGIt<4!2d`h^DU)!Ekq+Tl0y$ z^b3FE>#ma<^7nk~Uwo;#J%4oc;q$Y`9vj^>zM$tq^ZN0?dOYDixiP=?V}BS=yg0h= z{M}>U8;y=H*l?kF<9J}>KjcupGym+F<&&-LUxeo7*PZJbZ(C7tI_5VN+(KJN-gm|C zUgi5raC`lQkT7R{e%-0mxd$d@FNd13+319usksq0l(dwI3ek10Xm?YFEWW5XNO^=o zx~on!+|pSm&3IRoEuc!)2BObAJ_rm0&Sf_y>f#i+IJ5YmAxKXyql>ZKR*Xh%2Q|os zi5wHYXq`9N(uOW~zSDK4i+Vh(;flu{@)fA7KHjm4nPYY6QEF~)UCQTBg?{tdWX_f< z&2>aCqZ_0?O?1(Ge8Bq-=Sbfq=%U_XXGwopD?Ml09vjYiHgpo0)kRm!0qPlK|VD_uz!Fkh;Y z>CJNivtkg6UzKt}vw+@WuY3A>w1`BSV+T2tBm*iQSAlD(Bv9-`1qwow042b6_Z^$)t&Vbosb4FB&Z+Qf?L4 z1}dmy{>|pyXp?ukAd!v*?jRzN@kj486AN z|Yp!^u(ApDHAs~cWf0{g!|i>`2fc~PKC!7b7=3z6?cep9~X-<03PrO6q>{IwFa0jc;Nk^dF1bDZutF2{U| zQ}q+JmIzx16c^9CDIcWr1_P&i2&Xqv9o;K3)rBYzoUUVb7su&3W_PJAR1VDE%5nNE z(#(K1tIG3ahciQ2^)g&Sg&(QV`6?Gm`dpWMC3Ng7p<}|p{-_R= zIDDEiy zpYXpWy(hT$sT{8LNwAOLwD>zBW{GKNv-f7yc| zSk_g{sv7}(>>)cw;JxcjEdxZQ(GH@m<%0^1r3htC3x~ysBYI?x?HpJdVbJ{=Nx%`* zW57T|!}LfIIzwnkj&Lp_v)OjMZ3hUfT@}hxxjDRm8+Vm|!7P$SB4fxIzCO&%x z#MX3RQBqn*Reaw-1wTgHI7p2Ny^XyqQ>aH{WnPtrb6fAWeWm5xH2kXl95CJL>yX`k zOMpQ6X0j&Zv_KStqh@u`leK47F_tCpbOvqvK=_QT0h>4E7B}I2w*J{(G^Tq#i*`59 zJre|mN-~_1)Ud<7w6)VwAsxd>zk_C5L25Le3TvITbwboB8HbUEju)A> z=-#+PS4@06Nk1!Lt{~kW-q_keFceM4rMKQ4SGy7e51U79?~wrSP=Cz0rz?45zA(NK zZ(MCb4G~)I__vVZ4Y*^@(Dk_EYMW^=VEE%d;q!N5l)57tNSEwl*^=nJM|>kHAhJ$W8Re2k^cXM9K~%s@BVu{Fn~;Z)kY)95UnhznT&F zpVD%*mJvFVm;fKsaK+Yox#De8y5u^u%<##dfPsS`7?x?c>`f4D6f1;;l`}7N{_vx{QGt=$9 zMrT-n)b5+Wkd}^cYURX_S+An$jJf*7_BN*M;Nm~v=Vtr*`fKlcwx{0+Ob|#&fdE-FB}DX02M1EO$g>)W?q;wStP zkHmHH=v)0%pW>fsb6h5h6aA2J!tbRm@+OLa#uhnF@0%%)=vzeGwoo3?w?WF6qHh~D z3ng0iLSI^4_EL8=DWND#^A1tWGLPFyI(avBf;@h9+vXGmXnWAlx6LUEu7%pMH$i>| z(n=&N5ebJYPWx*;T-D;e0n_Bp#0reN#rY6VJID<$-fN9;_42(5Qap)|)a>$EgKW2( z&RM!1?_FzlD;Mx#Fz^#w1}taYLC?(0aWw^Lp|@4ZE<}+ZQ9JYpkI=y}!VSw> z@*{Ep7@q7}sF;kCW=6h9*8;fwslJmN1qEI);Mm@KA(@NEP>7l9!3 z3CVXAU;^sEjJgxk+)}ukMk@=Eln&09OazwLMlKd8aA`D)oq)@(*4W=yLU0ah13%|M*pbE>{)0=|Bx#_)SGk VS3ZuKE~;5AF3)Ga66nH3@L$jJW+4Co delta 2398 zcmb7FZERCj7`|uyy6s)R)^=-qw|W=63hYuGvajtQ0 z#wB9iL=E@SHzm|-5MnXzgHB5(=0I%mM_|($H{P3G) z+e#Hfc#y!j91qiX0|6zSV8%X7?4vWJXosWLG>gN#))Z!$w(?bOnn^4*A7 zgC!5!i<+@j21f0}xIUlmWiE&~ROW*o$Fk6B44tDYU;*6fHFtEz9i5h=yd3$7h`jDd zhkB|bo36Q=XWY%xax+HWY7arTvdihih>|Ur(~CTpgS=92&&&_j!N*DjcfYCR(F(n_ zo1@~2RHt4}%Q%@=fCWGFW1t1%aHTeH^$UKo!a zsrFoM=+ICxm)ivAT@6N}0G!K&30uVSqUi7!X0 zVy7=Wt!xL}^{BY^R=h7-U5^e7z=H*=(vwubk>(thG_Rk350J{IvL+UP<;U!_rX^l zwQhf*n8TJGCgw2$Km4h-z)^q7Dg^AOsD^p-Xc#a@wiuVbl~Wjc-QSHa`moUl$v~G| zEXYz4f?hZn7&pYuLWeU1_WHjX#c`gdknIRYmsG40Z%BBK(A*9J;kW;5lYX*E$%4Kp z6nVucTs#){GYa2H+x)9rVRta8yiD{iaRh9rWvZJKwUm1zCm<#0t^s=P^TMcV$dtY53)vaIJZLNCi27qUjfBH3nIOEbKiV1R)1 z?l-g^p|JoswJZR~0|{8yw8qeUWM1=kU~S}?2kZVpq}ek;sUBYUjifuL&aP7ZSsFf! z>UW|kvr-nuR%aZ)N{_I#cntml-GlwT diff --git a/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/util.cpython-312.pyc b/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/util.cpython-312.pyc index 44e08570ce1ae21eb06542b169076e84af7afca5..819500866642174fd89c1b9f04d33ecbd7b01291 100644 GIT binary patch delta 659 zcmZ9H&ubGw6vtgYT!qC6pVZi*OB3Zt!aYos;eTonfN2@w@~TS-Gq zTjMrNOum4#w!%{*)=2i1;^NzHKWW(p%Y+Ehpqw-mP8%wW)WEKFTAiMIuTt-D;q~{$ z(JL_4i<&gmi}IGboLqvw8wHHWr-UsZsJG=0CB1iK&U_L73{?Lt;vC{UAYiVu?RbG+ zbG+u=dUey!;Ak0f3Xwg*3W#nBfZ^8AnZsH*xHETWH zdLGjexXa&kdsu<}XE<=?>3Nycen*OEFUSll(URO?7ua<;$W5O?Un$`13gR-NjF|b? zK@~OsDwM!z`<+M4R=+2@^FPD8i_B-}z9zp%Zn7I7^V3pvKqG5-T99w_Emj42NwV0K zTJn9YT*~5Tw*4%Z%_DK0fc2j2KNLRZ`1qNhktt)Px&e~H+kF8zRw<=l$m(YjKh`W7 med+xoP{JIgsl(o6Fdl>iWEfHD;-NR$9q)z&WN65y(fR|vK#*nt delta 534 zcmZ1~eo&P6G%qg~0}vdItVz$9$ScXXW1@PcOA2QyTMAbydkS|dM+#3WXBtNeZwpHl zR|<0~Cy>vb%9hHW#v}>Um&TI92bAGS5dg`hF{SXgutxD#GHD8K=41TCC?x_^Go2xo zA&N1DA&M!5F^V~bDT<|%S(9b*er73VKTX!j2F%(9w^)N*gIz;bG8BmcH57q#6-mGd zkWeuXkZ57J!NcF+3M3}iGdoVMU{SD?1}TyO5wbwy7ITnmAczRQ#p)Uqzd&CVyo4#-;)iRG$2nRhLm?vNW3(t1(bOezO;wE~B$DNKOw#=zs`q z5CK-N3uI}s6d3@iTU=>H`ML2)l_jag5Lbh2&}1!Q1*tZgyo=qI)f~uF+5CsShLH^v zY(VSkI0IQ7flTemS2#B_@=fmGGN=bT4{RhW#59mgZn2h>7UZNBfs7~u=|J<;FAkgB z{FKt1RJ$T~pe!R07qUzVBu$EUl8({0Z4sOVPX`R5HdYxV$2r? WAoB|cGo#=Hlj$}SZ6^D0M*;wlQgjXg diff --git a/i2c-hub/uart-adapter/src/gobotrpc/mapping.py b/i2c-hub/uart-adapter/src/gobotrpc/mapping.py index 7fae95f..a7f6226 100644 --- a/i2c-hub/uart-adapter/src/gobotrpc/mapping.py +++ b/i2c-hub/uart-adapter/src/gobotrpc/mapping.py @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:71a322b0ef7a6f9f8456ae537b02afb1bfd27b5fa929a7272a6f4ed03238d5b7 -size 1537 +oid sha256:5021d8a9cc14426b07e73c08622923521b7faef90ed4b964936d86bb3be39678 +size 1645 diff --git a/i2c-hub/uart-adapter/src/gobotrpc/rpc_packages.py b/i2c-hub/uart-adapter/src/gobotrpc/rpc_packages.py index 7d8ef47..c9a2815 100644 --- a/i2c-hub/uart-adapter/src/gobotrpc/rpc_packages.py +++ b/i2c-hub/uart-adapter/src/gobotrpc/rpc_packages.py @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1500ab0d5fdff42fda010ac61f9e22c54834e67d3a77076c5ba36e3eed7f30fd -size 5572 +oid sha256:47160f0d5ad4e0454291a99454c18db1503848f4bed36bcb8b569d447bec9069 +size 8369 diff --git a/i2c-hub/uart-adapter/src/gobotrpc/util.py b/i2c-hub/uart-adapter/src/gobotrpc/util.py index a7d7f9b..a29abc2 100644 --- a/i2c-hub/uart-adapter/src/gobotrpc/util.py +++ b/i2c-hub/uart-adapter/src/gobotrpc/util.py @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e6dca9a10b61087b532ec24d7c69000e2df7a5cb100062579b91f7ec8b75cad0 -size 1640 +oid sha256:34304225e4ab51d140ef47e5cd474ae38abfb64c8f185832baae3a2863365d3b +size 1714 diff --git a/i2c-hub/uart-adapter/src/main.py b/i2c-hub/uart-adapter/src/main.py index 20a4f72..24e6add 100644 --- a/i2c-hub/uart-adapter/src/main.py +++ b/i2c-hub/uart-adapter/src/main.py @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:94c74e41bdf00236e245b88143f712162e316cd4cdda14d02873d8fba5a5220f -size 1208 +oid sha256:3cd34760259f5485610feaade557e47bc6a5a23b77bb5eac2b4fea319a1d3417 +size 1397 diff --git a/i2c-hub/uart-adapter/src/uart_interface/__init__.py b/i2c-hub/uart-adapter/src/uart_interface/__init__.py index 5dd8fa0..921ad87 100644 --- a/i2c-hub/uart-adapter/src/uart_interface/__init__.py +++ b/i2c-hub/uart-adapter/src/uart_interface/__init__.py @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2f700077e0d0164875c083c140e3888e5ba28a83a215ff5479799aa64d0355fb -size 1376 +oid sha256:5e2b3a2c3a8da8753252a5322429cddba2217ab6b2e8587813b1d16a4b2017fb +size 1292 diff --git a/i2c-hub/uart-adapter/src/uart_interface/__pycache__/__init__.cpython-312.pyc b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/__init__.cpython-312.pyc index 2f4bc5ac184f249eb2432f67dbeb3b18f2a27f08..c482457e01112888c220228576c2f7add66bfa71 100644 GIT binary patch delta 520 zcmaDW)g#4wnwOW00SI(rYtwlq@=7wUn5e#zrIJyTYvY3iW=4a_jx2^Om0X(KldD(^ zCvRYppWMbFIQapKgpgpcYe>AKi%U>^fPYX(ysu-xWFgiZF(aU1EetmVMH{>zgoMlm z7SYW!Si2Y*r6()1doUVK&S5uUlLx9RGMOB}ZN_E@Vwz2U#IDVzj3MgJq0Xib5v}1c zH8%z^%|V0|h_D0^Vjw~gMCgJDJ`lkRBJ^Q|)Z`Z&lNt3V?`M^qJeBhnFUUqsrXp^T zy#3@FE;lwE5YuGx2`+1xb2zyj*$g0}NRI5`HjFRc`LnWgo_r@y;%#0?J zO<4>%Qn;dcD!DazCTFo2GO|pb&Z5l7J9#&Yh7?bLYml3NkZ*jjv!mZFZV(wCvNm28H1P>lMk|Mv#DT+>T#&EX+T7yIZVw>K}<^!Aq66=L4+8H5CjqWAc7A>@PY_K z7$H6RILBm0!^!hlB`23~-r@z>sL52s4U%`99L?p%rVC=4O9Uq)pl$n^L$z5bSIgLll6Kont!7b6!#G;b;%)FA+qO`>1RJ~%b!Xgi# z9GdyRIBatBQ%ZAE?TY+>vW!4n>@#^UkBkKmqu7F!<(UgJzc2uqUu5_hl_m&J7oRBp eg#pO?qQuRpG{bnl`AqXK3_#{LDF#M6u!jNPyMko^ diff --git a/i2c-hub/uart-adapter/src/uart_interface/__pycache__/ci_highLevel.cpython-312.pyc b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/ci_highLevel.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..68befe4c821e3d0423a528bab8b3d7ee8c78dc9c GIT binary patch literal 2529 zcmb7FO=ufO6rR~#$!l3ZPHP9pKdszgiu|XCT$Yv`dg{&Cg+fk!Z&oX>Y*Wa9-p+e(M)SV+ zy?OInEEXX!etNK(Piutyg^E8wm*aQ=KHG#5Mhm1!4N7sY6qKTBs71}tiXkIZ3>#r- zR|_3Q-O!7jMkgf-nIlZwA}qA4czRoSvOsG&5f0 zqHmbv&U`6XUgY4E73Lv0`k=G0Cs z1{)y{1Mr68cT^;mi~?g1c)cb{%P z**r*$?k7g;iSa#sT%u?rN`s}6sOvD z^5kljvT$6raxZV=nLt^Sv$)NjX{etJ_-|X4T7M8*yHDm~5OzNzf5b;$eDt!X9>4Zj zh5P3*_H3!44|^C}IAC=PV~e4n7Z%_+DMp`{^RUT6#Ns~9iyIYO1}nQ@tuF{7=)uB0 zxnEw`uZAY-L+OTo#S1;yz+3m|ChU{N^}nGzn0q;V5YRN5|92LSDp`{EN?<$lyN0}1 z-Wwphh8ruD88`FXfxew9w^v`A3%RieK(t+>S7X!lv6)}sCf#i4w)J?O~L6NY)v4 zJ-65ISCfIZYYR+*WKKd8&6}eai~&C|0LUuauZ7(eI!%e`qkllI=VN%L=YU2<95xi;2+Ojlaj@?cVz`e0$4#oVMsyLFso zU`yx5Rz@GjqEpPY-Rb#D5D)vR@Q4Vw^+s*T}zh|*QaB(hpb_>`cYc%7CSj}xmh zJqK%61il>j5ZP7$yf^r@mkUn;SK)TI3Av$B%HeV1OhY>~CDZe6)ckNA*>==RBX_(D zB1%BbjoOzSRfU#c@muhNH*i5ND$Aru9eJr^T5*(uT9h1hNtxCh&E+2C9^^XOb>s$e zFLDEU+cJ5VPPb=?-L?@LPqFN)Q*3Nv;sl$_oS0&-jZL!2T>hQhOo6vy$qnV~9IxcJ zt_ux>$ONKN3TkaCJnHG_7GC@^g01jQ!8Z*M3dEk?HTMu>r8A`pW1j#EbZchMvU1gc zT3?*L+=#U+6b>t~E{|gbiKE|?Fe^Tbgz4}wnDFn&3eWUfHV>f>4+}VnU>iJwV&e(k z&+U)W%TVi$9NLj-d-kCspF7Rony(bfpJA5rb%cuq{_ZV;-fv0R>s;u03Hu!DzYFh& z4|Y*U+U`@lsVw0M_&sd-uAstW0=BN@)No*+|NpLis4}-%_$!Pm&q69P`obSR^SZHO z{Nn5T(brcyTr2$K8@Q)RzQLwO{MODRkBmn|HU{DINSa>R+ASl#`@A!S3d^5%?ut$w zU?Ud%rN=#vbVG6EMab>7#%~Zu`9Q_BQPT^-Ck>FuISxOy4W*!N=geFzuHul|GeiH}mNsoVMbE1$;K_J3o4VXyVx8C!oUy{@OZ zwOK(d33uVFU`G+k6yYd0g??!pK1T9p`8eXEC2~)a)j&0iSEUB(;}3*rdUf^L>bVv{ z(KHoxu-e}uD4Ok5Jy11U1VvM$YKB(39-@+=ZU=4wyAw_(9iRJma6f#p3j7j$mkfKa eAr<|U7onA$?YU1nseL~Yq#0U!@c|Li&GRp+%SEjK delta 235 zcmeCHd6~s`nwOW00SMLw)TTE}OyrYbyfsn%HcKU=rpRU)Mt3>J;>{`Y*Vq`dCtIt1 z29k>MlAAr$Wf&PXC#Pxzvt&X-Jx6!?znS z2XBHGJ%sV%MLe1oyad7jz(b+nsjwiPJcxJ{#Dh4qL7{VayzkBTzW43UN#aLBIa3r_ zU?=zZNh2{-uA}o|s+8@>6&VS2q3&t>JAq2TSRV1kaE7*qC(2S&b7 z*fYwdy#wPxzRY@R$JGWIr_h;*r`Z6I$G<$_L2-I4#qbPQRQf{F5T@^>v=U~5$51B>scX&OZ7k(@^x^sT(a2A|817BcKc7hy84 zLF^F%?zIqiu>NiT2FlZC{&^f{3h3igzli*coG)=u>4!if?8doCBKL9Q_rOh5piyO; z1rg=-iu(m~?ADoTnawV!oO)|*ll_`?#{VTU3VE7Qm(dP=sNP}j=js~fuLD=rhh^U$=RSA#7&3f@?BBK<1ZMzd=ZII7mjYOQJXCQoL8m)kJC2<|SpsXM&>zsYZ3 pu4C5wZE_FxX(6QJFGA_Fut}{@@=6ZH-mG3Ei=UFkp8_jf*I&pRo00$k delta 649 zcmY*V&ubGw6rR~6v)f%KNh^_N8{18=wCk^8X=73Qn^Xc)>$Qj>&8{J7(hV=^A%b`j z>cvACFJ8oJJk&$LKcYdWhKo5c!FP?leMZr0IeDl5Ud+*Ks$bQQ5A?GH+b7SXa zRqydMJ?YInUZBJyUZi0(&0SORXoEGaU5gT**2ks)|Kqc|-8;UTh->5_@nWxu$9%m$ z*$XG~$u4#Eb7|jpX_%_iO09Bbzg+c8&mm}*_PQOvjfMDTv9wc$whsk>00u=m)R=)O z7#Y}6h|r99t7q7lRJi!8J2WP~>DT!v3Sp#m*l`)8g>KxV_F%(!N2x1LN8XR8rQek> zi_nfBIF19hcw?^9RdHfYW8Ekt6{Vr)DD148mlw{e0m=F z--$?J4dF#rys|P(86Jsld;$9$#~0azG^E6N+_^O`>0N{{roI#INMQ}3Pe83}OF>s4 z@`)K-=viWMNtLAPj$W+6I^9<7pbD3zb6P?|!hM9$s0MpM2U-=_62rtz4PwGhZcnME wMd|uC=(q8p8F+^ce+8b1qom8u$m$tc5?_+J)C$dfynUK0e9skr5xl6>A88kl1ONa4 diff --git a/i2c-hub/uart-adapter/src/uart_interface/ci_highLevel.py b/i2c-hub/uart-adapter/src/uart_interface/ci_highLevel.py new file mode 100644 index 0000000..d683f1e --- /dev/null +++ b/i2c-hub/uart-adapter/src/uart_interface/ci_highLevel.py @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5dbdf95db6e5b8c67d1fa55df31e821596e68d8f73dcf197897194219874ea88 +size 1071 diff --git a/i2c-hub/uart-adapter/src/uart_interface/ci_packages.py b/i2c-hub/uart-adapter/src/uart_interface/ci_packages.py index f57fc1f..c268f38 100644 --- a/i2c-hub/uart-adapter/src/uart_interface/ci_packages.py +++ b/i2c-hub/uart-adapter/src/uart_interface/ci_packages.py @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8e0564cb49ec7bf6bf40071f32eecf9d10b810b37bb3d0c82e093a7ded321919 -size 6275 +oid sha256:4aa7c6fe04748361ebf6a7d462715512630dc8474d6eeddb6adb6792e9060141 +size 7315 diff --git a/i2c-hub/uart-adapter/src/uart_interface/serial.py b/i2c-hub/uart-adapter/src/uart_interface/serial.py index 9e83cd6..eec7092 100644 --- a/i2c-hub/uart-adapter/src/uart_interface/serial.py +++ b/i2c-hub/uart-adapter/src/uart_interface/serial.py @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7135997097b4c8e33b71d8cf5ffd70b580cde774e25f1ca674cfc11b2099ef28 -size 2311 +oid sha256:6a5e1d54d7a9c2b4fedf100e7e19b277de10f17284630410a9a1c54e493b94d8 +size 2337 diff --git a/vacum-control/vacum-control-firmware/include/pinConfigNode.hpp b/vacum-control/vacum-control-firmware/include/pinConfigNode.hpp index 74aba45..65152d9 100644 --- a/vacum-control/vacum-control-firmware/include/pinConfigNode.hpp +++ b/vacum-control/vacum-control-firmware/include/pinConfigNode.hpp @@ -14,4 +14,6 @@ #define BUTTON_PIN 17 #define INTERRUPTION_DURATION ((int)(2.5 * 1000)) -#define INTERRUPTION_DELAY 5 * 1000 \ No newline at end of file +#define INTERRUPTION_DELAY 5 * 1000 + +#define I2C_ADDR 0x21 \ No newline at end of file diff --git a/vacum-control/vacum-control-firmware/src/main.cpp b/vacum-control/vacum-control-firmware/src/main.cpp index 42d07c1..9d91f07 100644 --- a/vacum-control/vacum-control-firmware/src/main.cpp +++ b/vacum-control/vacum-control-firmware/src/main.cpp @@ -37,6 +37,18 @@ void onRxPackage(void * args, char *data, uint16_t len, GobotRPCTypes type, Gobo break; } + case GobotRPCNumber::GET_INFO: { + InfoData info = appData->gobotrpc_ni->getInfo(); + txBuffer[0] = (info.addr >> 24) & 0xFF; + txBuffer[1] = (info.addr >> 16) & 0xFF; + txBuffer[2] = (info.addr >> 8) & 0xFF; + txBuffer[3] = info.addr & 0xFF; + txBuffer[4] = info.type; + + g_appData.gobotrpc_ni->sendPackage(txBuffer, 5, GobotRPCTypes::RESPONSE, GobotRPCNumber::GET_INFO); + break; + } + case GobotRPCNumber::RESET: { softwareReset(); break; @@ -52,7 +64,7 @@ void core1_main(void *pvParameters) { AppData * appData = (AppData *) pvParameters; GobotRPC_NI_Hardware_RP2040_I2C gobotrpc_ni_hardware( appData->txQueue, appData->rxQueue, CORE_MASK_VACUM, - i2c0, 0x21, GORPC_SDA_PIN, GORPC_SCL_PIN, GORPC_INT_PIN + i2c0, I2C_ADDR, GORPC_SDA_PIN, GORPC_SCL_PIN, GORPC_INT_PIN ); while (true) { @@ -85,7 +97,9 @@ int main() { vacumControl.setState(false); g_appData.vacumControl = &vacumControl; - GobotRPC_NI gobotrpc_ni(CORE_MASK_VACUM, g_appData.txQueue, g_appData.rxQueue); + InfoData info = {.addr=I2C_ADDR, .type=NODE_TYPE_VACUM}; + + GobotRPC_NI gobotrpc_ni(CORE_MASK_VACUM, g_appData.txQueue, g_appData.rxQueue, info); gobotrpc_ni.registerOnPackageRxCallback(onRxPackage, &g_appData); g_appData.gobotrpc_ni = &gobotrpc_ni;