Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int msgarrvd(void *context, char *topicName, int topicLen, MQTTClient_message *message)
- {
- int i;
- char* payloadptr;
- printf("Message arrived\n");
- printf(" topic: %s\n", topicName);
- printf(" message: ");
- payloadptr = message->payload;
- for(i=0; i<message->payloadlen; i++)
- {
- putchar(*payloadptr++);
- }
- putchar('\n');
- MQTTClient_freeMessage(&message);
- MQTTClient_free(topicName);
- return 1;
- }
- void* OTA(void *arg){
- int rc = 0;
- MQTTClient client;
- MQTTClient_connectOptions conn_opts = MQTTClient_connectOptions_initializer;
- MQTTClient_SSLOptions sslopts = MQTTClient_SSLOptions_initializer;
- rc = MQTTClient_create(&client, cADDRESS, cClid,MQTTCLIENT_PERSISTENCE_NONE, NULL);
- printf("MQTT SUB created....\n");
- MQTTClient_setCallbacks(client, NULL, connlost, msgarrvd, delivered);
- sslopts.enableServerCertAuth=0;
- conn_opts.keepAliveInterval = 20;
- conn_opts.cleansession = 0;
- conn_opts.username = "URL/DeviceID";
- conn_opts.password = "SaaS Key(Password)";
- conn_opts.ssl = &sslopts;
- if ((rc = MQTTClient_connect(client, &conn_opts)) !=MQTTCLIENT_SUCCESS){
- printf("MQTT SUB Failed to connect, return code %d\n", rc);
- MQTTClient_destroy(&client);
- continue;
- }
- else{
- printf("MQTT SUB Successfully connected to Server %s\n",cADDRESS);
- }
- memset(cADDRESS,0,sizeof(cADDRESS));
- strcat(cADDRESS,"devices/");
- strcat(cADDRESS,ucImei);
- strcat(cADDRESS,"/messages/events");
- if ((rc = MQTTClient_subscribe(client, cADDRESS, 0)) !=MQTTCLIENT_SUCCESS){
- printf("MQTT SUBSCRIBE Failed to connect, return code %d\n", rc);
- MQTTClient_destroy(&client);
- continue;
- }
- else{
- printf("MQTT SUBSCRIBE to Server\n");
- }
- while(iMQTTSUBlost==0){
- sleep(1);
- }
- iMQTTSUBlost=0;
- MQTTClient_disconnect(client, 0);
- MQTTClient_destroy(&client);
- sleep(1);
- }
- pthread_exit(NULL);
- return (void*)0;
- }
Add Comment
Please, Sign In to add comment