MQTT 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_MqttData_Flag=0;
void UserTask(void *p_arg);
void Send_MqttData_Timer(void);
typedef struct
{
char ip[65];
int port;
char clientid[100];
UINT16 keeplive;
UINT8 cleansession;
char username[100];
char password[100];
char subtopic[130];
UINT8 subflag;
UINT8 subqos;
char pubtopic[130];
UINT8 pubqos;
UINT8 duplicate;
UINT8 retain;
}mqtt_conf;
static mqtt_conf mqttconf;//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_MqttData_Timer(void)
{
AT_TC(10,"DMH_MQTT_TEST");
if(Mqtt_Connect_Status){
Send_MqttData_Flag = 1;
}
sxr_StartFunctionTimer(30 SECOND,Send_MqttData_Timer,(VOID*)NULL,0x10);
}
void UserTask(void *p_arg)
{
sprintf(mqttconf.ip,"183.230.40.39");
mqttconf.port=6002;
sprintf(mqttconf.clientid,"534808251");
mqttconf.keeplive = 120;
mqttconf.cleansession = 0;
sprintf(mqttconf.username,"259084");
sprintf(mqttconf.password,"subscribe");
sprintf(mqttconf.subtopic,"aaa");
mqttconf.subflag = 1;
mqttconf.subqos = 0;
sprintf(mqttconf.pubtopic,"aaa");
mqttconf.pubqos = 0;
mqttconf.duplicate = 0;
mqttconf.retain = 0;
AT_WriteUart("OneNet MqttTask Runing\r\n", strlen("OneNet 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_mqttdisconn();
//connect
wait_at_mqttconn(mqttconf.ip,mqttconf.port,mqttconf.clientid,mqttconf.keeplive,mqttconf.cleansession,mqttconf.username,mqttconf.password);
//sub
wait_at_sub(mqttconf.subtopic,mqttconf.subflag,mqttconf.subqos);
//set flag
Mqtt_Connect_Status=1;
//start timer
sxr_StartFunctionTimer(30 SECOND,Send_MqttData_Timer,(VOID*)NULL,0x10);
while (1)
{
{
if(Mqtt_Connect_Status){
if(Send_MqttData_Flag){//send data
Send_MqttData_Flag = 0;
at_mqtt_publish(mqttconf.pubtopic,"test", mqttconf.duplicate, mqttconf.pubqos,mqttconf.retain);
}
sleep(1);
}else{
goto PRO_START;
}
}
}
}
```