Files
checker_host/prot_cmd/cmd_coder.h
2023-12-19 18:14:35 +08:00

92 lines
1.7 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef CMD_CODER_H
#define CMD_CODER_H
#include <QObject>
#include "prot_cmd/cmd_pc.h"
#include "base/check_cfg.h"
#include "elec/elec_judge.h"
/*
执行任务命令格式
[0...1]=总字节数,[2]=当前包数(0开始),[3]=当前包字节数
[4...n]=数据
数据域格式
[0]=小板地址,[1]=数据长度,[2...n]=数据
单个任务数据格式
[0]=插槽序号,[1]=任务id[2]=参数个数(u16)
[3]=返回值个数(u16)[4]=异常代码,[5]=任务序号
[6...n]=参数
返回数据域格式
[0]=任务序号,[1]=返回数据长度(u16)
[2...n]=参数
*/
int coder_find_task_id(const char *str);
// 赋码仪检测命令
class cmd_coder_check : public selfdev_runtask
{
Q_OBJECT
public:
cmd_coder_check():selfdev_runtask(){
}
// pc指令转从机
myarray cmd_pc_to_slave(myarray data){
}
// pc指令生成从机列表
QList<int> cmd_pc_to_addrs(myarray data){
QList<int> addr_list;
addrs=data[0]|(data[1]<<8)|(data[2]<<16);
for(int i=0;i<20;i++){
if((addrs&(1<<i))!=0){
addr_list.append(i+1);
}
}
return addr_list;
}
// 从机发起命令
int cmd_slave(){
return 0x20;
}
// pc收到回复,返回0不回复
int cmd_pc_recv(){
return 0x10;
}
// 生成接收回复到pc
myarray cmd_pc_recv_to_pc(){
myarray r;
r.append(uint8_t(addrs&0xff));
r.append(uint8_t((addrs>>8)&0xff));
r.append(uint8_t((addrs>>16)&0xff));
r.append(uint8_t(0));
return r;
}
// pc回复命令,返回0不回复
int cmd_pc_ret(){
return 0x90;
}
// 从机返回转pc
myarray ret_slave_to_pc(QList<myarray> data){
}
protected:
int addrs;
};
#endif // CMD_CODER_H