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

@@ -329,7 +329,6 @@
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
<Name>d</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@@ -368,7 +367,7 @@
<Type>0</Type>
<LineNumber>99</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134229842</Address>
<Address>134230110</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
@@ -382,50 +381,18 @@
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>226</LineNumber>
<LineNumber>182</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134229732</Address>
<Address>134218452</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>.\source\main\main.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\checker_gen1_boot\source/main/main.c\226</Expression>
</Bp>
<Bp>
<Number>2</Number>
<Type>0</Type>
<LineNumber>182</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\source\core\startup_stm32f40_41xxx.s</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
<Bp>
<Number>3</Number>
<Type>0</Type>
<LineNumber>172</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\source\task\prot_mcu.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
<Expression>\\checker_gen1_boot\source/core/startup_stm32f40_41xxx.s\182</Expression>
</Bp>
</Breakpoint>
<WatchWindow1>

View File

@@ -10,7 +10,7 @@
<TargetName>app</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed>
<pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
<uAC6>0</uAC6>
<TargetOption>
<TargetCommonOption>
@@ -185,7 +185,6 @@
<uocXRam>0</uocXRam>
<RvdsVP>2</RvdsVP>
<RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<hadIRAM2>1</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>8</StupSel>
@@ -352,7 +351,7 @@
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<ClangAsOpt>4</ClangAsOpt>
<uClangAs>0</uClangAs>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@@ -1535,7 +1534,6 @@
<uocXRam>0</uocXRam>
<RvdsVP>2</RvdsVP>
<RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<hadIRAM2>1</hadIRAM2>
<hadIROM2>0</hadIROM2>
<StupSel>8</StupSel>
@@ -1702,7 +1700,7 @@
<NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc>
<useXO>0</useXO>
<ClangAsOpt>4</ClangAsOpt>
<uClangAs>0</uClangAs>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@@ -2259,7 +2257,7 @@
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt>
<uClangAs>2</uClangAs>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@@ -3183,7 +3181,7 @@
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt>
<uClangAs>2</uClangAs>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@@ -3277,7 +3275,7 @@
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt>
<uClangAs>2</uClangAs>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@@ -3994,7 +3992,7 @@
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt>
<uClangAs>2</uClangAs>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@@ -4143,7 +4141,7 @@
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt>
<uClangAs>2</uClangAs>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
@@ -4163,6 +4161,75 @@
</Group>
<Group>
<GroupName>coder</GroupName>
<GroupOption>
<CommonProperty>
<UseCPPCompiler>0</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<GroupArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
<Aads>
<interw>2</interw>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<thumb>2</thumb>
<SplitLS>2</SplitLS>
<SwStkChk>2</SwStkChk>
<NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc>
<useXO>2</useXO>
<uClangAs>2</uClangAs>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Aads>
</GroupArmAds>
</GroupOption>
<Files>
<File>
<FileName>PSDGenerate.c</FileName>

View File

@@ -101,4 +101,13 @@
2023.6.14
添加参数设置,自检命令
添加波特率,命令返回格式,小板起始地址设置项
2023.6.15
log打印可以单独设置主机地址
bootloader解决打包时间始终被设置为的bug
赋码仪相关指令全部添加通道字段

View File

@@ -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;// 小板起始地址

View File

@@ -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"

View File

@@ -223,6 +223,11 @@ static void print_sys_param(const sys_param_def *par)
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));
if(h){
memcpy(pars.pack_time,h->pack_time,20);
if(pars.local_id==0xffffffff){
if(h){
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;
}
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);
}
}
}

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);