v1

Dependencies:   MQTTSN mbed-http

Committer:
m_ahsan
Date:
Mon Mar 11 07:51:06 2019 +0000
Revision:
15:557d0008dd2d
123

Who changed what in which revision?

UserRevisionLine numberNew contents of line
m_ahsan 15:557d0008dd2d 1
m_ahsan 15:557d0008dd2d 2 void Registration(MQTTSN::Client<MQTTSNUDP, Countdown> *client, MQTTSNUDP* ipstack)
m_ahsan 15:557d0008dd2d 3 {
m_ahsan 15:557d0008dd2d 4 //Create AE
m_ahsan 15:557d0008dd2d 5 //Mendatory resources: Operation, To, From, Request Identifier ,Resource Type, Content
m_ahsan 15:557d0008dd2d 6 //Resource Specific Attributes [M]: App-ID, requestReachability, supportedReleaseVersions
m_ahsan 15:557d0008dd2d 7 // [0]: PointofAccess, ResourceName
m_ahsan 15:557d0008dd2d 8
m_ahsan 15:557d0008dd2d 9 AE_ID = "S"; //Initial registration
m_ahsan 15:557d0008dd2d 10 //struct Mendatory m1;
m_ahsan 15:557d0008dd2d 11 m1.To = CSE_ID;
m_ahsan 15:557d0008dd2d 12 m1.From = AE_ID;
m_ahsan 15:557d0008dd2d 13 m1.Request_Identifier = "createAE1";
m_ahsan 15:557d0008dd2d 14 m1.Resource_Type = 3;
m_ahsan 15:557d0008dd2d 15 m1.Operation = 1;
m_ahsan 15:557d0008dd2d 16
m_ahsan 15:557d0008dd2d 17 //struct CreateAE CAE;
m_ahsan 15:557d0008dd2d 18 CAE.resourceName = MQTT_CLIENT_ID;
m_ahsan 15:557d0008dd2d 19 CAE.requestReachability = true;
m_ahsan 15:557d0008dd2d 20 CAE.App_ID = "A01.com.sensor01";
m_ahsan 15:557d0008dd2d 21 buffer = Create_AE();
m_ahsan 15:557d0008dd2d 22
m_ahsan 15:557d0008dd2d 23 strncpy(buf, buffer, strlen(buffer));
m_ahsan 15:557d0008dd2d 24
m_ahsan 15:557d0008dd2d 25 delete buffer;
m_ahsan 15:557d0008dd2d 26
m_ahsan 15:557d0008dd2d 27 //////////////////////////////////MQTT Subscribe//////////////////////////////////////////
m_ahsan 15:557d0008dd2d 28
m_ahsan 15:557d0008dd2d 29 //Set Topic to /oneM2M/reg_resp/Sensor01/CSE_01
m_ahsan 15:557d0008dd2d 30 char tpc_ty[] = "reg_resp";
m_ahsan 15:557d0008dd2d 31 char orignator[] = MQTT_CLIENT_ID;
m_ahsan 15:557d0008dd2d 32 char receiver[] = "CSE_01";
m_ahsan 15:557d0008dd2d 33 //create_Topic();
m_ahsan 15:557d0008dd2d 34
m_ahsan 15:557d0008dd2d 35 sprintf(MQTT_TOPIC,"/oneM2M/%s/%s/%s",tpc_ty,orignator,receiver);
m_ahsan 15:557d0008dd2d 36 printf("Topic is %s", MQTT_TOPIC);
m_ahsan 15:557d0008dd2d 37
m_ahsan 15:557d0008dd2d 38 MQTTSN_topicid topicid;
m_ahsan 15:557d0008dd2d 39 if ((rc = subscribe(client, ipstack, topicid)) != 0)
m_ahsan 15:557d0008dd2d 40 printf("rc from MQTT subscribe is %d\n", rc);
m_ahsan 15:557d0008dd2d 41 else
m_ahsan 15:557d0008dd2d 42 printf("Subscribed to Topic %s\n", MQTT_TOPIC);
m_ahsan 15:557d0008dd2d 43
m_ahsan 15:557d0008dd2d 44 //Set Topic to /oneM2M/reg_req/Sensor01/CSE_01
m_ahsan 15:557d0008dd2d 45 strcpy(tpc_ty, "reg_req");
m_ahsan 15:557d0008dd2d 46 //create_Topic();
m_ahsan 15:557d0008dd2d 47
m_ahsan 15:557d0008dd2d 48 sprintf(MQTT_TOPIC,"/oneM2M/%s/%s/%s",tpc_ty,orignator,receiver);
m_ahsan 15:557d0008dd2d 49 printf("Topic is %s", MQTT_TOPIC);
m_ahsan 15:557d0008dd2d 50 //PUBLISH
m_ahsan 15:557d0008dd2d 51 MQTTSN_topicid topicid2;
m_ahsan 15:557d0008dd2d 52 if ((rc = publish(client, ipstack, topicid2)) != 0)
m_ahsan 15:557d0008dd2d 53 {
m_ahsan 15:557d0008dd2d 54 printf("rc from MQTT Publish is %d\n", rc);
m_ahsan 15:557d0008dd2d 55 if ((rc = client->unsubscribe(topicid2)) != 0)
m_ahsan 15:557d0008dd2d 56 printf("rc from unsubscribe was %d\n", rc);
m_ahsan 15:557d0008dd2d 57 else{
m_ahsan 15:557d0008dd2d 58 printf("Unsubscribed from Topic %s\n", MQTT_TOPIC);
m_ahsan 15:557d0008dd2d 59 PUB_REG = false;
m_ahsan 15:557d0008dd2d 60 }
m_ahsan 15:557d0008dd2d 61 }
m_ahsan 15:557d0008dd2d 62 else
m_ahsan 15:557d0008dd2d 63 printf("Published Buffer: %s to Topic %s\n",buf, MQTT_TOPIC);
m_ahsan 15:557d0008dd2d 64
m_ahsan 15:557d0008dd2d 65 while(reg_resp == false)
m_ahsan 15:557d0008dd2d 66 {
m_ahsan 15:557d0008dd2d 67 client->yield(4000);
m_ahsan 15:557d0008dd2d 68 }
m_ahsan 15:557d0008dd2d 69 //wait for response
m_ahsan 15:557d0008dd2d 70 }