From 534bebb6b7c53e0864d4c950bfb13dc8278cb5b4 Mon Sep 17 00:00:00 2001 From: sunbeam Date: Wed, 18 May 2022 14:06:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9BBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/usb2canfd.aardio | 3 +-- main.aardio | 52 +++++++++++++++++++++++++++++---------- res/icon.ico | Bin 0 -> 35114 bytes user/CanThread.aardio | 17 +++++++------ user/Diag22code.aardio | 11 +++++++-- user/DiagBootcode.aardio | 4 +-- user/securety.aardio | 13 ---------- 7 files changed, 60 insertions(+), 40 deletions(-) create mode 100644 res/icon.ico diff --git a/lib/usb2canfd.aardio b/lib/usb2canfd.aardio index 8f0eea5..10f37f5 100644 --- a/lib/usb2canfd.aardio +++ b/lib/usb2canfd.aardio @@ -116,7 +116,7 @@ namespace usb2canfd{ //刷新硬件 FlashHw = function(){ - import console; + if(DllHandle = null){ //DLL为空,返回 AvailableHW = {} @@ -198,7 +198,6 @@ namespace usb2canfd{ //关闭设备 CloseDevice = function(){ - //console.print("-----------------CloseDevice ---------") if(Hwconnected == null){ return; } diff --git a/main.aardio b/main.aardio index 26e11c1..1938925 100644 --- a/main.aardio +++ b/main.aardio @@ -3,13 +3,15 @@ import win.ui; mainForm = win.form(text="CAN_Bootloader";right=599;bottom=399;border="dialog frame";max=false) mainForm.add( btnConnect={cls="button";text="连接";left=204;top=64;right=289;bottom=90;z=4}; -btnFlash={cls="button";text="开始刷写";left=147;top=198;right=246;bottom=226;z=9}; +btnFlash={cls="button";text="开始刷写";left=148;top=197;right=247;bottom=225;z=9}; btnFresh={cls="button";text="刷新";left=204;top=28;right=288;bottom=54;z=2}; btnOpen={cls="button";text="打开文件";left=32;top=197;right=131;bottom=225;z=8}; -btnReadF186={cls="button";text="读取当前会话";left=32;top=236;right=131;bottom=264;z=13}; -btnReadHw={cls="button";text="读取硬件版本号";left=147;top=276;right=246;bottom=304;z=12}; -btnReadSw={cls="button";text="读取软件版本号";left=32;top=276;right=131;bottom=304;z=10}; -btnTest={cls="button";text="停止";left=147;top=237;right=246;bottom=265;z=11}; +btnReadF186={cls="button";text="读取当前会话";left=33;top=228;right=132;bottom=256;z=13}; +btnReadF198={cls="button";text="读取F198";left=33;top=291;right=132;bottom=319;z=19}; +btnReadF199={cls="button";text="读取F199";left=148;top=291;right=247;bottom=319;z=20}; +btnReadHw={cls="button";text="读取硬件版本号";left=148;top=261;right=247;bottom=289;z=12}; +btnReadSw={cls="button";text="读取软件版本号";left=33;top=260;right=132;bottom=288;z=10}; +btnTest={cls="button";text="停止";left=148;top=229;right=247;bottom=257;z=11}; cbbChannel={cls="combobox";left=58;top=64;right=191;bottom=90;edge=1;items={};mode="dropdown";z=3}; cbbDev={cls="combobox";left=58;top=27;right=191;bottom=53;edge=1;items={};mode="dropdown";z=1}; edFile={cls="richedit";left=8;top=131;right=288;bottom=187;border=1;disabled=1;edge=1;multiline=1;wrap=1;z=14}; @@ -27,33 +29,34 @@ import win; import usb2canfd; import win.timer; -var boot_count = 0; +var boot_count = 0;//boot时间计数器 +var bootstate = false;//boot状态标志 timer_bootcount = win.timer(mainForm,100); -timer_bootcount.onTimer = function(){ +timer_bootcount.onTimer = function(){//boot时间定时器,100ms间隔 boot_count++; } -Display = function(str){ +Display = function(str){//显示日志 mainForm.edit.print(tostring(time()) + " " + str); } -mainForm.edFile.wrap = true; -CANHw = usb2canfd.USB2CANHW(); +CANHw = usb2canfd.USB2CANHW();//尝试加载CAN dll var ret = CANHw.LoadDll(); if(ret == 0){ Display("DLL加载成功"); } - +//初始化界面 mainForm.cbbChannel.add("通道1"); mainForm.cbbChannel.add("通道2"); mainForm.cbbChannel.selIndex = 1 +//刷新按键 mainForm.btnFresh.oncommand = function(id,event){ - mainForm.cbbDev.clear(); - var hwnum = CANHw.FlashHw(); + mainForm.cbbDev.clear();//清空下拉框,防止反复刷新叠加 + var hwnum = CANHw.FlashHw();//获取硬件数量 if(hwnum == 0){ mainForm.cbbDev.text = "未找到硬件" } @@ -105,6 +108,7 @@ listener.$Connected = function(){ } listener.$SendEnd = function(isSuccess){ timer_bootcount.disable(); + bootstate = false; if(isSuccess == true){ Display("刷写成功,用时 " + boot_count/10 + " S") } @@ -160,6 +164,10 @@ mainForm.btnFlash.oncommand = function(id,event){ Display("请连接设备"); return; } + if(bootstate == true){ + return ; + } + bootstate = true; mainForm.edit.text = ""; Display("开始刷写流程"); timer_bootcount.enable(); @@ -173,6 +181,24 @@ mainForm.btnOpen.oncommand = function(id,event){ ::PostThreadMessage(thrdId,104,0,0)//自定义消息-打开文件 } +//程序关闭 +mainForm.onClose = function(hwnd,message,wParam,lParam){ + ::PostThreadMessage(thrdId,105,0,0)//自定义消息 + thread.waitClose(thrdHandle); + + //PLinHw.isConnected()///待完善 + //console.print("线程已关闭") + //console.pause() +} + +mainForm.btnReadF198.oncommand = function(id,event){ + DiagReadDID(0xF198); +} + +mainForm.btnReadF199.oncommand = function(id,event){ + DiagReadDID(0xF199); +} + thrdHandle,thrdId = thread.create( CanThread ) diff --git a/res/icon.ico b/res/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..dfbb71b4c9060ee34876437bdc7695200abf6bad GIT binary patch literal 35114 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 0) { + sleep(0.3); var data = {PackNext,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xCC}; var max = #Packdata > 7 ? 7 : #Packdata; for(i=1;max;1){ data[i+1] = table.remove(Packdata); } CANHw.SendMsg(PackID,data); - sleep(0.3); + PackNext += 1; if(PackNext > 0x2f){ PackNext = 0x20; @@ -213,7 +214,7 @@ timer1.onTimer = function(){ diagresp["next"] = 0x21; table.append(diagresp["data"],table.slice(ret[i].data,4)); } - elseif(ret[i].data[1] <= 0x06){//单帧 + elseif(ret[i].data[1] <= 0x07){//单帧 //console.dumpJson() diagresp["sid"] = ret[i].data[2]; diagresp["len"] = ret[i].data[1]-1; diff --git a/user/Diag22code.aardio b/user/Diag22code.aardio index 4a33976..41436c1 100644 --- a/user/Diag22code.aardio +++ b/user/Diag22code.aardio @@ -25,13 +25,20 @@ FuncDiag22Pro = function(data){ FuncDisplay("软件版本号"); FuncDisplay(string.pack(table.slice(data,3))); } + case 0xF198 { + FuncDisplay("repair_shopcode"); + FuncDisplay(string.pack(table.slice(data,3))); + } + case 0xF199 { + FuncDisplay("installation_date"); + FuncDisplay(string.format("%x%X%x%x",data[3],data[4],data[5],data[6])); + } case 0xF186 { FuncDisplay("当前会话: " + tostring(data[3])); - } - case !=0 { } else { + FuncDisplay("未知DID - " + did); } } diff --git a/user/DiagBootcode.aardio b/user/DiagBootcode.aardio index ab3ca43..9f7a881 100644 --- a/user/DiagBootcode.aardio +++ b/user/DiagBootcode.aardio @@ -31,7 +31,7 @@ FuncWait = function(sid){ } bootcount += 1; if(bootcount >= 400){ - FuncDisplay("超时 " + tostring(sid,16)); + FuncDisplay("步骤" + bootstate + "超时 " + tostring(sid,16)); thread.command.$SendEnd(false); boottimer.disable(); return 3;//超时 @@ -259,7 +259,7 @@ FuncBootSeq = function(){ case 9 { if(sendstate == 0){ FuncClearState(); - FuncDIDWriteStr(0xf198,"0123456789abcdef1234");//写入repair_shopcode + FuncDIDWriteStr(0xf198,"Daming_CANBootload ");//写入repair_shopcode } else { diff --git a/user/securety.aardio b/user/securety.aardio index c5e83c3..eda5f7e 100644 --- a/user/securety.aardio +++ b/user/securety.aardio @@ -1,4 +1,3 @@ -import console; var g_aes128_cbc_mask = @@ -236,14 +235,9 @@ AES128_CBC_XTIME = function(x){ showtab = function(tab,name){ - console.log(name); var str = name + " = "; for(k,v in tab){ - //console.log(tostring(v,16)); - //str += tostring(v,16); - //str += " " str = string.format("[%d] = %x",k,v ); - console.log(str); } //console.log(str); } @@ -272,10 +266,3 @@ GenerateKeyEx = function(seed,level){ //console.log("l_id = " + l_id) } - -/* -var ret = GenerateKeyEx({0xff,0xff,0xff,0xff},0x01); -console.log("结果") -showtab(ret,"key"); -console.pause(true); -*/ \ No newline at end of file