diff --git a/checker_gen1.uvoptx b/checker_gen1.uvoptx
index 1d0b0c8..44bb1f8 100644
--- a/checker_gen1.uvoptx
+++ b/checker_gen1.uvoptx
@@ -329,7 +329,6 @@
0
DLGUARM
- d
0
@@ -368,7 +367,7 @@
0
99
1
- 134229842
+ 134230110
0
0
0
@@ -382,50 +381,18 @@
1
0
- 226
+ 182
1
- 134229732
+ 134218452
0
0
0
0
0
1
- .\source\main\main.c
-
- \\checker_gen1_boot\source/main/main.c\226
-
-
- 2
- 0
- 182
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
.\source\core\startup_stm32f40_41xxx.s
-
-
-
- 3
- 0
- 172
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- .\source\task\prot_mcu.c
-
-
+ \\checker_gen1_boot\source/core/startup_stm32f40_41xxx.s\182
diff --git a/checker_gen1.uvprojx b/checker_gen1.uvprojx
index 1734718..40f1848 100644
--- a/checker_gen1.uvprojx
+++ b/checker_gen1.uvprojx
@@ -10,7 +10,7 @@
app
0x4
ARM-ADS
- 5060960::V5.06 update 7 (build 960)::.\ARMCC
+ 5060750::V5.06 update 6 (build 750)::ARMCC
0
@@ -185,7 +185,6 @@
0
2
0
- 0
1
0
8
@@ -352,7 +351,7 @@
0
0
0
- 4
+ 0
@@ -1535,7 +1534,6 @@
0
2
0
- 0
1
0
8
@@ -1702,7 +1700,7 @@
0
0
0
- 4
+ 0
@@ -2259,7 +2257,7 @@
2
2
2
- 0
+ 2
@@ -3183,7 +3181,7 @@
2
2
2
- 0
+ 2
@@ -3277,7 +3275,7 @@
2
2
2
- 0
+ 2
@@ -3994,7 +3992,7 @@
2
2
2
- 0
+ 2
@@ -4143,7 +4141,7 @@
2
2
2
- 0
+ 2
@@ -4163,6 +4161,75 @@
coder
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+
+
+
+
+
+
+
+
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+
+
+
+
+
+
+
+
+
PSDGenerate.c
diff --git a/source/ReadMe.txt b/source/ReadMe.txt
index f85033c..8b2d06f 100644
--- a/source/ReadMe.txt
+++ b/source/ReadMe.txt
@@ -101,4 +101,13 @@
2023.6.14
添加参数设置,自检命令
添加波特率,命令返回格式,小板起始地址设置项
+2023.6.15
+ log打印可以单独设置主机地址
+ bootloader解决打包时间始终被设置为?的bug
+ 赋码仪相关指令全部添加通道字段
+
+
+
+
+
\ No newline at end of file
diff --git a/source/dev/dev_flash.h b/source/dev/dev_flash.h
index 31a1b2a..1cc142c 100644
--- a/source/dev/dev_flash.h
+++ b/source/dev/dev_flash.h
@@ -70,6 +70,7 @@ typedef struct{
int local_cmd_port;// 本机命令端口
int host_log_port;// 主机log端口
int local_id;// 本机识别号
+ uint8_t host_log_ip[4];// 主机logip
int uartbsp;// 串口4的波特率
int coder_ret_mode;// 注码指令返回格式
int slave_addr_start;// 小板起始地址
diff --git a/source/main/compiler_info.h b/source/main/compiler_info.h
index 0daa751..bb3ed1d 100644
--- a/source/main/compiler_info.h
+++ b/source/main/compiler_info.h
@@ -6,7 +6,7 @@
-#define BUILD_DATE "2023-06-14 22:00:30"
+#define BUILD_DATE "2023-06-15 17:41:54"
#define SOFT_VERSION "0.01"
diff --git a/source/main/main.c b/source/main/main.c
index 8c6521a..d9ba101 100644
--- a/source/main/main.c
+++ b/source/main/main.c
@@ -210,19 +210,24 @@ commend_export(moter,moter,"control moter up or down|use:moter [frequency] [coun
static void print_sys_param(const sys_param_def *par)
{
cmd_print(" - - - - - - - - - - - - - - ");
- cmd_print("pack time: %s",par->pack_time);
- cmd_print("host if: %s",par->host_if);
- cmd_print("device type: %s",par->device_type);
- cmd_print("mac addr: %02x.%02x.%02x.%02x.%02x.%02x",
+ cmd_print("pack time: %s",par->pack_time);
+ cmd_print("host if: %s",par->host_if);
+ cmd_print("device type: %s",par->device_type);
+ cmd_print("mac addr: %02x.%02x.%02x.%02x.%02x.%02x",
par->mac[0],par->mac[1],par->mac[2],par->mac[3],par->mac[4],par->mac[5]);
- cmd_print("local ip: %d.%d.%d.%d",
+ cmd_print("local ip: %d.%d.%d.%d",
par->local_ip[0],par->local_ip[1],par->local_ip[2],par->local_ip[3]);
- cmd_print("host ip: %d.%d.%d.%d",
+ cmd_print("host ip: %d.%d.%d.%d",
par->host_ip[0],par->host_ip[1],par->host_ip[2],par->host_ip[3]);
- cmd_print("host port: %d",par->host_port);
- cmd_print("local cmd port: %d",par->local_cmd_port);
- cmd_print("host log port: %d",par->host_log_port);
- cmd_print("local id: %d",par->local_id);
+ cmd_print("host port: %d",par->host_port);
+ cmd_print("local cmd port: %d",par->local_cmd_port);
+ cmd_print("host log port: %d",par->host_log_port);
+ cmd_print("local id: %d",par->local_id);
+ cmd_print("host log ip: %d.%d.%d.%d",
+ par->host_log_ip[0],par->host_log_ip[1],par->host_log_ip[2],par->host_log_ip[3]);
+ cmd_print("uart bsp: %d",par->uartbsp);
+ cmd_print("coder ret mode: %d",par->coder_ret_mode);
+ cmd_print("slave_addr_start: %d",par->slave_addr_start);
}
@@ -239,7 +244,7 @@ static int sysinfo(list_def *argv)
return 0;
}
-commend_export(sysinfo,sysinfo,"print the sortware info")
+commend_export(sysinfo,sysinfo,"print the software info")
@@ -256,6 +261,7 @@ static void print_sys_help(void)
cmd_print("set localcmdport 7777");
cmd_print("set hostlogport 12345");
cmd_print("set localid 1");
+ cmd_print("set hostlogip 192.168.80.80");
cmd_print("set uartbsp 115200");
cmd_print("set codermode 1/0");
cmd_print("set slave_addr_start 1/0");
@@ -358,6 +364,17 @@ static int sys_set(list_def *argv)
spar->uartbsp=str_atoi(str);
cmd_print("uart bsp: %d",spar->uartbsp);
}
+ else if(strcmp(list_get_str(argv,1),"hostlogip")==0)
+ {
+ char *str=list_get_str(argv,2);
+ list_def *ip=str_atod_list(str,'.');
+ spar->host_log_ip[0]=list_get_int(ip,0);
+ spar->host_log_ip[1]=list_get_int(ip,1);
+ spar->host_log_ip[2]=list_get_int(ip,2);
+ spar->host_log_ip[3]=list_get_int(ip,3);
+ cmd_print("host log ip: %d.%d.%d.%d",
+ spar->host_log_ip[0],spar->host_log_ip[1],spar->host_log_ip[2],spar->host_log_ip[3]);
+ }
else if(strcmp(list_get_str(argv,1),"codermode")==0)
{
char *str=list_get_str(argv,2);
@@ -478,9 +495,9 @@ void param_init(rom_head *h)
{
static sys_param_def pars={0};
memcpy(&pars,sys_param(),sizeof(sys_param_def));
- memcpy(pars.pack_time,h->pack_time,20);
- if(pars.local_id==0xffffffff){
- if(h){
+ if(h){
+ memcpy(pars.pack_time,h->pack_time,20);
+ if(pars.local_id==0xffffffff){
memcpy(pars.host_if,h->host_if,8);
memcpy(pars.device_type,"checker",8);
mac_init(pars.mac);
@@ -491,20 +508,24 @@ void param_init(rom_head *h)
pars.host_log_port=12345;
pars.local_id=1;
}
- else{
- // 填充默认配置
+ flash_save_param(&pars);
+ }
+ else{
+ // 填充默认配置
+ if(pars.local_id==0xffffffff){
memcpy(pars.host_if,"uart4",6);
memcpy(pars.device_type,"coder",6);
mac_init(pars.mac);
memcpy(pars.local_ip,(uint8_t []){192,168,80,10},4);
memcpy(pars.host_ip,(uint8_t []){192,168,80,80},4);
+ memcpy(pars.host_log_ip,(uint8_t []){192,168,80,80},4);
pars.host_port=9527;
pars.local_cmd_port=7777;
pars.host_log_port=12345;
pars.local_id=1;
+ flash_save_param(&pars);
}
}
- flash_save_param(&pars);
}
diff --git a/source/task/handle_for_checker.c b/source/task/handle_for_checker.c
index 201646f..684900b 100644
--- a/source/task/handle_for_checker.c
+++ b/source/task/handle_for_checker.c
@@ -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]")
diff --git a/source/task/log.c b/source/task/log.c
index 950f7ad..0d4a2af 100644
--- a/source/task/log.c
+++ b/source/task/log.c
@@ -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);
diff --git a/source/task/tran_for_checker.c b/source/task/tran_for_checker.c
index 7b0dce3..fd3b815 100644
--- a/source/task/tran_for_checker.c
+++ b/source/task/tran_for_checker.c
@@ -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));
diff --git a/source/task/tran_for_coder2.c b/source/task/tran_for_coder2.c
index 5a77ab2..1ab35d2 100644
--- a/source/task/tran_for_coder2.c
+++ b/source/task/tran_for_coder2.c
@@ -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);