forked from xuos/xiuos
contest final
This commit is contained in:
parent
085c418faa
commit
d884774bca
|
@ -612,5 +612,117 @@ int32_t MQTTMsgPublish(int32_t sock, char *topic, int8_t qos, uint8_t* msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void *MqttSocketSendTask(void *arg)
|
||||||
|
{
|
||||||
|
|
||||||
|
int fd = -1, clientfd;
|
||||||
|
int recv_len;
|
||||||
|
int ret;
|
||||||
|
char *recv_buf;
|
||||||
|
struct sockaddr_in mqtt_addr;
|
||||||
|
socklen_t addr_len;
|
||||||
|
|
||||||
|
fd = socket(AF_INET, SOCK_STREAM, 0);
|
||||||
|
if (fd < 0) {
|
||||||
|
lw_print("Socket error\n");
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct sockaddr_in mqtt_sock;
|
||||||
|
mqtt_sock.sin_family = AF_INET;
|
||||||
|
mqtt_sock.sin_port = htons(mqtt_socket_port);
|
||||||
|
mqtt_sock.sin_addr.s_addr = inet_addr(mqtt_ip_str);
|
||||||
|
|
||||||
|
memset(&(mqtt_sock.sin_zero), 0, sizeof(mqtt_sock.sin_zero));
|
||||||
|
|
||||||
|
ret = connect(fd, (struct sockaddr *)&mqtt_sock, sizeof(struct sockaddr));
|
||||||
|
|
||||||
|
if (ret < 0) {
|
||||||
|
lw_print("Unable to connect %s:%d = %d\n", mqtt_ip_str, mqtt_socket_port, ret);
|
||||||
|
close(fd);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
lw_print("MQTT connect %s:%d success, begin to verify hostname and password.\n", mqtt_ip_str, mqtt_socket_port);
|
||||||
|
|
||||||
|
if(MQTT_Connect() != Connect_OK)
|
||||||
|
{
|
||||||
|
lw_print("MQTT verify failed.\n");
|
||||||
|
shutdown(fd, SHUT_WR);
|
||||||
|
recv(fd, NULL, (size_t)0, 0);
|
||||||
|
close(fd);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
lw_print("MQTT subscribe begin.\n");
|
||||||
|
if(MQTTSubscribe(fd,(char *)TOPIC,QOS1) < 0)
|
||||||
|
{
|
||||||
|
lw_print("MQTT subscribe failed.\n");
|
||||||
|
shutdown(fd, SHUT_WR);
|
||||||
|
recv(fd, NULL, (size_t)0, 0);
|
||||||
|
close(fd);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
lw_print("subscribe success.\n");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
uint8_t no_mqtt_msg_exchange = 1;
|
||||||
|
uint32_t curtick=0;
|
||||||
|
uint8_t res;
|
||||||
|
|
||||||
|
cJSON* cJSON_Data = NULL;
|
||||||
|
cJSON_Data = cJSON_Data_Init();
|
||||||
|
DHT11_Data_TypeDef* recv_data;
|
||||||
|
|
||||||
|
double a,b;
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
curtick+=1;
|
||||||
|
char* p ="Hello,here is hc";
|
||||||
|
ret = MQTTMsgPublish(fd,(char*)TOPIC,QOS0,(uint8_t*)p);
|
||||||
|
if(ret >= 0)
|
||||||
|
{
|
||||||
|
no_mqtt_msg_exchange = 0;
|
||||||
|
PrivTaskDelay(1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void MqttSocketSendTest(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
if(argc >= 2) {
|
||||||
|
lw_print("lw: [%s] target ip %s\n", __func__, argv[1]);
|
||||||
|
MqttSocketConfigParam(argv[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ip4_addr_t dns_ip;
|
||||||
|
// netconn_gethostbyname(HOST_NAME, &dns_ip);
|
||||||
|
// char* host_ip = ip_ntoa(&dns_ip);
|
||||||
|
// lw_print("host name : %s , host_ip : %s\n",HOST_NAME,host_ip);
|
||||||
|
// MqttSocketConfigParam(host_ip);
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef ADD_XIZI_FEATURES
|
||||||
|
lwip_config_tcp(0, mqtt_demo_ipaddr, mqtt_demo_netmask, mqtt_demo_gwaddr);
|
||||||
|
|
||||||
|
pthread_attr_t attr;
|
||||||
|
attr.schedparam.sched_priority = LWIP_MQTT_DEMO_TASK_PRIO;
|
||||||
|
attr.stacksize = LWIP_MQTT_DEMO_TASK_STACK_SIZE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef ADD_NUTTX_FEATURES
|
||||||
|
pthread_attr_t attr = PTHREAD_ATTR_INITIALIZER;
|
||||||
|
attr.priority = LWIP_mqtt_DEMO_TASK_PRIO;
|
||||||
|
attr.stacksize = LWIP_mqtt_DEMO_TASK_STACK_SIZE;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
PrivTaskCreate(&mqtt_client_task, &attr, &MqttSocketSendTask, NULL);
|
||||||
|
PrivTaskStartup(&mqtt_client_task);
|
||||||
|
}
|
||||||
|
|
||||||
|
PRIV_SHELL_CMD_FUNCTION(MqttSocketSendTest, a tcp send sample, PRIV_SHELL_CMD_MAIN_ATTR);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue