Closed MaazSk closed 2 years ago
git describe --tags
I am trying to implement device provisioning but I am not getting device certificates from the server.
My code snippet is as below
IoT_Client_Init_Params InitParams = iotClientInitParamsDefault; InitParams.enableAutoReconnect = false; // We enable this later below InitParams.pHostURL = AWSHostAddress; InitParams.port = MQTTport; InitParams.disconnectHandler = disconnect_handle; InitParams.pRootCALocation = rootCA; InitParams.pDevicePrivateKeyLocation = clientKey; InitParams.pDeviceCertLocation = clientCRT; InitParams.mqttCommandTimeout_ms = 20000; InitParams.tlsHandshakeTimeout_ms = 5000; InitParams.isSSLHostnameVerify = true; InitParams.disconnectHandlerData = NULL; //Initializing AWS IoT rc = aws_iot_mqtt_init(&provisioningMQTTClient, &InitParams); if (rc != SUCCESS) { ESP_LOGE(TAG, "mqtt init flags"); // goto exit; } ESP_LOGI(TAG, "initializing connection parameters"); //Aws Connection Parameters IoT_Client_Connect_Params connectParams = iotClientConnectParamsDefault; connectParams.pClientID = "Provisioning_dev"; connectParams.clientIDLen = (uint16_t)strlen("Provisioning_dev"); connectParams.keepAliveIntervalInSec = 10; connectParams.isCleanSession = true; connectParams.isWillMsgPresent = false; ESP_LOGI(TAG, "Connecting to aws for provisioning"); do { //Connecting to AWS rc = aws_iot_mqtt_connect(&provisioningMQTTClient, &connectParams); if (SUCCESS != rc) { ESP_LOGE(TAG, "Error(%d) connecting to %s:%d", rc, InitParams.pHostURL, InitParams.port); vTaskDelay(1000 / portTICK_RATE_MS); } } while (SUCCESS != rc); ESP_LOGI(TAG, "connected to AWS for provisioning"); do { //Autoreconnect rc = aws_iot_mqtt_autoreconnect_set_status(&provisioningMQTTClient, true); if (SUCCESS != rc) { ESP_LOGE(TAG, "Unable to set Auto Reconnect to true - %d", rc); // abort(); } } while (rc != SUCCESS); ESP_LOGI(TAG, "Subscribing to Provisioning topic..."); //Subscribing to topics int subscribeProvisioningTopicLen = strlen(SUBSCRIBE_PROVISIONING_TOPIC); rc = aws_iot_mqtt_subscribe(&provisioningMQTTClient, SUBSCRIBE_PROVISIONING_TOPIC, subscribeProvisioningTopicLen, QOS1, iot_subscribe_callback_handler_prov, NULL); if (SUCCESS != rc) { ESP_LOGE(TAG, "Error while subscribing : %d ", rc); } rc = aws_iot_mqtt_subscribe(&provisioningMQTTClient, SUBSCRIBE_PROVISIONING_REJECTED_TOPIC, subscribeProvisioningTopicLen, QOS1, iot_subscribe_callback_handler_prov, NULL); if (SUCCESS != rc) { ESP_LOGE(TAG, "Error while subscribing : %d ", rc); } ESP_LOGI(TAG, "Topic is been subscribed"); char *publish_msg = ""; // sprintf(publish_msg, ""); IoT_Publish_Message_Params paramsQOS1; paramsQOS1.qos = QOS1; paramsQOS1.payload = (void*)publish_msg; paramsQOS1.isRetained = 0; paramsQOS1.payloadLen = 0; int publish_provisioning_topic_len = strlen(PUBLISH_PROVISIONING_TOPIC); ESP_LOGI(TAG,"Publishing data to AWS"); rc = aws_iot_mqtt_publish(&provisioningMQTTClient, PUBLISH_PROVISIONING_TOPIC, publish_provisioning_topic_len, ¶msQOS1);
Even if I try to publish multiple times I do not get any response in the callback function
Subscribe callback function:
void iot_subscribe_callback_handler_prov(AWS_IoT_Client *pClient, char *topicName, uint16_t topicNameLen, IoT_Publish_Message_Params *params, void *pData) { ESP_LOGI(TAG, "Subscribe callback"); ESP_LOGI(TAG, "%.*s\t%.*s", topicNameLen, topicName, (int)params->payloadLen, (char *)params->payload); }
Thank You
The issue is been resolved the receive buffer size was too small need to change it from sdkconfig
Environment
git describe --tags
to find it): v4.3Problem Description
I am trying to implement device provisioning but I am not getting device certificates from the server.
My code snippet is as below
Even if I try to publish multiple times I do not get any response in the callback function
Subscribe callback function:
Thank You