上位机限制型号及硬件版本

This commit is contained in:
sunbeam 2024-12-11 14:18:42 +08:00
parent 55c97598a0
commit 58934cc434
4 changed files with 40 additions and 11 deletions

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<project ver="10" name="CAN_Bootloader" libEmbed="true" icon="..." ui="win" output="CAN_Bootloader.exe" CompanyName="单位名称" FileDescription="CAN_Bootloader" LegalCopyright="Copyright (C) 作者 2022" ProductName="CAN_Bootloader" InternalName="CAN_Bootloader" FileVersion="0.0.0.6" ProductVersion="0.0.0.6" publishDir="/dist/" dstrip="false" local="false" ignored="false"> <project ver="10" name="CAN_Bootloader" libEmbed="true" icon="..." ui="win" output="CAN_Bootloader.exe" CompanyName="单位名称" FileDescription="CAN_Bootloader" LegalCopyright="Copyright (C) 作者 2022" ProductName="CAN_Bootloader" InternalName="CAN_Bootloader" FileVersion="0.0.0.7" ProductVersion="0.0.0.7" publishDir="/dist/" dstrip="false" local="false" ignored="false">
<file name="main.aardio" path="main.aardio" comment="main.aardio"/> <file name="main.aardio" path="main.aardio" comment="main.aardio"/>
<folder name="资源文件" path="res" embed="true" local="false" ignored="false"/> <folder name="资源文件" path="res" embed="true" local="false" ignored="false"/>
<folder name="窗体文件" path="dlg" comment="目录" embed="true" local="false" ignored="false"> <folder name="窗体文件" path="dlg" comment="目录" embed="true" local="false" ignored="false">

View File

@ -223,7 +223,7 @@ var FuncSendPackage = function(){
while(#Packdata > 0) while(#Packdata > 0)
{ {
//sleep(1); //sleep(1);
delay(1); delay(0.5);
var data = {PackNext,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC}; var data = {PackNext,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC};
var max = #Packdata > 7 ? 7 : #Packdata; var max = #Packdata > 7 ? 7 : #Packdata;
for(i=1;max;1){ for(i=1;max;1){

View File

@ -11,7 +11,7 @@ FuncReadDID = function(did){
//console.log("ret = " + ret); //console.log("ret = " + ret);
//FuncDisplay("did = " + tostring(did,16)); //FuncDisplay("did = " + tostring(did,16));
} }
g22data = {};
//接收 //接收
FuncDiag22Pro = function(data){ FuncDiag22Pro = function(data){
//console.log("诊断22服务") //console.log("诊断22服务")
@ -31,10 +31,12 @@ FuncDiag22Pro = function(data){
case 0xF193 { case 0xF193 {
FuncDisplay("硬件版本号"); FuncDisplay("硬件版本号");
FuncDisplay(string.str(string.pack(table.slice(data,3)))); FuncDisplay(string.str(string.pack(table.slice(data,3))));
g22data["F193"] = string.str(string.pack(table.slice(data,3)));
} }
case 0xF195 { case 0xF195 {
FuncDisplay("软件版本号"); FuncDisplay("软件版本号");
FuncDisplay(string.str(string.pack(table.slice(data,3)))); FuncDisplay(string.str(string.pack(table.slice(data,3))));
g22data["F195"] = string.str(string.pack(table.slice(data,3)));
} }
case 0xF191 { case 0xF191 {
FuncDisplay("编译时间"); FuncDisplay("编译时间");
@ -43,6 +45,7 @@ FuncDiag22Pro = function(data){
case 0xF187 { case 0xF187 {
FuncDisplay("ECU系统名称"); FuncDisplay("ECU系统名称");
FuncDisplay(string.str(string.pack(table.slice(data,3)))); FuncDisplay(string.str(string.pack(table.slice(data,3))));
g22data["F187"] = string.str(string.pack(table.slice(data,3)));
} }
case 0xF198 { case 0xF198 {

View File

@ -204,13 +204,27 @@ FuncBootSeq = function(){
boottime = 1; boottime = 1;
if(sendstate == 0){ if(sendstate == 0){
//FuncSendBlockInit(0); //FuncSendBlockInit(0);
FuncReadDID(0xF186); g22data = {};
FuncReadDID(0xF187);
FuncClearState(); FuncClearState();
} }
else { else {
var ret = FuncWait(0x22); var ret = FuncWait(0x22);
if(g22data["F187"]!= null){
if(g22data["F187"] == "RP-01"){
nextstate(0); nextstate(0);
} }
else {
FuncDisplay("型号错误");
FuncStopBoot();
thread.command.$SendEnd(false);
boottimer.disable();
}
}
}
} }
case 1 { case 1 {
if(sendstate == 0){ if(sendstate == 0){
@ -228,9 +242,21 @@ FuncBootSeq = function(){
FuncClearState(); FuncClearState();
} }
else { else {
//var ret = FuncWait(0x22); var ret = FuncWait(0x22);
if(g22data["F193"]!= null){
if(g22data["F193"] == "HW01"){
nextstate(0); nextstate(0);
} }
else {
FuncDisplay("硬件错误");
FuncStopBoot();
thread.command.$SendEnd(false);
boottimer.disable();
}
}
}
} }
case 3 { case 3 {
if(sendstate == 0){ if(sendstate == 0){
@ -411,8 +437,8 @@ FuncBootSeq = function(){
} }
else { else {
delaycount += 1; delaycount += 1;
if(delaycount > 100){ if(delaycount > 10){
nextstate(0);//延时1S nextstate(0);//延时0.1S
} }
} }
@ -420,7 +446,7 @@ FuncBootSeq = function(){
case 20 { case 20 {
if(sendstate == 0){//复位 if(sendstate == 0){//复位
FuncClearState(); FuncClearState();
FuncReq11(0x03); FuncReq11(0x01);
} }
else { else {
var ret = FuncWait(0x11); var ret = FuncWait(0x11);
@ -435,7 +461,7 @@ FuncBootSeq = function(){
} }
else { else {
delaycount += 1; delaycount += 1;
if(delaycount > 200){ if(delaycount > 20){
nextstate(0);//延时1S nextstate(0);//延时1S
} }