From c73a9212eb5cbb41b85231a630b6c81264def9b3 Mon Sep 17 00:00:00 2001 From: AlexanderHD27 Date: Tue, 7 Jan 2025 23:33:01 +0100 Subject: [PATCH] Fixed further issues --- .../i2c-hub-firmware/FreeRTOSConfig.h | 2 +- .../docs/.$NetworkStack.drawio.bkp | 14 +++------- .../docs/.$NetworkStack.drawio.dtmp | 26 ++++++++++++------ .../i2c-hub-firmware/docs/NetworkStack.drawio | 8 +++--- .../src/gobotrpc/ctrl_interface/base.cpp | 7 +++-- .../ctrl_interface/ci_instruction.cpp | 13 +++++++++ .../src/gobotrpc/include/ci/base.hpp | 4 ++- .../src/gobotrpc/include/ci/hardware.hpp | 3 +- .../src/gobotrpc/include/ci/instructions.hpp | 3 +- .../src/gobotrpc/include/main.hpp | 1 + .../include/ti/transmission_interface.hpp | 11 +++++++- .../rp2040_i2c_ci_instructions.cpp | 19 +++++++++++++ .../rp2040_i2c_init.cpp | 15 +++++++++- .../transmission_interface/rp2040_i2c_int.cpp | 15 ++++++++++ .../transmission_interface/rp2040_i2c_rx.cpp | 2 ++ .../i2c-hub-firmware/src/main_core0.cpp | 16 +++++++---- .../i2c-hub-firmware/src/main_core1.cpp | 5 ++-- .../__pycache__/rpc_packages.cpython-312.pyc | Bin 14283 -> 14503 bytes .../uart-adapter/src/gobotrpc/rpc_packages.py | 4 +-- i2c-hub/uart-adapter/src/main.py | 4 +-- .../src/uart_interface/__init__.py | 4 +-- .../__pycache__/__init__.cpython-312.pyc | Bin 3340 -> 3771 bytes .../__pycache__/ci_packages.cpython-312.pyc | Bin 15886 -> 16329 bytes .../pares_packages.cpython-312.pyc | Bin 1697 -> 1823 bytes .../__pycache__/serial.cpython-312.pyc | Bin 4333 -> 4513 bytes .../src/uart_interface/ci_packages.py | 4 +-- .../src/uart_interface/pares_packages.py | 4 +-- .../uart-adapter/src/uart_interface/serial.py | 4 +-- 28 files changed, 137 insertions(+), 51 deletions(-) diff --git a/i2c-hub/firmware/i2c-hub-firmware/FreeRTOSConfig.h b/i2c-hub/firmware/i2c-hub-firmware/FreeRTOSConfig.h index b332416..c616c38 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/FreeRTOSConfig.h +++ b/i2c-hub/firmware/i2c-hub-firmware/FreeRTOSConfig.h @@ -73,7 +73,7 @@ #define configSUPPORT_STATIC_ALLOCATION 0 #define configSUPPORT_DYNAMIC_ALLOCATION 1 #define configTOTAL_HEAP_SIZE (1024 * 128) -#define configAPPLICATION_ALLOCATED_HEAP (1024 * 64) +#define configAPPLICATION_ALLOCATED_HEAP (1024 * 84) /* Hook function related definitions. */ #define configCHECK_FOR_STACK_OVERFLOW 0 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 faa9a47..b1b1eb9 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.bkp +++ b/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.bkp @@ -1,6 +1,6 @@ - + @@ -131,19 +131,13 @@ - + - - - - - - - - + + diff --git a/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.dtmp b/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.dtmp index ade6789..2c6f56b 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.dtmp +++ b/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.dtmp @@ -1,6 +1,6 @@ - + @@ -1083,7 +1083,7 @@ - + @@ -1371,16 +1371,17 @@ - + + - + - + @@ -1392,7 +1393,7 @@ - + @@ -1404,13 +1405,13 @@ - + - + @@ -1611,6 +1612,9 @@ + + + @@ -1629,6 +1633,12 @@ + + + + + + diff --git a/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio b/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio index b1b1eb9..be45ac7 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio +++ b/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio @@ -1,6 +1,6 @@ - + @@ -670,7 +670,7 @@ - + @@ -894,13 +894,13 @@ - + - + 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 2dd0218..d79220e 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 @@ -11,8 +11,9 @@ #include "task.h" -GobotRPC_CI::GobotRPC_CI(I_GobotRPC_CI_Hardware *hardware, UBaseType_t core, QueueHandle_t ciInstructionQueue) { +GobotRPC_CI::GobotRPC_CI(I_GobotRPC_CI_Hardware *hardware, UBaseType_t core, QueueHandle_t ciInstructionQueue, QueueHandle_t ciInstructionReverseQueue) { this->ciInstructionQueue = ciInstructionQueue; + this->ciInstructionReverseQueue = ciInstructionReverseQueue; this->hardware = hardware; this->hardware->registerCB_RxData(GobotRPC_CI_rxData_cb, this); @@ -49,8 +50,8 @@ void GobotRPC_CI::onRxData(char *data, size_t len) { 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]; + uint32_t addr = (data[2] << 24) | (data[3] << 16) | (data[4] << 8) | data[5]; + uint8_t port = data[6]; this->cb_SetAddressMap(cb_SetAddressMap_args, addr, port); } break; diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/ci_instruction.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/ci_instruction.cpp index ad8b85d..0f60d8a 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/ci_instruction.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/ctrl_interface/ci_instruction.cpp @@ -74,4 +74,17 @@ void GobotRPC_CI::send_InfoReset() { resetPacket[1] = 2; this->hardware->send(resetPacket, 2); +} + +// CI Reverse Instructions (CI -> TI) +void GobotRPC_CI::send_rev_SetAddrMap(uint32_t addr, uint8_t port) { + CI_Instruction_Transport ciInstruction; + ciInstruction.type = CI_INSTRUCTION_REV_SEND_SET_ADDR_MAP; + ciInstruction.data[0] = addr & 0xff; + ciInstruction.data[1] = (addr >> 8) & 0xff; + ciInstruction.data[2] = (addr >> 16) & 0xff; + ciInstruction.data[3] = (addr >> 24) & 0xff; + ciInstruction.data[4] = port; + + xQueueSend(ciInstructionReverseQueue, &ciInstruction, portMAX_DELAY); } \ 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 dccf869..f3aeedc 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 @@ -42,8 +42,9 @@ private: TaskHandle_t txCIInstructionTaskHandle; QueueHandle_t ciInstructionQueue; + QueueHandle_t ciInstructionReverseQueue; public: - GobotRPC_CI(I_GobotRPC_CI_Hardware *hardware, UBaseType_t core, QueueHandle_t ciInstructionQueue); + GobotRPC_CI(I_GobotRPC_CI_Hardware *hardware, UBaseType_t core, QueueHandle_t ciInstructionQueue, QueueHandle_t ciInstructionReverseQueue); void registerCB_TxPacket(callback_TxPacket cb, void *args); void registerCB_SetAddress(callback_SetAddress cb, void *args); @@ -55,6 +56,7 @@ public: void heartBeartTaskFn(); // CI Instruction Stuff + void send_rev_SetAddrMap(uint32_t addr, uint8_t port); void txCIInstructionTask(); void send_ErrorTransmission(bool rx, uint64_t addr); void send_SuccessTransmission(uint64_t addr); diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/hardware.hpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/hardware.hpp index ab05608..6c227fb 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/hardware.hpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/hardware.hpp @@ -45,7 +45,7 @@ private: inputBuffers_t inputBufferPool[NUM_INPUT_BUFFERS]; TaskHandle_t rxProcessingTaskHandle; - + SemaphoreHandle_t rxSignalSemaphore; QueueHandle_t emptyInputBuffersQueue; QueueHandle_t filledInputBuffersQueue; @@ -67,7 +67,6 @@ public: void onRx_ISR(); void rxBufferingTaskFn(); void rxProcessingTaskFn(); - }; extern GobotRPC_CI_Hardware_RP2040_UART * g_GobotRPC_CI_Hardware_RP2040_UART; diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/instructions.hpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/instructions.hpp index 3e74193..faef0a6 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/instructions.hpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ci/instructions.hpp @@ -1,7 +1,8 @@ enum CI_Instruction_Type { CI_INSTRUCTION_SEND_TRANMISSION_ERROR, CI_INSTRUCTION_SEND_TRANMISSION_SUCCESS, - CI_INSTRUCTION_SEND_INFO_RESET + CI_INSTRUCTION_SEND_INFO_RESET, + CI_INSTRUCTION_REV_SEND_SET_ADDR_MAP, }; struct CI_Instruction_Transport { diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/main.hpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/main.hpp index 280c709..5d9c191 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/main.hpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/main.hpp @@ -9,6 +9,7 @@ struct AppData { QueueHandle_t txQueue; QueueHandle_t rxQueue; QueueHandle_t ciInstructionQueue; + QueueHandle_t ciInstructionReverseQueue; }; void main_core2(void * pvParameters); diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ti/transmission_interface.hpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ti/transmission_interface.hpp index 49c87fe..6624970 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ti/transmission_interface.hpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ti/transmission_interface.hpp @@ -55,8 +55,14 @@ private: SemaphoreHandle_t i2cMutex; SemaphoreHandle_t i2cRXSemaphore; + TaskHandle_t i2cRxTaskHandle; TaskHandle_t i2cTxTaskHandle; + TaskHandle_t i2cIntTaskHandle; + TaskHandle_t revCIInstructionTaskHandle; + + QueueHandle_t revCIInstructionQueue; + UBaseType_t core; i2c_inst_t * i2c; @@ -67,7 +73,7 @@ private: bool readI2C(GoRPCPackage_Transport * pkg, uint32_t addr); public: - GobotRPC_TI_Hardware_RP2040_I2C(UBaseType_t core, i2c_inst_t *i2c); + GobotRPC_TI_Hardware_RP2040_I2C(UBaseType_t core, i2c_inst_t *i2c, QueueHandle_t revCIInstructionQueue); void registerPullPackageCB(callback_pullPackage cb, void *args); void registerPushPackageCB(callback_pushPackage cb, void *args); @@ -77,12 +83,15 @@ public: void i2cRxTask(); void i2cTxTask(); + void manualTriggerIntTask(); void intPinISR(BaseType_t * xHigherPriorityTaskWoken); uint32_t readIntPins(); void raiseTranmissionError(bool rx, uint32_t addr); void raiseTransmissionSuceess(uint32_t addr); void raiseInfoReset(); + + void revCIInstructionTask(); }; diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_ci_instructions.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_ci_instructions.cpp index f51538a..f22b8e3 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_ci_instructions.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_ci_instructions.cpp @@ -31,4 +31,23 @@ void GobotRPC_TI_Hardware_RP2040_I2C::raiseInfoReset() { ciInstruction.type = CI_INSTRUCTION_SEND_INFO_RESET; this->pushCIInstructionCB(&ciInstruction, pushCIInstructionCBArgs); +} + +void GobotRPC_TI_Hardware_RP2040_I2C::revCIInstructionTask() { + CI_Instruction_Transport ciInstruction; + while(1) { + xQueueReceive(revCIInstructionQueue, &ciInstruction, portMAX_DELAY); + + switch (ciInstruction.type) { + case CI_INSTRUCTION_REV_SEND_SET_ADDR_MAP: { + uint32_t addr = ciInstruction.data[0] |\ + (ciInstruction.data[1] << 8) |\ + (ciInstruction.data[2] << 16) |\ + (ciInstruction.data[3] << 24); + uint8_t port = ciInstruction.data[4]; + this->setAddrMap(addr, port); + break; + } + } + } } \ 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 2c2c829..3f89b31 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 @@ -7,9 +7,10 @@ GobotRPC_TI_Hardware_RP2040_I2C * g_GobotRPC_TI_Hardware_RP2040_I2C; -GobotRPC_TI_Hardware_RP2040_I2C::GobotRPC_TI_Hardware_RP2040_I2C(UBaseType_t core, i2c_inst_t *i2c) { +GobotRPC_TI_Hardware_RP2040_I2C::GobotRPC_TI_Hardware_RP2040_I2C(UBaseType_t core, i2c_inst_t *i2c, QueueHandle_t revCIInstructionQueue) { this->core = core; this->i2c = i2c0; + this->revCIInstructionQueue = revCIInstructionQueue; g_GobotRPC_TI_Hardware_RP2040_I2C = this; @@ -38,6 +39,16 @@ GobotRPC_TI_Hardware_RP2040_I2C::GobotRPC_TI_Hardware_RP2040_I2C(UBaseType_t cor } +static void i2cIntTaskFn(void * pvParameters) { + GobotRPC_TI_Hardware_RP2040_I2C * hw = (GobotRPC_TI_Hardware_RP2040_I2C *)pvParameters; + hw->manualTriggerIntTask(); +} + +static void revCIInstructionTaskFn(void * pvParameters) { + GobotRPC_TI_Hardware_RP2040_I2C * hw = (GobotRPC_TI_Hardware_RP2040_I2C *)pvParameters; + hw->revCIInstructionTask(); +} + void GobotRPC_TI_Hardware_RP2040_I2C::initTasks() { i2cMutex = xSemaphoreCreateMutex(); i2cRXSemaphore = xSemaphoreCreateBinary(); @@ -51,6 +62,8 @@ void GobotRPC_TI_Hardware_RP2040_I2C::initTasks() { xTaskCreateAffinitySet(i2cRxTaskFn, "i2c Rx Task", 4096, this, 3, core, &i2cRxTaskHandle); xTaskCreateAffinitySet(i2cTxTaskFn, "i2c Tx Task", 4096, this, 3, core, &i2cTxTaskHandle); + xTaskCreateAffinitySet(i2cIntTaskFn, "i2c Int Task", 4096, this, 3, core, &i2cIntTaskHandle); + xTaskCreateAffinitySet(revCIInstructionTaskFn, "Rev CI Instruction Task", 4096, this, 3, core, &revCIInstructionTaskHandle); } void GobotRPC_TI_Hardware_RP2040_I2C::registerPullPackageCB(callback_pullPackage cb, void *args) { diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_int.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_int.cpp index 214c5d4..459ad58 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_int.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_int.cpp @@ -31,4 +31,19 @@ void GobotRPC_TI_Hardware_RP2040_I2C::intPinISR(BaseType_t * xHigherPriorityTask xSemaphoreGiveFromISR(i2cRXSemaphore, xHigherPriorityTaskWoken); } +void GobotRPC_TI_Hardware_RP2040_I2C::manualTriggerIntTask() { + while (1) { + uint32_t intPinsStates = readIntPins(); + if(intPinsStates == 0) { + vTaskDelay(500 / portTICK_PERIOD_MS); + continue; + } + + vTaskDelay(500 / portTICK_PERIOD_MS); + + xSemaphoreGive(i2cRXSemaphore); + + } + +} 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 8eb0780..9793309 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 @@ -11,6 +11,7 @@ void GobotRPC_TI_Hardware_RP2040_I2C::i2cRxTask() { xSemaphoreTake(i2cRXSemaphore, portMAX_DELAY); uint32_t done_mask = 0xffffffff; + uint32_t pinStates = readIntPins(); do { @@ -18,6 +19,7 @@ void GobotRPC_TI_Hardware_RP2040_I2C::i2cRxTask() { if((pinStates & done_mask) & (1 << i)) { done_mask &= ~(1 << i); + uint32_t addr = intAddressMap[i]; if(addr > 0xff) 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 0656b1d..9a0e9a9 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/main_core0.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/main_core0.cpp @@ -53,25 +53,31 @@ void onRXFromI2CTask(void * pvParameters) { } } +static void onSetAddrMap(void * args, uint32_t addr, uint8_t port) { + GobotRPC_CI * gobotrpc_ci = (GobotRPC_CI *)args; + gobotrpc_ci->send_rev_SetAddrMap(addr, port); +} + int main() { gpio_init(LED_PIN); gpio_set_dir(LED_PIN, true); appData.txQueue = xQueueCreate(5, sizeof(GoRPCPackage_Transport)); appData.rxQueue = xQueueCreate(5, sizeof(GoRPCPackage_Transport)); - appData.ciInstructionQueue = xQueueCreate(5, sizeof(CI_Instruction_Transport)); + appData.ciInstructionQueue = xQueueCreate(3, sizeof(CI_Instruction_Transport)); + appData.ciInstructionReverseQueue = xQueueCreate(3, sizeof(CI_Instruction_Transport)); GobotRPC_CI_Hardware_RP2040_UART gobotrpc_ci_hardware(uart0, 115200, UART_CORE_MASK); - - GobotRPC_CI gobotRPC_ci(&gobotrpc_ci_hardware, UART_CORE_MASK, appData.ciInstructionQueue); - + + GobotRPC_CI gobotRPC_ci(&gobotrpc_ci_hardware, UART_CORE_MASK, appData.ciInstructionQueue, appData.ciInstructionReverseQueue); + gobotRPC_ci.registerCB_SetAddress(onSetAddrMap, &gobotRPC_ci); gobotRPC_ci.registerCB_TxPacket(onTxPacket, &gobotRPC_ci); TaskHandle_t taskHandleCore0; TaskHandle_t taskHandleCore1; TaskHandle_t taskRXFromI2CTask; xTaskCreateAffinitySet(vTaskMain, "Main Task Core 0", 2048, &gobotRPC_ci, 1, UART_CORE_MASK, &taskHandleCore0); - xTaskCreateAffinitySet(main_core2, "Main Task Core 1", 2048, &gobotRPC_ci, 1, UART_CORE_MASK, &taskHandleCore1); + xTaskCreateAffinitySet(main_core2, "Main Task Core 1", 2048, &appData, 1, UART_CORE_MASK, &taskHandleCore1); xTaskCreateAffinitySet(onRXFromI2CTask, "RX From I2C Task", 2048, &gobotRPC_ci, 3, UART_CORE_MASK, &taskRXFromI2CTask); vTaskStartScheduler(); 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 a89475f..5ac04b3 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/main_core1.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/main_core1.cpp @@ -26,8 +26,9 @@ 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); + AppData appData1 = *(AppData *)pvParameters; + + GobotRPC_TI_Hardware_RP2040_I2C gobotrpc_ti_hardware(UART_CORE_MASK, i2c0, appData1.ciInstructionReverseQueue); //gobotrpc_ti_hardware.setAddrMap(0x21, 0); gobotrpc_ti_hardware.registerPullPackageCB(pullPackageCB, appData.txQueue); 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 91e35dc4543b702aa3a0d8f9ba4b9d6e88042e55..79dcde04b28d7cdcd7ed1c06bbb07694f8d6c18a 100644 GIT binary patch delta 583 zcmX?|zr2w5G%qg~0}!OGtWCeVk@t!uqvqyElGhm-izgduOHRHleT1=i^9-41EI_JW z@dzVhIaoYa`6N)qMN^5%_9{MXRX_uZswPiVsb;L2Y{)A)nNw`(=F_TOOq}f?nOGn( z*+52YbBTr^qnIXV5eG<=4M^PLaCZ%f_w;k~pZrDAbaJVw(B%2*Y?F6t@-P)UPu4e5 zn=B)&HaScxezU$7BgF2POhrADXUL?mwSWw1ncS^Y%?e^BPZSj0te~sQ$TkHeF?DmW zo+Kk<`{WJs?vuCZt21^?4ipictk2Ckd5wg~WPb%#RJTnwGSFh|0;{>r&bhhTz>86( z2V@W{h)4wymLLLbxHX716+~D~=8}@%%wd$v$PJcZ2g_`3Fb;!-)CUu5E|3|_K>XQm zvL&~yW(w16mK5e1hAbwa7#f((kis&THJCw@)vroovZJYl_$_7wi;5~H9fcxSpju5P zh!ds)qd{bHfvJ|75>T{(;fA2*3YGPmD>XMbuaMutw8Lb--A=m;R$eC*FYxBLhQmM*si- delta 423 zcmZ2pcsif=G%qg~0}!;8*QRgW$a_VSapmSmlGhm-OD12C5Se^V`XrFmr<1bzk4zH_ zW69=v#UqT26=1mt<#Rx}KO#Dlcj;KLRRawvs-8SirJAvNvLUbJWKOZAn@_8DF)?;b zZZuHdT&cms$W&B3nO{n3@&!$m$=*^~n-^*^!VKH4eUif-=J)n#Ox3X+(%`GB4zBhc^-^6rxr4b&MsCkKj%PS)qu*DvX-5~MJ_YHy>M)sGMwC%_DYm2vNwY}N4@tEp zT}a*?N!DuA^u7ArlIR+L@0#Qq8E`J}dg445x^zoasr0jwPe2vn#*+!-B&2*5}M zW!rV~L!xr{>CIn699w|hoCP<6?ikfOPy!s_6LOq(Y^=&zN<&=oT%}Qd&C{!N;*A(T z=j~IX2ruw=o-@knf7EWZOF8SP<7%|OAK?ICkGO>BFt8s81NcbCcmxq}f^VvvM);~6 z;8m?@V4~Q)z3(ADt`94AWsE=92madmt`9olE|d4X;alg?HU?l+%GCDm^9pitz;=*C zGy;qQdrT&v0X@9sE#?rJIzx-5+bT^@HMQhy)_PDaluHc1oqZEccT%M69W-5oi6Li@ q-D-FH-|EGwa&G#*b(y6^F>bXo#^3mk`6L>C=5G;kv~>Q}7x@FNjkOj4 delta 475 zcmdlj+atw$nwOW00SI(rYtwlq@=7wUn5b^X%$UV7ae*{HD-(k|Lke39LkfE;LlzH6 zh#f4%0Tkkd2+6QiGHP;deD#HiQFHQr=A_LhSv45Bq<}^ife7Bozu6oZr6wD)NNx^g z_hMv}p1gp=gVAvEOAZq@d5|iT$rCuu*bG5Tv&r$C+HA@gqGveO+0-GTKRHd!jX_Lv z5COKv62uY%5rQB>7ew%Z2wo7O4h8o7L;V>=M}MlMO}fSV87mCc64%v*a0?0 acd{Ly1eX_35hD;6yH8HwlbPJXXAA&jyI-RK 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 23368997755d63e87d695a14e85ea3b1630fa676..a73c91ba63367adc4d11ab687772467d83af4444 100644 GIT binary patch delta 4171 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 HbAA5@v^?L8 diff --git a/i2c-hub/uart-adapter/src/uart_interface/__pycache__/pares_packages.cpython-312.pyc b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/pares_packages.cpython-312.pyc index 1ce74c58c191fad5cf85c53bf671dfd2e84bdf09..c2b0f9f63b3e93c234e8f7490c1e93fbfd8ed2ef 100644 GIT binary patch delta 801 zcmZuv&1(}u6rZon_eM!8HMD6HZIrbXD|o0Pm9*Vz5Yw1M(M1f(ZiSjnWU?gX&?2r^>P1YqN zsJjffKy>#Lq8+Ld#j_>aE4aBbG}sN#B=hOJv}{n7(h|*;N^?eKx@sBa=DUrB6cVE? zCnO|vhgpX;xC|}g)E9m1Jsf0i)Gu{Jo<-3) z>6wl0aAex(B}XY6ZK7D5f1ed`_?_7KHd_T97*Kv)@C^l?? zHgdLXz#3XS&L(kObvZXj0qy6Ly-vK()Jco95m$$6BCG)`U>V;66{tw5Eg>0e84Wi^q>O{<9<^)N^Vro?mThO*aZ)ND4N z%Op})li6%?K1KaDKbe}F&u7%Enxg?bu|P{^{+{@U3Z^oex_0X7CgC1HiF|{JmaiKCgCPiBnytQSJH&s3eLL0CwF9a6f1|>S1IZeTF^fB zSBkQj>*&MXfy5{-nO(`ANX4Wzu+2T7!`%JxTrf-eQo)#_CwM5dC{J+L!w|wBAiWOK j-@)__Lh$?!;BMOkV4z2aVBZ_52l%mi>bE#(oRj_mcPOWR delta 685 zcmYLG&ubGw6rMLTyZO0EG^r93G1lg=N^21WBT`7?szFTKBti^mjBFx?Y=V>2q|%}U zK}12q96Xd#y(u|(^B)krc=Q$#_2@weR4I7TnN5T5@Xh<)zVCgHx7)r~n)XrC+(^XZ z<&E3d`&#%!L68^7L?+ac1x2uM5rgDda8jgpPU?!K7W*qxahuY*x9ByMie{=6s8ZAM zh!%ZoRCoT6qjlVW9_@elbRdf5XcuaOEX!CIHvBsTJ!2}crt-fK3A-kR!Cta~8-p&i z5&sPd|1+6QqUMtdUce#6vODhLgp#qdw>Uvg3e8V^6g+$%nc_DIjgyJe#L_=3=qB32 zgT1YKu#Rg-_!APpA@&`|3}PWbZDqp$D^0RVx5S*mUT+UNs7tP)4(K$)Wbu9=-MCk- z-!WsUre&2IW^732Pj&SGkIA?kg zkKz8@)s&ITmGaqS=1Mx3OD|=Z{CPunI&)#Elr?fjp2<@V-Bs4KO1IY9m6lGJm%pP= z{Za8jj%j@s@DTB;at6NfZKVyfJfzNRJzr`Ly`MXL-a~XhUr}Qa;2kygKyJt!669)3 zj<8+FPPEckwT6mq#iYd>v?CC)h=4!Nb5_$_tydPkDpU2O>*p+>24tyu`FANp>-oWl4-S zxGGZn($YS-AY}@58z|~aiwT&5e?j5|N<*P;0}jIJdng4_(wF3=b5?OfGY{W>^PTgZ zb9QF;ulRR^?t7Z%LVT5P)|aPTO?MyutvUS8%$mBSVq_pgEcC2tOPbB40$Fn}xiK)Esp6#a2+|jmA`|d%sNFxm@P6(xt(Y`R zX^CDamCl&!>8fQ`c9Qr{fxuK$-3dxQjK60m<>BN=jw|qA7MdPlueV!xm*q9Ukvj-#T(yLQ56j$%RU`Q8A8-w zmo4ouy(ZtpU5?R3epGe&BY9(lZIjdZ2i75ewo8sp{M6OgvDJI%<8@Be<>zxguV~0M zDeu4T4zgKAbp)On80NKdqKg$3M}GrvXon@&(Ffv1w2qTxkw)1UN^s0WecVJn9NH2! zFB@&KU>2zeq70&3rYl8@N+2lgS7lT?0}K8XZhplK_J0W&egXc`od2;PRSd2QkmuR+#1l+ zDRevK%sw>#k;D^IZd&B=huB9c*7LH zD2EE1Kr9xcVfMM}G|sZ0T?rgz9oM@@$9W_v(C#rTo7NVl;H|*bLjI~chZoqE8YS?> z)6tz@Q~|3)z+VRNuy#+p*KTKb62J#WO*?_#VsqL8Z}ge=?JM@p^zmq0%9mD(-Aj_M z7E1gNnBnqaM<|-+@L`;NtcHo5aGq7&lf2Hhdx}ILA;2EFW5*|fzRIC3Ux6QoPJjUB zEkx~c!yq_qVAGyKc~~CnoM)FjQ!{oLB1vC&6k=7&E5&8%hwNbhFTfm!wqv<;rDW0a zReF})^BfbX%pQAUgg}DAg8Jf!-Q!Kz|JV14V|J}%Tq~HT=mj2t1FbBvhCU$W_fVeg X=!rlE<8W(ie;~Uzko^b2&bI#xesKWF delta 1065 zcmY*XO=weD6uvj_CoexQd1;z9CjH5eY5VH5{#5a=t)#YS3)X=$!&sC~%zK8$v;#lghAZMFbo4-I50Xc=AIX_=v^Gn`Of*y`Odxf zN%HTw@3pGB2|t5Zs=2sp#TTY;R=THtrNkhHQ1Hxor@gi>7UVf~TBXFK`8Fi%Jf@uQ z*ok12qXxa?*u}kR%|T8PL%K-}*>vU;D<7k3Q-$izKe297cYsX0S5MQw9I}f8%)NS4 zY^L;Qn3Q7lE)=CoXl#iZBKE2Z+#^dugj7Wc%BfHod+a>!f7?az%yi{y%Mjx17Lo@DLt-5Jq+EXb>wkDHpv%#2YJ3g$c$5EK!VN^ExCVls>> zy=oI8LTSO$Wfp;}$}t*+XUYf-!&l{kL-a$@72exH0-<~Ain^u6H?{cV-uGJHmpvrd za@PR;eg^us1H>O(F5D^n`=x_~yWo}Ua{Bk?w*R(WVxaw7c^{v#)~b!f$a>5*+9Ry% z+Q_i5KJ4ZGhFd$?DQtAw{+@x+r0_B+ah&zS4flg^1XcH<(YYz(60ul}Md5%aO^3kp zq-Z-l^qlX+8M=ej*U6dIQ_7HArpVy+A@5KsjR0Qdb@GAht=_6``D2^@*gJpXt&(8v zJj3+WMX!T;lIW+<_~51*Z?bjR5*!?~6+Bn>(oy(B9p?)6`yTb#x8BOLH8EeDov%ND zlr0p?COgdGh7@d?hVQ;EIsr-lLC*fge`pFnIBP++Zz0318U8{hyOhbAHTTK!nIALR z%bA?X2C(V~R!J8tmRV*85Wu~jlDhsV0*Y$6WRE?00%Lm| vs`;i2&J~S?f;r5lc!&>D{s~S567(#XfmCRawmt6ON{nqL#{MBZu$lh@aC7Uq 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 c268f38..95a7335 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:4aa7c6fe04748361ebf6a7d462715512630dc8474d6eeddb6adb6792e9060141 -size 7315 +oid sha256:71d0dcc953e97e63dabd219e0b17e1de1ce772f0bbe7e535b38e136cfa0d4337 +size 7453 diff --git a/i2c-hub/uart-adapter/src/uart_interface/pares_packages.py b/i2c-hub/uart-adapter/src/uart_interface/pares_packages.py index 29b5954..3c538d0 100644 --- a/i2c-hub/uart-adapter/src/uart_interface/pares_packages.py +++ b/i2c-hub/uart-adapter/src/uart_interface/pares_packages.py @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3a9816ea32e16448069493d5f7f88b5bd9a774b59630f0c18fa626aaddc34119 -size 1117 +oid sha256:6bb13bf6fcb1c932287b06d7c7f7281687f19f7449abdacb1bd02f10b33c0aa3 +size 1212 diff --git a/i2c-hub/uart-adapter/src/uart_interface/serial.py b/i2c-hub/uart-adapter/src/uart_interface/serial.py index eec7092..d4366fe 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:6a5e1d54d7a9c2b4fedf100e7e19b277de10f17284630410a9a1c54e493b94d8 -size 2337 +oid sha256:9cc8d52890dcc77a7ea6720dffe13fd3f5584a10fea1134cb3579683dd1f3cd5 +size 2613