From 89ef0a65145e8eb538edf188960f84dfb4cc32a6 Mon Sep 17 00:00:00 2001 From: ranchuan Date: Mon, 15 Jan 2024 18:07:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=96=B9=E6=A1=88=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=AF=BC=E5=87=BA=EF=BC=8C=E6=A0=B9=E6=8D=AE=E9=80=89?= =?UTF-8?q?=E9=A1=B9=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReadMe.txt | 3 +- analysis/scheme_data.py | 16 +- coder_2ch/prottcp.py | 10 +- updata/runtask_table.py | 20 +- web/layui/BTcomm.js | 2 +- web/layui/Checker/EWChecker.js | 86 +- web/layui/Checker/JQChecker.js | 88 +- web/layui/Checker/XTChecker.js | 72 +- web/layui/Checker/checker_cmdTest.js | 16 +- web/layui/Checker/checker_ye_cfg.js | 344 ++++--- web/layui/Epro-II.html | 2 +- web/layui/Epro-JCmd.js | 4 +- web/layui/checker_ye_cfg.html | 58 +- web/layui/epro2_cmd.js | 95 +- web/layui/epro2_cmd.js.jq | 1301 ++++++++++++++++++++++++++ web/layui/main.js | 2 +- web/layui/plugin/EWRunFire.js | 165 +++- web/layui/plugin/EWScanUID.js | 76 ++ web/layui/plugin/fac_bind.js | 4 +- web/myweb.py | 29 +- 20 files changed, 2141 insertions(+), 252 deletions(-) create mode 100644 web/layui/epro2_cmd.js.jq create mode 100644 web/layui/plugin/EWScanUID.js 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 @@
    -
  • @@ -97,20 +94,17 @@
    方案ID:
-
日期
+
日期
- +
-
@@ -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 += '
'; content += '
'; + 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)