ALIMQTT demo

```language // //////////////////////////////////////////////////////////////////////////////////////////////// #include "amaziot.h" #define USER_TASK_STACK_SIZE (2048*2) #define USER_TASK_PRIORITY (COS_USER_TASKS_PRIORITY_BASE) static uint8_t Send_AliMqttData_Flag=0; static uint8_t alimqtt_status = 0; void UserTask(void *p_arg); void Send_AliMqttData_Timer(void); typedef struct { char productkey[100]; char devicename[100]; char devicekey[100]; UINT16 keeplive; UINT8 connqos; UINT8 version; char subtopic[130]; UINT8 subqos; char pubtopic[130]; UINT8 pubqos; UINT8 duplicate; UINT8 retain; }alimqtt_conf; static alimqtt_conf alimqttconf;//weihu yi ge /* add user task here */ VOID UserCreateTask(void) { COS_CreateTask(UserTask, NULL, NULL, USER_TASK_STACK_SIZE, USER_TASK_PRIORITY, COS_CREATE_DEFAULT, 0, "UserTask"); } void Send_AliMqttData_Timer(void) { AT_TC(10,"DMH_ALIMQTT_TEST"); if(alimqtt_status){ Send_AliMqttData_Flag = 1; } sxr_StartFunctionTimer(30 SECOND,Send_AliMqttData_Timer,(VOID*)NULL,0x10); } void UserTask(void *p_arg) { sprintf(alimqttconf.productkey,"a1PtOGr7a5E"); sprintf(alimqttconf.devicename,"AM21E01"); sprintf(alimqttconf.devicekey,"XJSfyw3SR6nkRT1UZr5L36MEYE66lNC4"); alimqttconf.keeplive = 120; alimqttconf.connqos=0; alimqttconf.version = 4; sprintf(alimqttconf.subtopic,"/a1PtOGr7a5E/AM21E01/user/get"); alimqttconf.subqos = 0; sprintf(alimqttconf.pubtopic,"/a1PtOGr7a5E/AM21E01/user/update"); alimqttconf.pubqos = 0; alimqttconf.duplicate=0; alimqttconf.retain = 0; AT_WriteUart("Ali MqttTask Runing\r\n", strlen("Ali MqttTask Runing\r\n")); /*wait_dev_reg_net*/ wait_dev_reg_net(); /*wait_dev_active_net*/ wait_dev_active_net(); PRO_START: //close mqtt wait_at_alimqttdisconn(); //auth wait_at_alimqttauth(alimqttconf.productkey,alimqttconf.devicename,alimqttconf.devicekey); //connect wait_at_alimqttconn(alimqttconf.keeplive,alimqttconf.connqos,alimqttconf.version);; //set flag alimqtt_status=1; //start timer sxr_StartFunctionTimer(30 SECOND,Send_AliMqttData_Timer,(VOID*)NULL,0x10); while (1) { { if(alimqtt_status){ if(Send_AliMqttData_Flag){//send data Send_AliMqttData_Flag = 0; at_alimqtt_publish(alimqttconf.pubtopic,"test", alimqttconf.duplicate, alimqttconf.pubqos,alimqttconf.retain); } sleep(1); }else{ goto PRO_START; } } } } ```