Files
python_tools/web/layui/epe_cmd.js
2024-01-14 22:38:04 +08:00

295 lines
7.6 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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

var epe_oper = {
net_sw:0,
comm_port: "",
comm_baud: "",
comm_parity: -1,
comm_stopbit: -1,
server_ip:"192.1678.60.11",
server_port:"20570",
client_port:"20570",
master_firmware:"",
jcxb_firmware:"",
checker_plan:"",
ew_code:"",
readack_addr:0,
master_runapp_key:[],
jcxb_runapp_key:[],
}
var epe_qthandle = null;
function Epe_Start_Comm() {
console.log("Epe_Start_Comm ");
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
epe_qthandle.SearchCommport();
console.log("SearchCommport ");
}
}
function Epe_Open_CommPort(main_serial) {
epe_oper.comm_port = main_serial.comm_port;
epe_oper.comm_baud = main_serial.comm_baud;
epe_oper.comm_parity = main_serial.comm_parity;
epe_oper.comm_stopbit = main_serial.comm_stopbit;
Main_Close_CommPort_Select();
var json_str = JSON.stringify(epe_oper);
console.log(json_str);
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
epe_qthandle.OpenCommPort(json_str);
}
}
function EPe_ConectNet_SW()
{
var obj_btn = $("#epe_net_swbtn")[0];
epe_oper.server_ip = $('#epe_server_ip').val();
epe_oper.server_port =parseInt($('#epe_server_port').val());
epe_oper.client_port =parseInt($('#epe_client_port').val());
if(epe_oper.net_sw == 1)
{
obj_btn.innerText = "启动网络";
epe_oper.net_sw = 0;
}else{
epe_oper.net_sw = 1;
obj_btn.innerText = "关闭网络" ;
}
var json_str = JSON.stringify(epe_oper);
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
console.log(json_str);
epe_qthandle.Epe_NetConnect(json_str);
}
}
function Epe_OpenMasterFirmware()
{
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
epe_qthandle.Epe_OpenMasterFirmware();
}
}
function Epe_OpenJCXBFirmware()
{
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
epe_qthandle.Epe_OpenJCXBFirmware();
}
}
function Epe_OpenCheckerPlan()
{
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
epe_qthandle.Epe_OpenCheckerPlan();
}
}
function Epe_OpenEwCode()
{
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
epe_qthandle.Epe_OpenEwCode();
}
}
function Epe_Init() {
console.log("Epe_Init ---");
if (typeof(qchannel) != "undefined" && qchannel != null) {
if(epe_qthandle != null && typeof(epe_qthandle) != "undefined")
{
console.log("Epe_Inited OK ---");
}else{
epe_qthandle = qchannel.objects.epe_qthandle;
if ((typeof(epe_qthandle) != "undefined") && (epe_qthandle != null)) {
console.log("Epe_Init OK ---");
epe_qthandle.ShowCommMes.connect(function(mesg, type) {
ShowCommMes(mesg, type);
});
epe_qthandle.Epe_ShowMastFireware.connect(function(filepath) {
epe_oper.master_firmware = filepath;
$('#epe_master_firmware').val(epe_oper.master_firmware);
});
epe_qthandle.Epe_ShowJCXBFireware.connect(function(filepath) {
epe_oper.jcxb_firmware = filepath;
$('#epe_jcxb_firmware').val(epe_oper.jcxb_firmware);
});
epe_qthandle.Epe_ShowCheckerPlan.connect(function(filepath) {
epe_oper.checker_plan = filepath;
$('#epe_checker_plan').val(epe_oper.checker_plan);
});
epe_qthandle.Epe_ShowEwCode.connect(function(filepath) {
epe_oper.ew_code = filepath;
$('#epe_ewcode_file').val(epe_oper.ew_code);
});
epe_qthandle.ShowCommport.connect(function(jsoninfo) {
Main_ShowCommport(jsoninfo);
});
epe_qthandle.Epe_RecCrcFilelen.connect(function(type,jsoninfo) {
var frame = JSON.parse(jsoninfo);
var mes = "App跳转信息 "+ Bytes2Str(frame);
ShowCommMes(mes,MesgType.MESG_TYPE_INFO);
if(type == 1)
{
epe_oper.master_runapp_key = frame;
}else if(type == 2)
{
epe_oper.jcxb_runapp_key = frame;
}
});
epe_qthandle.EPeComm_Recive.connect(function(jsoninfo) {
EPeComm_Recive(jsoninfo);
});
}
}
}
EPe_ShowDef();
for(var i = 0; i < 16; i++)
{
epe_oper.master_runapp_key[i] = 0x0FF;
}
}
function EPe_ShowDef()
{
$('#epe_m_firmware').val(epe_oper.master_firmware);
$('#epe_jcxb_firmware').val(epe_oper.jcxb_firmware);
$('#epe_readack_addr').val(Byte2Hex(epe_oper.readack_addr));
$('#epe_ewcode_file').val(epe_oper.ew_code);
}
function EPeComm_Recive(jsoninfo)
{
var frame = JSON.parse(jsoninfo);
var frame_str = "Rx: " + Bytes2Str(frame);
ShowCommMes(frame_str, MesgType.MESG_TYPE_INFO);
if(frame[5] == 0xFB && frame[6] == 0x01)
{
var addr_buf = [];
addr_buf[0] = frame[4];
var mes = "地址 0x"+ Bytes2Str(addr_buf)+" 在线";
ShowCommMes(mes, MesgType.MESG_TYPE_INFO);
}
}
var Epe_Cmd_Head = "Ym";
function Epe_SendCmd(cmd_buf) {
var buf = Str2Bytes(Epe_Cmd_Head);
buf[2] = 0; //数据长度
buf[3] = 0;
for (var index = 0; index < cmd_buf.length; index++) {
buf[4 + index] = cmd_buf[index];
}
buf[buf.length] = 0;
buf[2] = buf.length & 0x0FF;
buf[3] = (buf.length >> 8) & 0x0FF;
buf[buf.length-1] = Epj_CalcCrc8(buf,buf.length-1);
var json_str = JSON.stringify(buf);
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
epe_qthandle.Epe_SendData(json_str);
}
var mes = "Tx:" + Bytes2Str(buf);
ShowCommMes(mes, MesgType.MESG_TYPE_INFO);
}
async function Epe_DownLoadMaster()
{
var commaddr = parseInt($('#epe_readack_addr').val(),16);
var cmdbuf = [];
cmdbuf[0] = commaddr;
cmdbuf[1] = 0xFE;//擦除代码空间
Epe_SendCmd(cmdbuf);
await TransSleep(5000);
ShowCommMes("擦除代码备份区", MesgType.MESG_TYPE_INFO);
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
epe_qthandle.Epe_DownLoadMaster(epe_oper.master_firmware,"0x08080010",commaddr);
}
}
async function Epe_JCXBJumpBoot()
{
var commaddr = parseInt($('#epe_readack_addr').val(),16);
var cmdbuf = [];
cmdbuf[0] = commaddr;
cmdbuf[1] = 0xFA;//运行BootLoader;
Epe_SendCmd(cmdbuf);
ShowCommMes("跳转BootLoader", MesgType.MESG_TYPE_INFO);
await TransSleep(1000);
}
async function Epe_UpdateJCXB()
{
var commaddr = parseInt($('#epe_readack_addr').val(),16);
var cmdbuf = [];
cmdbuf[0] = commaddr;
cmdbuf[1] = 0xFE;//擦除代码空间
Epe_SendCmd(cmdbuf);
await TransSleep(2000);
ShowCommMes("擦除代码空间", MesgType.MESG_TYPE_INFO);
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
epe_qthandle.Epe_UpdateJCXB(epe_oper.jcxb_firmware,"0x08003000",commaddr);
}
}
async function Epe_ReadAck()
{
var commaddr = parseInt($('#epe_readack_addr').val(),16);
var cmdbuf = [];
cmdbuf[0] = commaddr;
cmdbuf[1] = 0xFB;//在线闻讯
Epe_SendCmd(cmdbuf);
}
async function Epe_JCXBRunApp()
{
var commaddr = parseInt($('#epe_readack_addr').val(),16);
var cmdbuf = [];
cmdbuf[0] = commaddr;
cmdbuf[1] = 0xFC;//跳转App
for(var i = 0; i < 12;i++ )
{
cmdbuf[i+2] = epe_oper.jcxb_runapp_key[i];
}
Epe_SendCmd(cmdbuf);
}
async function Epe_ReloadMaster()
{
var commaddr = parseInt($('#epe_readack_addr').val(),16);
var cmdbuf = [];
cmdbuf[0] = commaddr;
cmdbuf[1] = 0xFC;//跳转App
for(var i = 0; i < 12;i++ )
{
cmdbuf[i+2] = epe_oper.master_runapp_key[i];
}
Epe_SendCmd(cmdbuf);
}
async function Epe_MasterYmExist()
{
var commaddr = parseInt($('#epe_readack_addr').val(),16);
var cmdbuf = [];
cmdbuf[0] = commaddr;
cmdbuf[1] = 0x03;//跳转App
Epe_SendCmd(cmdbuf);
}
function Epe_DownPlan()
{
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
//epe_qthandle.Epe_DownPlan( epe_oper.checker_plan,0x800F400);
epe_qthandle.Epe_DownPlan( epe_oper.checker_plan,0x803F000);
}
}
function Epe_DownEwCode()
{
if (typeof(epe_qthandle) != "undefined" && epe_qthandle != null) {
//epe_qthandle.Epe_DownPlan( epe_oper.checker_plan,0x800F400);
epe_oper.ew_code = $('#epe_ewcode_file').val();
epe_qthandle.Epe_DownEwCode( epe_oper.ew_code,0x803B000);
}
}