修改can总线上传延时算法
This commit is contained in:
@@ -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);
|
||||
|
Reference in New Issue
Block a user