ADD 1.增加从后台读取/设置 装置系统配置、装置设备配置、装置CAU配置等参数;

main
wangbo 1 year ago
parent f3180ae6d0
commit 4c04faecb3

@ -0,0 +1 @@
make clean;make Cable

@ -24,6 +24,9 @@
#include "debug.h"
#include "ca_cau.h"
#include "ca_dbg.h"
#include "ca_param.h"
#include "ca_network.h"
/* Private define ------------------------------------------------------------*/
@ -34,7 +37,7 @@
/* Private variables ---------------------------------------------------------*/
csg_t csg;
int csg_reconn_times = 0;
extern cau_collect_flag;
extern int cau_collect_flag;
//extern int upg_state;
//char csg_deliver_path[128] = {0};
@ -376,29 +379,129 @@ int _csg_response_realtime_data(int sendtype)
return 0;
}
int _csg_query_device_config()
int _csg_get_system_config()
{
struct in_addr addr;
strncpy((char *)pparam_config->gateway.DeviceNum, host.name, 15);
inet_pton(AF_INET, device_info.host_ip, &addr);
memcpy(pparam_config->gateway.LocalIP1, &addr.s_addr, 4);
memcpy(pparam_config->gateway.ServerIP1, &csg.server.sin_addr.s_addr, 4);
pparam_config->gateway.ServerIP1_Port = csg.server_port;
char buf[64] = {0};
sprintf(buf, "V%s", host.version);
strcpy((char *)pparam_config->gateway.reserved, buf);
_csg_send_packet(Res_ReqSysCfg, (char *)&pparam_config->gateway, sizeof(GateWay_t));
return 0;
}
int _csg_set_system_config(char *databuf, int datalen)
{
if (datalen != sizeof(GateWay_t))
{
int result = 0;
DBG(DBG_M_CA_CSG_ERR, "msg reallen:%d,expect len:%d\n", datalen, sizeof(GateWay_t));
return _csg_send_packet(Res_SetSysCfg, (char *)&result, sizeof(result));
}
GateWay_t *pcfg = (GateWay_t *)databuf;
if (strncmp((char *)pcfg->apn, (char *)pparam_config->gateway.apn,
sizeof(pparam_config->gateway.apn)) != 0)
{
_network_change_apn((char *)pcfg->apn);
}
strncpy(host.name, (char *)pcfg->DeviceNum, 15);
sysctrl.dev_hex_id = dev_id_2_hex(host.name);
sprintf(device_info.host_ip, "%d.%d.%d.%d", pcfg->LocalIP1[0],
pcfg->LocalIP1[1], pcfg->LocalIP1[2], pcfg->LocalIP1[3]);
char serverip[16] = {0};
sprintf(serverip, "%d.%d.%d.%d", pcfg->ServerIP1[0],
pcfg->ServerIP1[1], pcfg->ServerIP1[2], pcfg->ServerIP1[3]);
csg.server_ip = inet_addr(serverip);
LOG("serverip=0x%x", csg.server_ip);
LOG("%d %d %d %d", csg.server_ip & 0xff, (csg.server_ip >> 8) & 0xff,
(csg.server_ip >> 16) & 0xff, (csg.server_ip >> 24) & 0xff);
csg.server_port = (uint16_t)pcfg->ServerIP1_Port;
memcpy(&pparam_config->gateway, databuf, datalen);
param_save();
vtysh_config_save();
uint8_t mac[MAC_ADDR_LEN] = {0};
mac_generate_from_ip(device_info.host_ip, mac);
memcpy(device_info.mac, mac, MAC_ADDR_LEN);
vtysh_eth0_save();
vtysh_device_save();
reboot_system(LOG_DEBUG, BOOT_REMOTE_IP_CHANGE);
return 0;
}
int _csg_get_device_config()
{
_csg_send_packet(Res_ReqDevCfg, (char *)&pparam_config->landHexCfg, sizeof(LandDevCfg_t));
LOG("cau1En:%d", pparam_config->landHexCfg.cau1En);
LOG("cau1level:%d", pparam_config->landHexCfg.cau1level);
LOG("cau1Space:%d", pparam_config->landHexCfg.cau1Space);
LOG("cau1Ch1:%d", pparam_config->landHexCfg.cau1Ch1);
LOG("cau1Ch2:%d", pparam_config->landHexCfg.cau1Ch2);
LOG("cau1Ch3:%d", pparam_config->landHexCfg.cau1Ch3);
LOG("cau1Ch4:%d", pparam_config->landHexCfg.cau1Ch4);
LOG("cau1Ch5:%d", pparam_config->landHexCfg.cau1Ch5);
LOG("cau1Ch6:%d", pparam_config->landHexCfg.cau1Ch6);
LOG("cau1Ch7:%d", pparam_config->landHexCfg.cau1Ch7);
LOG("cau1Ch8:%d", pparam_config->landHexCfg.cau1Ch8);
return 0;
}
int _csg_set_device_config()
int _csg_set_device_config(char *databuf, int datalen)
{
if (datalen != sizeof(LandDevCfg_t))
{
int result = 0;
DBG(DBG_M_CA_CSG_ERR, "msg reallen:%d,expect len:%d\n", datalen, sizeof(LandDevCfg_t));
return _csg_send_packet(Res_SetDevCfg, (char *)&result, sizeof(result));
}
memcpy(&pparam_config->landHexCfg, databuf, sizeof(LandDevCfg_t));
param_save();
return 0;
}
int _csg_get_cau_cfg()
{
char buf[1024] = {0};
int i;
int len;
for (i = 0; i < 24; i++)
{
memcpy(buf + i * 32, &pparam_config->cauParam[i], 24);
}
len = 32 * 24;
_csg_send_packet(Res_ReqCauCfg, buf, len);
return 0;
}
int _csg_set_cau_cfg(char *databuf, int datalen)
{
int i;
if (datalen != 1024)
{
DBG(DBG_M_CA_CSG_ERR, "msg reallen:%d,expect len:1024\n", datalen);
int result = 0;
return _csg_send_packet(Res_SetCauCfg, (char *)&result, sizeof(result));
}
for (i = 0; i < 24; i++)
{
memcpy(&pparam_config->cauParam[i], databuf + i * 32, 24);
}
param_save();
int result = 1;
return _csg_send_packet(Res_SetCauCfg, (char *)&result, sizeof(result));
}
#if 0
int _csg_upload_realtime_data()
{
@ -453,7 +556,9 @@ int _csg_recv_process(char *buf)
//----------------------------
char str[128] = {0};
time2str(str);
DBG(DBG_M_CA_CSG, "%s cmd=0x%x\n", str, head->Type);
int dataLen = head->Len - LandPackHeadTailLen;
char *pdata = buf + sizeof(LandPkHead);
DBG(DBG_M_CA_CSG, "%s cmd=0x%x len=%d\n", str, head->Type, dataLen);
//----------------------------
switch (head->Type)
{
@ -463,11 +568,23 @@ int _csg_recv_process(char *buf)
case Cmd_ReqRTD2:
_csg_response_realtime_data(1);
break;
case Cmd_ReqSysCfg:
_csg_get_system_config();
break;
case Cmd_SetSysCfg:
_csg_set_system_config(pdata, dataLen);
break;
case Cmd_ReqDevCfg:
_csg_query_device_config();
_csg_get_device_config();
break;
case Cmd_SetDevCfg:
_csg_set_device_config();
_csg_set_device_config(pdata, dataLen);
break;
case Cmd_ReqCauCfg:
_csg_get_cau_cfg();
break;
case Cmd_SetCauCfg:
_csg_set_cau_cfg(pdata, dataLen);
break;
default:
break;

@ -105,7 +105,7 @@ int _dbg_pkt_config_get(debug_msg_info_t *msg)
// device_info.id_major, device_info.id_minor);
strncpy((char *)pparam_config->gateway.DeviceNum, host.name, 15);
sysctrl.dev_hex_id = sysctrl.dev_hex_id;
//sysctrl.dev_hex_id = sysctrl.dev_hex_id;
inet_pton(AF_INET, device_info.host_ip, &addr);
memcpy(pparam_config->gateway.LocalIP1, &addr.s_addr, 4);

Loading…
Cancel
Save