From a3a401c1c7f34c601784f5353972b7585a57d215 Mon Sep 17 00:00:00 2001 From: ToSa27 Date: Wed, 20 Aug 2014 09:44:18 +0200 Subject: [PATCH 1/2] OTA Bootloader FIND_PARENT and include binary - move from PING to FIND_PARENT - include compiled hex of bootloader --- Bootloader/.gitignore | 1 - Bootloader/MyOtaBootloader.c | 6 +- Bootloader/MyOtaBootloader.hex | 214 +++++++++++++++++++++++++++++++++ 3 files changed, 217 insertions(+), 4 deletions(-) create mode 100644 Bootloader/MyOtaBootloader.hex diff --git a/Bootloader/.gitignore b/Bootloader/.gitignore index bdb41b7..71c9880 100644 --- a/Bootloader/.gitignore +++ b/Bootloader/.gitignore @@ -1,3 +1,2 @@ *.o -*.hex *.elf \ No newline at end of file diff --git a/Bootloader/MyOtaBootloader.c b/Bootloader/MyOtaBootloader.c index a601075..cd58712 100644 --- a/Bootloader/MyOtaBootloader.c +++ b/Bootloader/MyOtaBootloader.c @@ -68,7 +68,7 @@ static uint8_t sendAndWait(uint8_t reqType, uint8_t resType) { continue; if (rmsg.destination == nc.nodeId) { if (mGetCommand(rmsg) == C_INTERNAL) { - if (rmsg.type == I_PING_ACK) { + if (rmsg.type == I_FIND_PARENT_RESPONSE) { if (rmsg.data[0] < nc.distance - 1) { nc.distance = rmsg.data[0] + 1; nc.parentNodeId = rmsg.sender; @@ -129,8 +129,8 @@ int main () { nc.distance = 255; mSetCommand(msg, C_INTERNAL); msg.destination = BROADCAST_ADDRESS; - if (!sendAndWait(I_PING, I_PING_ACK)) -// starting existing firmware if no ping response (if firmware is valid) + if (!sendAndWait(I_FIND_PARENT, I_FIND_PARENT_RESPONSE)) +// starting existing firmware if no parent responds (if firmware is valid) // reboot(); startup(); diff --git a/Bootloader/MyOtaBootloader.hex b/Bootloader/MyOtaBootloader.hex new file mode 100644 index 0000000..6fd8c58 --- /dev/null +++ b/Bootloader/MyOtaBootloader.hex @@ -0,0 +1,214 @@ +:1070000011E0A0E0B1E0E0E4FDE702C005900D92E0 +:10701000A030B107D9F711E0A0E0B1E001C01D92A6 +:10702000A83DB107E1F711248091610090E08F70D5 +:107030009070909301018093000182E090E020E83D +:107040000FB6F89420936100809361000FBE14BEC8 +:1070500029E288E190E00FB6F894A895809360004B +:107060000FBE20936000A8951092CF011092D0011E +:107070001092D1011092D2011092D3011092D4013A +:107080001092D5011092D60184B18E6284B92498F1 +:1070900085B1857D85B92A9A8AE090E0B3D184E0F4 +:1070A0006FE520D281E06BE31DD285E06CE41AD25B +:1070B00086E0E5D1682F607D676286E013D280E0CC +:1070C000DED1682F6C6080E00DD287E060E70AD2E5 +:1070D0002A9881E090E096D180E5A6D183E7A4D1FB +:1070E0002A9A81E090E08ED18DE1C9D1682F666047 +:1070F0008DE1F8D18CE1C3D1682F6F638CE1F2D1BF +:1071000082EEADD181EEABD104D280E0B8D1682F50 +:107110006E7F80E0E7D182E00FEF1CEF21EE38EACE +:1071200048EA50E060E070E002D2A89582E091E089 +:1071300060E070E043E050E02DEE39E38AD5A89599 +:107140008091020180930E0180930D014FD22FEFA9 +:10715000209313018091110192E0909310012093EC +:107160000401887083608093110120930F0187E0F0 +:1071700068E04AD3882309F42AD310920F01809142 +:1071800002018F3F09F038C081E00FEF1CEF21EEC4 +:1071900038EA48EA50E060E070E0C9D183E064E09A +:1071A00033D3882309F407D38091320182958695E1 +:1071B0008770813019F48091350105C0882329F446 +:1071C00085E391E028D580930201809102018F3FF1 +:1071D00009F4F1D280910201F999FECF1FBA12BCD5 +:1071E00011BC80BD0FB6F894FA9AF99A0FBE80933D +:1071F0000E0180930D01FAD185E091E06BE171E021 +:1072000048E050E02DEE39E324D5909111019871BA +:10721000809110018770806280931001946C90932C +:1072200011018091050190910601909315018093C1 +:1072300014018091070190910801909317018093A8 +:10724000160180E061E0E0D2882309F4C0D22091E9 +:10725000370130913801809107019091080128177A +:107260003907C9F42091390130913A01809109011F +:1072700090910A012817390771F420913B01309150 +:107280003C0180910B0190910C012817390719F4EA +:107290005DD281119CD240913501509136015093BD +:1072A0000601409305012091370130913801309358 +:1072B0000801209307018091390190913A01909340 +:1072C0000A018093090180913B0190913C019093C8 +:1072D0000C0180930B01F4E1EF2EF1E0FF2E809181 +:1072E00010018770806380931001509315014093C3 +:1072F00014013093170120931601C0E0D0E000E99B +:107300001FEFBB24B394E5E0CE2E71E1D72E4DC024 +:10731000F701D583C48382E063E076D2882309F441 +:107320004AD2902F90599F77E92FF0E0E15BFE4F12 +:10733000ABE3B1E080E10D9001928150E1F790372D +:1073400009F030C03FB7F894F999FECF83E0F80117 +:1073500080935700E89507B600FCFDCFA801AFE485 +:10736000B1E02C9111968C91119790E0982F88277D +:10737000820F911D1296FA010C01B0925700E89508 +:1073800011244E5F5F4FF1E0AF3CBF0751F7F801AA +:10739000C0925700E89507B600FCFDCFD092570089 +:1073A000E8953FBF2196005F1F4F809109019091A2 +:1073B0000A01C817D90708F4ABCFA895C7D188230D +:1073C00049F08BE191E065E071E048E050E024EFA6 +:1073D00039E35BD4F0D180E090E0F999FECF92BD23 +:1073E00081BDF89A80B50895F999FECF1FBA92BD74 +:1073F00081BD60BD0FB6F894FA9AF99A0FBE089550 +:107400000000089540E050E00BC020E030E00000B4 +:107410002F5F3F4F61E0243F3607C9F74F5F5F4F53 +:107420004817590790F308950F931F93182F00E002 +:10743000E7DF17FD02C02B9801C02B9AE1DF2D9AE0 +:1074400083B1110F82958170182BDADF2D98D8DF68 +:107450000F5F083069F7812F1F910F9108951F93D7 +:10746000182F2A9881E090E0CDDF812FDDDF182FE3 +:107470002A9A81E090E0C6DF812F1F9108951F9323 +:10748000182F2A9881E090E0BDDF812F8F71CCDF2B +:107490008FEFCADF182F2A9A81E090E0B3DF812FA7 +:1074A0001F9108950F931F93CF93DF93182FEB0134 +:1074B000042F2A9881E090E0A5DF1F71812F806260 +:1074C000B3DF182F03C08991AFDF01500023D9F734 +:1074D0002A9A81E090E096DF812FDF91CF911F9172 +:1074E0000F9108950F931F93182F062F2A9881E06C +:1074F00090E088DF1F71812F806296DF182F802F28 +:1075000093DF2A9A81E090E07DDF812F1F910F9118 +:10751000089580E0B4DF81FD09C080E0B0DF682F0E +:10752000626080E0DFDF85E090E06CDF08957F92AD +:107530008F929F92AF92BF92CF92DF92EF92FF9283 +:107540000F931F93DF93CF93CDB7DEB728970FB676 +:10755000F894DEBF0FBECDBF782E480159016A01F5 +:107560007B01882381F40093CF019092D001209376 +:10757000D101B092D2014093D301D092D401609353 +:10758000D501F092D60189829A82AB82BC82CD82EB +:10759000DE82EF82F88681E0871538F0872D865FDE +:1075A000BE016F5F7F4F45E07DDF82E068DF21E055 +:1075B00030E002C0220F331F7A94E2F7682F622B6B +:1075C00082E090DF28960FB6F894DEBF0FBECDBFE5 +:1075D000CF91DF911F910F91FF90EF90DF90CF90AF +:1075E000BF90AF909F908F907F9008957F928F92E1 +:1075F0009F92AF92BF92CF92DF92EF92FF920F9342 +:107600001F93DF93CF93CDB7DEB728970FB6F894CB +:10761000DEBF0FBECDBF8F3F09F483C0082F10E03F +:1076200020E030E040E050E060E070E089831A83C1 +:107630002B833C834D835E836F83788788243CEF64 +:10764000932E21EEA22E98EAB92E88EAC82EDD24C8 +:10765000EE24FF24080D81E09981091708F080E0ED +:10766000192D91E0AA819A1608F090E0E82FE10F19 +:1076700081E0E11708F080E0982B1E2F2A2D772457 +:107680007394BB81AB1608F07724920F81E09217B8 +:1076900008F080E0782A292F3B2D91E0EC81BE167E +:1076A00008F090E0E72DE30F81E0E31708F080E0B9 +:1076B000982B3E2F4C2D77247394FD81CF1608F024 +:1076C0007724940F81E0941708F080E0782A492FFE +:1076D0005D2D91E08E81D81608F090E0E72DE50F42 +:1076E00081E0E51708F080E0982B5E2F6E2D77245F +:1076F0007394AF81EA1608F07724960F81E096170D +:1077000008F080E0782A692F7F0C772D59016A01F3 +:10771000E92E80E00CDF81E09501A6016E2D772D2A +:1077200006DF28960FB6F894DEBF0FBECDBFCF910F +:10773000DF911F910F91FF90EF90DF90CF90BF905E +:10774000AF909F908F907F90089518954091090178 +:1077500050910A0164E0440F551F6A95E1F7E0E09B +:10776000F0E02FEF3FEF19C084912827822F8295F8 +:107770008227082E869586958025082E8695802559 +:107780008770022E232F869507948795302D282702 +:1077900006948795302528273196E417F50720F3BE +:1077A00040E080910B0190910C012817390709F4F2 +:1077B00041E0842F089528E088E190E00FB6F89426 +:1077C000A895809360000FBE20936000FFCFBEDFBE +:1077D0008823C1F088E10FB6F8948093600010927E +:1077E00060000FBE809100019091010120E80FB66A +:1077F000F89420936100809361000FBEE0E0F0E018 +:1078000009950895D8DF08952F923F924F925F9285 +:107810006F927F928F929F92AF92BF92CF92DF92A0 +:10782000EF92FF920F931F93DF93CF93CDB7DEB705 +:10783000E3970FB6F894DEBF0FBECDBF6BA7809362 +:1078400012016624B9E02B2E312C2C0E3D1E2E0188 +:107850000894411C511CD101EDE0F1E081E201905E +:107860000D928150E1F7109103017C842B852AA7AA +:1078700050DE299881E090E0C5DD81EEF0DD82EEFA +:10788000EEDD80E0FCDD682F6E7F80E02BDE30E0F7 +:1078900040E050E060E070E080E090E01CA73DA791 +:1078A0004EA75FA768AB79AB8AAB9BAB8824ACEFE4 +:1078B0009A2EF1EEAF2EE8EABE2E78EAC72EDD242E +:1078C000EE24FF24012F080D81E0011708F080E06D +:1078D000192D91E0EDA59E1608F090E0E82FE10F3C +:1078E00081E0E11708F080E0982B1E2F2A2DE1E0BF +:1078F000FEA5AF1608F0E0E0920F81E0921708F0C5 +:1079000080E0E82B292F3B2D91E08FA5B81608F0D9 +:1079100090E0E30F81E0E31708F080E0982B3E2F22 +:107920004C2DE1E0F8A9CF1608F0E0E0940F81E0DB +:10793000941708F080E0E82B492F5D2D91E089A98C +:10794000D81608F090E0E50F81E0E51708F080E038 +:10795000982B5E2F6E2D81E0EAA9EE1608F080E0EC +:10796000E92FE60F91E0E61708F090E0892B8F0DE4 +:1079700009831A832B833C834D835E83EF8388873F +:107980008AE0B20145E08EDD80E1B20145E08ADDAA +:10799000FAA5FF3F11F010EA01C010EB769476943F +:1079A000769427E0720E2A9881E090E02BDD812FFB +:1079B0003BDD81017101E70CF11C04C0F8018191EC +:1079C0008F0132DD0E151F05C9F72A9A81E090E07C +:1079D00019DD299A81E090E015DD299881E090E099 +:1079E00011DD8FEF3CDD8073E1F387E060E77ADD46 +:1079F00084FF02C081EE33DD8CDD80E040DD682F46 +:107A0000616080E06FDD87E060E76CDD0091CF01B1 +:107A10001091D0012091D1013091D2014091D30138 +:107A20005091D4016091D5017091D601802F812BA6 +:107A3000822B832B842B852B862B872B61F009834C +:107A40001A832B833C834D835E836F8378878AE020 +:107A5000B20145E027DD82EE02DD81EE00DD299AEC +:107A600081E090E0CFDCAA24BB24A895CC24DD24BF +:107A7000A89587E104DD80FD9CC08FEFF0DCE82E47 +:107A8000E694F7E0EF22EF1609F493C02A9881E01C +:107A900090E0B8DC80E6C8DC8FEFC6DCF82E2A9ACE +:107AA00081E090E0AFDC20E22F1518F482EED7DC05 +:107AB000FF242A9881E090E0A5DC81E6B5DC0EE2A7 +:107AC00011E006C08FEFB0DCF80181938F01FA94CA +:107AD000FF20C1F72A9A81E090E094DC87E060E71C +:107AE00001DD2A9881E090E08DDC8E2D886A9CDC97 +:107AF0008E2D9ADC2A9A81E090E084DC809131011D +:107B00008770823009F058C0909130018091020155 +:107B1000981709F04EC080913201682F70E0CB01B8 +:107B200087709070039709F034C0809133018830DA +:107B300009F02FC040913501242F332727FD3095C0 +:107B40008091040190E001972817390714F5242F3C +:107B50002F5F2093040140912F0140930301F99975 +:107B6000FECF1FBA81E090E092BD81BD40BD0FB64F +:107B7000F894FA9AF99A0FBEF999FECF1FBA42E02B +:107B800050E052BD41BD20BD0FB6F894FA9AF99A63 +:107B90000FBE8091110190E0862797278770907023 +:107BA000892B39F4809133015BA5851711F481E0AD +:107BB00019C081E090E026DC0894C11CD11C64E669 +:107BC000C616D10409F054CF0894A11CB11C74E16D +:107BD000A716B10409F049CF63948AE0681609F04A +:107BE0003ACE80E0E3960FB6F894DEBF0FBECDBF6D +:107BF000CF91DF911F910F91FF90EF90DF90CF9089 +:107C0000BF90AF909F908F907F906F905F904F90BC +:107C10003F902F900895FC0188279927E89421919F +:107C20002032E9F3293010F02E30C8F32B3241F026 +:107C30002D3239F4689404C00E94613E820F911D78 +:107C4000219120532A30C0F31EF4909581959F4FC7 +:107C50000895A0E0B0E0EFE2FEE30C94733E7C01F7 +:107C6000EB018A01690109C0CE012196F60109954F +:107C7000F70181937F010150104001151105A1F713 +:107C8000CDB7DEB7E8E00C948F3EA0E0B0E0EBE4C7 +:107C9000FEE30C94733EEC017B018A01690109C08B +:107CA000CE012196F70161917F01F60109950150FE +:107CB000104001151105A1F7CDB7DEB7E8E00C942F +:107CC0008F3E7AE0979F902D879F802D910D1124F4 +:107CD00008952F923F924F925F926F927F928F9270 +:107CE0009F92AF92BF92CF92DF92EF92FF920F934B +:107CF0001F93CF93DF93CDB7DEB7CA1BDB0B0FB655 +:107D0000F894DEBF0FBECDBF09942A883988488811 +:107D10005F846E847D848C849B84AA84B984C884A7 +:107D2000DF80EE80FD800C811B81AA81B981CE0F9E +:107D3000D11D0FB6F894DEBF0FBECDBFED01089583 +:040000030000700089 +:00000001FF From 3c1820ca93266b638a5f4efeb168dcd69fcad962 Mon Sep 17 00:00:00 2001 From: ToSa27 Date: Wed, 20 Aug 2014 09:51:54 +0200 Subject: [PATCH 2/2] NodeJsController adjust to ack in serial message protocol --- NodeJsController/NodeJsController.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/NodeJsController/NodeJsController.js b/NodeJsController/NodeJsController.js index 2a127fa..f033e1c 100644 --- a/NodeJsController/NodeJsController.js +++ b/NodeJsController/NodeJsController.js @@ -524,8 +524,9 @@ function rfReceived(data, db, gw) { var sender = +datas[0]; var sensor = +datas[1]; var command = +datas[2]; - var type = +datas[3]; - var rawpayload = datas[4].trim(); + var ack = +datas[3]; + var type = +datas[4]; + var rawpayload = datas[5].trim(); var payload; if (command == C_STREAM) { payload = [];