From db464efa36d6eba0434e813c1cffe137789c77b9 Mon Sep 17 00:00:00 2001 From: AlexanderHD27 Date: Fri, 3 Jan 2025 20:10:15 +0100 Subject: [PATCH] Added Transmission Sucess --- .../docs/.$NetworkStack.drawio.bkp | 100 +++++++++++++++--- .../i2c-hub-firmware/docs/NetworkStack.drawio | 23 +++- .../src/gobotrpc/ctrl_interface/base.cpp | 14 --- .../ctrl_interface/ci_instruction.cpp | 43 +++++++- .../src/gobotrpc/include/ctrl_interface.hpp | 2 + .../include/ctrl_interface_instructions.hpp | 3 +- .../include/ti/transmission_interface.hpp | 1 + .../rp2040_i2c_ci_instructions.cpp | 11 ++ .../transmission_interface/rp2040_i2c_tx.cpp | 4 +- .../src/uart_interface/__init__.py | 4 +- .../__pycache__/__init__.cpython-312.pyc | Bin 2617 -> 2652 bytes .../__pycache__/ci_packages.cpython-312.pyc | Bin 8686 -> 10689 bytes .../pares_packages.cpython-312.pyc | Bin 1214 -> 1367 bytes .../src/uart_interface/ci_packages.py | 4 +- .../src/uart_interface/pares_packages.py | 4 +- 15 files changed, 171 insertions(+), 42 deletions(-) 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 0e3a49c..4b68a4c 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.bkp +++ b/i2c-hub/firmware/i2c-hub-firmware/docs/.$NetworkStack.drawio.bkp @@ -1,16 +1,16 @@ - + - - + + - + @@ -1027,7 +1027,7 @@ - + @@ -1035,12 +1035,12 @@ - + - + @@ -1070,7 +1070,7 @@ - + @@ -1104,6 +1104,19 @@ + + + + + + + + + + + + + @@ -1117,7 +1130,7 @@ - + @@ -1126,7 +1139,7 @@ - + @@ -1279,10 +1292,10 @@ - + - + @@ -1299,7 +1312,7 @@ - + @@ -1315,7 +1328,7 @@ - + @@ -1374,6 +1387,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio b/i2c-hub/firmware/i2c-hub-firmware/docs/NetworkStack.drawio index 4b68a4c..c86c49a 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 @@ - + @@ -1446,6 +1446,27 @@ + + + + + + + + + + + + + + + + + + + + + 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 050a1f9..9ceae58 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 @@ -68,17 +68,3 @@ void GobotRPC_CI::heartBeartTaskFn() { vTaskDelay(GOBOTRPC_HEARTBEAT_INTERVAL / portTICK_PERIOD_MS); } } - -void GobotRPC_CI::send_ErrorTransmission(bool rx, uint64_t addr) { - char errorPacket[7]; - - errorPacket[0] = ERROR_TRANMISSION; - errorPacket[1] = 7; - errorPacket[2] = rx ? 0x01 : 0x00; - errorPacket[3] = (addr >> 24) & 0xff; - errorPacket[4] = (addr >> 16) & 0xff; - errorPacket[5] = (addr >> 8) & 0xff; - errorPacket[6] = addr & 0xff; - - this->hardware->send(errorPacket, 7); -} \ No newline at end of file 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 c156cbb..debabd4 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 @@ -17,11 +17,44 @@ void GobotRPC_CI::txCIInstructionTask() { xQueueReceive(ciInstructionQueue, &ciInstruction, portMAX_DELAY); switch (ciInstruction.type) { - case CI_INSTRUCTION_SEND_TRANMISSION_ERROR: - uint32_t addr = ciInstruction.data[1] | (ciInstruction.data[2] << 8) | (ciInstruction.data[3] << 16) | (ciInstruction.data[4] << 24); - uint8_t rx = ciInstruction.data[0]; - send_ErrorTransmission(rx, addr); - break; + case CI_INSTRUCTION_SEND_TRANMISSION_ERROR: { + uint32_t addr = ciInstruction.data[1] | (ciInstruction.data[2] << 8) | (ciInstruction.data[3] << 16) | (ciInstruction.data[4] << 24); + uint8_t rx = ciInstruction.data[0]; + 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); + send_SuccessTransmission(addr); + break; + } } } +} + +void GobotRPC_CI::send_ErrorTransmission(bool rx, uint64_t addr) { + char errorPacket[7]; + + errorPacket[0] = ERROR_TRANMISSION; + errorPacket[1] = 7; + errorPacket[2] = rx ? 0x01 : 0x00; + errorPacket[3] = (addr >> 24) & 0xff; + errorPacket[4] = (addr >> 16) & 0xff; + errorPacket[5] = (addr >> 8) & 0xff; + errorPacket[6] = addr & 0xff; + + this->hardware->send(errorPacket, 7); +} + +void GobotRPC_CI::send_SuccessTransmission(uint64_t addr) { + char successPacket[6]; + + successPacket[0] = SUCESS_TRANMISSION; + successPacket[1] = 6; + successPacket[2] = (addr >> 24) & 0xff; + successPacket[3] = (addr >> 16) & 0xff; + successPacket[4] = (addr >> 8) & 0xff; + successPacket[5] = addr & 0xff; + + this->hardware->send(successPacket, 6); } \ No newline at end of file diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ctrl_interface.hpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ctrl_interface.hpp index 1b85ca3..ec62004 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ctrl_interface.hpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ctrl_interface.hpp @@ -7,6 +7,7 @@ enum GobotRPC_CI_CMD { RX_CI_PACKET = 0x02, PERFORM_SCAN_CI_PACKET = 0x03, SCAN_RESULT_CI_PACKET = 0x04, + SUCESS_TRANMISSION = 0xfc, ERROR_TRANMISSION = 0xfd, HEARTBEAT = 0xff }; @@ -46,4 +47,5 @@ public: // CI Instruction Stuff void txCIInstructionTask(); void send_ErrorTransmission(bool rx, uint64_t addr); + void send_SuccessTransmission(uint64_t addr); }; \ No newline at end of file diff --git a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ctrl_interface_instructions.hpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ctrl_interface_instructions.hpp index 3e5fd50..686dcb2 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ctrl_interface_instructions.hpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/include/ctrl_interface_instructions.hpp @@ -1,5 +1,6 @@ enum CI_Instruction_Type { - CI_INSTRUCTION_SEND_TRANMISSION_ERROR + CI_INSTRUCTION_SEND_TRANMISSION_ERROR, + CI_INSTRUCTION_SEND_TRANMISSION_SUCCESS }; 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 72ce904..616b8d0 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 @@ -77,6 +77,7 @@ public: uint32_t readIntPins(); void raiseTranmissionError(bool rx, uint32_t addr); + void raiseTransmissionSuceess(uint32_t addr); }; 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 cf058ff..e227332 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 @@ -12,5 +12,16 @@ void GobotRPC_TI_Hardware_RP2040_I2C::raiseTranmissionError(bool rx, uint32_t ad ciInstruction.data[3] = (addr >> 16) & 0xff; ciInstruction.data[4] = (addr >> 24) & 0xff; + this->pushCIInstructionCB(&ciInstruction, pushCIInstructionCBArgs); +} + +void GobotRPC_TI_Hardware_RP2040_I2C::raiseTransmissionSuceess(uint32_t addr) { + CI_Instruction_Transport ciInstruction; + ciInstruction.type = CI_INSTRUCTION_SEND_TRANMISSION_SUCCESS; + ciInstruction.data[0] = addr & 0xff; + ciInstruction.data[1] = (addr >> 8) & 0xff; + ciInstruction.data[2] = (addr >> 16) & 0xff; + ciInstruction.data[3] = (addr >> 24) & 0xff; + 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_tx.cpp b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_tx.cpp index e21f57e..4972415 100644 --- a/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_tx.cpp +++ b/i2c-hub/firmware/i2c-hub-firmware/src/gobotrpc/transmission_interface/rp2040_i2c_tx.cpp @@ -20,8 +20,10 @@ void GobotRPC_TI_Hardware_RP2040_I2C::i2cTxTask() { unsigned int res = i2c_write_burst_blocking(i2c, pkg.addr & 0x7f, (uint8_t *)(&pkg.data), pkg.len); xSemaphoreGive(i2cMutex); - if(res == PICO_ERROR_GENERIC) { + if(res != PICO_ERROR_GENERIC) { raiseTranmissionError(false, pkg.addr); + } else { + raiseTransmissionSuceess(pkg.addr); } } } \ No newline at end of file diff --git a/i2c-hub/uart-adapter/src/uart_interface/__init__.py b/i2c-hub/uart-adapter/src/uart_interface/__init__.py index 187a014..d9efab1 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:e5399f7a953fa63d941844bb406be10da6bc5e579daa73c76b0c455d63538983 -size 1098 +oid sha256:056cffc0bf931040267ea9f404fcd33b29952f4bece549bf54eef0fa0639ceb2 +size 1128 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 ab56bc230606aa9c0d30c9203b04a282f269fc0e..7c1cf91ef2ccd243ff9ff8cb6169fc6564a24697 100644 GIT binary patch delta 836 zcmdlfaz}*sG%qg~0}#wGsz}e6$orB}XX1BFjueh4u1Zc#uE{ElW@3MU(l7slh<_mB zKalX#E92_4KG4n;}mlppqdtj8-k(@UJyc9yus&& zkXVEF14-EnEMhk#WG=9XLZk#l8a<07ff|ZfCi}8UZeGA7&d4hZ^*nFB~PFg)Q?yuhJYBtBVz#Y93DC{!c|BvvvO zDFCTrMj!#wl*6JVAO>U?DS-%(1<8z)Co-#v7s0g@sRBje8g8>F2uP8l!Gl#n7GyKR z20u-nA|8+kFNolq+{&t8t_Wg+f})58L}&nsTg=5JMMYX5F4%=&-%EhFVEaLY;N&~3 zeQaO}DPXX?lY={2lL_q4B151mL=e@mTZt-zOo02g2*f4eWeyHA0d*8z1T=JWsKsid zXzC@Baet27av>r281HE9M+vr7q4m4vDL^bTGtjU z$3a|0w^1BLFhLQ4G!PuOB!pR%z(mN)5i7C8#e_htd26JOh&5dYx*oIy@p{k=plzTf z(Dqq0i6agJ>9+U2!LVr@8{BUg=FyHL1H;CluwjG`51S*=*y(68P9^9b6WAPXY1szy z7QT(LYt9fV2<#d5P3I8hr`0Xg0YqgEJP!iOA59xUW%!vjZH6}SFyD8v`!56k>A%%9 zQ{$_q+o2PQwc;-B} zmIIhU@9fGAT-bG!RNTE~cW=cVEW3km?7^`=%*L>#nJLP~E(6gXD6H2}4Tx^xz#Y>hhfbz7c-*zr;iPdqWj9SXP4-wXdx9Ep1{N z!kgF=sk4s=cVT|-TVNWk!xz>6SMP}uLif=iB-0%LI;IlyH?>c%=f*TMS!$YBAt%!Y z0585NePvtP|X$;<#VIUbT<&)!(lH6jYDmyLtObetiA+W)Ot=3 zzUFWi{!Bl>&pi4f2x5ED_=bS0QoXpdcy0v&Rb3WQFK%8zKvf$SyNfL=2&h_z#r|UR w577NJH?@koorU}%OxUEq)0T$Hn71(41OHIlSLDS6f8E`N`{yIy5Kt}eH>(aMD*ylh delta 73 zcmX>Y{LY#0G%qg~0}y=Hu1KHGKao#@v1OuqD@!G#CeOxWJqk>kT$42ICOd0Na-{-Q YF#>V1`{XoD7w)eN(u^sLMM6Lk0QSTZ5C8xG 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 752015ef38b14c781adf5f0683bcb299e8028bd6..1da0cc0e49273a0cba13463ea500c6e97a57dbf0 100644 GIT binary patch delta 371 zcmdnTd7X>zG%qg~0}!N`R-{KUPvnzebeX7bER@R`#mUH!!jj6B#+1U^!V<+jF~gdX zb>fm>0Xb*S_~1}y*WlpzkRV6D;EB(*8RtwEW=vr0nOwqX%a}WP6QeD&Uj^gj4~)vJ zJd6w_f|Kts$}!&$zos6;9yUGzaq}bcbViExhDT%>gEy$8p#I4#Zx9v zWLD>w=?UqN?~T7BraU>n)BVBZ?aXTY*LhX0@T%MqGr25g1`>P8Y|O|rS(Zf_NLsQO z#};t{_1|Jmsw_z@E&`dilA%ZfNEL|ziC-Kxx%nxjIjMF;n2(Vmg(a0UjVXn-g(Zq>VvaQ<%fuDI zlcgD@8RI6KGbS+RPM*PN%jh@x8j#eVEXJfP&0Qi0G6)1#Lnww?raU1|h7#e)6PT14 zMJI1zvK8gN#p3Mi5`2p*BqBb*(b?P4-L;5yvN*F2FINykgne=Zvm7JmWOi zY(QMxIGKkAO{y$OEiMA- zTggx)2BeBafW$8jo80`A(wtPgB55F(5r~Urfy4)9Mn=ZF461h-obEG}UuG!(z$U;b Nynyu!1CRo12LSmiM`Qp1 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 7af1b55..5bac6c5 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:e70a2e925b79af063d9f2c3e341ec24955a173f3dfb9b15ab658c9146983b6f4 -size 3991 +oid sha256:fea6510954db5600c2a73580644d87d7d47374aeee9c6e22e7c5eba22d658266 +size 4854 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 e45e899..4d42b02 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:4fb294bbb8b0760aff4935eb2910a852e06bd8d98721cc024c0bf6e69b6f982e -size 731 +oid sha256:af8b27955cb70e39a17a8c133770dc87eb8b0ab63f20e45614b3c5c78b8026f7 +size 858