1119 lines
35 KiB
JavaScript
1119 lines
35 KiB
JavaScript
var cmd_excute_rt = 0;
|
||
var cmd_excute = 0;
|
||
var cycledelay_flag = false;
|
||
var heart_beat_delay = 1000;
|
||
var wait_ack_cmdmap = new Map();
|
||
function EShotCmdRecv(frame)
|
||
{
|
||
var cmd_ = frame[5] & 0xFF;
|
||
var ack = frame[8] & 0xFF;
|
||
var log_mes = "";
|
||
if(cycledelay_flag)
|
||
{
|
||
cmd_excute_rt = ack;
|
||
cmd_excute = cmd_;
|
||
ShowCommMes(rec,MesgType.MESG_TYPE_INFO);
|
||
return;
|
||
}
|
||
if((cmd_ != EProCmdV.MASTER_HARTBEAT_ ) &&
|
||
(ack == 0x0A) &&
|
||
(frame[9] == 0 )&&
|
||
(frame[10] == 0)){
|
||
ack = 0;
|
||
}
|
||
if((BtOper_Json.cycletest > 0) && (cmd_ != EProCmdV.MASTER_HARTBEAT_))
|
||
{
|
||
if(ack != 0)
|
||
{
|
||
log_show = "模块通讯错误 Rx: ";
|
||
log_show += Bytes2Str(frame);
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}else{
|
||
log_show = "Rx: "+Bytes2Str(frame);
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}
|
||
}
|
||
switch(cmd_)
|
||
{
|
||
case EProCmdV.WRITE_UID_: if(ack == 0){
|
||
log_show = "地址: "+BtOper_Json.commaddr+" 写入的UID是:"+ BtOper_Json.uid;
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "地址:"+BtOper_Json.commaddr+" 写入失败;UID是:"+BtOper_Json.uid;
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.WRITE_PWD_: if(ack == 0)
|
||
{
|
||
log_show = "地址:"+BtOper_Json.commaddr+" 写入的密码是:"+ BtOper_Json.pwd;
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "地址:"+BtOper_Json.commaddr+" 写入失败,密码:"+ BtOper_Json.pwd;
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
|
||
case EProCmdV.READ_UID_:
|
||
if(ack == 0){
|
||
BtOper_Json.uid = String.fromCharCode.apply(null,frame.slice(11,26));
|
||
log_show = "地址: "+BtOper_Json.commaddr + " UID: "+BtOper_Json.uid;
|
||
ShowBtUID(BtOper_Json.uid);
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else {
|
||
log_show = "地址:"+ BtOper_Json.commaddr + " 读UID失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.READ_PWD_: if(ack == 0)
|
||
{
|
||
BtOper_Json.pwd = String.fromCharCode.apply(null,frame.slice(9,17));
|
||
log_show = BtOper_Json.uid + "的密码是:"+BtOper_Json.pwd;
|
||
ShowBtPWD(BtOper_Json.pwd);
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = BtOper_Json.uid + " 读密码失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.VERIFY_UID_:
|
||
var transaddr = frame[10];
|
||
transaddr = (transaddr & 0xFF) << 8;
|
||
transaddr += frame[9] & 0x0FF;
|
||
BtOper_Json.commaddr = transaddr;
|
||
if(ack == 0){
|
||
log_show = "地址 "+BtOper_Json.commaddr +" UID验证成功"
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "地址 "+ BtOper_Json.commaddr +" UID验证失败"
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.VERIFY_PWD_:
|
||
var transaddr = frame[10];
|
||
transaddr = (transaddr & 0xFF) << 8;
|
||
transaddr += frame[9] & 0x0FF;
|
||
BtOper_Json.commaddr = transaddr;
|
||
if(ack == 0)
|
||
{
|
||
log_show = "地址 "+BtOper_Json.commaddr+" 密码验证成功"
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "地址 "+BtOper_Json.commaddr+" 密码验证失败"
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.READ_STATE_:
|
||
var transaddr = frame[10];
|
||
transaddr = (transaddr & 0xFF) << 8;
|
||
transaddr += frame[9] & 0x0FF;
|
||
BtOper_Json.commaddr = transaddr;
|
||
if(ack == 0){
|
||
BtOper_Json.state_v = frame.slice(11,15);
|
||
BtOper_Json.state_str = Bytes2Str(frame.slice(11,13));
|
||
log_show = "地址 "+ BtOper_Json.commaddr +" 的状态值是 "+BtOper_Json.state_str;
|
||
ShowBtState(BtOper_Json.state_str);
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "读地址 "+BtOper_Json.commaddr+" 状态失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.SET_DELAY_:
|
||
var transaddr = frame[10];
|
||
transaddr = (transaddr & 0xFF) << 8;
|
||
transaddr += frame[9] & 0x0FF;
|
||
BtOper_Json.commaddr = transaddr;
|
||
if(ack == 0){
|
||
log_show = "地址 "+ BtOper_Json.commaddr +" 的设置的延时是 "+BtOper_Json.setdelay;
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "地址 "+ BtOper_Json.commaddr +" 设置延时失败 ";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.WRITE_ADDR_: if(ack == 0){
|
||
|
||
log_show = "UID "+BtOper_Json.uid+" 设置的地址是 "+ BtOper_Json.commaddr;
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "UID "+BtOper_Json.uid+" 设置地址失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
};break;
|
||
case EProCmdV.READ_AMEND_V_: if(ack == 0){
|
||
BtOper_Json.amendv = Bytes2UShort(frame.slice(11,13));
|
||
log_show = "地址 "+BtOper_Json.commaddr+" 的校准值是 "+BtOper_Json.amendv;
|
||
ShowBtAmendV(BtOper_Json.amendv);
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "读地址 "+BtOper_Json.commaddr+" 校准值失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.INSPECT_SLAVE_: if(ack == 0)
|
||
{
|
||
BtOper_Json.inspect_buf = frame.slice(9,frame.length-2);
|
||
log_show = "巡检成功";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "巡检失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.READ_FIRWARE_: if(ack == 0){
|
||
BtOper_Json.firmware = Bytes2Str(frame.slice(9,13));
|
||
log_show = "地址 "+BtOper_Json.commaddr+" 固件版本 "+ BtOper_Json.firmware;
|
||
ShowBtFirmware(BtOper_Json.firmware);
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "读地址 "+BtOper_Json.commaddr+" 固件版本失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
ShowBtFirmware(" ");
|
||
}break;
|
||
case EProCmdV.READ_ADDR_: if(ack == 0){
|
||
var transaddr = frame[10];
|
||
transaddr = (transaddr & 0xFF) << 8;
|
||
transaddr += frame[9] & 0x0FF;
|
||
BtOper_Json.commaddr = transaddr;
|
||
log_show = BtOper_Json.uid + " 的地址是 "+BtOper_Json.commaddr;
|
||
ShowBtAddr(BtOper_Json.commaddr);
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else {
|
||
log_show = " 读UID "+BtOper_Json.uid+" 地址失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
} break;
|
||
case EProCmdV.READ_DELAY_: if(ack == 0){
|
||
var delay_ = frame[10];
|
||
delay_ = (delay_ & 0xFF) << 8;
|
||
delay_ += frame[9]& 0x0FF;
|
||
delay_ -= 5;
|
||
BtOper_Json.setdelay = delay_;
|
||
log_show = "地址 "+BtOper_Json.commaddr+" 的延时是 "+BtOper_Json.setdelay+"ms";
|
||
ShowBtDelay(BtOper_Json.setdelay);
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "地址 "+BtOper_Json.commaddr+" 读延时失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.READ_S_BUS_V_:if(ack == 0){
|
||
var voltage = frame[10];
|
||
voltage = (voltage & 0x0F) << 8;
|
||
voltage += frame[9] & 0x0FF;
|
||
BtOper_Json.cfir_v = (voltage * 3.3 *3.43)/(4096 * 0.43);
|
||
BtOper_Json.cfir_v = BtOper_Json.cfir_v.toFixed(2);
|
||
log_mes = "地址 "+BtOper_Json.commaddr+" 的电压是 "+BtOper_Json.cfir_v+"v";
|
||
ShowBtBusV(BtOper_Json.cfir_v);
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_mes = " 地址 "+BtOper_Json.commaddr+" 读电压失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.EQUEL_UID_FEA:if(ack == 0){
|
||
var transaddr = frame[10];
|
||
transaddr = (transaddr & 0x0F) << 8;
|
||
transaddr += frame[9] & 0x0FF;
|
||
log_show = "UID "+BtOper_Json.uid+" 的地址是 "+BtOper_Json.commaddr;
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "UID "+BtOper_Json.uid+" 特征码设置地址失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.SET_PSWD_FLAG:if(ack == 0){
|
||
var transaddr = frame[10];
|
||
transaddr = (transaddr & 0x0F) << 8;
|
||
transaddr += frame[9] & 0x0FF;
|
||
log_show = "地址 "+BtOper_Json.commaddr+" 强制置位密码验证";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "地址 "+BtOper_Json.commaddr+" 强制置位密码验证失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
case EProCmdV.CHARGE_: if(ack == 0){
|
||
log_show = "发送充电命令";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
};break;
|
||
case EProCmdV.ALL_SLEEP: if(ack == 0){
|
||
log_show = "发送充休眠命令";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
};break;
|
||
case EProCmdV.BASE_CHECK_:if(ack == 0){
|
||
log_show = "发送检测命令";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
};break;
|
||
case 0x21: if(ack == 0)
|
||
{
|
||
if(BtOper_Json.busmode == 1)
|
||
{
|
||
log_show = "开启总线";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "关闭总线";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}
|
||
}break;
|
||
case EProCmdV.MASTER_HARTBEAT_: AnalyHartBeat(frame); ack = 0;break;
|
||
case EProCmdV.SLAVE_BUS_CMD: if(ack == 0){
|
||
log_show = "命令直传成功";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}else{
|
||
log_show = "命令直传失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}
|
||
break;
|
||
default : if(ack == 0){
|
||
log_show = "操作成功";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
} else{
|
||
log_show = "操作失败";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}break;
|
||
}
|
||
cmd_excute_rt = ack;
|
||
cmd_excute = cmd_;
|
||
SendWaitSignal(cmd_,ack);
|
||
if(ack != 0)
|
||
BTErrorCount( 1 );
|
||
else
|
||
BTInfoCount( 1 ) ;
|
||
}
|
||
function AnalyHartBeat(frame)
|
||
{
|
||
|
||
var cmd_ = frame[5] & 0xFF;
|
||
var log_show = "";
|
||
if(cmd_ != EProCmdV.MASTER_HARTBEAT_)
|
||
return null;
|
||
if(frame.length < 22)
|
||
{
|
||
log_show = "关闭心跳包";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
return ;
|
||
}
|
||
var batter_state = frame[8];
|
||
var bat_buf = new ArrayBuffer(4);
|
||
var dataview = new DataView(bat_buf);
|
||
dataview.setUint8(0, frame[12]);
|
||
dataview.setUint8(1, frame[11])
|
||
dataview.setUint8(2, frame[10])
|
||
dataview.setUint8(3, frame[9])
|
||
bat_v = dataview.getFloat32(0);
|
||
bat_v = bat_v.toFixed(2);
|
||
|
||
var bus_switch = frame[15];
|
||
var bus_mode = frame[16];
|
||
var bus_v = Bytes2ULong(frame.slice(17,19)) / 10.0;
|
||
bus_v = bus_v.toFixed(1);
|
||
var bus_c = Bytes2ULong(frame.slice(19,23)) / 10000.0;
|
||
bus_c = bus_c.toFixed(2);
|
||
|
||
log_show = "电池电量 "+batter_state+"% 电压"+bat_v+"V";
|
||
BtOper_Json.bat_v = bat_v;
|
||
|
||
if(bus_switch == 0)
|
||
{
|
||
log_show += "未开启总线 ";
|
||
}else{
|
||
if(bus_mode == 1)
|
||
{
|
||
log_show += "注册模式 ";
|
||
}else{
|
||
log_show += "起爆模式 ";
|
||
}
|
||
}
|
||
log_show += "总线电压 "+bus_v+"V"
|
||
log_show += "总线电流 "+bus_c+"mA"
|
||
BtOper_Json.bus_v = bus_v;
|
||
BtOper_Json.bus_c = bus_c;
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
}
|
||
|
||
|
||
function RestWaitSignal( cmd)
|
||
{
|
||
wait_ack_cmdmap.set(cmd,0xFFFF);
|
||
}
|
||
|
||
function GetWaitSignal( cmd)
|
||
{
|
||
if(wait_ack_cmdmap.has(cmd))
|
||
return wait_ack_cmdmap.get(cmd);
|
||
else
|
||
return -1;
|
||
}
|
||
|
||
function SendWaitSignal( cmd, ack)
|
||
{
|
||
|
||
wait_ack_cmdmap.set(cmd,ack);
|
||
|
||
}
|
||
|
||
function ReleasWaitSignal( cmd)
|
||
{
|
||
wait_ack_cmdmap.delete(cmd);
|
||
}
|
||
|
||
|
||
|
||
function TransSleep_delay(delay) {
|
||
return new Promise((resolve, reject) => {
|
||
setTimeout(function(){
|
||
resolve("done");
|
||
}, delay);
|
||
});
|
||
};
|
||
async function TransSleep(delay)
|
||
{
|
||
await TransSleep_delay(delay);
|
||
}
|
||
|
||
async function WaitCmdExcu( cmd, time_out)
|
||
{
|
||
var wait_signal = -1;
|
||
RestWaitSignal(cmd);
|
||
if(time_out == 0)
|
||
return 0;
|
||
time_out = parseInt ( (time_out+19)/20);
|
||
|
||
while(time_out > 0)
|
||
{
|
||
wait_signal = GetWaitSignal(cmd);
|
||
if(wait_signal != 0xFFFF)
|
||
{
|
||
break;
|
||
}
|
||
await TransSleep(20);
|
||
time_out--;
|
||
}
|
||
cmd_excute = 0;
|
||
ReleasWaitSignal(cmd);
|
||
|
||
if(time_out > 0 && wait_signal == 0 )
|
||
{
|
||
return 0;
|
||
}
|
||
if(time_out == 0)
|
||
{
|
||
ShowCommMes("通信超时",MesgType.MESG_TYPE_ERROR);
|
||
return -1;
|
||
|
||
}
|
||
else
|
||
return cmd_excute_rt;
|
||
}
|
||
|
||
async function WriteByAddr_ ( cmd, addr, param, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
cmd_excute = 0;
|
||
BtSendBytes(PBCmd.AddrWriteCmd(cmd,addr,param),logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(cmd,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
async function WriteByAddr(logflag)
|
||
{
|
||
if(BtOper_Json.cycletest < 1)
|
||
{
|
||
await WriteByAddr_(BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.setparam,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
}else{
|
||
var count = 0;
|
||
while((count < BtOper_Json.cycletimes) && (BtOper_Json.cycletest > 0))
|
||
{
|
||
count++;
|
||
var index = 0;
|
||
|
||
while((index < BtOper_Json.groupcount)
|
||
&& (BtOper_Json.cycletimes > 0 )
|
||
&& (BtOper_Json.cycletest > 0))
|
||
{
|
||
BtOper_Json.commaddr = BtOper_Json.begaddr + index;
|
||
await WriteByAddr_(BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.setparam,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
index++;
|
||
await TransSleep(BtOper_Json.rundelay);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
async function WriteUID( logflag)
|
||
{
|
||
if(BtOper_Json.cycletest < 1)
|
||
{
|
||
BtOper_Json.setparam = Str2Bytes( BtOper_Json.uid);
|
||
await WriteByAddr_(BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.setparam,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
}else{
|
||
var count = 0;
|
||
var flow_str = BtOper_Json.beguid.slice(11,15);
|
||
var uidhead = BtOper_Json.beguid.slice(0,11);
|
||
var flow_num = (flow_str);
|
||
if(flow_num = NaN || flow_num == undefined)
|
||
{
|
||
var log_show = "循环写入UID流水号解析错误";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}
|
||
while((count < BtOper_Json.cycletimes) && (BtOper_Json.cycletest > 0))
|
||
{
|
||
count++;
|
||
index = 0;
|
||
while((index < BtOper_Json.groupcount)
|
||
&& (BtOper_Json.cycletimes > 0 )
|
||
&& (BtOper_Json.cycletest > 0))
|
||
{
|
||
BtOper_Json.uid = uidhead + IntFormat(4,flow_num+index);
|
||
BtOper_Json.setparam = Str2Bytes( BtOper_Json.uid);
|
||
BtOper_Json.commaddr = BtOper_Json.begaddr + index;
|
||
await WriteByAddr_(BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.setparam,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
index++;
|
||
await TransSleep(BtOper_Json.rundelay);
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
async function WritePwd_( pwd, addr, waitexcue, logflag, timeout)
|
||
{
|
||
var pwd_arr = Str2Bytes(pwd);
|
||
var rtv = 0;
|
||
BtSendBytes(pbcmd.AddrWriteCmd(EProCmdV.WRITE_PWD_,addr,pwd_arr),logflag);
|
||
cmd_excute = 0;
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(EProCmdV.WRITE_PWD_,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
|
||
async function WritePwd( logflag)
|
||
{
|
||
if(BtOper_Json.cycletest < 1)
|
||
{
|
||
BtOper_Json.setparam = Str2Bytes( BtOper_Json.pwd);
|
||
await WriteByAddr_(BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.setparam,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
}else{
|
||
var count = 0;
|
||
while((count < BtOper_Json.cycletimes) && (BtOper_Json.cycletest > 0))
|
||
{
|
||
count++;
|
||
var index = 0;
|
||
while((index < BtOper_Json.groupcount)
|
||
&& (BtOper_Json.cycletimes > 0 )
|
||
&& (BtOper_Json.cycletest > 0))
|
||
{
|
||
BtOper_Json.commaddr = BtOper_Json.begaddr + index;
|
||
BtOper_Json.setparam = Str2Bytes( BtOper_Json.pwd);
|
||
await WriteByAddr_(BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.setparam,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
index++;
|
||
await TransSleep(BtOper_Json.rundelay);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
async function WriteAddr_( uid, cmd, addr, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
var uid_arr = Str2Bytes(uid);
|
||
cmd_excute = 0;
|
||
BtSendBytes(PBCmd.UidWriteAddr(uid_arr,addr,cmd),logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(cmd,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
|
||
async function WriteAddr( logflag)
|
||
{
|
||
if(BtOper_Json.cycletest < 1)
|
||
{
|
||
await WriteAddr_(BtOper_Json.uid,BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
}else{
|
||
var count = 0;
|
||
var flow_str = BtOper_Json.beguid.slice(11,15);
|
||
var uidhead = BtOper_Json.beguid.slice(0,11);
|
||
var flow_num = (flow_str);
|
||
if(flow_num = NaN || flow_num == undefined)
|
||
{
|
||
var log_show = "循环写入UID流水号解析错误";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}
|
||
|
||
while(count < BtOper_Json.cycletimes && (BtOper_Json.cycletest > 0))
|
||
{
|
||
var index = 0;
|
||
while((index < BtOper_Json.groupcount)
|
||
&& (BtOper_Json.cycletimes > 0 )
|
||
&& (BtOper_Json.cycletest > 0))
|
||
{
|
||
BtOper_Json.uid = uidhead + IntFormat(4,flow_num+index);
|
||
BtOper_Json.commaddr = BtOper_Json.begaddr + index;
|
||
await WriteAddr_(BtOper_Json.uid,BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
index++;
|
||
await TransSleep(BtOper_Json.rundelay);
|
||
}
|
||
count++;
|
||
}
|
||
}
|
||
}
|
||
|
||
async function WriteDelay(logflag)
|
||
{
|
||
if(BtOper_Json.cycletest < 1)
|
||
{
|
||
var param = [];
|
||
param[0] = BtOper_Json.setdelay & 0xFF;
|
||
param[1] = (BtOper_Json.setdelay >> 8) & 0xFF;
|
||
BtOper_Json.setparam = param;
|
||
await WriteByAddr_(BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.setparam,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
}else{
|
||
var count = 0;
|
||
var param = [];
|
||
while(count < BtOper_Json.cycletimes && (BtOper_Json.cycletest > 0))
|
||
{
|
||
count++;
|
||
var index = 0;
|
||
while((index < BtOper_Json.groupcount)
|
||
&& (BtOper_Json.cycletest > 0))
|
||
{
|
||
BtOper_Json.setdelay = BtOper_Json.begdelay+BtOper_Json.delaysetp*index;
|
||
BtOper_Json.commaddr = BtOper_Json.begaddr + index;
|
||
param[0] = BtOper_Json.setdelay & 0xFF;
|
||
param[1] = (BtOper_Json.setdelay >> 8) & 0xFF;
|
||
BtOper_Json.setparam = param;
|
||
await WriteByAddr_(BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.setparam,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
index++;
|
||
await TransSleep(BtOper_Json.rundelay);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
async function ReadPwd_( uid, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
cmd_excute = 0;
|
||
var uid_arr = Str2Bytes(BtOper_Json.uid);
|
||
BtSendBytes(PBCmd.PBGetSendCmd(EProCmdV.READ_PWD_,uid_arr),logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(EProCmdV.READ_PWD_,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
|
||
async function ReadAddr_( uid, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
cmd_excute = 0;
|
||
var uid_arr = Str2Bytes(BtOper_Json.uid);
|
||
BtSendBytes(PBCmd.PBGetSendCmd(EProCmdV.READ_ADDR_,uid_arr),logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(EProCmdV.READ_PWD_,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
|
||
|
||
async function ReadBusCurrent( waitexcue, logflag, timeout)
|
||
{
|
||
var nulldata= [];
|
||
var rtv = 0;
|
||
cmd_excute = 0;
|
||
BtSendBytes(PBCmd.PBGetSendCmd(EProCmdV.READ_S_BUS_C_,nulldata),logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(EProCmdV.READ_S_BUS_C_,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
async function ReadByAddr_( cmd, addr, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
cmd_excute = 0;
|
||
var cmd_buf = PBCmd.AddrReadCmd(cmd,addr);
|
||
BtSendBytes(cmd_buf,logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(cmd,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
async function ReadByAddr(logflag)
|
||
{
|
||
if(BtOper_Json.cycletest < 1)
|
||
{
|
||
await ReadByAddr_(BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
}else{
|
||
var count = 0;
|
||
while((count < BtOper_Json.cycletimes) && (BtOper_Json.cycletest > 0))
|
||
{
|
||
count++;
|
||
var index = 0;
|
||
while((index < BtOper_Json.groupcount)
|
||
&& (BtOper_Json.cycletimes > 0 )
|
||
&& (BtOper_Json.cycletest > 0))
|
||
{
|
||
BtOper_Json.commaddr = BtOper_Json.begaddr + index;
|
||
await ReadByAddr_(BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
index++;
|
||
await TransSleep(BtOper_Json.rundelay);
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
async function AddrCmd_( cmd, addr, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = await ReadByAddr_(cmd, addr, waitexcue, logflag, timeout);
|
||
return rtv;
|
||
}
|
||
async function AddrCmd( logflag)
|
||
{
|
||
|
||
var rtv = await ReadByAddr(logflag);
|
||
return rtv;
|
||
}
|
||
async function ReadByUID_(cmd, uid, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
var uid_arr = Str2Bytes(uid);
|
||
cmd_excute = 0;
|
||
BtSendBytes(PBCmd.PBGetSendCmd(cmd,uid_arr),logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(cmd,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
async function ReadByUid(logflag)
|
||
{
|
||
if(BtOper_Json.cycletest < 1)
|
||
{
|
||
await ReadByUID_(BtOper_Json.opercmd,BtOper_Json.uid,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
}else{
|
||
|
||
var count = 0;
|
||
var flow_str = BtOper_Json.beguid.slice(11,15);
|
||
var uidhead = BtOper_Json.beguid.slice(0,11);
|
||
var flow_num = (flow_str);
|
||
if(flow_num = NaN || flow_num == undefined)
|
||
{
|
||
var log_show = "循环写入UID流水号解析错误";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}
|
||
while((count < BtOper_Json.cycletimes) && (BtOper_Json.cycletest > 0))
|
||
{
|
||
var index = 0;
|
||
while((index < BtOper_Json.groupcount)
|
||
&& (BtOper_Json.cycletimes > 0 )
|
||
&& (BtOper_Json.cycletest > 0))
|
||
{
|
||
BtOper_Json.uid = uidhead + IntFormat(4,flow_num+index);
|
||
await ReadByUID_(BtOper_Json.opercmd,BtOper_Json.uid,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
index++;
|
||
await TransSleep(BtOper_Json.rundelay);
|
||
}
|
||
count++;
|
||
|
||
}
|
||
}
|
||
}
|
||
async function WaitSlaveAck( addr, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
cmd_excute = 0;
|
||
BtSendBytes(PBCmd.AddrReadCmd(EProCmdV.SLAVE_ONLINE_,addr),logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(EProCmdV.SLAVE_ONLINE_,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
async function VerifyUID_( addr, uid, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
cmd_excute = 0;
|
||
var uid_arr = Str2Bytes(uid);
|
||
BtSendBytes(PBCmd.AddrWriteCmd(EProCmdV.VERIFY_UID_,addr,uid_arr),logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(EProCmdV.VERIFY_UID_,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
async function VerifyUID( logflag)
|
||
{
|
||
if(BtOper_Json.cycletest < 1)
|
||
{
|
||
await VerifyUID_(BtOper_Json.commaddr,BtOper_Json.uid, BtOper_Json.waitack,logflag, BtOper_Json.waittimeout);
|
||
}else{
|
||
var count = 0;
|
||
var flow_str = BtOper_Json.beguid.slice(11,15);
|
||
var uidhead = BtOper_Json.beguid.slice(0,11);
|
||
var flow_num = (flow_str);
|
||
if(flow_num = NaN || flow_num == undefined)
|
||
{
|
||
var log_show = "循环写入UID流水号解析错误";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}
|
||
while((count < BtOper_Json.cycletimes) && (BtOper_Json.cycletest > 0))
|
||
{
|
||
var index = 0;
|
||
while((index < BtOper_Json.groupcount)
|
||
&& (BtOper_Json.cycletimes > 0 )
|
||
&& (BtOper_Json.cycletest > 0))
|
||
{
|
||
BtOper_Json.uid = uidhead + IntFormat(4,flow_num+index);
|
||
await VerifyUID_(BtOper_Json.commaddr,BtOper_Json.uid, BtOper_Json.waitack,logflag, BtOper_Json.waittimeout);
|
||
index++;
|
||
await TransSleep(BtOper_Json.rundelay);
|
||
}
|
||
count++;
|
||
|
||
}
|
||
}
|
||
}
|
||
async function VerifyPwd_(addr, pwd, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
var pwd_arr = Str2Bytes(pwd);
|
||
cmd_excute = 0;
|
||
BtSendBytes(PBCmd.AddrWriteCmd(EProCmdV.VERIFY_PWD_,addr,pwd_arr),logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(EProCmdV.VERIFY_PWD_,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
|
||
async function VerifyPwd( logflag)
|
||
{
|
||
if(BtOper_Json.cycletest < 1)
|
||
{
|
||
await VerifyPwd_(BtOper_Json.commaddr,BtOper_Json.pwd, BtOper_Json.waitack,logflag, BtOper_Json.waittimeout);
|
||
}else{
|
||
var count = 0
|
||
while((count < BtOper_Json.cycletimes) && (BtOper_Json.cycletest > 0))
|
||
{
|
||
var index = 0;
|
||
while((BtOper_Json.cycletimes > 0 )
|
||
&& (BtOper_Json.cycletest > 0))
|
||
while(index < BtOper_Json.groupcount )
|
||
{
|
||
await VerifyPwd_(BtOper_Json.commaddr + index,BtOper_Json.pwd, BtOper_Json.waitack,logflag, BtOper_Json.waittimeout);
|
||
index++;
|
||
await TransSleep(BtOper_Json.rundelay);
|
||
|
||
}
|
||
count++;
|
||
}
|
||
}
|
||
}
|
||
|
||
async function TimerAmend_( bgaddr, endaddr, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
cmd_excute = 0;
|
||
var log_show = "时钟校准地址范围" + bgaddr +" 到 " + endaddr;
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
var datas = new Array();
|
||
datas.push((bgaddr & 0xFF));
|
||
datas.push(((bgaddr >>8) & 0xFF));
|
||
datas.push((endaddr & 0xFF));
|
||
datas.push(((endaddr >>8) & 0xFF));
|
||
cmd_excute = 0;
|
||
BtSendBytes(PBCmd.PBGetSendCmd(EProCmdV.AMEND_,datas),logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(EProCmdV.AMEND_,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
|
||
async function TimerAmend( logflag)
|
||
{
|
||
var amend_endaddr = BtOper_Json.begaddr + BtOper_Json.amendcount;
|
||
cyclerun_flag = true;
|
||
var count = 0;
|
||
do
|
||
{
|
||
var bgaddr = BtOper_Json.begaddr;
|
||
do
|
||
{
|
||
var endaddr = bgaddr + BtOper_Json.groupcount;
|
||
await TimerAmend_(bgaddr,endaddr,true,logflag,1200);
|
||
await TransSleep(BtOper_Json.rundelay);
|
||
bgaddr = endaddr;
|
||
}while((endaddr < amend_endaddr) && (BtOper_Json.cycletest > 0));
|
||
count ++;
|
||
} while((count < BtOper_Json.cycletimes) && (BtOper_Json.cycletest > 0))
|
||
return 0;
|
||
}
|
||
|
||
async function InspectSlave_( bgaddr, endaddr, waitexcue, logflag, timeout)
|
||
{
|
||
var log_show = "巡检地址范围" + bgaddr +" 到 " + (endaddr -1);
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
var datas = new Array();
|
||
datas.push((bgaddr & 0xFF));
|
||
datas.push(((bgaddr >>8) & 0xFF));
|
||
datas.push((endaddr & 0xFF));
|
||
datas.push(((endaddr >>8) & 0xFF));
|
||
BtSendBytes(PBCmd.PBGetSendCmd(EProCmdV.INSPECT_SLAVE_,datas),logflag);
|
||
if(!waitexcue)
|
||
return 0;
|
||
cmd_excute = 0;
|
||
var state_addr;
|
||
var rtv = await WaitCmdExcu(EProCmdV.INSPECT_SLAVE_,timeout);
|
||
if(rtv == 0)
|
||
{
|
||
if(BtOper_Json.inspect_buf.length > 0)
|
||
{
|
||
|
||
PBCmd.InspectAnaly(bgaddr,endaddr-bgaddr,BtOper_Json.inspect_buf) ;
|
||
var log_show = "准备起爆有 " + PBCmd.ok_addr.length + "发";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
var index = 0;
|
||
log_show = "";
|
||
while(index < PBCmd.ok_addr.length)
|
||
{
|
||
state_addr = PBCmd.ok_addr[index++];
|
||
if(state_addr > endaddr)
|
||
continue;
|
||
log_show += state_addr + " ";
|
||
|
||
}
|
||
if(log_show.length > 2)
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_INFO);
|
||
|
||
log_show = "无法起爆有 " +PBCmd.ng_addr.length + "发";
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
index = 0;
|
||
log_show = "";
|
||
while(index < PBCmd.ng_addr.length)
|
||
{
|
||
|
||
state_addr = PBCmd.ng_addr[index++] ;
|
||
if(state_addr > endaddr)
|
||
continue;
|
||
log_show += state_addr + " ";
|
||
}
|
||
if(log_show.length > 1)
|
||
ShowCommMes(log_show,MesgType.MESG_TYPE_ERROR);
|
||
}
|
||
}
|
||
|
||
return 0;
|
||
}
|
||
|
||
async function InspectSlave(logflag)
|
||
{
|
||
|
||
var cycleInspectRunCount = parseInt(((BtOper_Json.inspectcount + BtOper_Json.groupcount-1) / BtOper_Json.groupcount));
|
||
var count = 0;
|
||
var bgaddr ;
|
||
var endaddr;
|
||
do
|
||
{
|
||
var runcount = 0;
|
||
bgaddr = BtOper_Json.begaddr;
|
||
do
|
||
{
|
||
endaddr = BtOper_Json.groupcount + bgaddr;
|
||
if(endaddr > 1023)
|
||
{
|
||
endaddr = 1023;
|
||
}
|
||
await InspectSlave_(bgaddr,endaddr,true,logflag,BtOper_Json.waittimeout);
|
||
runcount ++;
|
||
bgaddr = endaddr;
|
||
await TransSleep(BtOper_Json.rundelay);
|
||
}while(runcount < cycleInspectRunCount && (BtOper_Json.cycletest > 0));
|
||
|
||
count ++;
|
||
}while ((count < BtOper_Json.cycletimes) && (BtOper_Json.cycletest > 0));
|
||
return 0;
|
||
}
|
||
|
||
async function SlaveCheckSelf( type, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
var data = [];
|
||
data[0] = type & 0xFF;
|
||
cmd_excute = 0;
|
||
BtSendBytes(PBCmd.PBGetSendCmd(EProCmdV.BASE_CHECK_,data),logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(EProCmdV.BASE_CHECK_,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
|
||
async function BroadCastCmd_( cmd, waitexcue, logflag, timeout)
|
||
{
|
||
var data_null = [];
|
||
var rtv = 0;
|
||
data_null = PBCmd.PBGetSendCmd(cmd,data_null);
|
||
cmd_excute = 0;
|
||
BtSendBytes(data_null,logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(cmd,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
|
||
async function BroadCastCmd(logflag)
|
||
{
|
||
await BroadCastCmd_(BtOper_Json.opercmd,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
}
|
||
|
||
async function BroadCastCmdSet( cmd, param, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
var data = PBCmd.PBGetSendCmd(cmd,param);
|
||
cmd_excute = 0;
|
||
BtSendBytes(data,logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(cmd,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
|
||
async function BusMode( mode, s_flag, waitexcue, logflag, timeout)
|
||
{
|
||
var rtv = 0;
|
||
var data = new Array();
|
||
if(BtOper_Json.busmode == 2)
|
||
{
|
||
data.push(0x01);
|
||
BtOper_Json.busmode = 1;
|
||
}else{
|
||
BtOper_Json.busmode = 2;
|
||
data.push(0x02);
|
||
}
|
||
SwitchBusMode(BtOper_Json.busmode);
|
||
data.push(mode);
|
||
data = PBCmd.PBGetSendCmd(EProCmdV.SET_BUS_MODE_,data);
|
||
BtSendBytes(data,logflag);
|
||
cmd_excute = 0;
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(EProCmdV.SET_BUS_MODE_,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
|
||
async function SetHartBeat(logflag)
|
||
{
|
||
var heart_beat_delay = 0;
|
||
var data = [];
|
||
if(BtOper_Json.heartbeat == 1)
|
||
{
|
||
heart_beat_delay = 0xFFFF;
|
||
BtOper_Json.heartbeat = 0;
|
||
}
|
||
else{
|
||
heart_beat_delay = parseInt(BtOper_Json.rundelay / 10);
|
||
BtOper_Json.heartbeat = 1;
|
||
}
|
||
SwitchHartBeat(BtOper_Json.heartbeat);
|
||
data[0] = heart_beat_delay & 0xFF;
|
||
data[1] = (heart_beat_delay >> 8 ) & 0xFF;
|
||
|
||
data = PBCmd.PBGetSendCmd(EProCmdV.MASTER_HARTBEAT_,data);
|
||
BtSendBytes(data,logflag);
|
||
}
|
||
//addr 通讯地址
|
||
//code 功能码
|
||
//cmd 功能码参数 没有传入负数
|
||
//frame_type 数据帧类型 0 非广播帧 1 广播帧
|
||
//ack_len 读取数据长度 0 读取应答位 大于0 数据长度
|
||
//param 命令码或功能码参数
|
||
//ack_wait 起始读信号等待时间
|
||
//ack_try 超时尝试次数
|
||
//waitexcue 等待命令执行完成
|
||
//timeout 命令超时时间ms
|
||
|
||
async function SlaveCmd( addr, code, cmd, frame_type, ack_len, param, ack_wait, ack_try, waitexcue, logflag, timeout)
|
||
{
|
||
var cmd_buf = new Array();
|
||
var c_slavecheck = 0;
|
||
var rtv = 0;
|
||
cmd_buf = PBCmd.SlaveCmd(code,cmd,addr,param);
|
||
c_slavecheck = PBCmd.SlaveCheck(cmd_buf);
|
||
while(true)
|
||
{
|
||
if(((cmd_buf.length +1) % 4) == 0)
|
||
{
|
||
break;
|
||
}
|
||
cmd_buf.push(0x00);
|
||
}
|
||
cmd_buf.push(c_slavecheck);
|
||
cmd_buf = PBCmd.PBSlaveSendBuf(frame_type,ack_len,ack_wait,ack_try,cmd_buf);
|
||
cmd_excute = 0;
|
||
BtSendBytes(cmd_buf,logflag);
|
||
if(waitexcue)
|
||
{
|
||
rtv = await WaitCmdExcu(EProCmdV.SLAVE_BUS_CMD,timeout);
|
||
}
|
||
return rtv;
|
||
}
|
||
async function BroadCast_SetAddr(logflag)
|
||
{
|
||
var data = [];
|
||
data[0] = BtOper_Json.commaddr & 0xFF;
|
||
data[1] = (BtOper_Json.commaddr >> 8) & 0xFF;
|
||
await BroadCastCmdSet(EProCmdV.BC_WRITE_ADDR_,data, BtOper_Json.waitack, logflag, BtOper_Json.waittimeout);
|
||
}
|
||
async function SetSuperTime(logflag)
|
||
{
|
||
var param = [];
|
||
param[0] = BtOper_Json.setdelay & 0xFF;
|
||
param[1] = (BtOper_Json.setdelay >> 8) & 0xFF;
|
||
BtOper_Json.setparam = param;
|
||
WriteByAddr_(BtOper_Json.opercmd,BtOper_Json.commaddr,BtOper_Json.setparam,BtOper_Json.waitack,logflag,BtOper_Json.waittimeout);
|
||
}
|
||
async function SendCmd(txflag)
|
||
{
|
||
|
||
switch(BtOper_Json.opercmd)
|
||
{
|
||
case EProCmdV.WRITE_UID_: await WriteUID(txflag);break;
|
||
case EProCmdV.WRITE_PWD_: await WritePwd(txflag);break;
|
||
case EProCmdV.READ_UID_: await ReadByAddr(txflag) ;break;
|
||
case EProCmdV.READ_PWD_: await ReadByUid(txflag) ;break;
|
||
case EProCmdV.VERIFY_UID_: await VerifyUID(txflag); break;
|
||
case EProCmdV.VERIFY_PWD_: await VerifyPwd(txflag);break;
|
||
case EProCmdV.READ_STATE_: await ReadByAddr(txflag) ;break;
|
||
case EProCmdV.SET_DELAY_: await WriteDelay(txflag) ;break;
|
||
case EProCmdV.SET_DELAY_ALL_: await WriteDelay(1,BtOper_Json.setdelay ,BtOper_Json.waitack,BtOper_Json.waittimeout) ;break;
|
||
case EProCmdV.WRITE_ADDR_: await WriteAddr(txflag);break;
|
||
case EProCmdV.EQUEL_UID_FEA: await WriteAddr(txflag);break;
|
||
case EProCmdV.CHARGE_: await BroadCastCmd(txflag);break;
|
||
case EProCmdV.AMEND_: await TimerAmend(txflag);break;
|
||
case EProCmdV.READ_ADDR_: await ReadByUid(txflag) ;break;
|
||
case EProCmdV.BOOM_: await BroadCastCmd(txflag);break;
|
||
case EProCmdV.READ_AMEND_V_: await ReadByAddr(txflag) ;break;
|
||
case EProCmdV.SLAVE_ONLINE_: await ReadByAddr(txflag);break;
|
||
case EProCmdV.ALL_SLEEP: await AddrCmd(txflag);break;
|
||
case EProCmdV.DISCHARGE_: await BroadCastCmd(txflag);break;
|
||
case EProCmdV.INSPECT_SLAVE_: await InspectSlave(true);break;
|
||
case EProCmdV.BASE_CHECK_: await SlaveCheckSelf(BtOper_Json.setparam[0],BtOper_Json.waitack,txflag,BtOper_Json.waittimeout);break;
|
||
case EProCmdV.READ_DELAY_: await ReadByAddr(txflag) ;break;
|
||
case EProCmdV.READ_S_BUS_V_: await ReadByAddr(txflag) ;break;
|
||
case EProCmdV.READ_FIRWARE_: await ReadByAddr(txflag);break;
|
||
case EProCmdV.SET_PSWD_FLAG: await ReadByAddr(txflag);break;
|
||
case /*BUS_MODE_B_*/ EProCmdV.SET_BUS_MODE_: await BusMode(2,true,BtOper_Json.waitack,txflag,BtOper_Json.waittimeout);break;
|
||
//case BUS_MODE_R_:BusMode(1,true,cmdclass.waitack,txflag,cmdclass.timeout);break;
|
||
case EProCmdV.MASTER_HARTBEAT_: await SetHartBeat(txflag);break;
|
||
case EProCmdV.WAIT_ONLINE_: await WaitSlaveOnline(timeout);break;
|
||
case EProCmdV.WAIT_RELEASE_: await WaitSlaveRelease(timeout);break;
|
||
case EProCmdV.TRANS_DELAY_: await await TransSleep(BtOper_Json.setdelay);break;
|
||
case EProCmdV.SET_SUPER_T_: await SetSuperTime(txflag) ;break;
|
||
case EProCmdV.BC_WRITE_ADDR_: await BroadCast_SetAddr(true);break;
|
||
default:break;
|
||
}
|
||
|
||
}
|