V2.09 使用任务插槽设置电阻校准值成功
This commit is contained in:
@@ -26,7 +26,13 @@
|
||||
[4...n]=数据
|
||||
|
||||
数据域格式
|
||||
[0]=小板地址,[1]=数据长度,[2...n]=数据
|
||||
[0]=检测模式0,只检测,返回原始检测结果;模式1,检测并添加任务插槽,只返回异常代码和任务插槽数据;
|
||||
模式2,检测并执行任务插槽,返回原始检测数据和任务插槽数据;
|
||||
模式3,只执行任务插槽,返回异常代码和插槽数据
|
||||
[1...n]小板数据
|
||||
|
||||
小板数据格式
|
||||
[0]=小板地址(0x1f时为通用数据,每个小板都可以使用),[1]=数据长度,[2...n]=数据
|
||||
|
||||
单个任务数据格式
|
||||
[0]=插槽序号,[1]=任务id,[2]=参数个数(u16)
|
||||
@@ -80,7 +86,7 @@ static void slave_get_self(slave_def *s)
|
||||
while(off<len){
|
||||
addr=arr_get(s->data,off);
|
||||
slave_len=arr_get(s->data,off+1);
|
||||
if(addr==elec_local_addr()){
|
||||
if((addr==elec_local_addr())||(addr==0x1f)){
|
||||
d=arr_data(s->data)+off+2;
|
||||
arr_appends(expat,d,slave_len);
|
||||
break;
|
||||
@@ -141,6 +147,7 @@ static int run_task_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_
|
||||
array_def *r=0;
|
||||
array_def *check=0;
|
||||
uint8_t *d;
|
||||
uint8_t ret_mode=0;
|
||||
pack_all=arr_get(data,0)|(arr_get(data,1)<<8);
|
||||
pack_curr=arr_get(data,2);
|
||||
pack_size=arr_get(data,3);
|
||||
@@ -160,13 +167,29 @@ static int run_task_dolater(ucport_def *u,uint8_t cmd,array_def *data,char *err_
|
||||
}
|
||||
else if(arr_length(s->data)==pack_all){
|
||||
// 接收完成后执行命令
|
||||
r=arr_creat();
|
||||
ret_mode=arr_get(s->data,0);
|
||||
arr_remove(s->data,0,1);
|
||||
slave_get_self(s);
|
||||
slave_adds(s);
|
||||
check=elec_check_with_scheme(0);
|
||||
arr_append(r,arr_get(check,0));
|
||||
slave_creat_retdata(s,r);
|
||||
emit tran_reply_signal(u->p,arr_temp(r));
|
||||
if(ret_mode!=3){
|
||||
check=elec_check_with_scheme(0);
|
||||
}else{
|
||||
check=elec_check_slot();
|
||||
}
|
||||
if(ret_mode==0){
|
||||
// 模式0,只返回检测数据
|
||||
emit tran_reply_signal(u->p,arr_temp(check));
|
||||
}else if((ret_mode==1)||(ret_mode==3)){
|
||||
// 模式1,返回异常代码和任务插槽数据
|
||||
r=arr_creat();
|
||||
arr_append(r,arr_get(check,0));
|
||||
slave_creat_retdata(s,r);
|
||||
emit tran_reply_signal(u->p,arr_temp(r));
|
||||
}else if(ret_mode==2){
|
||||
// 模式2,返回检测数据和任务插槽数据
|
||||
slave_creat_retdata(s,check);
|
||||
emit tran_reply_signal(u->p,arr_temp(check));
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user