123

Dependencies:   MQTTSN

registration.h

Committer:
m_ahsan
Date:
2019-08-06
Revision:
15:8c473836feba

File content as of revision 15:8c473836feba:


int Registration(MQTTSN::Client<MQTTSNUDP, Countdown> *client, MQTTSNUDP* ipstack,  MQTTSN_topicid& topicid)
{
    //Create AE
    //Mendatory resources: Operation, To, From, Request Identifier ,Resource Type, Content 
    //Resource Specific Attributes [M]: App-ID, requestReachability, supportedReleaseVersions
    //                              [0]: PointofAccess, ResourceName
    Request R1;
    AE_ID = "S";                    //Initial registration
    //struct Mendatory m1;
    R1.To = CSE_ID; 
    R1.From = AE_ID;
    R1.Request_Identifier = "createAE11";
    R1.Resource_Type = 2;
    R1.Operation = 1;
    
    //struct CreateAE CAE;
    CAE.resourceName = MQTT_CLIENT_ID;
    CAE.requestReachability = true;
    CAE.App_ID = "A01.com.sensor011";
    //buffer = Create_AE();
    lcl = false;
    buf = Create_Req(R1);
    printf("string in buf is %s\n",buf);
    //buf[0] = '\0';
    
    
    //PUBLISH

    if ((rc = publish(client, ipstack, topicid)) != 0)
         printf("rc from MQTT Publish is %d\n", rc);
    else
         printf("Published Buffer: %s to Topic %s\n",buf, MQTT_TOPIC);

    while(1)
    {
           
        client->yield(4000);
        /*if(isMessageArrived) {
            isMessageArrived = false;
            // Just print it out here.
            //printf("\r\nMessage arrived:\r\n%s\r\n", messageBuffer);
            //process_msg();
            
            //free(messageBuffer);
        } */ 
        if(rsc != 0){ 
            //reg_resp = true;
            printf("rsc = %d\n",rsc);
            break;
        }
        else rsc = 0;
    }
    if(rsc == 2001 ){ 
        rsc = 0;
        return 0;
    }
    else if(rsc == 2002){
        rsc = 0;
        return -1;
    }
    //wait for response
    return 0;
}