diff --git a/CAN_Bootloader/default.aproj b/CAN_Bootloader/default.aproj index 7f20fb6..c19ebb0 100644 --- a/CAN_Bootloader/default.aproj +++ b/CAN_Bootloader/default.aproj @@ -1,5 +1,5 @@  - + diff --git a/CAN_Bootloader/user/CanThread.aardio b/CAN_Bootloader/user/CanThread.aardio index 30d5d1a..dabf5fd 100644 --- a/CAN_Bootloader/user/CanThread.aardio +++ b/CAN_Bootloader/user/CanThread.aardio @@ -223,7 +223,7 @@ var FuncSendPackage = function(){ while(#Packdata > 0) { //sleep(1); - delay(1); + delay(0.5); var data = {PackNext,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC}; var max = #Packdata > 7 ? 7 : #Packdata; for(i=1;max;1){ diff --git a/CAN_Bootloader/user/Diag22code.aardio b/CAN_Bootloader/user/Diag22code.aardio index 19a2c74..f10eb74 100644 --- a/CAN_Bootloader/user/Diag22code.aardio +++ b/CAN_Bootloader/user/Diag22code.aardio @@ -11,7 +11,7 @@ FuncReadDID = function(did){ //console.log("ret = " + ret); //FuncDisplay("did = " + tostring(did,16)); } - +g22data = {}; //接收 FuncDiag22Pro = function(data){ //console.log("诊断22服务") @@ -31,10 +31,12 @@ FuncDiag22Pro = function(data){ case 0xF193 { FuncDisplay("硬件版本号"); FuncDisplay(string.str(string.pack(table.slice(data,3)))); + g22data["F193"] = string.str(string.pack(table.slice(data,3))); } case 0xF195 { FuncDisplay("软件版本号"); FuncDisplay(string.str(string.pack(table.slice(data,3)))); + g22data["F195"] = string.str(string.pack(table.slice(data,3))); } case 0xF191 { FuncDisplay("编译时间"); @@ -43,6 +45,7 @@ FuncDiag22Pro = function(data){ case 0xF187 { FuncDisplay("ECU系统名称"); FuncDisplay(string.str(string.pack(table.slice(data,3)))); + g22data["F187"] = string.str(string.pack(table.slice(data,3))); } case 0xF198 { diff --git a/CAN_Bootloader/user/DiagBootcode.aardio b/CAN_Bootloader/user/DiagBootcode.aardio index b6134c8..9ef9b73 100644 --- a/CAN_Bootloader/user/DiagBootcode.aardio +++ b/CAN_Bootloader/user/DiagBootcode.aardio @@ -204,12 +204,26 @@ FuncBootSeq = function(){ boottime = 1; if(sendstate == 0){ //FuncSendBlockInit(0); - FuncReadDID(0xF186); + g22data = {}; + FuncReadDID(0xF187); FuncClearState(); } else { var ret = FuncWait(0x22); - nextstate(0); + if(g22data["F187"]!= null){ + if(g22data["F187"] == "RP-01"){ + nextstate(0); + } + else { + FuncDisplay("型号错误"); + FuncStopBoot(); + thread.command.$SendEnd(false); + boottimer.disable(); + } + + + } + } } case 1 { @@ -228,8 +242,20 @@ FuncBootSeq = function(){ FuncClearState(); } else { - //var ret = FuncWait(0x22); - nextstate(0); + var ret = FuncWait(0x22); + if(g22data["F193"]!= null){ + if(g22data["F193"] == "HW01"){ + nextstate(0); + } + else { + FuncDisplay("硬件错误"); + FuncStopBoot(); + thread.command.$SendEnd(false); + boottimer.disable(); + } + + + } } } case 3 { @@ -411,8 +437,8 @@ FuncBootSeq = function(){ } else { delaycount += 1; - if(delaycount > 100){ - nextstate(0);//延时1S + if(delaycount > 10){ + nextstate(0);//延时0.1S } } @@ -420,7 +446,7 @@ FuncBootSeq = function(){ case 20 { if(sendstate == 0){//复位 FuncClearState(); - FuncReq11(0x03); + FuncReq11(0x01); } else { var ret = FuncWait(0x11); @@ -435,7 +461,7 @@ FuncBootSeq = function(){ } else { delaycount += 1; - if(delaycount > 200){ + if(delaycount > 20){ nextstate(0);//延时1S }