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;
}
}
}
}
```