From 2a038367a84a3837ecaf2509970e04caeb032cce Mon Sep 17 00:00:00 2001 From: AlexanderHD27 Date: Tue, 7 Jan 2025 17:10:28 +0100 Subject: [PATCH] Fixed Python Interface --- i2c-hub/asd | Bin 0 -> 559 bytes .../docs/.$NetworkStack.drawio.bkp | 101 +++-- .../i2c-hub-firmware/docs/NetworkStack.drawio | 362 ++++++++++-------- .../src/gobotrpc/ctrl_interface/base.cpp | 9 + .../ctrl_interface/ci_instruction.cpp | 19 +- .../src/gobotrpc/include/ci/base.hpp | 9 +- .../src/gobotrpc/include/ci/instructions.hpp | 3 +- .../include/ti/transmission_interface.hpp | 5 + .../src/gobotrpc/include/util/protocol.hpp | 7 +- .../src/gobotrpc/node_interface/init.cpp | 1 + .../node_interface/rp2040/i2c/init.cpp | 3 + .../node_interface/rp2040/i2c/rx_tx.cpp | 18 +- .../src/gobotrpc/protocol_base.cpp | 6 + .../rp2040_i2c_ci_instructions.cpp | 7 + .../transmission_interface/rp2040_i2c_rx.cpp | 28 +- .../i2c-hub-firmware/src/main_core0.cpp | 13 + .../i2c-hub-firmware/src/main_core1.cpp | 4 +- i2c-hub/pulseview-session2 | Bin 0 -> 582 bytes i2c-hub/uart-adapter/src/gobotrpc/__init__.py | 4 +- .../__pycache__/__init__.cpython-312.pyc | Bin 1907 -> 3789 bytes .../__pycache__/mapping.cpython-312.pyc | Bin 2255 -> 2122 bytes .../__pycache__/rpc_packages.cpython-312.pyc | Bin 8104 -> 9707 bytes .../gobotrpc/__pycache__/util.cpython-312.pyc | Bin 2732 -> 2753 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 2652 -> 3437 bytes .../__pycache__/ci_packages.cpython-312.pyc | Bin 10689 -> 13673 bytes .../pares_packages.cpython-312.pyc | Bin 1367 -> 1697 bytes .../__pycache__/serial.cpython-312.pyc | Bin 3562 -> 4266 bytes .../src/uart_interface/ci_packages.py | 4 +- .../src/uart_interface/pares_packages.py | 4 +- .../uart-adapter/src/uart_interface/serial.py | 4 +- .../vacum-control-firmware/src/main.cpp | 10 +- 36 files changed, 404 insertions(+), 237 deletions(-) create mode 100644 i2c-hub/asd create mode 100644 i2c-hub/pulseview-session2 diff --git a/i2c-hub/asd b/i2c-hub/asd new file mode 100644 index 0000000000000000000000000000000000000000..f7f16044e1ca9468b93a94b821dc9c40bd15d796 GIT binary patch literal 559 zcmWIWW@Zs#0D%R2)uMR!U6o=4vO$;~h|5xoiZk=`i~_)_m>4*~sy_q^6j zV0Ek)^Nw?OI%zpO?|0yf$p2zbKKQemZS_5~G4T2k<5e~75o?&IDvFdetKrIuA#2s+iTW*4GIFR2a<1p*tu)k ztTikdDn`NYA4{8E;fg6zF>RfANyN|A@bspMsoU*0Zm3;nR4aZ`$$I+?d)w1z#h1nM zxgYCaqf>pV^2_nkJEhl-Jv^@AKELtO%EZGyd&GejA%li;^#E^1CVOVw0S{BYtr5h6 tMgvR}u6RIbQUfw!v4XA(JqQrG9s-&0015DBWdlhu1K}bdT@FeU3;^SzuA~3} literal 0 HcmV?d00001 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 9cedd64..197f2cf 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 @@ - + - + @@ -530,7 +530,7 @@ - + @@ -575,19 +575,19 @@ - + - + - + - + - + @@ -742,19 +742,19 @@ - + - + - + - + - + @@ -871,7 +871,7 @@ - + @@ -913,10 +913,10 @@ - + - + @@ -1531,21 +1531,6 @@ - - - - - - - - - - - - - - - @@ -1614,6 +1599,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio b/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio index 32af737..43c0970 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 @@ - + - + @@ -155,28 +155,28 @@ - + - + - + - + - + - + - + - + @@ -185,181 +185,181 @@ - + - + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - + - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -368,61 +368,61 @@ - + - + - + - + - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - + - + - + - + @@ -485,52 +485,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -575,19 +575,19 @@ - + - + - + - + - + @@ -742,19 +742,19 @@ - + - + - + - + - + @@ -811,7 +811,7 @@ - + @@ -871,7 +871,7 @@ - + @@ -913,10 +913,10 @@ - + - + @@ -1599,6 +1599,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 dfabf12..699965f 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 @@ -1,6 +1,11 @@ #include "ci/base.hpp" #include "pinConfig.hpp" +#include "protocol.hpp" + +#include "pico/stdlib.h" +#include "hardware/watchdog.h" + #include "FreeRTOSConfig.h" #include "FreeRTOS.h" #include "task.h" @@ -32,6 +37,10 @@ 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(); + break; default: 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 d58d1b7..ad8b85d 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 @@ -23,11 +23,19 @@ void GobotRPC_CI::txCIInstructionTask() { send_ErrorTransmission(rx, addr); break; } + case CI_INSTRUCTION_SEND_TRANMISSION_SUCCESS: { - uint32_t addr = ciInstruction.data[1] | (ciInstruction.data[2] << 8) | (ciInstruction.data[3] << 16) | (ciInstruction.data[4] << 24); + uint32_t addr = ciInstruction.data[0] \ + | (ciInstruction.data[1] << 8) \ + | (ciInstruction.data[2] << 16) \ + | (ciInstruction.data[3] << 24); send_SuccessTransmission(addr); break; } + + case CI_INSTRUCTION_SEND_INFO_RESET: + send_InfoReset(); + break; } } } @@ -57,4 +65,13 @@ void GobotRPC_CI::send_SuccessTransmission(uint64_t addr) { successPacket[5] = addr & 0xff; this->hardware->send(successPacket, 6); +} + +void GobotRPC_CI::send_InfoReset() { + char resetPacket[2]; + + resetPacket[0] = RESET_INFO_CI_PACKET; + resetPacket[1] = 2; + + this->hardware->send(resetPacket, 2); } \ 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 a0d4565..a97b63c 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,11 +5,13 @@ enum GobotRPC_CI_CMD { TX_CI_PACKET = 0x01, RX_CI_PACKET = 0x02, - PERFORM_SCAN_CI_PACKET = 0x03, - SCAN_RESULT_CI_PACKET = 0x04, + SUCESS_TRANMISSION = 0xfc, ERROR_TRANMISSION = 0xfd, - HEARTBEAT = 0xff + HEARTBEAT = 0xff, + + RESET_CI_PACKET = 0xcc, + RESET_INFO_CI_PACKET = 0xcd }; #define CI_TX_PACKAGE_DATA_OFFSET 6 @@ -48,4 +50,5 @@ public: void txCIInstructionTask(); void send_ErrorTransmission(bool rx, uint64_t addr); void send_SuccessTransmission(uint64_t addr); + void send_InfoReset(); }; \ No newline at end of file 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 686dcb2..3e74193 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,6 +1,7 @@ enum CI_Instruction_Type { CI_INSTRUCTION_SEND_TRANMISSION_ERROR, - CI_INSTRUCTION_SEND_TRANMISSION_SUCCESS + CI_INSTRUCTION_SEND_TRANMISSION_SUCCESS, + CI_INSTRUCTION_SEND_INFO_RESET }; struct CI_Instruction_Transport { 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 4331be8..49c87fe 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 @@ -30,6 +30,10 @@ public: virtual void registerPushPackageCB(callback_pushPackage cb, void *args) = 0; virtual void registerPushCIInstructionCB(callback_pushCIInstruction cb, void *args) = 0; virtual void setAddrMap(uint32_t addr, int intNum) = 0; + + void raiseTranmissionError(bool rx, uint32_t addr); + void raiseTransmissionSuceess(uint32_t addr); + void raiseInfoReset(); }; void i2cRxTaskFn(void * args); @@ -78,6 +82,7 @@ public: void raiseTranmissionError(bool rx, uint32_t addr); void raiseTransmissionSuceess(uint32_t addr); + void raiseInfoReset(); }; 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 38149d7..7f7551c 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 @@ -3,7 +3,8 @@ #include enum GobotRPCNumber { - VACUM = 0x8 + VACUM = 0x8, + RESET = 0xc }; enum GobotRPCTypes { @@ -30,4 +31,6 @@ void assembleGobotRPCHeader(char * buffer, GobotRPCNumber number, GobotRPCTypes void assembleCRC(char * buffer, size_t data_len); bool checkCRC(char * buffer, size_t data_len); -GobotRPCHeaderInfo extractGobotRPCHeader(char * buffer); \ No newline at end of file +GobotRPCHeaderInfo extractGobotRPCHeader(char * buffer); + +void softwareReset(); \ 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 676b3f2..ab443fd 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 @@ -59,6 +59,7 @@ void GobotRPC_NI::rxTask() { void GobotRPC_NI::sendPackage(char *data, size_t len, GobotRPCTypes type, GobotRPCNumber number) { GobotRPC_NI_Package_Transport package; + package.length = len + GobotRPC_Package_DATA_OFFSET + 2; memcpy(package.data + GobotRPC_Package_DATA_OFFSET, data, len); assembleGobotRPCHeader(package.data, number, type, len); assembleCRC(package.data, len); diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/rp2040/i2c/init.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/rp2040/i2c/init.cpp index 3bf2ea1..96541c9 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/rp2040/i2c/init.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/rp2040/i2c/init.cpp @@ -71,6 +71,9 @@ GobotRPC_NI_Hardware_RP2040_I2C::GobotRPC_NI_Hardware_RP2040_I2C( this->core = core; + this->readState = I2C_READ_STAGE_FIRST; + this->writeState = I2C_WRITE_STATE_FIRST; + this->isrRXQueue = RXQueue; this->isrPreTxQueue = TXQueue; this->isrTXQueue = xQueueCreate(3, sizeof(GobotRPC_NI_Package_Transport)); diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/rp2040/i2c/rx_tx.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/rp2040/i2c/rx_tx.cpp index d202c9d..cfcd6a1 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/rp2040/i2c/rx_tx.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/node_interface/rp2040/i2c/rx_tx.cpp @@ -40,7 +40,8 @@ void GobotRPC_NI_Hardware_RP2040_I2C::onI2CIRQ(I2C_SLAVE_EVENT event, BaseType_t break; } - case I2C_SLAVE_REQUEST: { // I2C Read from Master + case I2C_SLAVE_REQUEST: { + // I2C Read from Master //if(xQueueIsQueueEmptyFromISR(isrTXQueue) == pdTRUE) { // readState = I2C_READ_STAGE_INVALID; //} @@ -58,15 +59,13 @@ void GobotRPC_NI_Hardware_RP2040_I2C::onI2CIRQ(I2C_SLAVE_EVENT event, BaseType_t break; case I2C_READ_STAGE_WIP: - if(txPackage.index == txPackage.length - 1) { - readState = I2C_READ_STAGE_DONE; - } else { - i2c_write_byte_raw(i2c_inst, txPackage.data[txPackage.index++]); + i2c_write_byte_raw(i2c_inst, txPackage.data[txPackage.index++]); + + if(txPackage.index == txPackage.length) { + readState = I2C_READ_STAGE_FIRST; + gpio_put(int_PIN, 0); } - break; - case I2C_READ_STAGE_DONE: - i2c_write_byte_raw(i2c_inst, 0x00); break; default: @@ -78,8 +77,9 @@ void GobotRPC_NI_Hardware_RP2040_I2C::onI2CIRQ(I2C_SLAVE_EVENT event, BaseType_t case I2C_SLAVE_FINISH: writeState = I2C_WRITE_STATE_FIRST; - readState = I2C_READ_STAGE_FIRST; + rxPackage.index = 0; + txPackage.index = 0; break; default: diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/protocol_base.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/protocol_base.cpp index c3825c3..b9f552e 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/protocol_base.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/protocol_base.cpp @@ -2,6 +2,7 @@ #include #include "pico/stdlib.h" +#include "hardware/watchdog.h" #include "crc16.hpp" @@ -28,4 +29,9 @@ bool checkCRC(char * buffer, size_t data_len) { unsigned short crc = crc16(buffer, data_len - 2); unsigned short crc_received = buffer[data_len - GobotRPC_Package_DATA_OFFSET + 1] | (buffer[data_len - GobotRPC_Package_DATA_OFFSET + 0] << 8); return crc == crc_received; +} + +void softwareReset() { + watchdog_enable(1, 1); + while(1); } \ No newline at end of file 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 e227332..f51538a 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 @@ -23,5 +23,12 @@ void GobotRPC_TI_Hardware_RP2040_I2C::raiseTransmissionSuceess(uint32_t addr) { ciInstruction.data[2] = (addr >> 16) & 0xff; ciInstruction.data[3] = (addr >> 24) & 0xff; + this->pushCIInstructionCB(&ciInstruction, pushCIInstructionCBArgs); +} + +void GobotRPC_TI_Hardware_RP2040_I2C::raiseInfoReset() { + CI_Instruction_Transport ciInstruction; + ciInstruction.type = CI_INSTRUCTION_SEND_INFO_RESET; + this->pushCIInstructionCB(&ciInstruction, pushCIInstructionCBArgs); } \ No newline at end of file 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 1545f07..37327dd 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 @@ -1,4 +1,5 @@ #include "transmission_interface.hpp" +#include "ci/base.hpp" void i2cRxTaskFn(void * args) { GobotRPC_TI_Hardware_RP2040_I2C * hw = (GobotRPC_TI_Hardware_RP2040_I2C *)args; @@ -25,10 +26,10 @@ void GobotRPC_TI_Hardware_RP2040_I2C::i2cRxTask() { bool read_res = readI2C(&pkg, addr); xSemaphoreGive(i2cMutex); - if(read_res) { - if(pushPackageCB != NULL) - pushPackageCB(&pkg, pushPackageCBArgs); - } + //if(read_res) { + if(pushPackageCB != NULL) + pushPackageCB(&pkg, pushPackageCBArgs); + //} break; } @@ -41,21 +42,16 @@ void GobotRPC_TI_Hardware_RP2040_I2C::i2cRxTask() { } bool GobotRPC_TI_Hardware_RP2040_I2C::readI2C(GoRPCPackage_Transport * pkg, uint32_t addr) { - - uint res = i2c_read_burst_blocking(i2c, addr, (uint8_t *)pkg->data, 2); - - if(res == PICO_ERROR_GENERIC) - return false; // I2C error - - size_t len = pkg->data[1]; + unsigned int res; + //uint res = i2c_read_blocking(i2c, addr, (uint8_t *)pkg->data, 2, true); - size_t remaining = len >= 2 ? len - 2 : 0; + i2c_read_blocking(i2c, addr, (uint8_t *)pkg->data + CI_RX_PACKAGE_DATA_OFFSET, 2, true); - res = i2c_read_burst_blocking(i2c, addr, ((uint8_t *)pkg->data) + 2, len - 2); - if(res == PICO_ERROR_GENERIC) - return false; // I2C error - + size_t len = pkg->data[CI_RX_PACKAGE_DATA_OFFSET + 1]; + + res = i2c_read_blocking(i2c, addr, ((uint8_t *)pkg->data) + CI_RX_PACKAGE_DATA_OFFSET, len, false); + pkg->len = len; pkg->addr = addr; return true; 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 c755c4f..1a464b6 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/main_core0.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/main_core0.cpp @@ -41,6 +41,17 @@ void onTxPacket(void * args, char *data, size_t len, uint32_t addr) { //gobotRPC_ci->send_RxPacket(pkg.data, CALC_SIZE_GobotRPC_PACKAGE(0), addr); } +void onRXFromI2CTask(void * pvParameters) { + GobotRPC_CI * gobotRPC_ci = (GobotRPC_CI *)pvParameters; + + GoRPCPackage_Transport pkg; + while (true) { + xQueueReceive(appData.rxQueue, &pkg, portMAX_DELAY); + + gobotRPC_ci->send_RxPacket(pkg.data, pkg.len, pkg.addr); + } +} + int main() { gpio_init(LED_PIN); gpio_set_dir(LED_PIN, true); @@ -57,8 +68,10 @@ int main() { 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(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 af0fffd..80239b3 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/main_core1.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/main_core1.cpp @@ -28,12 +28,14 @@ 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, 2); + gobotrpc_ti_hardware.setAddrMap(0x21, 0); gobotrpc_ti_hardware.registerPullPackageCB(pullPackageCB, appData.txQueue); gobotrpc_ti_hardware.registerPushPackageCB(pushPackage, appData.rxQueue); gobotrpc_ti_hardware.registerPushCIInstructionCB(pushCIInstruction, appData.ciInstructionQueue); + gobotrpc_ti_hardware.raiseInfoReset(); + while(1) { vTaskDelay(pdMS_TO_TICKS(10000)); } diff --git a/i2c-hub/pulseview-session2 b/i2c-hub/pulseview-session2 new file mode 100644 index 0000000000000000000000000000000000000000..85e9d8dd469b975bd2bab2aec28fc3c314b3ed13 GIT binary patch literal 582 zcmWIWW@Zs#00FKwYEiuVu1YZi*&xgg#AT^P#hLkeMgd?|Obi@gRiCFmoHG?Ddj^O( zfH*g`BrzqiBvJSDM!qHk5r>O^YhCLdE-hl6W-ei6(cR3MsPRLEcj}~V1|Pmkoi1yu zzI}05+-<%l$-T30xY*n1%CKP2p>!FImt`)k`dtPfM zusYU@dB?dsowS^t_dD=KoIpA!KRq*9*HG8+?Imx%W&4V#jR+kyWY3H{K42QQHG){s*nw%n6+H+|AUk1^g{})dWDvR@0-5k|3h-uS Q14%Ih;UXa22TCdo05itB`v3p{ literal 0 HcmV?d00001 diff --git a/i2c-hub/uart-adapter/src/gobotrpc/__init__.py b/i2c-hub/uart-adapter/src/gobotrpc/__init__.py index 452d96d..8a7ebeb 100644 --- a/i2c-hub/uart-adapter/src/gobotrpc/__init__.py +++ b/i2c-hub/uart-adapter/src/gobotrpc/__init__.py @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7f45183f4cf8d60047dafa83c65b5dfa953a10bd4017b5a5be89bde0a94153df -size 877 +oid sha256:e23def9499ff4cbe8328be0a9264511b1001d575abfb95c5929c3a53554454dd +size 1918 diff --git a/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/__init__.cpython-312.pyc b/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/__init__.cpython-312.pyc index 5dbe92ac195278b572ec96c34c7285da9e79435d..7d0411391d895d6210880fd6430a7f8612260cf0 100644 GIT binary patch literal 3789 zcmb_fT}&L;6~6Pg|15ze#io`$fZb$W!^Vm27CT@kn7Ftx!5Ala8hf=$)a3 z)zYHKQgMGIc&MO?s`3cp!G7eCN31+#Fsf{gkYcHR@f#_QTIHecId^uJg|$;v@_o2_ z?>T4AIrlsFoO|}ms;Ury!Cjde{*9lIf8fR&QgN{}0E>B|6P-(w45x4zUg0x>B4k8G zouxH^;oqe?*a8Nm`YH0h5Ao}x%xbfTAXgE_0O zx3gzFGiXpJ;_dq<#|)?5n6PM4v(#afqGOsmVkC7ClQgQGJQL>~;l1}eooI5rJ=95yHqo;jkPw2~Swy}`i(vDk^iG*2v#PCnQ%}0wId$U*;%A*hFEO*1+uet(@yc{eCZs4EAvhL}?vN zd$9EZ!NnFJ0&GkE6u6b*x9OT+>`7a=|UM&3u`Kt&Ti+Voi zEXZAV6yQ$lLId%veG1-82~*+}UwDbG3d>^Q|FMh#VS`zgb}dgyRw<`O5wd*)K>{QK1>gQt7X&~DgSc;0oG4fjideotxpXcz)^l<;XUUnQrH!1G^P=3?F6SejVn`}^*Ng?FQ;r86A#G$G z@mjai?aNU2S zw=3>v$-`;_lm|GIBY*>rh;|(TDzg)SNyQRm;uV$M!SakY;)zS{6uogXo!P`>G!H@6 zOp~o}bjJEa+k*JF;9r6d!i`(CCzhsG`&U0$JHFok)s6c%)_-od4A{!8&05uts81SB z-aC4au5$O@+-x{^r+P-1>7PCII9xq@YQAl*?LqhuD6kV3*6P-LYoqqn>kqFg8&?&( z_ZN1{r}nME&05WlXiuWC*^3LYg{Il=&FJA7VJr57`Hs1c#iNUK(Oir#UEhqoGZT0m zj?TXM`}0g;=UV65>2+~^VEwY)@`-)p=4S0JJ8}y}j?O3M5=GAotDUQ-*Fx*3zB+&Z zynT6(QP;`#x%LNPdG9H2-oLs2QMrHH0*N%bC8$(p05V*^q`dEzJz9_8qG++`1)#Pu z)bj_t3*tq@2BG31vZBbOU0{FY188zf7Leqs2T2PzM{An8Lh9}qN+kmqNV#A^lheo3xQ?jmFUONg&4J)lZv{AR$*ytaf=TnbO0&MqP4g`fP0C>nWZ0P_?|!(p4$+VN2f&d@vds77{qjX9 z!)N8V=+{s#-c}ns8YW6DZ)*?yWcvyL_`( zEGl1HpGm>^zUi%sP4dw_{ZQ@pz4l)BXD4$e({r~{<{Oq11rkXhjw$@#=*9~ z2hO@Nc^y94)6k)P1aHR!Yqxd1!vQ?-eC>h&Fp*I&itv#){s(lzHA34#7J%r0AC?RZ z2zmjjybI5Juy&i^A{dx6`KIp$gB1b9)qDdcz+$Vme(sIA#Aa=?U2}Bt($dAd-OJr~ zuPk3#`N;n9yLNTE9cX7r!~^ssd_q~Fcn4Q_DJkMgF$&B{r>Ynz%}A$JHO^7yBv$DQ zZou#=vio=j7OoSw$u`eR=N5%+0zXTqzr~;J04H@U#Qp`z+wl!fZaDDso_N@)8ZQ0= zYaO>zX;y+**(vWHl7kw>E6NHGOD-qaHK7?}Rw|ceKF~H~WB<&Y`!4XVTjx6HC7_|# q%)@PgXoLx+hrJA=-Lb4>SG$>= zC6P}d_ygqTe1d`q{RsU8z2sO1N)FAXH@8YJIrY6+t)IB9gUp(r?HX(oFOF1eNXS@r}5eZ31BN9`e#+GkUe77R|7w{}{hlKVa2^~RSKo%Un z1AHZ_#IEm}SU0N1p6|sqzedTh+VcLwu$HCmZ@#^)o4lJT$paM&wV#A7s_B&g1IjT; zOU6F~azq62X-Ira*dZ0po)ub$&WlN`UjfuMs567QCbkN(l^N7Cv52}eXw9H?K&vz8 zl0laN^=8n9L7RZqX3&*ky|tuQ?j+qr-P^sr%Yz5JC$tlC#RIGC3Z4{x*xa}Y=7=b; z#du0bv@@c5t&^zl<1`Yn7$^~bCuJf>mUc1`?MV+}GfcO&_4bGMeiDl|kHlj>2!(9# z%H+NXRMzfc7481b;QD^vZRcF7>pbMCf|yJO1ufH{%~*fXSB&kXLtWdGNzCqN$>89V zxh{52C>NB+Si=+Yx_SAfcXkgI34lc~APC2YpPK7_XS-FA2Gp%~i zQK7myuUazL;@N8Ugkox#ii1;{CG*i)YgREc?6-qcOFAJgoVg-naJ?{gT5&>L`k!K_ zwW>YF20Rvw={jR^66O*5%ZxqDc~mgcfv@05_X8zYF#*n$u9zj1n+RYddbwQ8A7Ps1 zrwBDmsFTNCAtlOd8%mU0;Ejr{Y&N5;0$>bY$Jwu74$1G8wPTA`wx5Up5O|Dj;;tLu z*e$*1>x-#;G4=Uk>e^!J(qd|DO8t!`n?q{)fjfRP&@4>`ndr3Y+UDIr;ze4lN~4E&9&ECmT=gR(s8>(0n5Suf(34jnUT>Vh z5MCCO$*Y*_8k!awbMo*;dh2~vY=^Jq4S2=#n{9(Rwkf5r$Y-y~#W&7Hy8SG8L*Vi6 QmxSJWMee>NcTJA}08DMEYXATM 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 81334030f76f3ff11c216d14e7bf965305510d41..0f1b717efdac1205450812335d1c04db81b1c7c4 100644 GIT binary patch delta 1145 zcmZ8fOHUI~6ux&l(<#&576!2LsL-Iom_U4BWMO=yF(yW#L1a-4SeOw7#=@Ox0*MAp zSfDZSaTo54afLgU`~@|}m`WfM44Amk-6Xm)@o~a8sOk&bWV$&S8rJQ7kav_SE1e%W}`;z%N)8fLSEu*VWi;pXEWLS=tO?Z z^5PYtw`h-8+>2HC!0eO-59%s>Fh5$f`>pAs<+xt`f2uQ8xanAb<$lYtT!26}sFzGy zGcM1My2E2wpHGbrU$^q6#f3)qM!G1@#--vMZKsm>DW?@iiK{-A>J!-+>Pl!HzwwB8 zNSkOB4%opRat!2TDCQK>c?C~JOoJJb^Ll_65>H~@2;gAvt*yKXh3X36vC|DOPu4ZI!J5`s`aMf;==)20hxnzW zX$q@rPvOcFa*NDR@mb!Z1vYT9Xk?e<5^*csTrpP_n2UnBrnwe)XM_WHycKe;0(eUQ znTuxzcmxIX$PGm%x|A) zM4VKc%N>ZK+TIzsk;)};CI$`WlUkEzIf-eZiYQYcs9yx9o%;IFx zI>8MP(V%k`zzcf|Za4*7C5O*}j569`MgUorT5Rmi)10$~Lt2)-T# a>4Z-ptQ5Xt@EaA7;y!_}a`GF7z`}1}wiNpS literal 2255 zcmd5-O-vg{6rQoyU>vVW){syVQU@W+CZ#42loYj1h;c~M)}^LJQG{YG-VNaRFSF|w zqIE>7ss*Ws-iVY|>JgNSk2!Mhg_WrmZGAv$FS)Jco;dZ*uGg60Hfl~C$#349_p|SP z^WOMZmh~W5V^_XjNVyRDg9`Ry>P&49m<=Q#0cX%%BsfGYI7O7U^|n3i_ZfltmbvQ` zT%dP1DeCOM__cwb>ka(c!LRKN{M_KzzJkLYFKKRZoe_AM*V~9F7fCLKn{sah-U+|j zV>sPFazmGPG+EVI#l)!>J+E8MfoBPq93`jXSjKY0p%r>*`lVOagAhW5#Ypb36$-Xv zmzbRJ+L-43+P>D_h{@XLM`Dh@CQF~~b-0@mz49shg}zyW?Id_s3G z;<8Nml$^9rl8YiQh(z~JQIo`U^b2s)or&1zdZ54)NlX&)VNsOiWPwjT;1|T?eUi^6 z=T~G=qGmJt1=~z2-BtA>%=PgT-kUVK+=9%R)MKMOzy65mSVHcrIraNf? z3@uB?NsvTIg26-qx(+^$EatOfgwKe}d=3hVOp|*%JX+zdtVj2ct47Pw3U_rq`X}3M z`-FDcP?Z}l`zzeodUTKVRk?FdOPe#BvGS?%<#KSR@4X5)zT+L=XWGAyKZ*Z%d6((g zJK2(B+L8 z6|jP!za5ADz2%5M^4d)c7ZHH_rVpg$!XvvT1_B8&cH^zHlc$gT?ev?_B?Er0zIIz0~$NH%MMn#UX6>WT%^KXT8kQP z{c?*L4-;pI}A;~(LoTr-WK>iWBVU-&ObO1V!1zr1pg{~jM)24(+z42FaykV@e99F{guEW^8 zcZvGcZ~P>%gcA6ZKvFLdGwu2WwYbZ$+iE(O^|E!^7)@KRo;mmyhGsLFu+aEh$ZQ3( z&ko%0XY)caBYsGNprYwWkAWCYjPdWN(_l{G&R@n11l#5vZ78M=#cEVA2HN2yqzz7} zgA)b<{9 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 103a4001836fdd95d7b6e6a858c827b6c9321cb5..40cffe332f818acf7aae3238c2f3f8acf73deb90 100644 GIT binary patch literal 9707 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 literal 8104 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 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 5cd9d46cb046baa996be556a4932323ff2290b2f..44e08570ce1ae21eb06542b169076e84af7afca5 100644 GIT binary patch delta 361 zcmZ1@dQg=2G%qg~0}vdItVz$<$a|8>Tm;CQ&XCFw#hAhn#gxJr#hk(v#Zt+v$#RR& zJwGYGBq+eyuQWF)wdf@WQ0Yq^AmOLUI+=x8oBbARkZZ7O$YgzHX>O2s3&RZ_{sz~{ z0n91f(m;NZ42Y1Oyq{TAQUSyi0}&t_iox<-`uG%qg~0}z}#S)LxTk@qB%m;jJBogtMWiZO*DiYbLLin)?WlX>z7CQ)WT zO_s^L%-WOfnWfp-fy!DKCZ{r|L`ngfMbaQb21wju4ss0y5y7`uU4w%BgNo!pQeq%N z1Vkvn2uUELSP)3GFx=n~XmExRjjj;Y3X_#szOgBRlq*h_W7TC;o9x4?#cBu?klS1h zZ;(<)w diff --git a/i2c-hub/uart-adapter/src/gobotrpc/mapping.py b/i2c-hub/uart-adapter/src/gobotrpc/mapping.py index ada35f0..7fae95f 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:f2084100e09a2b7c0ca7c4f98e9372ecd69b6c1dad2980436c2963c5fee175ee -size 1379 +oid sha256:71a322b0ef7a6f9f8456ae537b02afb1bfd27b5fa929a7272a6f4ed03238d5b7 +size 1537 diff --git a/i2c-hub/uart-adapter/src/gobotrpc/rpc_packages.py b/i2c-hub/uart-adapter/src/gobotrpc/rpc_packages.py index a3ee150..7d8ef47 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:827884e6e9509b4d94f8d80f6363d11bee093d82090e65e684208895c8fe0c38 -size 4499 +oid sha256:1500ab0d5fdff42fda010ac61f9e22c54834e67d3a77076c5ba36e3eed7f30fd +size 5572 diff --git a/i2c-hub/uart-adapter/src/gobotrpc/util.py b/i2c-hub/uart-adapter/src/gobotrpc/util.py index ca06d44..a7d7f9b 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:12d6e83d9b2d6cb5865a64e3bf9a6ae672abf8fca663e3e85eeb9da87387c800 -size 1624 +oid sha256:e6dca9a10b61087b532ec24d7c69000e2df7a5cb100062579b91f7ec8b75cad0 +size 1640 diff --git a/i2c-hub/uart-adapter/src/main.py b/i2c-hub/uart-adapter/src/main.py index 8ae0524..20a4f72 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:8cbac6adc999fa448779019857dea3b7dc47c5864c441947d9ff80d83e391118 -size 893 +oid sha256:94c74e41bdf00236e245b88143f712162e316cd4cdda14d02873d8fba5a5220f +size 1208 diff --git a/i2c-hub/uart-adapter/src/uart_interface/__init__.py b/i2c-hub/uart-adapter/src/uart_interface/__init__.py index d9efab1..5dd8fa0 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:056cffc0bf931040267ea9f404fcd33b29952f4bece549bf54eef0fa0639ceb2 -size 1128 +oid sha256:2f700077e0d0164875c083c140e3888e5ba28a83a215ff5479799aa64d0355fb +size 1376 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 7c1cf91ef2ccd243ff9ff8cb6169fc6564a24697..2f4bc5ac184f249eb2432f67dbeb3b18f2a27f08 100644 GIT binary patch literal 3437 zcmcImTW=dh6rT0&+UrY_=IZoqG;)$IjU@R1&3`eunKQs08; zs;VNFN+6Y~FsisxFRp9KT+ON{EM- zajT5s-CU|nR*%ErLpT>Ds$de;X9`p_eN-BhE|WpQ6lWumOcvJRqCz;ZY%9`(I1rk ztFS~IKcn^p8#5|rMHxY#d8||zV61GE@^(dl=)gf2D)Y}EA!o>F^+GFB>_!8gNo81j z>vIt<(3hDG#7@Iay%LK{3}Q~40EEnDn&!q)9Hx_T9}B|@!|b&1mSSaAhk{0c>9&Us z&tJ#DSO)>%?01`@*A8AweBbocV&j1uJvUF^O3$Zn_0IP$^esMjVzJ@mqH>begKk{G zOC8gTRMVW0rWH%(L;=SUO?!JnFH}}Uu;9o8Q#Q5u1#m~4y2_Osv`~PY5L|yTs;69c zF+>ajAJ?~8vLgB9jvL|%f$rwfU$I+J1i5Rj`F8@{eFW|sf75_B*IV_%R$l~>mq98p zNR>BAjU`FY|7k>|}G^b7%K)=L1hWT~;We9ndD zX!*iYQ(O7`z1>eNN^MK+`xd2EcWGBkIejm(tDJ)Ad*|FOaib0Qf`P(Tso2%ZM#Zfv zG1NPG&<7Px;i&-7AjDZ^yalC{6VX_& zj&Lx{2|VN~a>iR5-WM2tY~}^0Ia9LJ#qk0yQb;M27w0OEd0FB-j&Wi*p+QzEYMf8g ztu@1)HSs>QhFh1(&-MEkmHlq$8$hz5Ztdh5JHp-L^~6HuiU*2as@QM#*sls>pvW*y zxYb8D$nYcQH5VA7wq_K~=_Zf0itNB+Hs)4Iuc1nTeP)B9OgyrgwxT{@IQ9AfR6E_U zi_{)2nG8QC>?p#^2%Ji<;;0P)D>6$UU~0H!?*$wo?1jhr007t~D?iH7+j4ZpC&(Rh z6Td*2>sS?uznu$K{KOyhDm=Y|!s71ZJ7~-`*A(ufQP)HCYish(!b+{EZbP5{gS_(W z`nOe8ru^}M(^4zaY3;1e%y)D~osco2jq9AEkHk*Sfhrff@lL#4Y_RBEXG_z3jdNk$WF{WmL?d<* zW7CDey-VUKh0ueri7cm3hVVQ*)*Aqu$#V1AS|V>vmg(&kc;<7Sc{qUP;)1hxt21gj z%0~1;Jj{>bNOWwX=mb-f1|7FYN@M(|#F0`U<)y$8yI)JX=fqu|R{WQ({klTh;BM?J ztZh2^1LcJKx7Ecmu!^~FkI^h3mtPuzBu;ju{8q2-}Vr}{g3(=C7-}z delta 981 zcmah{O=}ZD7@pak>}NitwzcV(>8D*ybBL%|M2MwIFQFGfaxiYP(>9tkb#?=`2V22| zAP8lUdeoB?p?|?2;H4KY8$k~udMF6(Njy03q>Wld2lkow<9XkC=h@lqeb*U(6N_0$ ztY_JK3yWkU-jm%H-X`*phpVX2+HnC(UnwYZR|~3wt|3o(h&+`l8#hNxBFqTIx1$@k z`VzX#Y9gc`gffOGG^%FJDp(k;V8{Fdr{>FmhYKGVdug5{lVrtoEWS!+)x2Z#$LbjW zK$i6_v98{PR~h^Whnt$m<@}~hl!#7 zzCLW95H=eHNb*;Dy1Pwgr+%gG>M6VLck0^Tse%;h#iAduVsW)&dbT*{mhZR=G; zRjmUBHSa`O4En|a5>TwVrE(Z|OQM5Y4r(-5tb1Xkv=UICjR0!`fS@x1Ps;+qWN8TY z07xNw!RkMR4*uDAqRB+RP&mn-nr{c&<2#C!g`E}jpW;5UrjE%m+q1HypSR^? z{}*%99={>yZMV)l<`Eg#Bn+Q9ya780)&+oz07q_`g&4pH?~2maO|yJGI=U7b3-wYx zV9RCMF(h=UQ41q?8?-?~G9w)M7DF|6Wx6F8vthFp7TR1WXVMH;;N(}x3JOT|6<2Z>42(SzWH62B0g|Q?5;YxlF z{M?kjGOu{r6qvSy(&)x>z&B^?%**iU zopblER%^q=kk`KV?u^dfz4z|f`{&&AJLlZhA1W)|45Xi({6_z`H!#e9;Ek4?YGz4> z%xy+wL^j1l@yeyxAuh_Xn0KTcLwuB{c|PSFDvP>k-U)djDh!oJ%UOnFUSY(tYmDeh z3LiQYzEL+V6`-`-R9Znx-B4O#D)rD(50qA#N-JsUIwT+my|0X%AIbEb>^vDyyczFLLeYlNI7ugCqe?;S0vQ>KoxhSvrlD?& z);!jkA*opRa3)DE#1qL_=g81dd{_)|vb(c8rZSV)(L8V?U4)E~gfa~Z)#o}2_uqlp zPBKweWTKqt7TKgj;x0zv<4F#-08foFtcoUmY1FBvC$-vg;;E0cpwvt5tKbr0R$@fbTW0p zD3Qx!u|z7KPRC+t9$Ey0!K)8Xw_F?ood6E^%&*!W3P%XR*Ho=<8vT<6~|UxIo@=EZm>p3vt2id^ucGuXu94w_&^whoGn zc^ovih8j$RI9yA5b018UFN6GO5;=|6yUhEL|4`-gFD#Th=sU3EG(j!A9TVkJZ{osd zY+Aj`h)#_QaOch3GgMn3ufa;B#R;A&6I~k_QPBDWQlR%aQ?0dzb}o_G$Y}k7R(e0K zFro4=!QqT==^p;acxpfls@o}eVT1%xbUQj<>v*Lr_yC9Xuu^N49vDvsAG(9d%cCF? zNip~UxjZNXB0J6x^oQIs-+BC{i0n3a$WC~}Sdw5TWk)JGEIU9-WVf-+sdy4x5-OXs z9Pwe^41m(Zzz@_gUdRoUHU$dtIQ`A-ka>?z8{LWM{bQ2{Lkh5&)utd z?!GT5Z9B5CC(C}kZy_XYJ(d;ozKGaJz`cqs&~WyYx(`!mN|az)LhS; zkgweja_b?_K$qk)lFW>e;e;wBP-K$afFilfAT2H?gZd6P$~BGf4K}08v0b|it_w|r zf|fI`gSwmTKRkz4E%Il~Q6$uXt5>EygKb@&ExP?OlK4o0H#^g!2N6sU%8u6OFF#~MpfpgP6;-keaz!HpfXk3r%sMi) z7^iRv^g+m;rLK8 z7L(nv*wBbLmcqOz7P~YSPboD7Cqt1;#6a0eEgP!K2nw9CBrRCwfKHNsz+9yY%!y8zXDzQn*~aUJX2GF7w0z-6(Fb%xog_5TGoVU`Y&vQ7Y3J$<>xQ;%*u8LRrV>?XQ3 z2&yQ8=&4&m%0%mSi_sZe0n<)Gy@1q zOpzMLH==@A+5n0etXErIX@`}6+ctn^bv_yVCrvOzD%vYL(*XJ|sImY(!AUP#BOTaH zYor1DUTk~`$eMvY?`c6$Z~dPEbvh9i;3Eht6!c63SK<5xs3NUMP%?{z5_LTl$|ncm z#`|>$C++z1-AMKz!G$2!0U#P$2cV+%VQddRo4U20$J~A-F9I=Rze;o8yl`wC<%K?N|!ih~MQ6x$H&Coi<7 ze!Av>QKJI~6TE5y!_9W@*DjytuI>80#6~Qf=A_g3o9Jiqs|uFl`z2PWth~o2*m6W z58oOt_@B-BpS@S{EcJ*x78({VeY|6#PTKlf-giv$9D96!IPW_tc}^}m7*B8ofI}CQ z%HmDB!ltkcmRgd@<;3SK$Y5onyvuAZI~J+a=Nj_~pBNTmBjSX%^{BbTXN`&3=35N{v~IR^u# zuY^(>+|vsb*A@i_!_Ow1*}mEkbiC<<2km??Uk!xgTx#rCS&o%`uqZXYGq}NMnqXHm zxiyWC0eLmpjNPYc@GAX#-b(BP_qEOUAY##gJ<-=AM8Ytzi%6v*5VM2(90rQQOD==K=!d51Q6MHW zq7Z1$1=SYPmN&v~~? z!uHZW>i+A?(0Jt#G~q;U7>@ElKk_StqMZpA_jUL|)HD zUYEZ9hSU?6;^!rALJ|^mZbDoyJ?smuvsz4XV5f-gnrx@D$Og$7_?aE-x~V-h7(Jr} zqsyIp(U5}6qMvt$(2Ro1qK9=hDpph@T2Z1Jj26{kG_o$Tqcpf(!WS0VQRR4&e}SWp zHV3Epyy!?e!J+2Ci7peJG>^`;3-SV#qjOyjc{k+oM8ASM+8)^IZn+-TJ94_SD-xkb zRK#LMDHaq5J?PFA7vxKmnduZ(ErYl*G&iKJM3&3(<-RKVr$HpBGH0k zyZB0dUj<@{4HW!4bN-zL|L&ZB_q~eU z)Ji#;-6Nem^}BspI56*(&P4ORuSuS-eGxO|3)&^WhdvgaZ{h~9q%YSl0jzLaIsmti zXF({T>@usp@Fp-&7MyN$TT|gt+gvjiz6HF}r+^e03%hfH-G#vZTwwov+dQ01zhrAH ztQ@*#xF>B5&@o#_O09v$M@X@15Bw_*)MO7d=DdxP&{%2@pv2&B2{+Bk_JGI%+B@EN zfb!?VJVFnXIXEqje8#|KQE(~14VOiqLji8M zEV^0e4h6V(AaEa6!XJkfEJ2P5_~}W*%BK?-uYv{Z>56ncxtKUP23;pKhDSB6IXY2i zeVY!mZ{tH@B#5>2D<=Ds-`_&@nq%I71BhyhdvCNuMYsPFiaPJKU(H=(ee3 z&J8@fiBAjwG2z+m!CQj`e`C(yc(0<7qS?WDaiQ%_|2%xl^-8uT?+Z(w@E5?czuSN} z>46z4jdA0?SC+u4#;B88D(f27+{RgNqqAPYq7@ z(cpBi8l3K>!Rd{PcHW5Exk1s+4a$p<-Iu7H@td;l@XIHP7o#W?rNcBLn#Fxu>DY2L z6^;H|=__?T{S$c0|5ZJ0``NECS1T!Nx6$PBG?NtEFMs%K&U;o8&OTY?O^0C} z0af03xN3-;c6_C2@SowxTalolRisMbzEo@1+HzY}b+6C?Re%2i-lFSo^~}#!f1|Ta zkWAwftLyJ`s{TGl^|$#O&5)wMm7pwT7pj&W@$(5;pnuIEqY3)4sa&Pq?iz}Zjt&g> z)9=^hb@-PJ;~yFXk%xvK2p$5^@AK(*pY&T9dKOB9dek$Z=tJMB039`LYv8em!VAiG zuZPID;TAzFJq%>g!LsbXG4B6l8ve}e{WEjq-ZD401-06u<{$T;&G~DU+Now}O68<#|CqEPO zwF+yqHiSi(ZD_WaHCE2Duw$KC48eXDbg+`rGY}t6Oum$uPEB5}sAls}RI1^-q3WnE zWt=iBNmDGTzi5w{l7^IdN|!WVG{oejNtDf4wqRL7yNqQkmTg$JVA;MTonbKte8Dc) znsGiZqpTQ8hD>U9ifa~lLznj2(Y{!NUW`9~-;uU>d}e+o8;_eI?s4ndJK=!-G1dvH z?FgK#%)wu5y}FYw__)pu=L`;}K*Zhx?-}+pD|}(_w3n3U60-}bDCcQj($A*mOZu7l zY)P5o>ACpC*=#B!oGHoE>4|ifpPGaKtMdz=R&?A+&Q_vibSSFIE65OlL8I4X!{Xi7 zVBYBMZ7BM?^4UV<{a5lcMQ{I_YoKTw_}uFJAzOa>$CForF!M*N|F)~)%6Hx!yH@qi ziK~Ox77M|`=^M=jPtiNL<~mxm9sM($YN&3wWV!A3-*k7bx;yh#`9yvqU%Tc$ykz)+ zjk~ThQ~;Sm*i}EV@)d6*ON4mcuD*uV&`#TaLMdp74S>5%4*>E z=JU)2zx8$d3E!}8tLF+6dyrvh$JN6x>@KbTf^^$i`C4u{SCoC+1)s^U)@(+X zw_$_LZaK?trozuGtqvEOS9C+1_H)Gvw=AJ28nIY%_R;>24)<*E$5pg);-O^J!W1Aw zD@i>Bl;F`_SQHaVX98$EB!H`UHnweyaIABD`9^m9j%jXmtj z!d;1eVOeQb$Tcy*cJ?R!FYJ#=VQa~bWRGr=y#YSX3cGaA`#J4Bw~{zeG89-v55e{N$$C3El?zM)gL5Rc!fl&2zuVWAE5FJF^RH_kB z_EKp(l>8fL+Z+>ePL(|gZ#x$?Fumnqir(A!I3G<{?tJ- zJ}qiUI!T@(iJ+7t)I&xRT4^~#zH)?o8bZDY5i*Hb^uSjw^DyihZQXF1&Wb=8PnO6i z0$q_&HlzEItI;Riq1fNUlO@}i&8u?lpX9o&2t%my?|s|D7&dBgv-C$JqvMC8k#TKb zeKe;y@ejrds}}vR>Z*oQRSG)-=c*cyVhTH$PZrwWpU$5sdi&N~{Y6{cWS{YF;NS`>H#ioaC zTu`+it^5E9B_!TOQkIVBlV;_INcNF*lkCK6kc=eVaLrw1IVRGN(Rd90;BL{f4^>k3 zfsd60EYvm{=3sze}IRJQC7q6`A8X z__^n0eMQy^iPjqUUS%cp*VQsFBNJY5AEQyWSB^&XSLO+IEc2fBI#@+m*Ot!7MsE6 z^TMT|Vv3H*t`?sZ&8(icq;(qOhT3Kah8H3zOxTWWuo)8*7g22&r7r}2a331Z#qM(&QMVf ziNxlCbN;3JhfhVG>;u)`2;Hg~UvK?t2hMq3^^UwiRVvBXB6yreAQ^|hsUsRdphX%LBx>W1QiT|jUg%%R2jU+cjS1 zHHYlb1X<9WveVi}8JFx*Y^tbmDx5@${SlInxo1(3|4mN`GNurYrN+_|chXa;>9%s5 zS8){M9A0@CfZWPjeyEAmWARI)DJhzWCTs0+6DesuZE{%E3phIgt$SA;M*>S$rIn#9 z9L9Ng(s&DdVbS;s`;ArTHaeJIR-1u_#Q1G42=u1sOb7HBHusw| zF779DOt!%Rbk`(8au7RB+hB6TeG^F53<;0OtXteTgirlto(Q49)L1pZBbZqH!SzPfGcMgwI^(u z2Tr0giuk^Xfu-cO82BOvN}j$g&zYygC9(clYAIFnoY?Yo89M42{JYZyT%JDwT60=A z+k4j0`qlUL4R&pAv#oza-*QJb`AC_i4SRWdu?2Uy8+`0;i#XZf0i%doII1|VGd>~T zJXOMCi>U;d-W5}NRZ2+B7Btglal(|#J5V7W;1=Tc_zPN2DP+_E>?e@Et9%!6#qDW5%F=F^Jb9m$5d>=rU_3tvl;!)Ugys`J%cxQ4o(bk)0Q!Y@i+; zd73`ApWWX)x8Z!DCf7;jNY6aFYnFG+axXvgDSv^-WJ>Rg=cr~4^UtIR!~74KyeIuK zIg3f7O!_+TKn5$BT=fRAajEA;`K@0`+TmIpU1cZ5QT}?TB+9-50DI`n9-94y5j62n TaoNQC+87*rNq!&!gCTzb{EmO3 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 3111c1ef778e2d9fcbd8ccf878392cc448eaeb0c..a8548d329959346d7a62f20e439b744c674522a8 100644 GIT binary patch delta 1795 zcmb7EZ)j6j6u&p`Pu|PFCT-FtY11U8T}_Ktt#;~ctv2-^L+ZqWW#D4pTWn05aPy?L zB-Rfy)G1AOC#D;0*@uBn1`f7;9GmXbwlBeM4Y9&Ng}K29{(<54VduUWJ7ElVd7OLB zx##@Ox#yhwer^6FX#3u3H6d7C!`YZop0~O2ck>+sgE(OvH7ZCkB%}#>RK^H+4tUe3 zN$2^5IAI<&W2EA^oB6-ER59+IKkw_d8PIN|2xpKYs>XQhi$+Yk##MEr_Guh8&i~|J z7sh4V;NBy{QIb~45Ftqd8t?Ap(WLg;@F3{Njz?pveypE<_T*E8C;Sp&5Tu0#Cs2xx{f zSm8ZjndN{(8P1Ecyo@xt>Wol^uK{HZ8Jyu11Qs}h{;e4CX8Mbriop@l`_q4Q#6y9jtO?O55OK)@rZ>gbfQnijz{pfBR3 zpNoC7EX}kVvOA4Rb@gZYlC6F&aXwLMXv(*J*tO8LaeYr@b70o(am#y>GC3~=F4;DHX?Q0%)p@zmP9$iy$pt^>+#KpuP zk6V%ZrH6{xV$8E8cYpQq_{P@`{}>^lSKMnI0N=5B=TJNvmC{TASFn(Tvq z?xtVoyLuua?%R+6dJ?7|8yDQ{DUmQE@ZM0GwHT@owI7jo;O#Uowc{50mGrv58&1Lo zQf*~S)vjW~eA8@hnEe*H4-e8Qxm9ExBdh8AvIqY_zmSvkce#o7ntijH8BX*Sx74_m zedP~;;qisJ{WH=*by69hjBSm*x4_ob?O`KX1sTD zkWQ#-3X;_?r{9Z>IIrL94O6$c3#9Y_y<}<&E=vBAWSKLcGcQS=qU2eWnwLQ~oipV& z{wTQ#T;BA-2K_lSf>)W3C&wqBg&s>J;ZNAhz@AkBSTX=)CP*E8i>MpCO0SzYLJ{wq zH;K*6z(oU=z{m#1z6_)+9G%wGG+ECS13<1K{cRF2Qy6Q66+S%-w z#n=y>q{hfD`j@4{s6Tij(13OS0X><$%vA3&OYo_*Z6c|hNT~hf0Eny(=|ey&9LD%I xvg)7xHiFM`8=3E-y1U4A2W`KDHs3+r^h>MX)sI^WYnN6H6;};CK_KYhe*?{BtRDaX delta 1120 zcmZWnOKclO7@pbn+Uv(YYCDQ;vW*klX&lqWR7n)IO=+4&C_u`ALq&xIu6JwMb!}^Q zi{mIM98f7GQDWvms!Gr!NrZ%ixF9Y?s(PqYDQZxnRX~->1-KXrs45r!S=SYaIsEfK zzVCm{Z1nx|oP1Z3dxxUO*LG5yUK<4BHX zh0F}z#BJIlwmh9u3(vedcVQ6tcxg;Wi<}o(-v473xdl`TQ;{E_K40Jj7#+;NZbvyEs9+I42-`)BoNn`Fqe9qjZ1413-l$o{YQ+|6q*$@&x1OG? z!a{uQl9hImZil8rCfk=UzE#WRFXRe_jSbTUkvJR@p>c8I-6)vmGKlxkt{hw`Un}p1 zx<5JEJh~G~Y=sgxr|yRaub%oz39gQO)L5Imc6nEgJcw#nUv6=N6y4Jfe>rkr8(;Oc z0!Z4oGW+4|PC(lVXlteIK)R(NCA3mrE5 z5GGqpd#v-mNt~gd`%*YY@A=;B9fC-jBklDR3~L=b>oM7XVQZN2PvBwtfq%a{1|E{4 zoBk-S(A)m%u?7%N&x@}c6}?y~9D&8g8KjR1=VgRCDOv_(ce-&JVUOsn_t(I%`!E=0 zlE$T^@V(eeV$_g6J?K1a7$UZ-R4rDXX3CeVra@j{gr}W>O2%nc9>8Ptj64G4EXkv8 z_F^PN@5u47gG^;5Y~ftPGEDNkLjkdlh%-!tIfRaoK`~#Wni3NfVW^d)6H0Q56XI*5 zj}TmsL|*7=^B5&9w>xuNjT%f(*k307Ot6n`i-qdBszqvfa-6O!2dJ&QGU!yAWRPdo zpNPjUR`p9|<2adt02|GGmCmZ&-iJteh`N42FVc6^-mVPpxp`=(e|oEb`cDLgli?q1 C&;2?8 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 5bac6c5..f57fc1f 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:fea6510954db5600c2a73580644d87d7d47374aeee9c6e22e7c5eba22d658266 -size 4854 +oid sha256:8e0564cb49ec7bf6bf40071f32eecf9d10b810b37bb3d0c82e093a7ded321919 +size 6275 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 4d42b02..29b5954 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:af8b27955cb70e39a17a8c133770dc87eb8b0ab63f20e45614b3c5c78b8026f7 -size 858 +oid sha256:3a9816ea32e16448069493d5f7f88b5bd9a774b59630f0c18fa626aaddc34119 +size 1117 diff --git a/i2c-hub/uart-adapter/src/uart_interface/serial.py b/i2c-hub/uart-adapter/src/uart_interface/serial.py index 3129425..9e83cd6 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:03090dfe27e6ae777e63dd99984950813e7d39e8f142aa22cb2b4d04562fce43 -size 1566 +oid sha256:7135997097b4c8e33b71d8cf5ffd70b580cde774e25f1ca674cfc11b2099ef28 +size 2311 diff --git a/vacum-control/vacum-control-firmware/src/main.cpp b/vacum-control/vacum-control-firmware/src/main.cpp index 2523927..42d07c1 100644 --- a/vacum-control/vacum-control-firmware/src/main.cpp +++ b/vacum-control/vacum-control-firmware/src/main.cpp @@ -36,6 +36,11 @@ void onRxPackage(void * args, char *data, uint16_t len, GobotRPCTypes type, Gobo g_appData.gobotrpc_ni->sendPackage(txBuffer, 0, GobotRPCTypes::RESPONSE, GobotRPCNumber::VACUM); break; } + + case GobotRPCNumber::RESET: { + softwareReset(); + break; + } default: { break; @@ -49,7 +54,7 @@ void core1_main(void *pvParameters) { appData->txQueue, appData->rxQueue, CORE_MASK_VACUM, i2c0, 0x21, GORPC_SDA_PIN, GORPC_SCL_PIN, GORPC_INT_PIN ); - + while (true) { gpio_put(LED2_PIN, 0); vTaskDelay(500 / portTICK_PERIOD_MS); @@ -89,6 +94,9 @@ int main() { core1_main, "Core 1 Main", 2048, &g_appData, 1, CORE_MASK_VACUM, &xCore1TaskHandle ); + char txBuffer[32]; + g_appData.gobotrpc_ni->sendPackage(txBuffer, 0, GobotRPCTypes::RESPONSE, GobotRPCNumber::RESET); + vTaskStartScheduler(); while (true) {