log可以单独设置打印ip

This commit is contained in:
ranchuan
2023-06-15 18:11:28 +08:00
parent d3c3f120e7
commit c59f1738a2
10 changed files with 182 additions and 73 deletions

View File

@@ -337,7 +337,7 @@ static int usercmd(list_def *argv)
}
commend_export(usercmd,usercmd,"send usercmd to slave")
commend_export(usercmd,usercmd,"send usercmd to slave|use:usercmd [addrs] [cmd] [datas]")

View File

@@ -40,7 +40,7 @@ static void log_thread(void *arg)
LWIP_UNUSED_ARG(arg);
ip_addr_t dst;
const sys_param_def *par=sys_param();
IP4_ADDR(&dst,par->host_ip[0],par->host_ip[1],par->host_ip[2],par->host_ip[3]);
IP4_ADDR(&dst,par->host_log_ip[0],par->host_log_ip[1],par->host_log_ip[2],par->host_log_ip[3]);
commend_def *cmd;
conn = netconn_new(NETCONN_UDP);
err=netconn_bind(conn, IP_ADDR_ANY, 7778);

View File

@@ -91,6 +91,20 @@ static ucport_def *check(tran_def *t, uint8_t cmd,array_def *data)
return (ucport_def *)u;
}
transmit_export(ym_checker,0x30,check)
/*
自检 和 参数设置 命令是批检仪和赋码仪都有的命令
应赋码仪上位机的要求,赋码仪多了一个 "通道" 的数据位
目前使用判断的方式,设备为赋码仪方式工作时命令的发送的返回都解析这个 "通道"
*/
@@ -125,7 +139,7 @@ typedef struct{
// 检完成
// 检完成
static void bootinfo_end(ucport_def *u,port_mcu *src,void *data,int ack,char *err_str)
{
bootinfo_def *w=(bootinfo_def *)u;
@@ -143,6 +157,11 @@ static void bootinfo_end(ucport_def *u,port_mcu *src,void *data,int ack,char *er
if(w->ack_num>=w->slave_num)
{
array_def *a=arr_creat();
if(strcmp(sys_param()->device_type,"coder")==0)
{
// 赋码仪添加通道数
arr_append(a,w->slave_num);
}
arr_append(a,0);
arr_appends(a,w->ack,w->ack_size);
emit tran_send_signal(w->u.p,w->end_cmd,arr_temp(a));
@@ -213,6 +232,11 @@ static ucport_def *bootinfo_self(tran_def *t, int slave_num,uint8_t cmd,array_de
}
array_def *a=arr_creat();
if(strcmp(sys_param()->device_type,"coder")==0)
{
// 赋码仪添加通道数
arr_append(a,10);
}
arr_append(a,0);
emit tran_reply_signal(u->u.p,arr_temp(a));
@@ -242,7 +266,6 @@ static ucport_def *bootinfo_checker(tran_def *t,uint8_t cmd,array_def *data)
transmit_export(ym_checker,0x30,check)
transmit_export(ym_checker,0x34,bootinfo_checker)
transmit_export(ym_checker,0x04,bootinfo_coder)
@@ -321,23 +344,40 @@ static ucport_def *param(tran_def *t, uint8_t cmd,array_def *data)
DBG_WARN("cmd format err.");
return 0;
}
int off=0;
param_def *u=calloc(1,sizeof(param_def));
u->u.p=t;
u->u.del=param_del;
if(strcmp(sys_param()->device_type,"coder")==0)
{
// 赋码仪要忽略通道数参数
off=1;
}
uint8_t op=arr_get(data,0);
uint8_t op=arr_get(data,off);
// 1是写,0是读
if(op==0)
{
paraminfo_fill(&u->par);
uint8_t *d=(uint8_t *)(&u->par);
array_def *a=arr_creat();
if(strcmp(sys_param()->device_type,"coder")==0)
{
// 赋码仪添加通道数
arr_append(a,10);
}
arr_append(a,0);
arr_appends(a,d,sizeof(paraminfo_def));
emit tran_reply_signal(u->u.p,arr_temp(a));
}else if(op==1)
{
array_def *a=arr_creat();
if(strcmp(sys_param()->device_type,"coder")==0)
{
// 赋码仪添加通道数
arr_append(a,10);
}
if(arr_length(data)<1+sizeof(paraminfo_def)){
arr_append(a,1);
emit tran_reply_signal(u->u.p,arr_temp(a));

View File

@@ -377,13 +377,17 @@ static void live_recv(live_keeper_def *t)
static void live_send(void *p)
{
const sys_param_def *par=sys_param();
tran_def *t=app_variable("tran",0,0);
uint16_t slave_online=0;
if(t)
slave_online=tran_get_slave_online(t);
array_def *d=arr_creat();
arr_append(d,0);
arr_append(d,0xff);
arr_append(d,0x03);
arr_append(d,par->local_id&0xff);
arr_append(d,0xff);// 在线的小板
arr_append(d,0x03);
arr_append(d,slave_online&0xff);// 在线的小板
arr_append(d,(slave_online>>8)&0xff);
emit coder2_live_send_signal(p,0x8a,arr_temp(d));
}
@@ -397,7 +401,7 @@ static void init_for_tcp(void *t)
live->timer=rt_timer_create("live_t",live_send,live,
rt_tick_from_millisecond(1000),
RT_TIMER_FLAG_PERIODIC|RT_TIMER_FLAG_SOFT_TIMER);
protu_codec_set(protu,protu_find_codec("ym_coder"));
protu_codec_set(protu,protu_find_codec("ym_checker"));
connect(tcp,tcp_connect_signal,0,live,live_connect);
connect(tcp,tcp_recv_signal,0,live,live_recv);
connect(live,coder2_live_send_signal,0,protu,protu_send_call);