MQTT平台主动下发指令 比如远程开门 我需要给出回答
接口封装如下:
1需要的参数
typedef struct _TslIotProto_TSLIOTCommonResult {
pb_callback_t dev_id;
int32_t code;
pb_callback_t message;
/* @@protoc_insertion_point(struct:TslIotProto_TSLIOTCommonResult) */
} TslIotProto_TSLIOTCommonResult;
这个是需要给出去的有效数据 DEVID+CODE+自己写字符串
最好自己做一个结构体给出去!
如下:
typedef struct _CommonResult_t
{
char dev_id[32];
int32_t code;
char message[32];
} CommonResult_t;
int mqtt_return_comm_result(CommonResult_t *rst , uint16_t serType , uint16_t cmd , uint16_t serid )
void show_CommonResult_t(CommonResult_t *rst )
{
printf("########show_CommonResult_t########\r\n");
printf("p->dev_id=%s\r\n",p->dev_id);
printf("p->code=%d\r\n",p->code);
printf("p->message=%s\r\n",p->message);
}
执行的时候 可以共享内存!大家都在这里回答呀
static CommonResult_t comrst;
任务进来的时候init一下即可
memset(&comrst,0,sizeof(CommonResult_t));
uint8_t *devid ;
config.read(CFG_MQTT_DEVID, (void **)&devid);
memcpy(comrst.dev_id,devid,32);
此时就只有后面2个参数每次必须改一改了
用一下
比如开门成功
comrst.code=ack;
memcpy(comrst.message,"OK",2);
mqtt_return_comm_result (&comrst , pst->serType ,CMD_TYPE_CONTROL_CMD_ACK ,pst->sqeId);
此时3个成员都OK