Files
python_tools/web/layui/epro2_cmd.js

1357 lines
35 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var epro2_oper = {
cmd:0,
ctr_cmd:0,
comm_port:"",
comm_baud:"",
comm_parity:-1,
comm_stopbit:-1,
vbus_mod:1,
//uid:"581900230A00801",
uid:"AD23581028A00001",
pwd:"1234",
delayfire:-1,
amend_v:0,
sorftenhance:1,
commaddr:21,
mtp_r_bgaddr:0,//0x3C00,
mtp_r_len:8,
mtp_w_addr:0,//0x3C00,
mtp_w_data:"",
sys_states:"",
ack_sp:9,
ack_cur:0,
firmware:"",
chg_class:0,
chg_group:0,
blast_delay:0,
auset_addr_fac:400,
run_cfg_value:"",
cycle_bgaddr:501,
cycle_endaddr:900,
cycle_group_count:50,
cycle_bgdelay:0,
cycle_stepdelay:50,
//cycle_bguid:"581900230A00801",
cycle_bguid:"AD23581028A00001",
cycle_rundelay:10,
cycle_runcount:1,
cycle_test:0,
ep2_high_voltage:85,
ep2_middle_voltage:50,
ep2_heartbeat_sw:1,
};
var ep2_qthandle = null;
var ep2_excuedcmd;
var ep2_excued_rtv;
var ep2_cmd_excue_busy = 0
var ep2_bus_cur = 0;
var ep2_recive_buf = [];
var EP2_CMM_RATE = 500;
var ep2_log_write_flag = 0;
function Ep2_Start_Comm()
{
console.log("Ep2_Start_Comm ");
if( typeof(ep2_qthandle) != "undefined" && ep2_qthandle != null )
{
ep2_qthandle.SearchCommport();
console.log("SearchCommport ");
}
}
function Ep2_Open_CommPort(main_serial)
{
epro2_oper.comm_port =main_serial.comm_port;
epro2_oper.comm_baud =main_serial.comm_baud;
epro2_oper.comm_parity =main_serial.comm_parity;
epro2_oper.comm_stopbit = main_serial.comm_stopbit;
Main_Close_CommPort_Select();
var json_str = JSON.stringify(epro2_oper);
console.log(json_str);
if( typeof(ep2_qthandle) != "undefined" && ep2_qthandle != null )
{
ep2_qthandle.OpenCommPort(json_str);
}
}
function ep2_getInput()
{
epro2_oper.uid = $("#ep2_uid").val();
epro2_oper.pwd = $("#ep2_pwd").val();
epro2_oper.delayfire = parseInt($("#ep2_delayfire").val(),10);
epro2_oper.commaddr = parseInt($("#ep2_commaddr").val(),10);
epro2_oper.mtp_r_bgaddr = parseInt($("#ep2_mtp_r_bgaddr").val(),16);
epro2_oper.mtp_r_len = parseInt($("#ep2_mtp_r_len").val(),10);
epro2_oper.mtp_w_addr = parseInt($("#ep2_mtp_w_addr").val(),16);
epro2_oper.mtp_w_data = $("#ep2_mtp_w_data").val();
epro2_oper.auset_addr_fac = parseInt($("#ep2_auset_addr_fac").val(),10);
epro2_oper.run_cfg_value = $("#ep2_run_cfg_value").val();
epro2_oper.cycle_bgaddr = parseInt($("#ep2_cycle_bgaddr").val(),10);
epro2_oper.cycle_endaddr = parseInt($("#ep2_cycle_endaddr").val(),10);
epro2_oper.cycle_group_count = parseInt($("#ep2_cycle_group_count").val(),10);
epro2_oper.cycle_bgdelay = parseInt($("#ep2_cycle_bgdelay").val(),10);
epro2_oper.cycle_stepdelay = parseInt($("#ep2_cycle_stepdelay").val(),10);
epro2_oper.sys_states = $("#ep2_sys_states").val();
epro2_oper.cycle_bguid = $("#ep2_cycle_bguid").val();
epro2_oper.cycle_rundelay = parseInt($("#ep2_cycle_rundelay").val(),10);
epro2_oper.cycle_runcount = parseInt($("#ep2_cycle_runcount").val(),10);
epro2_oper.ep2_high_voltage = parseInt($("#ep2_high_voltage").val(),10);
epro2_oper.ep2_middle_voltage = parseInt($("#ep2_middle_voltage").val(),10);
epro2_oper.chg_class = parseInt($("#ep2_chg_class").val(),10);
epro2_oper.chg_group = parseInt($("#ep2_chg_group").val(),10);
epro2_oper.blast_delay = parseInt($("#ep2_blast_delay").val(),10);
epro2_oper.ack_cur = parseInt($("#ep2_ack_cur").val(),10);
epro2_oper.ack_sp = parseInt($("#ep2_ack_sp").val(),10);
}
async function ep2_cmd(cmd)
{
if(ep2_cmd_excue_busy > 0)
{
ShowCommMes("正在执行命令",MesgType.MESG_TYPE_INFO);
return;
}
ep2_cmd_excue_busy = 1;
ep2_getInput();
epro2_oper.cmd = cmd;
await Ep2_ExcueOperCmd();
ep2_cmd_excue_busy = 0;
}
function Ep2_Show_Def()
{
$("#ep2_uid").val(epro2_oper.uid);
$("#ep2_pwd").val(epro2_oper.pwd);
if(epro2_oper.delayfire > 0 && epro2_oper.delayfire < 30000 )
{
$("#ep2_delayfire").val(epro2_oper.delayfire);
}else{
$("#ep2_delayfire").val('');
}
$("#ep2_commaddr").val(epro2_oper.commaddr);
$("#ep2_mtp_r_bgaddr").val(Int2HexStr(epro2_oper.mtp_r_bgaddr,"",0));
$("#ep2_mtp_r_len").val(epro2_oper.mtp_r_len);
$("#ep2_mtp_w_addr").val(Int2HexStr(epro2_oper.mtp_w_addr,"",0));
$("#ep2_mtp_w_data").val(epro2_oper.mtp_w_data);
$("#ep2_auset_addr_fac").val(epro2_oper.auset_addr_fac);
$("#ep2_run_cfg_value").val(epro2_oper.run_cfg_value);
$("#ep2_cycle_bgaddr").val(epro2_oper.cycle_bgaddr);
$("#ep2_cycle_endaddr").val(epro2_oper.cycle_endaddr);
$("#ep2_cycle_group_count").val(epro2_oper.cycle_group_count);
$("#ep2_cycle_bgdelay").val(epro2_oper.cycle_bgdelay);
$("#ep2_cycle_stepdelay").val(epro2_oper.cycle_stepdelay);
$("#ep2_cycle_bguid").val(epro2_oper.cycle_bguid);
$("#ep2_cycle_rundelay").val(epro2_oper.cycle_rundelay);
$("#ep2_cycle_runcount").val(epro2_oper.cycle_runcount);
$("#ep2_sys_amend").val(epro2_oper.amend_v);
$("#ep2_sys_states").val(epro2_oper.sys_states);
$("#ep2_firmware").val(epro2_oper.firmware);
$("#ep2_high_voltage").val(epro2_oper.ep2_high_voltage);
$("#ep2_middle_voltage").val(epro2_oper.ep2_middle_voltage);
$("#ep2_chg_group").val(epro2_oper.chg_group);
$("#ep2_chg_class").val(epro2_oper.chg_class);
$("#ep2_blast_delay").val(epro2_oper.blast_delay);
$("#ep2_ack_cur").val(epro2_oper.ack_cur);
$("#ep2_ack_sp").val(epro2_oper.ack_sp );
}
function Ep2_Init()
{
var form = layui.form;
form.render();
form.on('switch', function(data){
var id = data.elem.id;
if(id == "mes_save_log")
{
layer.tips('日志记录 '+ (this.checked ? 'true' : 'false'), data.othis);
if(this.checked )
{
ep2_log_write_flag = 1;
}else{
ep2_log_write_flag = 0;
}
}
// else if(id == "soft_enhace")
// {
// layer.tips('软件抗震 '+ (this.checked ? 'true' : 'false'), data.othis)
// }
else if(id == "ep2_cycle_test"){
layer.tips('启动循环测试 '+ (this.checked ? 'true' : 'false'), data.othis);
if(this.checked){
epro2_oper.cycle_test = 1;
}else{
epro2_oper.cycle_test = 0;
}
}
});
// form.on('radio', function(data){
// var value = data.value;
// if(value == "DMod" )
// {
// layer.tips('差分通讯', data.othis)
// }else if(value == "SMod")
// {
// layer.tips('单端通讯', data.othis)
// }
// });
if(typeof(qchannel) != "undefined" && qchannel != null )
{
if(ep2_qthandle != null && typeof(ep2_qthandle) != "undefined")
{
console.log("Ep2_Inited 1 OK ---");
}else{
ep2_qthandle = qchannel.objects.ep2_qthandle;
if((typeof(ep2_qthandle) != "undefined") && (ep2_qthandle != null) )
{
console.log("Ep2_Init OK ---");
ep2_qthandle.ShowCommMes.connect(function(mesg,type){
ShowCommMes(mesg,type);
});
ep2_qthandle.ShowCommport.connect(function(jsoninfo){
Main_ShowCommport(jsoninfo);
});
ep2_qthandle.EP2Comm_Recive.connect(function(jsoninfo){
EP2Comm_Recive(jsoninfo);
});
}
}
}
Ep2_Show_Def();
PrapareUIDFeatrue(Str2Bytes(epro2_oper.uid));
}
var ep2_heartbeat_head = Str2Bytes("HBT");
function EP2_HeartBeat(frame_buf)
{
if(frame_buf[6] != 0x02)
{
return;
}
var bus_volate = frame_buf[10] + (frame_buf[11] << 8);
bus_volate = bus_volate / 10;
bus_volate = bus_volate.toFixed(1);
var bus_mvolate = frame_buf[12] + (frame_buf[13] << 8);
bus_mvolate = bus_mvolate / 10;
bus_mvolate = bus_mvolate.toFixed(1);
var bus_v = frame_buf[14] + (frame_buf[15] << 8);
bus_v = bus_v / 10;
bus_v = bus_v.toFixed(1);
var bus_current = frame_buf[16] + (frame_buf[17] << 8)+(frame_buf[18] << 16)+(frame_buf[19] << 24);
bus_current = bus_current/1000;
bus_current = bus_current.toFixed(3);
var mes = "高电平电压 "+bus_volate+"V 中电平"+bus_mvolate+"V 总线输出 "+bus_v+"V 总线电流 "+bus_current+"mA"
ep2_bus_cur = bus_current;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO,ep2_log_write_flag);
}
function EP2Comm_Recive(jsoninfo)
{
var frame = JSON.parse(jsoninfo);
var frame_str = "Rx: "+ Bytes2Str(frame) ;
if(frame[6] == 0x02 && frame.length > 19)
{
EP2_HeartBeat(frame);
return;
}else{
ep2_recive_buf = frame;
ep2_excued_rtv = frame[9];
ep2_excuedcmd = frame[7] + (frame[8] << 8);
ShowCommMes(frame_str,MesgType.MESG_TYPE_INFO);
BTInfoCount(1);
if(ep2_excued_rtv != 0)
{
BTErrorCount(1);
}
}
}
function Ep2_CmdData(addr,func,param,read_len,wr_delay,rate)
{
var cmdbuf = [];
var w_len = param.length+2;//参数+包头
epro2_oper.ctr_cmd = 3;
cmdbuf[0] = read_len & 0xFF;
cmdbuf[1] = (read_len >> 8) & 0xFF;
cmdbuf[2] = w_len & 0xFF;
cmdbuf[3] = (w_len >> 8) & 0xFF;
cmdbuf[4] = rate & 0xFF;
cmdbuf[5] = (rate >> 8) & 0xFF;
cmdbuf[6] = wr_delay;
addr <<= 6;
addr &= 0xFFFC;
addr |= (func & 0x3F);
cmdbuf[7] = addr & 0xFF;
cmdbuf[8] = (addr >> 8) & 0xFF;
for(var index = 0; index < param.length; index++)
{
cmdbuf[9+index] = param[index];
}
return cmdbuf;
}
var Ep2_Cmd_Head = "Ew";
function Ep2_SendCmd(cmd_buf)
{
var buf = Str2Bytes(Ep2_Cmd_Head);
buf[2] = 0; //数据长度
buf[3] = 0; //数据长度
buf[4] = 0; //源地址
buf[5] = 0; //目标地址
buf[6] =epro2_oper.ctr_cmd;
buf[7] =epro2_oper.cmd & 0x0FF;
buf[8] =(epro2_oper.cmd >> 8) & 0xFF;
for(var index = 0; index < cmd_buf.length;index++)
{
buf[9+index] = cmd_buf[index];
}
var send_len = buf.length + 1;
buf[2] = send_len & 0x0FF;
buf[3] = (send_len >> 8) & 0x0FF;
buf[buf.length] = Epj_CalcCrc8(buf,buf.length);
var json_str = JSON.stringify(buf);
console.log(json_str);
if( typeof(ep2_qthandle) != "undefined" && ep2_qthandle != null )
{
ep2_qthandle.Ep2_SendData(json_str);
}
var mes = "Tx:" + Bytes2Str(buf);
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
}
//同步非阻塞延时
async function Ep2_WaitCmdExcu( cmd, time_out)
{
if(time_out == 0)
return 0;
time_out = parseInt ( (time_out+19)/20);
ep2_excued_rtv = 0;
while((time_out > 0) && (ep2_excued_rtv < 1))
{
if(ep2_excuedcmd == cmd)
{
break;
}
await TransSleep(20);
time_out--;
}
if(ep2_excued_rtv != 0)
{
ShowCommMes("命令执行失败",MesgType.MESG_TYPE_ERROR);
// epro2_oper.cycle_test = 0;//停止循环测试
//epro2_oper.cycle_runcount = 1;
return 2;
}
if(time_out > 0 )
{
return 0;
}
else
{
ShowCommMes("通信超时",MesgType.MESG_TYPE_ERROR);
//epro2_oper.cycle_test = 0;//停止循环测试
epro2_oper.cycle_runcount = 1;
return 1;
}
}
async function Ep2_HeartBeat_SW()
{
var cmd_buf = [];
epro2_oper.ep2_heartbeat_sw ^= 0x01;
epro2_oper.ctr_cmd = 2;
cmd_buf[0] = epro2_oper.ep2_heartbeat_sw;
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0)
{
if(epro2_oper.ep2_heartbeat_sw > 0)
{
ShowCommMes("开启心跳",MesgType.MESG_TYPE_INFO);
}else{
ShowCommMes("关闭心跳",MesgType.MESG_TYPE_INFO);
}
}
}
async function Ep2_BusSwitch(sw)
{
var cmd_buf = [];
cmd_buf[0] = sw;
cmd_buf[1] = epro2_oper.ep2_high_voltage & 0x0FF;
cmd_buf[2] = (epro2_oper.ep2_high_voltage >> 8) & 0x0FF;
cmd_buf[3] = epro2_oper.ep2_middle_voltage & 0x0FF;
cmd_buf[4] = (epro2_oper.ep2_middle_voltage >> 8) & 0x0FF;
ep2_excuedcmd = 0;
epro2_oper.ctr_cmd = 1;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,5000);
if(rtv == 0)
{
if(sw > 0)
{
ShowCommMes("开启总线",MesgType.MESG_TYPE_INFO);
}else{
ShowCommMes("关闭总线",MesgType.MESG_TYPE_INFO);
}
}
}
async function Ep2_WriteMTPCmd(comaddr,regaddr,w_len,param)
{
var cmd_buf = [];
epro2_oper.ctr_cmd = 3;
regaddr >>= 2; //地址除以4
cmd_buf[0] = regaddr & 0xFF;
cmd_buf[1] = w_len;
for(var index = 0; index < param.length;index++)
{
cmd_buf[2+index] = param[index];
}
cmd_buf = Ep2_CmdData(comaddr,63,cmd_buf,1,(w_len*2+4),EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
return rtv;
}
async function Ep2_ReadMTPCmd(comaddr,regaddr,r_len)
{
var cmd_buf = [];
regaddr >>= 2; //地址除以4
cmd_buf[0] = regaddr & 0xFF;
cmd_buf[1] = r_len;
cmd_buf = Ep2_CmdData(comaddr,62,cmd_buf,r_len+1,2,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
var read_buf = [];
if(rtv == 0)
{
read_buf = ArrayCopy(ep2_recive_buf,read_buf,10,r_len);
var mes = "地址 "+comaddr+ " MTP 数据" + Bytes2Str(read_buf) ;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
}
return read_buf;
}
async function Ep2_SetAddrByUID()
{
var uid_arr = Str2Bytes(epro2_oper.uid);
//var feature = UidCode_YM2JQ(uid_arr);
var feature = UidCode_YM2JQ_2(uid_arr);
cmd_buf = Ep2_CmdData(epro2_oper.commaddr,21,feature,1,4,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0)
{
var mes = "UID: "+epro2_oper.uid+ " 设置地址 "+ epro2_oper.commaddr +" 成功";
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
}else{
var mes = "UID: "+epro2_oper.uid+ " 设置地址失败";
ShowCommMes(mes,MesgType.MESG_TYPE_ERROR);
}
}
async function Ep2_FastCfgCmd(uid,addr,delay)
{
var uid_arr = Str2Bytes(uid);
//var feature = UidCode_YM2JQ(uid_arr);
var feature = UidCode_YM2JQ_2(uid_arr);
var temp_buf = [];
temp_buf[0] = delay & 0xFF;
temp_buf[1] = (delay >> 8) & 0xFF;
ArrayAppend(feature,temp_buf,2,feature.length);
cmd_buf = Ep2_CmdData(addr,22,temp_buf,2,70,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0)
{
var delay_ = (ep2_recive_buf[11] & 0xFF) << 8;
delay_ += (ep2_recive_buf[10] & 0xFF);
epro2_oper.delayfire = delay_;
$("#ep2_delayfire").val(delay_);
var mes = "地址 "+ addr+" 延时:" + delay_;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
}
return rtv;
}
async function Ep2_CheckSelfCmd(addr)
{
var param = [];
switch(epro2_oper.cmd)
{
case 4: param[0] = 0 ; break;
case 5: param[0] = 1 ;break;
case 6: param[0] = 2 ;break;
}
var cmd_buf = Ep2_CmdData(addr,32,param,0,4,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
return rtv;
}
async function Ep2_ReadCapChgT()
{
var param = [];
param[0] = 8;
var cmd_buf = Ep2_CmdData(epro2_oper.commaddr,32,param,5,4,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0)
{
var read_buf = [];
ArrayCopy(ep2_recive_buf,read_buf,10,4);
var capT = read_buf[3];
capT <<= 8;
capT += read_buf[2];
capT <<= 8;
capT += read_buf[1];
capT <<= 8;
capT += read_buf[0];
capT >>= 2;
var mes ;
mes = "地址 "+epro2_oper.commaddr +" 电容充电时间us "+ capT;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
return;
}
}
async function Ep2_ReadFirmwareCmd(addr)
{
var param = [];
var cmd_buf = Ep2_CmdData(addr,8,4,param,8);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
param = [];
if(rtv == 0)
{
ArrayCopy(ep2_recive_buf,param,11,4);
epro2_oper.firmware = Bytes2Str(param);
var mes = "地址 "+ addr+" 固件版本 "+ epro2_oper.firmware;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
$("#ep2_firmware").val(epro2_oper.firmware);
}
return rtv;
}
async function Ep2_ReadSysStatesCmd(addr)
{
var param = [];
var cmd_buf = Ep2_CmdData(addr,28,param,5,80,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0)
{
var states_buf = [];
ArrayCopy(ep2_recive_buf,states_buf,10,4);
epro2_oper.sys_states = Bytes2Str(states_buf);
$("#ep2_sys_states").val(epro2_oper.sys_states);
var mes =" 状态值 "+ epro2_oper.sys_states;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
}else{
var mes ="地址 "+ addr +" 读状态失败 ";
ShowCommMes(mes,MesgType.MESG_TYPE_ERROR);
}
return rtv;
}
async function Ep2_VerifiPwdCmd(addr,pwd)
{
var pwd_buf = Str2Bytes(pwd);
var cmd_buf = Ep2_CmdData(addr,24,pwd_buf,1,2,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
return rtv;
}
async function Ep2_ClkAmend()
{
var cycle = 1000;
var count = 600;
var w_len = 2;
var wr_delay = 8;
var addr = 0;
var func = 29;
var cmdbuf = [];
epro2_oper.ctr_cmd = 4;
cmdbuf[0] = w_len & 0xFF;
cmdbuf[1] = (w_len >> 8) & 0xFF;
cmdbuf[2] = cycle & 0xFF;
cmdbuf[3] = (cycle >> 8) & 0xFF;
cmdbuf[4] = count & 0xFF;
cmdbuf[5] = (count >> 8) & 0xFF;
cmdbuf[6] = EP2_CMM_RATE & 0xFF;
cmdbuf[7] = (EP2_CMM_RATE >> 8) & 0xFF;
cmdbuf[8] = wr_delay;
addr <<= 6;
addr &= 0xFFFC;
addr |= (func & 0x3F);
cmdbuf[9] = addr & 0xFF;
cmdbuf[10] = (addr >> 8) & 0xFF;
ep2_excuedcmd = 0;
Ep2_SendCmd(cmdbuf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,2000);
return rtv;
}
/*
* type 巡检类型 0 起爆巡检 1 在线巡检
*/
async function Ep2_Inspect(bgaddr,endaddr,state_arr)
{
var cmdbuf = [];
var cmd;
var wr_delay = 8;
var addr = 0;
var func = 30;
var w_len = 8;
var bitcount = endaddr - bgaddr;
epro2_oper.ctr_cmd = 5;
cmdbuf[0] = EP2_CMM_RATE & 0xFF;
cmdbuf[1] = (EP2_CMM_RATE >> 8) & 0xFF;
cmdbuf[2] = w_len;
cmdbuf[3] = wr_delay;
cmdbuf[4] = bitcount & 0xFF;
cmdbuf[5] = (bitcount >> 8) & 0xFF;
addr <<= 6;
addr &= 0xFFFC;
addr |= (func & 0x3F);
cmdbuf[6] = addr & 0xFF;
cmdbuf[7] = (addr >> 8) & 0xFF;
cmdbuf[8] = bgaddr&0xFF;
cmdbuf[9] = (bgaddr >> 8)&0xFF;
cmdbuf[10] = endaddr&0xFF;
cmdbuf[11] = (endaddr >> 8) &0xFF;
cmdbuf[12] = state_arr[0];
cmdbuf[13] = state_arr[1];
var rtd = {
rtv : 1,
ok_addr:[],
ng_addr:[],
};
ep2_excuedcmd = 0;
Ep2_SendCmd(cmdbuf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,3000);
rtd.rtv = rtv;
if(rtv != 0)
return rtd;
var ok_addr_buf = [];
var ng_addr_buf = [];
var index = 10;//返回数据获取
var inspect_addr = bgaddr;
var ok_index = 0;
var ng_index = 0;
while(inspect_addr < endaddr)
{
var data = ep2_recive_buf[index];//?待定
index++;
for(var i = 0; i < 8 ;i++)
{
if(inspect_addr > endaddr)
{
break;
}
if((data & 0x01) > 0)
{
ok_addr_buf[ok_index++] = inspect_addr;
}else{
ng_addr_buf[ng_index++] = inspect_addr;
}
inspect_addr++;
data >>= 1;
}
}
rtd.ok_addr = ok_addr_buf;
rtd.ng_addr = ng_addr_buf;
return rtd;
}
async function Ep2_DoCmd(addr,cmd)
{
var param = [];
var cmd_buf = Ep2_CmdData(addr,8,cmd,param,0);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
return rtv;
}
async function Ep2_Charge()
{
var param = [];
param[0] = epro2_oper.chg_class;
param[1] = epro2_oper.chg_group;
var cmd_buf = Ep2_CmdData(0,26,param,0,0,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
ShowCommMes("执行充电成功",MesgType.MESG_TYPE_INFO);
}
}
async function Ep2_ChipReset()
{
var param = [];
param[0] =0x55;
param[1] = 0xAA;
param[2] = 0x66;
param[3] = 0x99;
var cmd_buf = Ep2_CmdData(0,61,param,0,0,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
ShowCommMes("执行充电成功",MesgType.MESG_TYPE_INFO);
}
if(rtv == 0){
ShowCommMes("芯片复位执行成功",MesgType.MESG_TYPE_INFO);
}
}
async function Ep2_EnMTPWrite(flag)
{
var param = [];
param[0] = flag;
var cmd_buf = Ep2_CmdData(0,40,param,0,0,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
if(flag == 1)
{
ShowCommMes("MTP写使能成功",MesgType.MESG_TYPE_INFO);
}else{
ShowCommMes("MTP写失能成功",MesgType.MESG_TYPE_INFO);
}
}else{
ShowCommMes("失/使能操作失败",MesgType.MESG_TYPE_ERROR);
}
}
async function Ep2_DisCharge()
{
var param = [];
var cmd_buf = Ep2_CmdData(0,27,param,0,0,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
ShowCommMes("执行放电成功",MesgType.MESG_TYPE_INFO);
}
}
async function Ep2_SaveFirInfo()
{
var param = [];
var cmd_buf = Ep2_CmdData(0,33,param,0,0,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
ShowCommMes("保存延时信息成功",MesgType.MESG_TYPE_INFO);
}
}
var Ep2_Inspect_OK = [];
async function Ep2_Inspect_Task(type)
{
var bgaddr = epro2_oper.cycle_bgaddr;
var endaddr_ = 0;
var state_arr = [];
if(type == 0)
{
state_arr = HexString2ByteArray(epro2_oper.sys_states);
}
while(bgaddr < epro2_oper.cycle_endaddr)
{
endaddr_ = bgaddr+epro2_oper.cycle_group_count;
if(endaddr_ > epro2_oper.cycle_endaddr )
{
endaddr_ = epro2_oper.cycle_endaddr;
}
var rtd = await Ep2_Inspect(bgaddr,endaddr_,state_arr);
if(rtd.rtv != 0)
{
bgaddr+= epro2_oper.cycle_group_count;
continue;
}
bgaddr+= epro2_oper.cycle_group_count;
await TransSleep(1000);
var mes = "巡检成功: ";
for(var index = 0; index < rtd.ok_addr.length;index++)
{
Ep2_Inspect_OK[Ep2_Inspect_OK.length] = rtd.ok_addr[index];
mes += rtd.ok_addr[index]+" ";
}
if(rtd.ok_addr.length > 0)
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
var mes = "巡检失败: ";
for(var index = 0; index < rtd.ng_addr.length;index++)
{
mes += rtd.ng_addr[index]+" ";
}
if(rtd.ng_addr.length > 0)
ShowCommMes(mes,MesgType.MESG_TYPE_ERROR);
}
}
async function Ep2_Blast()
{
var param = [];
param[0] = epro2_oper.blast_delay;
var cmd_buf = Ep2_CmdData(0,25,param,0,0,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
ShowCommMes("执行起爆成功",MesgType.MESG_TYPE_INFO);
}
}
async function Ep2_CfgAck()
{
var param = [];
param[0] = epro2_oper.ack_sp;
param[1] = epro2_oper.ack_cur;
var cmd_buf = Ep2_CmdData(0,35,param,0,0,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
ShowCommMes("返码配置成功",MesgType.MESG_TYPE_INFO);
}
}
async function Ep2_RunBootLoader()
{
var param = [];
param[0] =0x99;
param[1] = 0x66;
param[2] = 0xAA;
param[3] = 0x55;
var cmd_buf = Ep2_CmdData(0,61,param,0,0,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
ShowCommMes("执行跳转成功",MesgType.MESG_TYPE_INFO);
}
}
async function Ep2_autoSetAddr(max_addr, addr_fac)
{
var param = [];
param[0] = max_addr & 0x0FF;
param[1] = (max_addr >> 8) & 0x0FF;
param[2] = addr_fac & 0x0FF;
param[3] = (addr_fac >> 8) & 0x0FF;
var cmd_buf = Ep2_CmdData(0,39,param,0,0,EP2_CMM_RATE)
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
ShowCommMes("设置自动分配地址因子成功 " + addr_fac + "最大地址 "+ max_addr ,MesgType.MESG_TYPE_INFO);
}
return rtv;
}
async function Ep2_ReadUID()
{
var param = [];
var cmd_buf = Ep2_CmdData(epro2_oper.commaddr,41,param,9,2,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0)
{
var read_buf = [];
ArrayCopy(ep2_recive_buf,read_buf,10,8);
//var result = UidCode_JQ2YM(read_buf);
var result = UidCode_JQ2YM_NoBackwardSequence(read_buf);
if(result.rtv)
{
epro2_oper.uid = result.uid;
var mes = "地址 "+epro2_oper.commaddr +" UID"+ epro2_oper.uid;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
$("#ep2_uid").val(epro2_oper.uid);
return 0;
}else{
ShowCommMes("地址 "+epro2_oper.commaddr +" 读取UID失败 ",MesgType.MESG_TYPE_ERROR);
rtv = -1;
}
}
return rtv;
}
async function Ep2_WriteUID()
{
var uid_arr = Str2Bytes(epro2_oper.uid);
//uid_arr = UidCode_YM2JQ(uid_arr);
uid_arr = UidCode_YM2JQ_2(uid_arr);
uid_arr[uid_arr.length]= Epj_CalcCrc8(uid_arr,uid_arr.length);
var rtv = await Ep2_WriteMTPCmd(epro2_oper.commaddr,0,uid_arr.length,uid_arr);
if(rtv != 0)
{
return;
}
rtv = await Ep2_WriteMTPCmd(epro2_oper.commaddr,0x80,uid_arr.length,uid_arr);
if(rtv != 0)
{
return;
}
ShowCommMes(epro2_oper.commaddr + " UID 写入成功",MesgType.MESG_TYPE_INFO);
}
async function Ep2_ReadPWD()
{
var read_buf = []
read_buf = await Ep2_ReadMTPCmd(epro2_oper.commaddr,0x10,5);
if(read_buf.length < 1)
{
return;
}
if(Epj_CalcCrc8(read_buf,4) != read_buf[4])
{
ShowCommMes("0x10 PWD存储错误",MesgType.MESG_TYPE_ERROR);
var mes = Bytes2Str(read_buf);
console.log("######## " + mes);
}else{
epro2_oper.pwd = String.fromCharCode.apply(null,read_buf.slice(0,4));
var mes = "地址 "+epro2_oper.commaddr +" 密码 "+ epro2_oper.pwd;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
$("#ep2_pwd").val(epro2_oper.pwd);
}
}
async function Ep2_WritePWD()
{
//ArrayCopy(uid_arr,buf,8,8);
var pwd_arr = Str2Bytes(epro2_oper.pwd);
pwd_arr[pwd_arr.length]= Epj_CalcCrc8(pwd_arr,pwd_arr.length);
rtv = await Ep2_WriteMTPCmd(epro2_oper.commaddr,0x10,pwd_arr.length,pwd_arr);
if(rtv != 0)
{
ShowCommMes(epro2_oper.commaddr + " 密码写入失败 ",MesgType.MESG_TYPE_ERROR);
return;
}
rtv = await Ep2_WriteMTPCmd(epro2_oper.commaddr,0x90,pwd_arr.length,pwd_arr);
if(rtv != 0)
{
ShowCommMes(epro2_oper.commaddr + " 密码写入失败 ",MesgType.MESG_TYPE_ERROR);
return;
}
ShowCommMes(epro2_oper.commaddr + " 密码写入成功 ",MesgType.MESG_TYPE_INFO);
}
async function Ep2_VerfyPWD()
{
//ArrayCopy(uid_arr,buf,8,8);
var param = Str2Bytes(epro2_oper.pwd);
var cmd_buf = Ep2_CmdData(epro2_oper.commaddr,24,param,1,2,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
ShowCommMes("执行跳转成功",MesgType.MESG_TYPE_INFO);
}
}
async function Ep2_UIDFeaOnline()
{
var uid_arr = Str2Bytes(epro2_oper.uid);
var param = PrapareUIDFeatrue(uid_arr);
var cmd_buf = Ep2_CmdData(epro2_oper.commaddr,17,0,param,5);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0)
{
var states_buf = [];
ArrayCopy(ep2_recive_buf,states_buf,8,2);
var delay_ = (ep2_recive_buf[11] & 0xFF) << 8;
delay_ += (ep2_recive_buf[10] & 0xFF)
if(delay_ < 5 || delay_ > 30005)
delay_ = "未设置";
else
{
delay_ -= 5;
epro2_oper.delayfire = delay_;
$("#ep2_delayfire").val(delay_);
}
var mes = "地址 "+ epro2_oper.commaddr+" 状态值 "+ Bytes2Str(states_buf)+" 延时:" + delay_;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
}
return rtv;
}
async function Ep2_WritMTPTask()
{
var regexp = /(,|;|0x|0X)/g;
var w_data = epro2_oper.mtp_w_data.replace(regexp," ");
var w_data_array = w_data.split(" ");
var w_data_temp = '' ;
for(var index = 0; index < w_data_array.length;index++)
{
var str = w_data_array[index];
if(str.length < 1)
{
continue;
}else if(str.length == 1)
{
str = "0"+str;
}
if(str.length != 2)
{
continue;
}
w_data_temp += str;
}
w_data = HexStr2Bytes(w_data_temp);
await Ep2_WriteMTPCmd(epro2_oper.commaddr,epro2_oper.mtp_w_addr,w_data.length,w_data);
}
async function Ep2_SearchTask()
{
var param = [];
param[0] = epro2_oper.auset_addr_fac & 0x0FF;
param[1] = (epro2_oper.auset_addr_fac >> 8) & 0x0FF;
var cmd_buf = Ep2_CmdData(0,8,30,param,0)
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
ShowCommMes("设置自动分配地址因子成功 " + epro2_oper.auset_addr_fac ,MesgType.MESG_TYPE_INFO);
}
return rtv;
}
async function Ep2_ReadDelay()
{
var param = [];
var cmd_buf = Ep2_CmdData(epro2_oper.commaddr,34,param,3,2,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0)
{
var read_buf = [];
ArrayCopy(ep2_recive_buf,read_buf,10,2);
var delay = read_buf[1];
delay <<= 8;
delay += read_buf[0];
var mes ;
if(delay < 5)
{
mes = "地址 "+epro2_oper.commaddr +" 延时未设置";
delay = 0;
}else{
delay -= 5;
mes = "地址 "+epro2_oper.commaddr +" 延时 "+ delay;
}
epro2_oper.delayfire = delay;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
$("#ep2_delayfire").val(epro2_oper.delayfire);
return;
}else{
ShowCommMes("地址 "+epro2_oper.commaddr+" 读延时失败",MesgType.MESG_TYPE_ERROR);
}
}
async function Ep2_UpdateAddr(newaddr)
{
var param = [];
param[0] = newaddr & 0xFF;
param[1] = (newaddr >> 8) & 0xFF;
var cmd_buf = Ep2_CmdData(epro2_oper.commaddr,36,param,0,0,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0)
{
ShowCommMes("地址 "+ epro2_oper.commaddr+" 更新成功",MesgType.MESG_TYPE_INFO);
}else{
ShowCommMes("地址 "+ epro2_oper.commaddr+" 更新成功",MesgType.MESG_TYPE_ERROR);
}
}
async function Ep2_WriteDelay()
{
var param = [];
epro2_oper.delayfire += 5;
param[0] = epro2_oper.delayfire & 0xFF;
param[1] = (epro2_oper.delayfire >> 8) & 0xFF;
var cmd_buf = Ep2_CmdData(epro2_oper.commaddr,23,param,1,2,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0)
{
ShowCommMes("地址 "+ epro2_oper.commaddr+" 延时设置成功",MesgType.MESG_TYPE_INFO);
}else{
ShowCommMes("地址 "+ epro2_oper.commaddr+" 延时设置失败",MesgType.MESG_TYPE_ERROR);
}
}
async function Ep2_ReadAmend()
{
var param = [];
var cmd_buf = Ep2_CmdData(epro2_oper.commaddr,37,param,5,2,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0)
{
var data = [];
ArrayCopy(ep2_recive_buf,data,10,4);
var amend = (data[3]<<24) | (data[2] << 16) | (data[1] << 8) | data[0] ;
mes = "地址:"+ epro2_oper.commaddr +" 校准值 "+amend;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
$("#ep2_sys_amend").val(amend);
}
}
async function Ep2_ReadRuncfg()
{
var param = [];
var cmd_buf = Ep2_CmdData(epro2_oper.commaddr,38,param,6,2,EP2_CMM_RATE);
ep2_excuedcmd = 0;
Ep2_SendCmd(cmd_buf);
var rtv = await Ep2_WaitCmdExcu(epro2_oper.cmd,1000);
if(rtv == 0){
var read_buf = []
ArrayCopy(ep2_recive_buf,read_buf,10,3);
var cfg_str = Bytes2Str(read_buf);
read_buf = [];
ArrayCopy(ep2_recive_buf,read_buf,13,2);
var ver_str = Bytes2Str(read_buf);
$("#ep2_run_cfg_value").val(cfg_str);
$("#ep2_firmware").val(ver_str);
var mes = "地址:"+ epro2_oper.commaddr +" 配置值为 "+ cfg_str + " 版本号 "+ver_str;
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
epro2_oper.run_cfg_value = cfg_str;
}else{
ShowCommMes("读配置信息失败 ",MesgType.MESG_TYPE_ERROR);
}
}
async function Ep2_WriteRuncfg()
{
var regexp = /(,|;|0x|0X)/g;
var w_data = epro2_oper.run_cfg_value.replace(regexp," ");
var w_data_array = w_data.split(" ");
var w_data_temp = '' ;
for(var index = 0; (index < w_data_array.length) && (index < 3);index++)
{
var str = w_data_array[index];
if(str.length < 1)
{
continue;
}else if(str.length == 1)
{
str = "0"+str;
}
if(str.length != 2)
{
continue;
}
w_data_temp += str;
}
w_data = HexStr2Bytes(w_data_temp);
w_data[w_data.length]= Epj_CalcCrc8(w_data,w_data.length);
var rtv = await Ep2_WriteMTPCmd(epro2_oper.commaddr,0x1C,w_data.length,w_data);
if(rtv != 0)
{
ShowCommMes("地址 "+ epro2_oper.commaddr+" 配置写入失败",MesgType.MESG_TYPE_ERROR);
return;
}
rtv = await Ep2_WriteMTPCmd(epro2_oper.commaddr,0x9C,w_data.length,w_data);
if(rtv != 0)
{
ShowCommMes("地址 "+ epro2_oper.commaddr+" 配置写入失败",MesgType.MESG_TYPE_ERROR);
return;
}
ShowCommMes("地址 "+ epro2_oper.commaddr+" 配置写入成功",MesgType.MESG_TYPE_INFO);
}
async function Ep2_ExcueOperCmd()
{
var once_excue = 0;
if(epro2_oper.cycle_test > 0)
{
epro2_oper.commaddr = epro2_oper.cycle_bgaddr;
epro2_oper.uid = epro2_oper.cycle_bguid;
epro2_oper.delayfire = epro2_oper.cycle_bgdelay;
epro2_oper.cycle_addr = epro2_oper.cycle_bgaddr;
}else{
once_excue = 1;
}
while((epro2_oper.cycle_test > 0 && epro2_oper.cycle_runcount > 0) || (once_excue > 0))
{
epro2_oper.cycle_runcount--;
once_excue = 0;
switch(epro2_oper.cmd)
{
case 1 : await Ep2_ChipReset();break;
case 2 : await Ep2_DisCharge();break;
case 3 : await Ep2_SaveFirInfo();break;
case 4 : await Ep2_CheckSelfCmd(0);break;
case 5 : await Ep2_CheckSelfCmd(0);break;
case 6 : await Ep2_CheckSelfCmd(0);break;
case 7 : await Ep2_ClkAmend();break;
case 9: await Ep2_Inspect_Task(0);break;
case 11 : await Ep2_ReadCapChgT();break;
case 13: await Ep2_HeartBeat_SW();break;
case 15: await Ep2_BusSwitch(1); break;
case 16: await Ep2_BusSwitch(0); break;
case 17: await Ep2_Charge(); break;
case 18: await Ep2_Blast();break;
case 19: await Ep2_ReadUID();break;
case 20: await Ep2_WriteUID();break;
case 21: await Ep2_ReadPWD();break;
case 22: await Ep2_WritePWD();break;
case 23: await Ep2_VerfyPWD();break;
case 24: await Ep2_SetAddrByUID();break;
case 25: await Ep2_FastCfgCmd(epro2_oper.uid,epro2_oper.commaddr,epro2_oper.delayfire); break;
case 26: await Ep2_ReadDelay();break;
case 27: await Ep2_WriteDelay();break;
case 28: await Ep2_ReadMTPCmd(epro2_oper.commaddr,epro2_oper.mtp_r_bgaddr,epro2_oper.mtp_r_len);break;
case 29: await Ep2_EnMTPWrite(1);break;
case 30: await Ep2_EnMTPWrite(0);break;
case 31: await Ep2_WritMTPTask();break;
case 32: await Ep2_ReadSysStatesCmd(epro2_oper.commaddr);break;
case 33: await Ep2_ReadAmend();break;
case 35: await Ep2_autoSetAddr(epro2_oper.cycle_endaddr,epro2_oper.auset_addr_fac);break;
case 36: await Ep2_ReadRuncfg();break;
case 37: await Ep2_WriteRuncfg();break;
case 38: await Ep2_CfgAck();break;
//case 37: await fac_bind();break;
// case 5 : await Ep2_CheckSelfCmd(0);break;
// case 6 : await Ep2_CheckSelfCmd(0);break;
// case 7 : await Ep2_ClkAmend_Task();break;
// case 8 :
// case 9 : await Ep2_Inspect_Task(1);break;
// case 10: await Ep2_Sleep();break;
// case 11: await Ep2_AWake();break;
// case 12:
// case 13: await Ep2_RunBootLoader();break;
// case 14:
// case 19: await Ep2_VerifiPwdCmd(epro2_oper.commaddr,epro2_oper.pwd);break;
// case 20: await Ep2_UIDFeaOnline(); break;
//
//
// case 23:
// case 24:
// case 25: await Ep2_ReadFirmwareCmd(epro2_oper.commaddr);break;
// case 26: await Ep2_SearchTask(); break;
// case 27:
// case 28: await Ep2_ChipReset();break;
// case 29:
// case 30:
// case 31:
// case 32:
// case 33:
// case 34: await Ep2_HeartBeat_SW();break;
default:return;
}
if(epro2_oper.cycle_test > 0)
{
if(epro2_oper.cycle_rundelay > 0)
{
await TransSleep(epro2_oper.cycle_rundelay);
}
Ep2_CycleParamUpdate();
}
}
if(epro2_oper.cycle_test > 0)
{
ShowCommMes("循环测试完成",MesgType.MESG_TYPE_INFO);
}
}
function Ep2_CycleParamUpdate()
{
if(epro2_oper.cycle_addr < epro2_oper.cycle_endaddr)
{
epro2_oper.cycle_addr++;
}else{
epro2_oper.cycle_addr = epro2_oper.cycle_bgaddr;
}
epro2_oper.commaddr = epro2_oper.cycle_addr;
epro2_oper.delayfire = (epro2_oper.commaddr - epro2_oper.cycle_bgaddr)*epro2_oper.cycle_stepdelay + epro2_oper.cycle_bgdelay;
var flow_str = epro2_oper.cycle_bguid.slice(12,16);
var uidhead = epro2_oper.cycle_bguid.slice(0,12);
var flow_num = parseInt(flow_str,10);
flow_num = flow_num+epro2_oper.commaddr - epro2_oper.cycle_bgaddr;
epro2_oper.uid = uidhead + IntFormat(4,flow_num);
}