| /****************************************************************************** |
| * Copyright 2017 Google |
| * Copyright 2019,2020 NXP |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| *****************************************************************************/ |
| |
| #ifndef _MQTT_PUBLISH |
| #define _MQTT_PUBLISH |
| |
| //Azure IoTHub global endpoint URL |
| #define MQTT_REGISTER_URL_AZURE "ssl://global.azure-devices-provisioning.net:8883" |
| |
| //string for publishing initial request for registration |
| #define MQTT_REGISTRATION_MSG_AZURE "$dps/registrations/PUT/iotdps-register/?$rid=1" |
| |
| //string for publishing with operationID after initail request |
| #define MQTT_PUBLISH_MSG_OPID_AZURE "$dps/registrations/GET/iotdps-get-operationstatus/?$rid=2&operationId=" |
| |
| //string for subscribing topic to receive registration messages from Azure |
| #define MQTT_SUBSCRIBE_MSG_AZURE "$dps/registrations/res/#" |
| |
| //Fixed timeout in seconds for registration |
| #define REGISTRATION_TIMEOUT 30 |
| |
| //global states for registration process |
| typedef enum { ASSIGNING, STOP } register_state; |
| |
| enum |
| { |
| address_maxlen = 256, |
| address_size |
| }; |
| enum |
| { |
| clientid_maxlen = 256, |
| clientid_size |
| }; |
| enum |
| { |
| topic_maxlen = 256, |
| topic_size |
| }; |
| enum |
| { |
| username_maxlen = 256, |
| username_size |
| }; |
| |
| struct |
| { |
| char address[address_size]; |
| char clientid[clientid_size]; |
| char keypath[256]; |
| char rootpath[256]; |
| char topic[topic_size]; |
| char payload[256]; |
| char devcert[256]; |
| char username[username_size]; |
| } opts; |
| |
| int register_device(bool registerDevice); |
| bool get_json_tagValue(char *js, const char * key, char * value); |
| bool write_registration_configuration(char* payload); |
| |
| |
| #endif //_MQTT_PUBLISH |