Using the Cloud Connector API, you can connect or disconnect from Remote Manager at any time. Manage the connection to Remote Manager using the following functions:
Function | Description |
---|---|
cc_init_error_t init_cloud_connection(const char *config_file) |
Initializes Cloud Connector with the parameters in the provided configuration file. If it is NULL, default configuration file location is used, /etc/cc.conf. |
cc_start_error_t start_cloud_connection(void) |
Opens the Cloud Connector connection. |
cc_status_t get_cloud_connection_status(void) |
Returns the Cloud Connector connection status. |
cc_stop_error_t stop_cloud_connection(void) |
Closes the Cloud Connector connection. |
Make sure your device is registered within your Remote Manager account before attempting to connect. For more information on registering your device in Remote Manager see Connect to Remote Manager.
int main (void)
{
cc_init_error_t init_error;
cc_start_error_t start_error;
cc_stop_error_t stop_error;
[...]
init_error = init_cloud_connection(config_file);
if (init_error != CC_INIT_ERROR_NONE) {
log_error("Cannot initialize cloud connection, error %d", init_error);
return EXIT_FAILURE;
}
[...]
start_error = start_cloud_connection();
if (start_error != CC_START_ERROR_NONE) {
log_error("Cannot start cloud connection, error %d", start_error);
return EXIT_FAILURE;
}
[...]
stop_error = stop_cloud_connection();
[...]
return EXIT_SUCCESS;
}
Initialize connection
The initialization process configures Cloud Connector with the values in the provided configuration file.
cc_init_error_t init_cloud_connection(const char *config_file)
By default, if config_file is NULL, /etc/cc.conf is used.
In this configuration file:
-
General settings give descriptive information about your device in Remote Manager. You can access this information through the Remote Manager web interface and use it to easily identify your devices.
-
Connection settings establish the parameters for the connection with Remote Manager, such as enable reconnection or the time to wait before attempting to reconnect.
-
Service settings allow you to enable file system service, map virtual directories, or identify the path to download the firmware file.
-
System monitor settings manage the status of this feature and the parameters to monitor.
-
Logging settings allow you to establish the logging level.
For more information about the configuration settings, review the configuration file cc.conf. |
The function init_cloud_connection() returns a cc_init_error_t error code indicating if any failure occurs during the initialization process. The following subset of cc_init_error_t errors can be returned by init_cloud_connection():
Error | Description |
---|---|
CC_INIT_ERROR_NONE |
Operation completed successfully. No error found. |
CC_INIT_CCAPI_START_ERROR_INSUFFICIENT_MEMORY |
Cloud Connector encountered problems allocating memory to initialize the connection. Your system may have run out of resources. |
CC_INIT_CCAPI_START_ERROR_THREAD_FAILED |
Error while trying to create thread. Your system has insufficient resources to create another thread, or it reached the limit on the number of threads. |
CC_INIT_CCAPI_START_ERROR_LOCK_FAILED |
Cloud Connector encountered problems using synchronization mechanisms. Your system may have run out of resources. |
CC_INIT_CCAPI_START_ERROR_ALREADY_STARTED |
Cloud Connector is already initialized. |
CC_INIT_ERROR_PARSE_CONFIGURATION |
The provided configuration file is invalid. |
CC_INIT_ERROR_ADD_VIRTUAL_DIRECTORY |
Cloud Connector cannot add a virtual directory because the target directory does not exist, you do not have permissions, or it is already mapped. |
Start connection
Once Cloud Connector is properly initialized, you can connect to Remote Manager using function start_cloud_connection().
cc_start_error_t start_cloud_connection(void)
This function establishes the connection with the cloud based on the settings configured during the initialization.
The following subset of cc_start_error_t errors can be returned by start_cloud_connection():
Error | Description |
---|---|
CC_START_ERROR_NONE |
Operation completed successfully. No error found. |
CC_START_CCAPI_TCP_START_ERROR_ALREADY_STARTED |
Cloud Connector is already started. |
CC_START_CCAPI_TCP_START_ERROR_INSUFFICIENT_MEMORY |
Cloud Connector encountered problems allocating memory to start the connection. Your system may have run out of resources. |
CC_START_CCAPI_TCP_START_ERROR_INIT |
Cloud Connector cannot initialize the connection with Remote Manager. |
CC_START_ERROR_NOT_INITIALIZE |
Cloud Connector is not initialized before starting. |
CC_START_ERROR_SYSTEM_MONITOR |
Cloud Connector cannot start System Monitor feature. |
Get connection status
You can get the current status of the connection with Remote Manager using get_cloud_connection_status() function.
cc_status_t get_cloud_connection_status(void)
The following values of cc_status_t may be returned by this function:
Status | Description |
---|---|
CC_STATUS_DISCONNECTED |
Device is not connected to Remote Manager. |
CC_STATUS_CONNECTING |
Device is trying to connect to Remote Manager. |
CC_STATUS_CONNECTED |
Device is connected to Remote Manager. |
If the connection is lost and reconnection is enabled in the configuration file (enable_reconnect setting), the device automatically tries to connect to Remote Manager once the configured reconnect timeout elapses (reconnect_time setting). |
Stop connection
You can manually stop Cloud Connector, free allocated memory, and stop all active Cloud Connector threads with function stop_cloud_connection().
cc_stop_error_t stop_cloud_connection(void)
Function stop_cloud_connection() returns a cc_stop_error_t error code indicating if any failure occurs during the stop process. The following subset of cc_stop_error_t errors can be returned by this function:
Error | Description |
---|---|
CC_STOP_ERROR_NONE |
Operation completed successfully. No error found. |
CC_STOP_CCAPI_STOP_ERROR_NOT_STARTED |
Cloud Connector not started |