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 0f1b717..9fdb557 100644 Binary files a/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/mapping.cpython-312.pyc and b/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/mapping.cpython-312.pyc differ 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 40cffe3..91e35dc 100644 Binary files a/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/rpc_packages.cpython-312.pyc and b/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/rpc_packages.cpython-312.pyc differ 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 44e0857..8195008 100644 Binary files a/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/util.cpython-312.pyc and b/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/util.cpython-312.pyc differ 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 2f4bc5a..c482457 100644 Binary files a/i2c-hub/uart-adapter/src/uart_interface/__pycache__/__init__.cpython-312.pyc and b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/__init__.cpython-312.pyc differ 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 0000000..68befe4 Binary files /dev/null and b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/ci_highLevel.cpython-312.pyc differ diff --git a/i2c-hub/uart-adapter/src/uart_interface/__pycache__/ci_packages.cpython-312.pyc b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/ci_packages.cpython-312.pyc index 499090b..2336899 100644 Binary files a/i2c-hub/uart-adapter/src/uart_interface/__pycache__/ci_packages.cpython-312.pyc and b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/ci_packages.cpython-312.pyc differ diff --git a/i2c-hub/uart-adapter/src/uart_interface/__pycache__/serial.cpython-312.pyc b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/serial.cpython-312.pyc index a8548d3..b448fdd 100644 Binary files a/i2c-hub/uart-adapter/src/uart_interface/__pycache__/serial.cpython-312.pyc and b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/serial.cpython-312.pyc differ 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;