diff --git a/ReadMe.txt b/ReadMe.txt
index 9dfd4cc..c8e24d6 100644
--- a/ReadMe.txt
+++ b/ReadMe.txt
@@ -128,6 +128,7 @@
添加执行任务命令生成和解析
2024.1.14
添加web
-
+2024.1.15
+ 实现方案导入导出,根据选项自动生成文件名
diff --git a/analysis/scheme_data.py b/analysis/scheme_data.py
index 81ed277..0c31c94 100644
--- a/analysis/scheme_data.py
+++ b/analysis/scheme_data.py
@@ -370,8 +370,14 @@ def show_scheme_id(file_list):
if __name__ == "__main__":
- # _main()
- file_list=find_type('./','.json')
- id_list=show_scheme_id(file_list)
- for i in id_list:
- print(i[1],i[0])
+ if(len(sys.argv)>=3):
+ path=sys.argv[1]
+ file_list=find_type(path,'.json')
+ id_list=show_scheme_id(file_list)
+ for i in id_list:
+ if(int(i[1])==int(sys.argv[2])):
+ print("-->",i[1],i[0])
+ else:
+ print(" ",i[1],i[0])
+ else:
+ print("python scheme_data.py [path] [plan_id]")
diff --git a/coder_2ch/prottcp.py b/coder_2ch/prottcp.py
index abbddde..361e508 100644
--- a/coder_2ch/prottcp.py
+++ b/coder_2ch/prottcp.py
@@ -492,12 +492,12 @@ if __name__ == "__main__":
# # 直接测量
# u.cmd=0x44
# data=bytearray([5])
- # # 赋码仪新检测命令
- # u.cmd=0x10
- # data=bytearray([0xff,0x03,0,0,0,0])
+ # 赋码仪新检测命令
+ u.cmd=0x10
+ data=bytearray([0xff,0x03,0,0,0,0])
# 批检仪新检测命令,写入流水号
- u.cmd=0x48
- data=bytearray([2,1,2,3,0, 3,5,6,7,0, 9,8,9,10,0])
+ # u.cmd=0x48
+ # data=bytearray([2,1,2,3,0, 3,5,6,7,0, 9,8,9,10,0])
print(u.encode(data).hex(' '))
# with open("file/EX_Coder_Test_2023-07-6.json","rb") as f:
diff --git a/updata/runtask_table.py b/updata/runtask_table.py
index 8779a76..e61fd09 100644
--- a/updata/runtask_table.py
+++ b/updata/runtask_table.py
@@ -323,16 +323,16 @@ if __name__ == "__main__":
# 检测并写入流水号
# data=coder_check_write_sn(0,12345)
- # # 检测并读取工厂信息和延时
- # data=coder_check_read_fatinfo(0)
+ # 检测并读取工厂信息和延时
+ data=coder_check_read_fatinfo(0)
# data=bytearray.fromhex("0d 00 00 0d 01 1f 0a 01 18 02 0a 05 01 14 00 04 00")
- # u.cmd=0x21
- # data=u.encode(data)
- # print(data.hex(' '))
- def fun():
- return "fun_test"
- d={"fun":fun
- }
- print(d["fun"]())
+ u.cmd=0x21
+ data=u.encode(data)
+ print(data.hex(' '))
+ # def fun():
+ # return "fun_test"
+ # d={"fun":fun
+ # }
+ # print(d["fun"]())
diff --git a/web/layui/BTcomm.js b/web/layui/BTcomm.js
index f598dfd..d18cd99 100644
--- a/web/layui/BTcomm.js
+++ b/web/layui/BTcomm.js
@@ -4,7 +4,7 @@ var BT_OPER_SENDDATAS = 2;
var BT_OPEN_CMD = 1;
var BT_CHHOICE_CMD = 2;
var BT_BEEP_CMD = 3;
-var BT_MES_AUTO_CLEAN = 10000;
+var BT_MES_AUTO_CLEAN = 5000;
var bt_mes_count = 0;
var BTBtnTask_Busy = 0;
var BTMesgBox;
diff --git a/web/layui/Checker/EWChecker.js b/web/layui/Checker/EWChecker.js
index 09f0649..d917e6b 100644
--- a/web/layui/Checker/EWChecker.js
+++ b/web/layui/Checker/EWChecker.js
@@ -344,18 +344,78 @@ EW_ErrorInfo={
//错误描述
//主错误段
MajorErrInfo:[
-{Info:"执行成功",MajorErrCode:0,SubErrCode:[]},
-{Info:"检测器异常",MajorErrCode:1,SubErrCode:[21,23,254]},
-{Info:"主电容异常",MajorErrCode:2,SubErrCode:[30,31,32,33,34,35,42]},
-{Info:"接触异常",MajorErrCode:3,SubErrCode:[27]},
-{Info:"桥丝阻值异常",MajorErrCode:4,SubErrCode:[30,41,42,51]},
-{Info:"芯片异常",MajorErrCode:5,SubErrCode:[22,24,25,26,27,28,29,30,32,33,35,36,37,38,39,40,41,42,43,44,45,52,53,54]},
-{Info:"判定任务缺失",MajorErrCode:6,SubErrCode:[212]},
-{Info:"过流",MajorErrCode:7,SubErrCode:[]},
-{Info:"短路",MajorErrCode:8,SubErrCode:[]},
-{Info:"未执行槽任务",MajorErrCode:9,SubErrCode:[]},
-{Info:"槽任务参数错误",MajorErrCode:10,SubErrCode:[]},
-{Info:"其他异常",MajorErrCode:20,SubErrCode:[255,208,209,210,211,212,213]},
+{
+Info:"执行成功",
+MajorErrCode:0,
+SubErrCode:[],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"检测器异常",
+MajorErrCode:1,
+SubErrCode:[21,23,254],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"主电容异常",
+MajorErrCode:2,
+SubErrCode:[30,31,32,33,34,35,42],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"接触异常",
+MajorErrCode:3,
+SubErrCode:[27],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"桥丝阻值异常",
+MajorErrCode:4,
+SubErrCode:[30,41,42,51],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"芯片异常",
+MajorErrCode:5,
+SubErrCode:[22,24,25,26,27,28,29,30,32,33,35,36,37,38,39,40,41,42,43,44,45,52,53,54],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"判定任务缺失",
+MajorErrCode:6,
+SubErrCode:[212],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"过流",
+MajorErrCode:7,
+SubErrCode:[],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"短路",
+MajorErrCode:8,
+SubErrCode:[],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"未执行槽任务",
+MajorErrCode:9,
+SubErrCode:[],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"槽任务参数错误",
+MajorErrCode:10,
+SubErrCode:[],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"其他异常",
+MajorErrCode:20,
+SubErrCode:[255,208,209,210,211,212,213],
+ErrFac:["参考错误细分项"],
+},
],//需要根据返回参数进行判断]
SubErrInfo:[
//详细错误段
@@ -477,4 +537,4 @@ ErrFac:[],
},//需要通过指标判断
],
};
-var EW_Product_Names=["EJ01","EJ03","EJ04","EJ05","EJ06","EJ09","EJ10","EQ09"];
\ No newline at end of file
+var EW_Product_Names=["EW"];
\ No newline at end of file
diff --git a/web/layui/Checker/JQChecker.js b/web/layui/Checker/JQChecker.js
index 0eb25e1..5e71f0d 100644
--- a/web/layui/Checker/JQChecker.js
+++ b/web/layui/Checker/JQChecker.js
@@ -350,28 +350,88 @@ JQ_ErrorInfo={
//错误描述
//主错误段
MajorErrInfo:[
-{Info:"执行成功",MajorErrCode:0,SubErrCode:[]},
-{Info:"检测器异常",MajorErrCode:1,SubErrCode:[21,23,254]},
+{
+Info:"执行成功",
+MajorErrCode:0,
+SubErrCode:[],
+ErrFac:["未检测到异常"],
+},
+{
+Info:"检测器异常",
+MajorErrCode:1,
+SubErrCode:[21,23,254],
+ErrFac:["1.外部短路导致检测器调压失败","2.设备故障"],
+},
// 主电容异常移除 dac比较错误30,状态错误42
// 如果有电容异常,在充能阶段已经暴露
-{Info:"主电容异常",MajorErrCode:2,SubErrCode:[31,32,33,34,35]},
-{Info:"接触异常",MajorErrCode:3,SubErrCode:[27]},
+{
+Info:"主电容异常",
+MajorErrCode:2,
+SubErrCode:[31,32,33,34,35],
+ErrFac:["1.电容充放电测试指标超出限制","2.电容短路、短路或损坏"],
+},
+{
+Info:"接触异常",
+MajorErrCode:3,
+SubErrCode:[27],
+ErrFac:["1.线路接触异常","2.模块铆接异常","3.芯片虚焊或损坏"],
+},
// 桥丝异常移除 41,42
// 如果有桥丝异常,在dac比较阶段和电阻检阶段已暴露
-{Info:"桥丝阻值异常",MajorErrCode:4,SubErrCode:[30,51]},
+{
+Info:"桥丝阻值异常",
+MajorErrCode:4,
+SubErrCode:[30,51],
+ErrFac:["1.(外力导致)桥丝断","2.桥丝焊接异常"],
+},
// 移除上电充能异常22,加入其他异常
-{Info:"芯片异常",MajorErrCode:5,SubErrCode:[24,25,26,27,28,29,30,32,33,35,36,37,38,39,40,41,42,43,44,45,52,53,54]},
-{Info:"判定任务缺失",MajorErrCode:6,SubErrCode:[212]},
-{Info:"过流",MajorErrCode:7,SubErrCode:[]},
-{Info:"短路",MajorErrCode:8,SubErrCode:[]},
-{Info:"未执行槽任务",MajorErrCode:9,SubErrCode:[]},
-{Info:"槽任务参数错误",MajorErrCode:10,SubErrCode:[]},
-{Info:"其他异常",MajorErrCode:20,SubErrCode:[22,255,208,209,210,211,212,213]},
+{
+Info:"芯片异常",
+MajorErrCode:5,
+SubErrCode:[24,25,26,27,28,29,30,32,33,35,36,37,38,39,40,41,42,43,44,45,52,53,54],
+ErrFac:["1.对芯片功能(读写OTP、时钟校准等)的检测失败"],
+},
+{
+Info:"判定任务缺失",
+MajorErrCode:6,
+SubErrCode:[212],
+ErrFac:["1.设备程序未更新"],
+},
+{
+Info:"过流",
+MajorErrCode:7,
+SubErrCode:[],
+ErrFac:["1.模块静态电流指标超过限制"],
+},
+{
+Info:"连接线短路",
+MajorErrCode:8,
+SubErrCode:[],
+ErrFac:["1.线路短路","2.芯片焊接异常","3.器件损坏"],
+},
+{
+Info:"未执行槽任务",
+MajorErrCode:9,
+SubErrCode:[],
+ErrFac:["1.设备程序未更新"],
+},
+{
+Info:"槽任务参数错误",
+MajorErrCode:10,
+SubErrCode:[],
+ErrFac:["1.槽任务(写延时、写流水号等)返回值错误"],
+},
+{
+Info:"其他异常",
+MajorErrCode:20,
+SubErrCode:[22,255,208,209,210,211,212,213],
+ErrFac:["1.不常见的异常"],
+},
],//需要根据返回参数进行判断]
SubErrInfo:[
//详细错误段
{Info:"无异常",ErrCode:0,
-ErrFac:["当检测任务不产生异常时使用此错误码"]},
+ErrFac:["1.当检测任务不产生异常时使用此错误码"]},
{Info:"预设电压异常",ErrCode:21,
ErrFac:["1.检测小板电压调节失效,存在无法设置的电压"]},
{Info:"上电充能错误",ErrCode:22,
@@ -487,4 +547,4 @@ ErrFac:[],
},//需要通过指标判断
],
};
-var JQ_Product_Names=["EJ01","EJ03","EJ04","EJ05","EJ06","EJ09","EJ10","EQ09","EQ05","EQ06","EQ07"];
\ No newline at end of file
+var JQ_Product_Names=["EJ","EQ","EJ(Q)"];
\ No newline at end of file
diff --git a/web/layui/Checker/XTChecker.js b/web/layui/Checker/XTChecker.js
index fc5b5b8..119dbc0 100644
--- a/web/layui/Checker/XTChecker.js
+++ b/web/layui/Checker/XTChecker.js
@@ -305,17 +305,67 @@ XT_ErrorInfo={
//错误描述
//主错误段
MajorErrInfo:[
-{Info:"执行成功",MajorErrCode:0,SubErrCode:[]},
+{
+Info:"执行成功",
+MajorErrCode:0,
+SubErrCode:[],
+ErrFac:["参考错误细分项"],
+},
// 添加异常代码254
-{Info:"检测器异常",MajorErrCode:1,SubErrCode:[21,23,254]},
-{Info:"主电容异常",MajorErrCode:2,SubErrCode:[31,32,33,34,35]},
-{Info:"接触异常",MajorErrCode:3,SubErrCode:[27,37]},
-{Info:"桥丝阻值异常",MajorErrCode:4,SubErrCode:[30,51]},
-{Info:"芯片异常",MajorErrCode:5,SubErrCode:[22,24,25,26,27,28,29,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,54,55]},
-{Info:"判定任务缺失",MajorErrCode:6,SubErrCode:[212]},
-{Info:"过流",MajorErrCode:7,SubErrCode:[]},
-{Info:"短路",MajorErrCode:8,SubErrCode:[]},
-{Info:"其他异常",MajorErrCode:20,SubErrCode:[255,208,209,210,211,212,213]},
+{
+Info:"检测器异常",
+MajorErrCode:1,
+SubErrCode:[21,23,254],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"主电容异常",
+MajorErrCode:2,
+SubErrCode:[31,32,33,34,35],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"接触异常",
+MajorErrCode:3,
+SubErrCode:[27,37],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"桥丝阻值异常",
+MajorErrCode:4,
+SubErrCode:[30,51],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"芯片异常",
+MajorErrCode:5,
+SubErrCode:[22,24,25,26,27,28,29,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,54,55],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"判定任务缺失",
+MajorErrCode:6,
+SubErrCode:[212],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"过流",
+MajorErrCode:7,
+SubErrCode:[],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"短路",
+MajorErrCode:8,
+SubErrCode:[],
+ErrFac:["参考错误细分项"],
+},
+{
+Info:"其他异常",
+MajorErrCode:20,
+SubErrCode:[255,208,209,210,211,212,213],
+ErrFac:["参考错误细分项"],
+},
],//需要根据返回参数进行判断]
SubErrInfo:[
//详细错误段
@@ -447,6 +497,6 @@ ErrFac:[],
}
-var XT_Product_Names=["EX05A","EX09C","EX09F","EX09J","EX09A"];
+var XT_Product_Names=["EX"];
diff --git a/web/layui/Checker/checker_cmdTest.js b/web/layui/Checker/checker_cmdTest.js
index 4022672..a511f4e 100644
--- a/web/layui/Checker/checker_cmdTest.js
+++ b/web/layui/Checker/checker_cmdTest.js
@@ -160,6 +160,7 @@ function Checker_PlanTest()
var MesBox_InputTestResult_ID = -1;
function CheckerShowMes_InputResult()
{
+
if(MesBox_InputTestResult_ID < 0)
{
@@ -382,23 +383,20 @@ function Checker_CommSendStr(str)
}
-function Checker_ShowCurMontior()
-{
-
-
-}
function Checker_ShowReadStr(str)
{
//str = "test taefCurM1ontiorofjiofjowfjoeifdslafjow\n"
- str = str.replace("\r\n","\n");
- str = str.replace("\r","\n");
- if(str.indexOf("CurMontior") >= 0)
+
+ if(str.indexOf("CurMR") >= 0)
{
- CheckerShowCurEcharts(cur);
+ str = str.split("\t");
+ CheckerShowCurEcharts(str[1]);
}
else if(CheckerPlanTest_flag == false)
{
+ str = str.replace("\r\n","\n");
+ str = str.replace("\r","\n");
str = str.split("\n");
for(var index = 0; index < str.length;index++)
{
diff --git a/web/layui/Checker/checker_ye_cfg.js b/web/layui/Checker/checker_ye_cfg.js
index d8f7e27..52eaaa3 100644
--- a/web/layui/Checker/checker_ye_cfg.js
+++ b/web/layui/Checker/checker_ye_cfg.js
@@ -8,11 +8,11 @@ var CheckerChipID = 0;
var Checker_Product_Name = JQ_Product_Names;
var epe_qthandle = null;
var Checker_Test_CMD_ID_BEG = 200;//测试命令的起始ID应该大于200
-var ProductFun_Class = ["0:100uF大电解30um桥丝","1:68uF坦电容22um桥丝","2:68uF坦电容8Ω电阻","3:68uF坦电容6Ω电阻","4:33uF钽电容22um桥丝",
-"5:33uF钽电容2欧电阻","6:100uF固液混合","7:82uF电解8R电阻"]
+var ProductFun_Class = ["0:通用","1:68uF坦电容22um桥丝","2:68uF坦电容8Ω电阻","3:68uF坦电容6Ω电阻","4:33uF钽电容22um桥丝",
+"5:33uF钽电容2Ω电阻","6:100uF固液混合6欧","7:82uF电解8Ω电阻","8:100uF固液混合8Ω电阻","9:100uF大电解30um桥丝"]
var Checker_YE_Cfg = {
-PlanID:01,//检测方案ID
+PlanID:1,//检测方案ID
PlanBrief:"电解电容雷管厂高压检测",
CheckSoftVersion:[0x0001,0x0002],//适配检测小板,检测小板主版本
CheckHardVersion:[0x000],//适配的硬件
@@ -25,7 +25,7 @@ FacInfoAddr:-1,//小于0表示未选择
FacFunClass:0,
}
-var CheckerChipType=["EJ系列","EX系列","EW系列"];
+var CheckerChipType=["EJ/EQ系列","EX系列","EW系列"];
function JQChecker_GetErrorInfo(errcode)
{
@@ -104,8 +104,7 @@ function CheckerPlan_Init()
{
console.log("JQCheckerPlan_Init OK ---");
}else{
- // epe_qthandle = qchannel.objects.epe_qthandle;
- epe_qthandle=pywebview.api
+ epe_qthandle = qchannel.objects.epe_qthandle;
if ((typeof(epe_qthandle) != "undefined") && (epe_qthandle != null))
{
console.log("JQCheckerPlan_Init OK ---");
@@ -260,11 +259,11 @@ function Checker_UpdateChipInfo(chipid)
switch(chipid)
{
case 0:Checker_Error_Info = JQ_ErrorInfo;CheckerTask_Info = JQCheckerTaskInfo;
- Checker_Product_Name = JQ_Product_Names; break;
+ Checker_Product_Name = JQ_Product_Names; break;
case 1:Checker_Error_Info = XT_ErrorInfo;CheckerTask_Info = XTCheckerTaskInfo;
- Checker_Product_Name = XT_Product_Names;break;
- case 2:Checker_Error_Info = EW_ErrorInfo;CheckerTask_Info = EWCheckerTaskInfo;
- Checker_Product_Name = EW_Product_Names;break;
+ Checker_Product_Name = XT_Product_Names;break;
+ case 2:Checker_Error_Info = EW_ErrorInfo;CheckerTask_Info = EWCheckerTaskInfo;
+ Checker_Product_Name = EW_Product_Names;break;
}
}
@@ -526,14 +525,28 @@ function Checker_GetCfgInfo()
retry_count = parseInt(retry_count,10);
var param_info = [];
+
+
+ /*2023-11-20 修改遍历查找对应ID的配置信息*/
+ var CheckerItem_Info ;
+ for(var i = 0; i < CheckerTask_Info.length;i++)
+ {
+ if(CheckerTask_Info[i].TaskID == task_id)
+ {
+ CheckerItem_Info = CheckerTask_Info[i];
+ break;
+ }
+ }
+
if(param_array.length != 0 && task_id < Checker_Test_CMD_ID_BEG)//TaskID = 255 是独立测试命令
{
- param_info = CheckerTask_Info[task_id].ParamInfo.slice(0,param_array.length);
+
+ param_info = CheckerItem_Info.ParamInfo.slice(0,param_array.length);
}
var rtv_info = [];
// if(target_min.length != 0)
// {
- // rtv_info = CheckerTask_Info[task_id].ReturnInfo.slice(0,target_min.length);
+ // rtv_info = CheckerItem_Info.ReturnInfo.slice(0,target_min.length);
// }
temp_input_list = temp_obj.find('.rtv_alias_input');
@@ -602,35 +615,41 @@ function Checker_GetCfgInfo()
function Cheker_Export()
{
-
Checker_Export_Plan = Checker_GetCfgInfo();
- // var json_str = JSON.stringify(Checker_Export_Plan);
- // console.log(json_str);
+
+ // if(!(epe_qthandle != null && typeof(epe_qthandle) != "undefined"))
+ // {
+ // var json_str = JSON.stringify(Checker_Export_Plan);
+ // Checker_ExportMesInfo();
+ // console.log(json_str);
+ // return ;
+ // }
+
if(Checker_Export_Plan.PlanID == (~0))
{
return;
}
+ // Checker_ExportInputPWD();
pywebview.api.save_plan(Checker_Export_Plan)
}
function Checker_Import()
{
- if(epe_qthandle != null && typeof(epe_qthandle) != "undefined")
- {
- // console.log("ssssss")
- epe_qthandle.Epe_JQImportPlan();
- }else{
- var checker_plan = testPaln;
- // console.log(checker_plan)
- Checker_LoadPlan(checker_plan);
- }
-
+ // var checker_plan = testPaln;
+ // Checker_LoadPlan(checker_plan);
+ pywebview.api.load_plan().then((result)=>{
+ if(result !=null){
+ Checker_LoadPlan(result);
+ }else{
+ // Checker_LoadPlan(testPaln);
+ }
+ })
}
function Checker_LoadPlan(checker_plan)
{
if((checker_plan.PlanID & 0xFFFFFF00) == 0)
{
var date = new Date();
- date_str = date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDay();
+ date_str = date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
checker_plan.planid = Checker_GetPlanID(date_str,0,checker_plan.PlanID);
}
var plan_info = Checker_GetShowPlanID(checker_plan.PlanID);
@@ -643,7 +662,7 @@ function Checker_LoadPlan(checker_plan)
function Checker_ImportShow(checker_plan )
{
//var checker_plan = Checker_YE_Cfg;
- // console.log(checker_plan);
+ console.log(checker_plan);
var obj_list = $(".checker_cfig_div").children();
//删除所有元素
while(obj_list.length > 1)
@@ -1353,6 +1372,120 @@ function Checker_ErrorChoice(btnobj)
});
}
+function Checker_ExportMesInfo()
+{
+ Checker_Export_Plan.MajorErrInfo = Checker_Error_Info.MajorErrInfo;
+ Checker_Export_Plan.SubErrInfo = Checker_Error_Info.SubErrInfo;
+
+ var AllError
+ var Cheker_Info = {
+ AllTaskInfoArray:CheckerTask_Info,
+ PlanTaskInfoArray:[],
+ AllErrorInfoArray:[],
+ PlanErroInfoArray:[],
+ PlanStandardInfo:[],
+ }
+ //taskInfoArray = Checker_Export_Plan.TaskArray;
+ var allErrorInfoArray=[];
+ var planErroInfoArray = [];
+ var count = 0;
+ var major_count = 0;
+ for(var i =0; i < Checker_Error_Info.MajorErrInfo.length;i++ )
+ {
+ var info_ = {};
+ info_.ErrCode = Checker_Error_Info.MajorErrInfo[i].MajorErrCode;
+ info_.Info = Checker_Error_Info.MajorErrInfo[i].Info;
+ info_.ErrFac = Checker_Error_Info.MajorErrInfo[i].ErrFac;
+ allErrorInfoArray[count++] = info_;
+ }
+ planErroInfoArray = allErrorInfoArray;//将主错误放在每次方案错误里面
+ major_count = count;
+ for(var i = 0; i < Checker_Error_Info.SubErrInfo.length;i++ )
+ {
+ allErrorInfoArray[count++] = Checker_Error_Info.SubErrInfo[i];
+ }
+ Cheker_Info.AllErrorInfoArray = allErrorInfoArray;
+
+
+ var taskInfoArray = [];
+ count = 0;
+ for(var i = 0; i < Checker_Export_Plan.TaskArray.length; i++)
+ {
+ var taskid = Checker_Export_Plan.TaskArray[i].TaskID;
+ var index_ = 0;
+ var flag_ = 0;
+ var taskMes = "";
+ for(var index_ = 0; index_< Cheker_Info.AllTaskInfoArray.length;index_++)
+ {
+ if(Cheker_Info.AllTaskInfoArray[index_].TaskID == taskid)
+ {
+ flag_ = 1;
+ taskMes = Cheker_Info.AllTaskInfoArray[index_].TaskBrief ;
+ break;
+ }
+
+ }
+ if(flag_ == 0)
+ {
+ continue;
+ }
+ var obj_ = Checker_Export_Plan.TaskArray[i];
+ obj_.TaskMes = taskMes;
+ taskInfoArray[count++] = obj_;
+ }
+
+ count = 0;
+ for(var i = 0; i < Checker_Export_Plan.TaskArray.length; i++)
+ {
+ var tempStandard = Checker_Export_Plan.TaskArray[i].TestStandard;
+ var tempRetInfo = Checker_Export_Plan.TaskArray[i].ReturnInfo;
+ var taskid = Checker_Export_Plan.TaskArray[i].TaskID;
+ var index_ = 0;
+ for(var index_ = 0; index_< tempStandard.length;index_++)
+ {
+ var obj_={
+ RetName:tempRetInfo[index_],
+ Max:tempStandard[index_].Max,
+ Min:tempStandard[index_].Min,
+ }
+ Cheker_Info.PlanStandardInfo[count++] = obj_;
+ }
+
+ }
+
+ for(var i = 0; i < Checker_Error_Info.SubErrInfo.length; i++)
+ {
+ var err_code = Checker_Error_Info.SubErrInfo[i].ErrCode;
+ for(var index_ = 0; index_< Checker_Export_Plan.TaskArray.length;index_++)
+ {
+ if(err_code == Checker_Export_Plan.TaskArray[index_].ExecuteErrCode)
+ {
+ break;
+ }
+ var ResultErrCodeArray = Checker_Export_Plan.TaskArray[index_].ResultErrCode;
+ for(var index2 = 0; index2 < ResultErrCodeArray.length; index2++)
+ {
+ if(ResultErrCodeArray[index2] == err_code)
+ {
+ break;
+ }
+ }
+ }
+ planErroInfoArray[planErroInfoArray.length] = Cheker_Info.AllErrorInfoArray[i];
+ }
+
+ Cheker_Info.PlanTaskInfoArray = taskInfoArray;
+ Cheker_Info.PlanErroInfoArray = planErroInfoArray;
+ var checker_info_str = JSON.stringify(Cheker_Info,null,2);
+ var json_str = JSON.stringify(Checker_Export_Plan,null,2);
+ var pwd_str = $('.checker_export_pwd_input').val();
+ if(epe_qthandle != null && typeof(epe_qthandle) != "undefined")
+ {
+ console.log("epe_qthandle.Epe_JQSavePlan");
+ epe_qthandle.Epe_JQSavePlan2(pwd_str,CheckPlan_Export_PWD,Checker_Export_Plan.PlanBrief,json_str,checker_info_str);
+ }
+
+}
function Checker_ExportInputPWD()
{
var content_str = '
';
@@ -1383,99 +1516,8 @@ function Checker_ExportInputPWD()
});
Checker_Pwwd_Dialog_ID = tip_id;
$(".jqchecker_export_pwd_btn").click(function(){
- Checker_Export_Plan.MajorErrInfo = Checker_Error_Info.MajorErrInfo;
- Checker_Export_Plan.SubErrInfo = Checker_Error_Info.SubErrInfo;
- var Cheker_Info = {
- AllTaskInfoArray:CheckerTask_Info,
- PlanTaskInfoArray:[],
- AllErrorInfoArray:Checker_Error_Info.SubErrInfo,
- PlanErroInfoArray:[],
- PlanStandardInfo:[],
- }
- //taskInfoArray = Checker_Export_Plan.TaskArray;
-
- var taskInfoArray = [];
- var count = 0;
- for(var i = 0; i < Checker_Export_Plan.TaskArray.length; i++)
- {
- var taskid = Checker_Export_Plan.TaskArray[i].TaskID;
- var index_ = 0;
- var flag_ = 0;
- var taskMes = "";
- for(var index_ = 0; index_< Cheker_Info.AllTaskInfoArray.length;index_++)
- {
- if(Cheker_Info.AllTaskInfoArray[index_].TaskID == taskid)
- {
- flag_ = 1;
- taskMes = Cheker_Info.AllTaskInfoArray[index_].TaskBrief ;
- break;
- }
-
- }
- if(flag_ == 0)
- {
- continue;
- }
- var obj_ = Checker_Export_Plan.TaskArray[i];
- obj_.TaskMes = taskMes;
- taskInfoArray[count++] = obj_;
- }
- var count = 0;
- for(var i = 0; i < Checker_Export_Plan.TaskArray.length; i++)
- {
- var tempStandard = Checker_Export_Plan.TaskArray[i].TestStandard;
- var tempRetInfo = Checker_Export_Plan.TaskArray[i].ReturnInfo;
- var taskid = Checker_Export_Plan.TaskArray[i].TaskID;
- var index_ = 0;
- for(var index_ = 0; index_< tempStandard.length;index_++)
- {
- var obj_={
- RetName:tempRetInfo[index_],
- Max:tempStandard[index_].Max,
- Min:tempStandard[index_].Min,
- }
- Cheker_Info.PlanStandardInfo[count++] = obj_;
- }
-
- }
-
-
- var planErroInfoArray = [];
- count = 0;
- for(var i = 0; i < Cheker_Info.AllErrorInfoArray.length; i++)
- {
- var taskid = Cheker_Info.AllErrorInfoArray[i].ErrCode;
- var flag_ = 0;
- for(var index_ = 0; index_< Checker_Export_Plan.TaskArray.length;index_++)
- {
- if(taskid == Checker_Export_Plan.TaskArray[index_].ExecuteErrCode)
- {
- flag_ = 1;
- break;
- }
- var ResultErrCodeArray = Checker_Export_Plan.TaskArray[index_].ResultErrCode;
- for(var index2 = 0; index2 < ResultErrCodeArray.length; index2++)
- {
- if(ResultErrCodeArray[index2] == taskid)
- {
- flag_ = 1;
- break;
- }
- }
- }
- planErroInfoArray[count++] = Cheker_Info.AllErrorInfoArray[i];
- }
- Cheker_Info.PlanTaskInfoArray = taskInfoArray;
- Cheker_Info.PlanErroInfoArray = planErroInfoArray;
- var checker_info_str = JSON.stringify(Cheker_Info,null,2);
- var json_str = JSON.stringify(Checker_Export_Plan,null,2);
- var pwd_str = $('.checker_export_pwd_input').val();
- if(epe_qthandle != null && typeof(epe_qthandle) != "undefined")
- {
- console.log("epe_qthandle.Epe_JQSavePlan");
- epe_qthandle.Epe_JQSavePlan(pwd_str,CheckPlan_Export_PWD,json_str,checker_info_str);
- }
- });
+ Checker_ExportMesInfo();
+ });
}
@@ -1505,4 +1547,66 @@ function Checker_AddTaskList()
}
+function Checker_UpLoadServer()
+{
+ Checker_Export_Plan = Checker_GetCfgInfo();
+ if(Checker_Export_Plan.PlanID == (~0))
+ {
+ return;
+ }
+ var json_str = JSON.stringify(Checker_Export_Plan,null,2);
+ $.ajax({
+ url: 'http://47.108.119.117:9080/pjySource/upCheckplan',
+ method: 'POST',
+ data: json_str,
+ success: function(response) {
+ response = eval("(" + response+")");
+ if(response.isOK == true)
+ {
+ console.log('请求成功:', response);
+ }
+
+ },
+ error: function(xhr, status, error) {
+ console.log('请求失败:', error);
+ }
+
+ });
+}
+
+
+
+// 选项改变之后
+function slect_onchange(){
+ // 选择工厂
+ var chip = document.getElementById("product_class_sel_id");
+ var fatc = document.getElementById("plan_fatc_sel_id");
+ var step = document.getElementById("plan_step_sel_id");
+ var bref = document.getElementById("plan_bref_input");
+ var featur = document.getElementById("plan_featur_sel_id");
+ var date_input = document.getElementById("plan_date_id");
+ var planid_input = document.getElementById("plan_id_input_id");
+ var fatc_text = fatc.options[fatc.selectedIndex].text;
+ var step_text = step.options[step.selectedIndex].text;
+ var featur_text = featur.options[featur.selectedIndex].text;
+ var chip_text= chip.options[chip.selectedIndex].text;
+ var date_text=date_input.value.split("-");
+ bref.value=chip_text+fatc_text+step_text+featur_text.split(":")[1]
+ +date_text[1]+date_text[2]+'_'+planid_input.value;
+}
+
+function date_click(){
+ console.log("date_click");
+ var date = new Date();
+ var date_str = date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();
+ var date_input = document.getElementById("plan_date_id");
+ date_input.value=date_str;
+ // 更新日期显示
+ var plan_id=Checker_GetPlanIDInput();
+ var planid_info=Checker_GetShowPlanID(plan_id);
+ date_input.value=planid_info.date_str;
+
+ console.log(date_str);
+ slect_onchange();
+}
diff --git a/web/layui/Epro-II.html b/web/layui/Epro-II.html
index 8d2f5a3..4e7df97 100644
--- a/web/layui/Epro-II.html
+++ b/web/layui/Epro-II.html
@@ -35,7 +35,7 @@
-
+
diff --git a/web/layui/Epro-JCmd.js b/web/layui/Epro-JCmd.js
index 0771c0a..2fe61b2 100644
--- a/web/layui/Epro-JCmd.js
+++ b/web/layui/Epro-JCmd.js
@@ -1181,8 +1181,8 @@ function YMUid_Valid_check(u8ArrayYMUid) {
}
if (u8ValidDataCounter < 7)
- return 1;
- return 0;
+ return false;
+ return true;
}
function YMUid_Valid_check_2(u8ArrayYMUid)
diff --git a/web/layui/checker_ye_cfg.html b/web/layui/checker_ye_cfg.html
index 3849c9b..5f370d6 100644
--- a/web/layui/checker_ye_cfg.html
+++ b/web/layui/checker_ye_cfg.html
@@ -64,10 +64,7 @@
-
-
-
-
-
+
@@ -118,7 +112,7 @@
@@ -153,7 +147,7 @@
@@ -187,29 +181,33 @@
工厂信息
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
+
@@ -226,6 +224,10 @@
style=" max-width:6rem; height: 1.8rem; line-height: 1.8rem; padding: 0 0.8rem;width: 90%;margin:0 auto;" onclick="CheckerShowMes_InputResult()">数据检测
+
+
+
diff --git a/web/layui/epro2_cmd.js b/web/layui/epro2_cmd.js
index bbd9112..b173ddb 100644
--- a/web/layui/epro2_cmd.js
+++ b/web/layui/epro2_cmd.js
@@ -47,7 +47,8 @@ var ep2_excued_rtv;
var ep2_cmd_excue_busy = 0
var ep2_bus_cur = 0;
var ep2_recive_buf = [];
-var EP2_CMM_RATE = 800;
+var EP2_CMM_RATE = 500;
+var ep2_log_write_flag = 0;
function Ep2_Start_Comm()
{
console.log("Ep2_Start_Comm ");
@@ -164,7 +165,13 @@ function Ep2_Init()
var id = data.elem.id;
if(id == "mes_save_log")
{
- layer.tips('日志记录 '+ (this.checked ? 'true' : 'false'), data.othis)
+ 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")
// {
@@ -243,7 +250,7 @@ function EP2_HeartBeat(frame_buf)
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);
+ ShowCommMes(mes,MesgType.MESG_TYPE_INFO,ep2_log_write_flag);
}
function EP2Comm_Recive(jsoninfo)
{
@@ -342,7 +349,7 @@ async function Ep2_WaitCmdExcu( cmd, time_out)
if(ep2_excued_rtv != 0)
{
ShowCommMes("命令执行失败",MesgType.MESG_TYPE_ERROR);
- epro2_oper.cycle_test = 0;//停止循环测试
+ // epro2_oper.cycle_test = 0;//停止循环测试
//epro2_oper.cycle_runcount = 1;
return 2;
}
@@ -501,14 +508,45 @@ async function Ep2_CheckSelfCmd(addr)
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);
+ 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 = [];
@@ -531,7 +569,7 @@ async function Ep2_ReadFirmwareCmd(addr)
async function Ep2_ReadSysStatesCmd(addr)
{
var param = [];
- var cmd_buf = Ep2_CmdData(addr,28,param,5,2,EP2_CMM_RATE);
+ 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);
@@ -757,6 +795,9 @@ async function Ep2_SaveFirInfo()
}
}
+
+var Ep2_Inspect_OK = [];
+
async function Ep2_Inspect_Task(type)
{
var bgaddr = epro2_oper.cycle_bgaddr;
@@ -784,6 +825,7 @@ async function Ep2_Inspect_Task(type)
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)
@@ -838,19 +880,19 @@ async function Ep2_RunBootLoader()
ShowCommMes("执行跳转成功",MesgType.MESG_TYPE_INFO);
}
}
-async function Ep2_autoSetAddr()
+async function Ep2_autoSetAddr(max_addr, addr_fac)
{
var param = [];
- param[0] = epro2_oper.cycle_endaddr & 0x0FF;
- param[1] = (epro2_oper.cycle_endaddr >> 8) & 0x0FF;
- param[2] = epro2_oper.auset_addr_fac & 0x0FF;
- param[3] = (epro2_oper.auset_addr_fac >> 8) & 0x0FF;
+ 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("设置自动分配地址因子成功 " + epro2_oper.auset_addr_fac + "最大地址 "+ epro2_oper.cycle_endaddr ,MesgType.MESG_TYPE_INFO);
+ ShowCommMes("设置自动分配地址因子成功 " + addr_fac + "最大地址 "+ max_addr ,MesgType.MESG_TYPE_INFO);
}
return rtv;
}
@@ -876,7 +918,8 @@ async function Ep2_ReadUID()
return 0;
}else{
- ShowCommMes("读取UID失败 ",MesgType.MESG_TYPE_ERROR);
+ ShowCommMes("地址 "+epro2_oper.commaddr +" 读取UID失败 ",MesgType.MESG_TYPE_ERROR);
+ rtv = -1;
}
}
@@ -885,7 +928,8 @@ async function Ep2_ReadUID()
async function Ep2_WriteUID()
{
var uid_arr = Str2Bytes(epro2_oper.uid);
- uid_arr = UidCode_YM2JQ(uid_arr);
+ //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)
@@ -1069,8 +1113,22 @@ async function Ep2_ReadDelay()
}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()
{
@@ -1175,6 +1233,8 @@ async function Ep2_WriteRuncfg()
async function Ep2_ExcueOperCmd()
{
+
+
var once_excue = 0;
if(epro2_oper.cycle_test > 0)
{
@@ -1199,6 +1259,7 @@ async function Ep2_ExcueOperCmd()
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;
@@ -1219,7 +1280,7 @@ async function Ep2_ExcueOperCmd()
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();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;
diff --git a/web/layui/epro2_cmd.js.jq b/web/layui/epro2_cmd.js.jq
new file mode 100644
index 0000000..a07c132
--- /dev/null
+++ b/web/layui/epro2_cmd.js.jq
@@ -0,0 +1,1301 @@
+
+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 = 800;
+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)
+ }
+ // 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);
+}
+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);
+ }else{
+ var mes = "UID:"+uid+" 配置失败";
+ ShowCommMes(mes,MesgType.MESG_TYPE_ERROR);
+ }
+ 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_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,2,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);
+ }
+}
+
+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++)
+ {
+ 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()
+{
+ var param = [];
+ param[0] = epro2_oper.cycle_endaddr & 0x0FF;
+ param[1] = (epro2_oper.cycle_endaddr >> 8) & 0x0FF;
+ param[2] = epro2_oper.auset_addr_fac & 0x0FF;
+ param[3] = (epro2_oper.auset_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("设置自动分配地址因子成功 " + epro2_oper.auset_addr_fac + "最大地址 "+ epro2_oper.cycle_endaddr ,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("读取UID失败 ",MesgType.MESG_TYPE_ERROR);
+ }
+
+ }
+ 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_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 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();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_str = epro2_oper.cycle_bguid.slice(11,15);
+ var uidhead = epro2_oper.cycle_bguid.slice(0,11);
+ 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);
+}
diff --git a/web/layui/main.js b/web/layui/main.js
index ec9cc08..99b9156 100644
--- a/web/layui/main.js
+++ b/web/layui/main.js
@@ -78,7 +78,7 @@ function Main_ShowCommport(json_str)
content += ' '
content += ''
content += '';
content += '
'
$("#Oper_View").append(content_str);
}
@@ -22,7 +35,7 @@ async function EWRunFire()
async function Ew_Autobind()
{
var rtv = 0;
- epro2_oper.ep2_heartbeat_sw = 0;
+
ep2_getInput();
epro2_oper.cmd = 13;
await Ep2_HeartBeat_SW();
@@ -103,5 +116,151 @@ async function Ew_AutoFire()
await TransSleep(200);
epro2_oper.cmd = 18;
await Ep2_Blast();
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+ShowCommMes("起爆成功",MesgType.MESG_TYPE_INFO);
+
await Ep2_BusSwitch(0);
+}
+
+var Ew_AutoFire_Flag = 0;
+async function Ew_AutoFirePrapare()
+{
+ // var run_counter = 0;
+ // if(Ew_AutoFire_Flag == 0)
+ // {
+ // Ew_AutoFire_Flag = 1;
+ // }else{
+ // Ew_AutoFire_Flag = 0;
+ // return;
+ // }
+ // while(Ew_AutoFire_Flag > 0)
+// {
+ ep2_getInput();
+ epro2_oper.ep2_high_voltage = 85;
+ epro2_oper.ep2_middle_voltage = 50;
+ await Ep2_BusSwitch(1);
+ await TransSleep(2000);
+ ShowCommMes("快速配置",MesgType.MESG_TYPE_INFO);
+ epro2_oper.cmd = 25;
+ epro2_oper.cycle_test = 1;
+ await Ep2_ExcueOperCmd();
+
+ epro2_oper.ep2_high_voltage = 200;
+ await Ep2_BusSwitch(1);
+ await TransSleep(2000);
+
+ ShowCommMes("充电",MesgType.MESG_TYPE_INFO);
+ epro2_oper.cmd = 17;
+ epro2_oper.cycle_test = 0;
+ await Ep2_ExcueOperCmd();
+ await TransSleep(8000);
+
+ ShowCommMes("使能MTP",MesgType.MESG_TYPE_INFO);
+ epro2_oper.cmd = 29;
+ await Ep2_ExcueOperCmd();
+ await TransSleep(200);
+
+
+ ShowCommMes("校准",MesgType.MESG_TYPE_INFO);
+ epro2_oper.cmd = 7;
+ await Ep2_ExcueOperCmd();
+ await TransSleep(1500);
+
+ ShowCommMes("保持配置",MesgType.MESG_TYPE_INFO);
+ epro2_oper.cmd = 3;
+ await Ep2_ExcueOperCmd();
+ await TransSleep(1000);
+
+ epro2_oper.cmd = 4;
+ await Ep2_ExcueOperCmd();
+ await TransSleep(1000);
+
+ if( typeof(ep2_qthandle) != "undefined" && ep2_qthandle != null )
+ {
+ ep2_qthandle.Ep2_Beep(2);
+ }
+ epro2_oper.cmd = 18;
+ await Ep2_ExcueOperCmd();
+ await Ep2_BusSwitch(0);
+ // await TransSleep(2000);
+ // run_counter++;
+ // ShowCommMes("运行次数 "+run_counter,MesgType.MESG_TYPE_INFO);
+ // }
+}
+
+
+async function Ew_MutilFire()
+{
+ epro2_oper.cmd = 18;
+ await Ep2_ExcueOperCmd();
+ await Ep2_BusSwitch(0);
+}
+var EW_PorwerOnTest_Flag = 0;
+async function Ew_PowerOnTest()
+{
+ if(EW_PorwerOnTest_Flag == 0)
+ {
+ EW_PorwerOnTest_Flag = 1;
+ }else{
+ EW_PorwerOnTest_Flag = 0;
+ return;
+ }
+ ep2_getInput();
+ //开心跳
+
+ epro2_oper.ep2_heartbeat_sw = 0;
+ epro2_oper.cmd = 13;
+ await Ep2_HeartBeat_SW();
+ var count = 0;
+ var delay_count = 0;
+ while(count < 1000 && EW_PorwerOnTest_Flag > 0)
+ {
+ count++;
+ //关总线
+ delay_count = 0;
+ epro2_oper.cmd = 16;
+ await Ep2_BusSwitch(0);
+ while(delay_count < 120 && EW_PorwerOnTest_Flag > 0)
+ {
+ await TransSleep(1000);
+ delay_count++;
+ }
+ if(EW_PorwerOnTest_Flag == 0)
+ {
+ break;
+ }
+ epro2_oper.cmd = 15;
+ await Ep2_BusSwitch(1);//上电
+ delay_count = 0;
+ while(delay_count < 5 && EW_PorwerOnTest_Flag > 0)
+ {
+ await TransSleep(1000);
+ delay_count++;
+ }
+ if(EW_PorwerOnTest_Flag == 0)
+ {
+ break;
+ }
+ if(ep2_bus_cur > 12)
+ {
+ ShowCommMes("上电测试失败 "+ count,MesgType.MESG_TYPE_ERROR,1);
+ BTErrorCount(1);
+ break;
+ }else{
+
+ ShowCommMes("上电测试通过 "+ count,MesgType.MESG_TYPE_INFO,1);
+ }
+ }
+ ShowCommMes("上电测试结束 ",MesgType.MESG_TYPE_INFO,1);
}
\ No newline at end of file
diff --git a/web/layui/plugin/EWScanUID.js b/web/layui/plugin/EWScanUID.js
new file mode 100644
index 0000000..633f24f
--- /dev/null
+++ b/web/layui/plugin/EWScanUID.js
@@ -0,0 +1,76 @@
+async function EWScanUID()
+{
+ ShowCommMes("自动扫描脚本本加载",MesgType.MESG_TYPE_INFO);
+ fac_bind_init_flag =1;
+ var content_str = '
';
+
+ content_str += '
'
+ content_str += '';
+ content_str += '
'
+ content_str += '
';
+ content_str += '
分配因子
';
+
+ content_str += '
';
+
+ content_str += '
';
+ content_str += '
最大地址
';
+
+ content_str += '
';
+
+ content_str += '
'
+ $("#Oper_View").append(content_str);
+}
+
+async function Ew_StartScanUid()
+{
+ var scan_uid_rtv = [];
+ var max_addr = parseInt($(".ewscan_auto_maxaddr").val(),10);
+ var auto_fac = parseInt($(".ewscan_auto_fac").val(),10);
+ ShowCommMes("启动搜索 最大个数 "+max_addr +" 随机值 "+ auto_fac ,MesgType.MESG_TYPE_INFO);
+ epro2_oper.cmd = 35;
+ await Ep2_autoSetAddr(max_addr,auto_fac);
+ await TransSleep(200);
+ epro2_oper.cmd = 9;
+ epro2_oper.cycle_bgaddr = 21;
+ epro2_oper.cycle_endaddr = max_addr+21;
+ epro2_oper.cycle_group_count = 100;
+ epro2_oper.sys_states ="80 00";
+ Ep2_Inspect_OK = [];
+ await Ep2_Inspect_Task(0);
+ if(Ep2_Inspect_OK.length == 0)
+ {
+ ShowCommMes("搜索结束。。。。。。。。",MesgType.MESG_TYPE_INFO);
+ return ;
+ }
+ await TransSleep(2000);
+ var rtv = 0;
+ for(var i = 0; i < Ep2_Inspect_OK.length; i++)
+ {
+ epro2_oper.cmd = 19;
+ epro2_oper.commaddr = Ep2_Inspect_OK[i];
+ rtv = await Ep2_ReadUID();
+ if(rtv != 0)
+ {
+ await TransSleep(50);
+ continue;
+
+ }
+ scan_uid_rtv[scan_uid_rtv.length] = epro2_oper.uid;
+ epro2_oper.cmd = 100;
+ await Ep2_UpdateAddr(max_addr+50);
+ await TransSleep(50);
+ }
+ for(var i = 0; i < scan_uid_rtv.length; i++)
+ {
+ ShowCommMes("UID: "+ scan_uid_rtv[i],MesgType.MESG_TYPE_INFO);
+ }
+ ShowCommMes("成功搜索 "+scan_uid_rtv.length+" 个UID",MesgType.MESG_TYPE_INFO);
+}
+
+
diff --git a/web/layui/plugin/fac_bind.js b/web/layui/plugin/fac_bind.js
index 8804406..02541f3 100644
--- a/web/layui/plugin/fac_bind.js
+++ b/web/layui/plugin/fac_bind.js
@@ -32,7 +32,7 @@ async function fac_bind()
epro2_oper.cmd = 13;
await Ep2_HeartBeat_SW();
ShowCommMes("注码脚本运行启动 fac_bind_run = "+fac_bind_run,MesgType.MESG_TYPE_INFO);
- var flow_str = epro2_oper.uid.slice(11,15);
+ var flow_str = epro2_oper.uid.slice(12,16);
var flow_num = parseInt(flow_str,10);
var rtv = 0;
while(fac_bind_run > 0)
@@ -54,7 +54,7 @@ async function fac_bind()
await Ep2_EnMTPWrite(1);
await TransSleep(300);
var last_uid = epro2_oper.uid;
- var uidhead = epro2_oper.uid.slice(0,11);
+ var uidhead = epro2_oper.uid.slice(0,12);
epro2_oper.uid = uidhead + IntFormat(4,flow_num);
epro2_oper.cmd = 20;
await Ep2_WriteUID();
diff --git a/web/myweb.py b/web/myweb.py
index 25a1fbe..a66d057 100644
--- a/web/myweb.py
+++ b/web/myweb.py
@@ -5,19 +5,30 @@ import json
class Api:
- def button_click(self):
- print("button click.")
- path=os.path.split(os.path.abspath(sys.argv[0]))[0]
- print(path)
- result = wnd.create_file_dialog(dialog_type=wb.FOLDER_DIALOG,directory=path)
- print(result)
- return result[0] if result else ''
- def save_plan(slef,plan:str):
+ def __init__(self) -> None:
+ self.path=os.path.split(os.path.abspath(sys.argv[0]))[0]
+
+ def load_plan(self):
+ print("button click.")
+ print(self.path)
+ result = wnd.create_file_dialog(dialog_type=wb.OPEN_DIALOG,directory=self.path,
+ file_types=('JSON (*.json)', 'All files (*.*)'))
+ print(result)
+ if(result is None):
+ return None
+ if(len(result)>0):
+ with open(result[0],encoding="utf-8") as f:
+ return json.loads(f.read())
+ return None
+
+ def save_plan(slef,plan:dict):
path=os.path.split(os.path.abspath(sys.argv[0]))[0]
- file_name=wnd.create_file_dialog(dialog_type=wb.SAVE_DIALOG,directory=path,save_filename="默认方案",
+ file_name=wnd.create_file_dialog(dialog_type=wb.SAVE_DIALOG,directory=path,save_filename=plan["PlanBrief"],
file_types=('JSON (*.json)', 'All files (*.*)'))
print(file_name)
+ if(file_name is None):
+ return
json_str=json.dumps(plan, sort_keys=True, indent=4, separators=(',', ': '),ensure_ascii=False)
with open(file_name,"w+",encoding="utf-8") as f:
f.write(json_str)