diff --git a/i2c-hub/asd b/i2c-hub/asd new file mode 100644 index 0000000..f7f1604 Binary files /dev/null and b/i2c-hub/asd differ 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 0000000..85e9d8d Binary files /dev/null and b/i2c-hub/pulseview-session2 differ 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 5dbe92a..7d04113 100644 Binary files a/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/__init__.cpython-312.pyc and b/i2c-hub/uart-adapter/src/gobotrpc/__pycache__/__init__.cpython-312.pyc differ 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 8133403..0f1b717 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 103a400..40cffe3 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 5cd9d46..44e0857 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 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 7c1cf91..2f4bc5a 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_packages.cpython-312.pyc b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/ci_packages.cpython-312.pyc index 9ee6cdd..499090b 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__/pares_packages.cpython-312.pyc b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/pares_packages.cpython-312.pyc index 1da0cc0..1ce74c5 100644 Binary files a/i2c-hub/uart-adapter/src/uart_interface/__pycache__/pares_packages.cpython-312.pyc and b/i2c-hub/uart-adapter/src/uart_interface/__pycache__/pares_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 3111c1e..a8548d3 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_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) {