修改can总线上传延时算法

This commit is contained in:
ranchuan
2024-01-23 18:13:09 +08:00
parent c3c172717d
commit caa4e61b89
9 changed files with 52 additions and 16 deletions

View File

@@ -299,7 +299,7 @@
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>0</IsCurrentTarget>
<IsCurrentTarget>1</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
@@ -344,7 +344,7 @@
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U52FF6E065266545441081687 -O206 -SF500 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_512.FLM)</Name>
<Name>-U52FF6E065266545441081687 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_512.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
@@ -550,7 +550,7 @@
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget>
<IsCurrentTarget>0</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>

View File

@@ -571,6 +571,13 @@ void JQ_FastDisChage(uint8_t sw)
cmd_buf[1] = sw;
JQ_SendBroadCast(cmd_buf,2);
}
//@brief 检桥丝
void JQ_BridgeWire(void)
{
static uint8_t cmd_buf[1] = {0x8E};
JQ_SendBroadCast(cmd_buf,1);
}
//@brief 复位
void JQ_Reset(void)
{

View File

@@ -101,6 +101,8 @@ static void elec_task_judge(elec_judge_def *e,int index,uint8_t *data)
if(temp<task->range[i].min||temp>task->range[i].max){
elec_add_errcode(e,task->range[i].err);
DBG_WARN("task ret_index:%d vaule=%d,err:%d",i,temp,task->range[i].err);
}else{
// DBG_LOG("task ret_index:%d vaule=%d",i,temp);
}
}
}

View File

@@ -6,8 +6,8 @@
#define BUILD_DATE "2024-01-12 15:13:50"
#define SOFT_VERSION "2.13"
#define BUILD_DATE "2024-01-18 15:29:08"
#define SOFT_VERSION "2.14"

View File

@@ -101,6 +101,20 @@ static int test(list_def *argv)
static int debug_en(list_def *argv)
{
if(list_length(argv)<2){
cmd_print("param num too less.");
return -1;
}
int en=str_atoi(list_get_str(argv,1));
debug_enable(en);
cmd_print("debug_en:%d",en);
return 0;
}
commend_export(debug,debug_en,"enable or disable debug log.")
static int scheme_info(list_def *argv)
{

View File

@@ -7,7 +7,7 @@ import mycopy
# 定义软件版本号
SOFT_VERION = "2.13"
SOFT_VERION = "2.14"

View File

@@ -46,6 +46,7 @@ typedef struct{
struct rt_mutex mutex;
#endif
uart_def *uart;
int enable;
}self_def;
static self_def g_data;
@@ -89,12 +90,29 @@ void debug_log(const char *file,const char *fun,int line,int level,const char *f
va_end(args);
memcpy(&log_buf[length],"\r\n",2);
length+=2;
DBG_DEV_WRITE((const uint8_t *)log_buf,length);
if(g_data.enable!=0){
DBG_DEV_WRITE((const uint8_t *)log_buf,length);
}
#ifdef RT_THREAD
rt_mutex_release(&g_data.mutex);
#endif
}
void debug_enable(int enable)
{
g_data.enable=enable;
}
#else
void debug_enable(int enable)
{
}
#endif

View File

@@ -61,6 +61,8 @@ int debug_init(void);
void debug_log(const char *file,const char *fun,int line,int level,const char *fmt, ...);
void debug_enable(int enable);
#else
#define debug_init()

View File

@@ -312,21 +312,14 @@ static int protu_send_ontime(protu_def *p,send_pkt_def *s)
// 每ms传输的字节数为253/23=11,
// 考虑can总线自动重传保留1/3的余量
int wnd_tick=((arr_length(s->t)+4)/5+2);
int delay=tick%(wnd_tick*(p->num));
int delay=wnd_tick*(p->num);
int gap=p->rank*wnd_tick;
int ret=0;
if(delay<=gap){
delay=gap-delay;
}else{
delay=gap+(wnd_tick*(p->num))-delay;
}
if(p->silent!=0){
// 广播命令在指定时间窗口发送
//later_execute(protu_send_later,s,delay);
g_send_pkt.wnd_tick=wnd_tick;
g_send_pkt.gap=gap;
while(p->timer->read(p->timer)<(tick+delay));
// protu_send_later(s);
while((p->timer->read(p->timer)%delay)!=gap);
g_send_pkt.send_tick_ms=p->timer->read(p->timer);
ret= protu_send(s->p,s->t,wnd_tick-1);
g_send_pkt.send_end_tick_ms=p->timer->read(p->timer);