Files
python_tools/web/layui/epe_cmd.js

295 lines
7.6 KiB
JavaScript
Raw Normal View History

2024-01-14 22:38:04 +08:00
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);
}
}