v0.7:增加速度可调
This commit is contained in:
parent
a32c87b161
commit
393e555806
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<project ver="10" name="CAN_Bootloader" libEmbed="true" icon="res\icon.ico" ui="win" output="CAN_Bootloader.exe" CompanyName="单位名称" FileDescription="CAN_Bootloader" LegalCopyright="Copyright (C) 作者 2022" ProductName="CAN_Bootloader" InternalName="CAN_Bootloader" FileVersion="0.0.0.03" ProductVersion="0.0.0.03" publishDir="/dist/" dstrip="true" local="false" ignored="false">
|
||||
<project ver="10" name="CAN_Bootloader" libEmbed="true" icon="res\icon.ico" ui="win" output="CAN_Bootloader.exe" CompanyName="单位名称" FileDescription="CAN_Bootloader" LegalCopyright="Copyright (C) 作者 2022" ProductName="CAN_Bootloader" InternalName="CAN_Bootloader" FileVersion="0.0.0.04" ProductVersion="0.0.0.04" publishDir="/dist/" dstrip="true" local="false" ignored="false">
|
||||
<file name="main.aardio" path="main.aardio" comment="main.aardio"/>
|
||||
<folder name="资源文件" path="res" embed="true" local="false" ignored="false">
|
||||
<file name="icon.ico" path="res\icon.ico" comment="res\icon.ico"/>
|
||||
|
@ -13,6 +13,8 @@ V0.2_20230321: 修复右板无法刷写,增加点亮功能,增加更改履
|
||||
V0.3_20230321: 修复关闭界面后程序没有完全关闭的问题
|
||||
V0.4_20230322: 修复偶发刷写卡在请求下载的问题
|
||||
V0.5_20230401: 兼容0331程序无法读DID
|
||||
V0.6_20230724: 增加读供应商ID功能,增加断开连接,增加烧写过程中禁用其他按键
|
||||
V0.7_20230724: 增加刷写速度可选功能
|
||||
*/
|
||||
|
||||
winform.button.oncommand = function(id,event){
|
||||
|
147
main.aardio
147
main.aardio
@ -2,33 +2,38 @@ import win.ui;
|
||||
/*DSG{{*/
|
||||
mainForm = win.form(text="CAN_Bootloader";right=699;bottom=465;border="dialog frame";max=false)
|
||||
mainForm.add(
|
||||
btnConnect={cls="button";text="连接";left=204;top=64;right=289;bottom=90;z=4};
|
||||
btnDiag1001={cls="button";text="默认会话";left=98;top=229;right=190;bottom=260;z=23};
|
||||
btnDiag1002={cls="button";text="boot会话";left=192;top=229;right=284;bottom=260;z=22};
|
||||
btnDiag1003={cls="button";text="扩展会话";left=286;top=229;right=378;bottom=260;z=21};
|
||||
btnFlash={cls="button";text="开始刷写";left=276;top=368;right=375;bottom=396;z=9};
|
||||
btnFresh={cls="button";text="刷新";left=204;top=28;right=288;bottom=54;z=2};
|
||||
btnOpen={cls="button";text="打开文件";left=272;top=101;right=371;bottom=129;z=8};
|
||||
btnReadF186={cls="button";text="读取当前会话";left=4;top=229;right=96;bottom=260;z=13};
|
||||
btnReadF18A={cls="button";text="供应商ID";left=98;top=304;right=190;bottom=332;z=27};
|
||||
btnReadF198={cls="button";text="读取F198";left=286;top=261;right=378;bottom=289;z=19};
|
||||
btnReadF199={cls="button";text="读取F199";left=192;top=261;right=284;bottom=289;z=20};
|
||||
btnReadHw={cls="button";text="硬件版本号";left=98;top=261;right=190;bottom=289;z=12};
|
||||
btnReadSw={cls="button";text="软件版本号";left=4;top=261;right=96;bottom=289;z=10};
|
||||
btnTest={cls="button";text="停止";left=277;top=400;right=376;bottom=428;z=11};
|
||||
button={cls="button";text="点亮";left=6;top=304;right=94;bottom=332;z=26};
|
||||
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=371;bottom=209;border=1;disabled=1;edge=1;multiline=1;wrap=1;z=14};
|
||||
edit={cls="edit";left=390;top=19;right=692;bottom=401;autovscroll=false;edge=1;multiline=1;vscroll=1;z=5};
|
||||
progress={cls="progress";left=389;top=435;right=689;bottom=463;edge=1;max=100;min=0;z=15};
|
||||
radiobutton={cls="radiobutton";text="左板";left=277;top=310;right=365;bottom=329;checked=1;z=24};
|
||||
radiobutton2={cls="radiobutton";text="右板";left=277;top=336;right=365;bottom=355;z=25};
|
||||
static={cls="static";text="设备";left=1;top=28;right=61;bottom=52;align="center";center=1;transparent=1;z=6};
|
||||
static2={cls="static";text="通道";left=1;top=66;right=61;bottom=90;align="center";center=1;transparent=1;z=7};
|
||||
static3={cls="static";text="刷写进度";left=389;top=408;right=442;bottom=428;transparent=1;z=16};
|
||||
static4={cls="static";text="烧录APP";left=13;top=108;right=85;bottom=132;center=1;transparent=1;z=17};
|
||||
static5={cls="static";text="V0.5_20230401";left=545;top=1;right=689;bottom=17;align="right";center=1;notify=1;transparent=1;z=18}
|
||||
btnConnect={cls="button";text="连接";left=204;top=64;right=289;bottom=90;z=5};
|
||||
btnDiag1001={cls="button";text="默认会话";left=98;top=229;right=190;bottom=260;z=24};
|
||||
btnDiag1002={cls="button";text="boot会话";left=192;top=229;right=284;bottom=260;z=23};
|
||||
btnDiag1003={cls="button";text="扩展会话";left=286;top=229;right=378;bottom=260;z=22};
|
||||
btnDisconnect={cls="button";text="断开";left=302;top=64;right=387;bottom=90;z=29};
|
||||
btnFlash={cls="button";text="开始刷写";left=276;top=368;right=375;bottom=396;z=10};
|
||||
btnFresh={cls="button";text="刷新";left=204;top=28;right=288;bottom=54;z=3};
|
||||
btnOpen={cls="button";text="打开文件";left=272;top=101;right=371;bottom=129;z=9};
|
||||
btnReadF186={cls="button";text="读取当前会话";left=4;top=229;right=96;bottom=260;z=14};
|
||||
btnReadF18A={cls="button";text="供应商ID";left=98;top=304;right=190;bottom=332;z=28};
|
||||
btnReadF198={cls="button";text="读取F198";left=286;top=261;right=378;bottom=289;z=20};
|
||||
btnReadF199={cls="button";text="读取F199";left=192;top=261;right=284;bottom=289;z=21};
|
||||
btnReadHw={cls="button";text="硬件版本号";left=98;top=261;right=190;bottom=289;z=13};
|
||||
btnReadSw={cls="button";text="软件版本号";left=4;top=261;right=96;bottom=289;z=11};
|
||||
btnTest={cls="button";text="停止";left=277;top=400;right=376;bottom=428;z=12};
|
||||
button={cls="button";text="点亮";left=6;top=304;right=94;bottom=332;z=27};
|
||||
cbbChannel={cls="combobox";left=58;top=64;right=191;bottom=90;edge=1;items={};mode="dropdown";z=4};
|
||||
cbbDev={cls="combobox";left=58;top=27;right=191;bottom=53;edge=1;items={};mode="dropdown";z=2};
|
||||
edFile={cls="richedit";left=8;top=131;right=371;bottom=209;border=1;disabled=1;edge=1;multiline=1;wrap=1;z=15};
|
||||
edit={cls="edit";left=390;top=19;right=692;bottom=401;autovscroll=false;edge=1;multiline=1;vscroll=1;z=6};
|
||||
groupbox={cls="groupbox";text="刷写速度";left=9;top=385;right=153;bottom=427;edge=1;z=1};
|
||||
progress={cls="progress";left=389;top=435;right=689;bottom=463;edge=1;max=100;min=0;z=16};
|
||||
radiobutton={cls="radiobutton";text="左板";left=277;top=310;right=365;bottom=329;checked=1;group=1;z=25};
|
||||
radiobutton2={cls="radiobutton";text="右板";left=277;top=336;right=365;bottom=355;z=26};
|
||||
rbSpeedHigh={cls="radiobutton";text="高";left=98;top=402;right=134;bottom=421;z=32};
|
||||
rbSpeedLow={cls="radiobutton";text="低";left=20;top=402;right=56;bottom=421;group=1;z=30};
|
||||
rbSpeedMiddle={cls="radiobutton";text="中";left=59;top=402;right=95;bottom=421;checked=1;z=31};
|
||||
static={cls="static";text="设备";left=1;top=28;right=61;bottom=52;align="center";center=1;transparent=1;z=7};
|
||||
static2={cls="static";text="通道";left=1;top=66;right=61;bottom=90;align="center";center=1;transparent=1;z=8};
|
||||
static3={cls="static";text="刷写进度";left=389;top=408;right=442;bottom=428;transparent=1;z=17};
|
||||
static4={cls="static";text="烧录APP";left=13;top=108;right=85;bottom=132;center=1;transparent=1;z=18};
|
||||
static5={cls="static";text="V0.7_20230724";left=545;top=1;right=689;bottom=17;align="right";center=1;notify=1;transparent=1;z=19}
|
||||
)
|
||||
/*}}*/
|
||||
|
||||
@ -60,6 +65,7 @@ mainForm.cbbChannel.add("通道2");
|
||||
mainForm.cbbChannel.selIndex = 1
|
||||
|
||||
|
||||
|
||||
//刷新按键
|
||||
mainForm.btnFresh.oncommand = function(id,event){
|
||||
mainForm.cbbDev.clear();//清空下拉框,防止反复刷新叠加
|
||||
@ -116,8 +122,20 @@ listener.$Connected = function(){
|
||||
mainForm.btnFresh.disabled = true;
|
||||
mainForm.cbbDev.disabled = true;
|
||||
mainForm.cbbChannel.disabled = true;
|
||||
mainForm.btnDisconnect.disabled = false;
|
||||
flag_connected = 1;
|
||||
}
|
||||
|
||||
listener.$Disconnected = function(){
|
||||
mainForm.btnConnect.disabled = false;
|
||||
mainForm.btnFresh.disabled = false;
|
||||
mainForm.cbbDev.disabled = false;
|
||||
mainForm.cbbChannel.disabled = false;
|
||||
mainForm.btnDisconnect.disabled = true;
|
||||
flag_connected = 0;
|
||||
}
|
||||
|
||||
|
||||
listener.$SendEnd = function(isSuccess){
|
||||
//timer_bootcount.disable();
|
||||
var usetime = time.now().diffsecond(starttime);
|
||||
@ -125,6 +143,7 @@ listener.$SendEnd = function(isSuccess){
|
||||
if(isSuccess == true){
|
||||
Display("刷写成功,用时 " + usetime + " S")
|
||||
}
|
||||
EnableAll();
|
||||
}
|
||||
|
||||
//线程函数
|
||||
@ -137,6 +156,8 @@ var CanThread = function(){
|
||||
//在子线程启动消息循环
|
||||
win.loopMessage(FuncLoopMsg)
|
||||
}
|
||||
//开启线程
|
||||
thrdHandle,thrdId = thread.create( CanThread );
|
||||
DiagReadDID = function(did){
|
||||
::PostThreadMessage(thrdId,110,did,0)//自定义消息
|
||||
}
|
||||
@ -200,10 +221,43 @@ mainForm.btnFlash.oncommand = function(id,event){
|
||||
starttime = time.now();
|
||||
//timer_bootcount.enable();
|
||||
DiagBootReq();
|
||||
|
||||
|
||||
DisableAll();
|
||||
}
|
||||
|
||||
DisableAll = function(){
|
||||
mainForm.btnOpen.disabled = 1;
|
||||
mainForm.btnReadF18A.disabled = 1;
|
||||
mainForm.btnReadF186.disabled = 1;
|
||||
mainForm.btnReadF198.disabled = 1;
|
||||
mainForm.btnReadF199.disabled = 1;
|
||||
mainForm.btnReadHw.disabled = 1;
|
||||
mainForm.btnReadSw.disabled = 1;
|
||||
mainForm.btnDiag1003.disabled = 1;
|
||||
mainForm.btnDiag1002.disabled = 1;
|
||||
mainForm.btnDiag1001.disabled = 1;
|
||||
mainForm.button.disabled = 1;
|
||||
mainForm.radiobutton.disabled = 1;
|
||||
mainForm.radiobutton2.disabled = 1;
|
||||
mainForm.btnFlash.disabled = 1;
|
||||
}
|
||||
EnableAll = function(){
|
||||
mainForm.btnOpen.disabled = 0;
|
||||
mainForm.btnReadF18A.disabled = 0;
|
||||
mainForm.btnReadF186.disabled = 0;
|
||||
mainForm.btnReadF198.disabled = 0;
|
||||
mainForm.btnReadF199.disabled = 0;
|
||||
mainForm.btnReadHw.disabled = 0;
|
||||
mainForm.btnReadSw.disabled = 0;
|
||||
mainForm.btnDiag1003.disabled = 0;
|
||||
mainForm.btnDiag1002.disabled = 0;
|
||||
mainForm.btnDiag1001.disabled = 0;
|
||||
mainForm.button.disabled = 0;
|
||||
mainForm.radiobutton.disabled = 0;
|
||||
mainForm.radiobutton2.disabled = 0;
|
||||
mainForm.btnFlash.disabled = 0;
|
||||
}
|
||||
|
||||
|
||||
mainForm.btnOpen.oncommand = function(id,event){
|
||||
::PostThreadMessage(thrdId,104,1,0)//自定义消息-打开文件
|
||||
}
|
||||
@ -283,6 +337,39 @@ mainForm.btnReadF18A.oncommand = function(id,event){
|
||||
DiagReadDID(0xF18A);
|
||||
}
|
||||
|
||||
thrdHandle,thrdId = thread.create( CanThread );
|
||||
mainForm.btnDisconnect.oncommand = function(id,event){
|
||||
::PostThreadMessage(thrdId,120,0,0)//自定义消息
|
||||
}
|
||||
|
||||
setSpeed = function(speed){
|
||||
::PostThreadMessage(thrdId,121,speed,0)//自定义消息
|
||||
}
|
||||
|
||||
|
||||
if(mainForm.rbSpeedLow.checked == true){
|
||||
setSpeed(1);
|
||||
}
|
||||
if(mainForm.rbSpeedMiddle.checked == true){
|
||||
setSpeed(2);
|
||||
}
|
||||
if(mainForm.rbSpeedHigh.checked == true){
|
||||
setSpeed(3);
|
||||
}
|
||||
|
||||
mainForm.rbSpeedLow.oncommand = function(id,event){
|
||||
setSpeed(1);
|
||||
}
|
||||
|
||||
mainForm.rbSpeedMiddle.oncommand = function(id,event){
|
||||
setSpeed(2);
|
||||
}
|
||||
|
||||
mainForm.rbSpeedHigh.oncommand = function(id,event){
|
||||
setSpeed(3);
|
||||
}
|
||||
|
||||
mainForm.btnDisconnect.disabled = true;
|
||||
|
||||
|
||||
mainForm.show();
|
||||
return win.loopMessage();
|
@ -9,6 +9,7 @@ DiagReqID = 0x720;//0x18dadff1;
|
||||
DiagRespID = 0x620;//0x18daf1df;
|
||||
DiagGloableID = 0x7DF;//0x18DB33F1;
|
||||
stopflag = 0;
|
||||
FlashSpeed = 1;
|
||||
//注册一个消息钩子函数
|
||||
FuncLoopMsg = function(msg){
|
||||
select(msg.message) {
|
||||
@ -73,6 +74,12 @@ FuncLoopMsg = function(msg){
|
||||
case 114 {
|
||||
FuncReq27(msg.wParam);
|
||||
}
|
||||
case 120 {
|
||||
FuncDisconnect();
|
||||
}
|
||||
case 121 {
|
||||
FuncSetSpeed(msg.wParam);
|
||||
}
|
||||
else {
|
||||
|
||||
}
|
||||
@ -119,6 +126,12 @@ FuncConnect = function(dev,chn){
|
||||
}
|
||||
}
|
||||
|
||||
FuncDisconnect = function(){
|
||||
CANHw.CloseDevice();
|
||||
thread.command.$Disconnected();
|
||||
}
|
||||
|
||||
|
||||
FuncDisplay = function(str){
|
||||
thread.command.$Display(str);//"线程" +
|
||||
}
|
||||
@ -203,6 +216,7 @@ var timedll = raw.loadDll("Winmm.dll");
|
||||
//timedll.timeBeginPeriod(1);
|
||||
var tickdll = raw.loadDll("Kernel32.dll");
|
||||
var mydelay = function(ms){
|
||||
if(ms == 0)return;
|
||||
import time.performance;
|
||||
var tk = time.performance.tick();
|
||||
while((time.performance.tick() - tk) < ms){
|
||||
@ -211,9 +225,27 @@ var mydelay = function(ms){
|
||||
|
||||
}
|
||||
|
||||
FuncSetSpeed = function(speed){
|
||||
select(speed) {
|
||||
case 1 {
|
||||
FlashSpeed = 4;
|
||||
}
|
||||
case 2 {
|
||||
FlashSpeed = 1;
|
||||
}
|
||||
case 3 {
|
||||
FlashSpeed = 0;
|
||||
}
|
||||
else {
|
||||
FlashSpeed = 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var FuncSendPackage = function(){
|
||||
timer1.disable();
|
||||
//timedll.timeBeginPeriod(1);
|
||||
timedll.timeBeginPeriod(1);
|
||||
while(#Packdata > 0)
|
||||
{
|
||||
//sleep(1);
|
||||
@ -222,12 +254,7 @@ var FuncSendPackage = function(){
|
||||
for(i=1;max;1){
|
||||
data[i+1] = table.remove(Packdata);
|
||||
}
|
||||
//thread.delay(0.5);
|
||||
|
||||
//mydelay(2);
|
||||
//timedll.timeBeginPeriod(1);
|
||||
//sleep(1);
|
||||
//
|
||||
mydelay(FlashSpeed);
|
||||
CANHw.SendMsg(PackID,data);
|
||||
//timedll.timeEndPeriod(1);
|
||||
PackNext += 1;
|
||||
@ -235,7 +262,7 @@ var FuncSendPackage = function(){
|
||||
PackNext = 0x20;
|
||||
}
|
||||
}
|
||||
|
||||
timedll.timeEndPeriod(1);
|
||||
timer1.enable();
|
||||
}
|
||||
FuncPushPackage = function(ID,data){
|
||||
|
@ -3,6 +3,7 @@
|
||||
var bootstate = 0;
|
||||
var bootcount = 0;
|
||||
var sendstate = 0;
|
||||
var FuncSendBlockApp_sendflag = 0;
|
||||
FuncWait = function(sid){
|
||||
if(RespState == (sid + 0x40)){//正响应
|
||||
//bootcount = 0;
|
||||
@ -88,6 +89,9 @@ FuncSendBlockInit = function(id){
|
||||
alldata_blocknum = len;
|
||||
block_sended = 0;
|
||||
sendblockstate = 0;
|
||||
|
||||
FuncSendBlockApp_sendflag = 0;
|
||||
//FuncDisplay("清除flag = " ++ FuncSendBlockApp_sendflag);
|
||||
return 0;
|
||||
}
|
||||
nextstate = function(val){
|
||||
@ -97,10 +101,12 @@ nextstate = function(val){
|
||||
block_sended += 1;
|
||||
}
|
||||
}
|
||||
var FuncSendBlockApp_sendflag = 0
|
||||
|
||||
FuncSendBlockApp = function(){
|
||||
//FuncDisplay("sendblockstate = " ++ sendblockstate);
|
||||
select(sendblockstate) {
|
||||
case 0{
|
||||
//FuncDisplay("flag = " ++ FuncSendBlockApp_sendflag);
|
||||
if(FuncSendBlockApp_sendflag == 0){
|
||||
FuncDisplay("请求下载");
|
||||
FuncReq34(alldata[blocknum]["address"],#alldata[blocknum]["data"]);
|
||||
|
Loading…
x
Reference in New Issue
Block a user