static int aciga_action_in_cmd_common(unsigned short cmd,uint8_t msgid, uint32_t runid,uint8_t *para,int para_len,uint8_t *out,int *out_len) { // ACIGA_LOGD("%s",__func__); int msg_len=0; out[msg_len++]=(cmd>>8)&0xff; out[msg_len++]=(cmd)&0xff; out[msg_len++] = msgid; //msg_id out[msg_len++] = (runid>>24)&0xff; out[msg_len++] = (runid>>16)&0xff; out[msg_len++] = (runid>>8)&0xff; out[msg_len++]= (runid)&0xff; if(para_len) { memcpy(&out[msg_len],para,para_len); msg_len =msg_len+para_len; } *out_len = msg_len; return 0; }
时间: 2024-04-06 08:29:09 浏览: 54
这段代码是一个静态函数,函数名为`aciga_action_in_cmd_common`,其功能为将输入的参数打包成一段二进制数据,用于发送给某个外部设备或进行网络传输。具体而言,该函数接受以下参数:
- `cmd`:unsigned short类型的命令码,用于标识需要执行的命令。
- `msgid`:uint8_t类型的消息ID,用于标识消息。
- `runid`:uint32_t类型的运行ID,用于标识运行的ID。
- `para`:uint8_t类型的参数数组,用于存储需要发送的参数。
- `para_len`:int类型的参数长度,表示参数数组的长度。
- `out`:uint8_t类型的输出数组,用于存储打包后的二进制数据。
- `out_len`:int类型的输出长度指针,表示打包后的数据长度。
函数首先将命令码、消息ID和运行ID打包到输出数组中,接着将参数数组拷贝到输出数组的后面,最后将输出数组的长度赋值给输出长度指针,并返回0表示执行成功。
阅读全文