Portability
The adapter layer of device-cloud interconnect components provides common hardware and network adapter APIs. Device or module vendors can complete the porting of device-cloud interconnect components after adapting their hardware to these APIs. The following table lists the to-be-ported APIs and related functions.
API Category |
API |
Description |
---|---|---|
Network socket API |
atiny_net_connect |
Creates a socket network connection. |
atiny_net_recv |
Receives packets. |
|
atiny_net_send |
Sends packets. |
|
atiny_net_recv_timeout |
Receives packets in a blocking manner. |
|
atiny_net_close |
Closes a socket network connection. |
|
Hardware API |
atiny_gettime_ms |
Obtains the system time (ms). |
atiny_usleep |
Delay function, measured in μs. |
|
atiny_random |
Hardware random number function. |
|
atiny_malloc |
Applies for dynamic memory. |
|
atiny_free |
Releases dynamic memory. |
|
atiny_snprintf |
Formats character strings. |
|
atiny_printf |
Outputs logs. |
|
API for resource exclusion |
atiny_mutex_create |
Creates a mutual exclusion lock. |
atiny_mutex_destroy |
Destroy a mutual exclusion lock. |
|
atiny_mutex_lock |
Obtains a mutual exclusion lock. |
|
atiny_mutex_unlock |
Releases a mutual exclusion lock. |
Device-cloud interconnect components can be ported in OS and non-OS modes. The OS mode is recommended.
Device-cloud interconnect components support firmware upgrade. The components need to adapt to the atiny_storage_device_s object.
atiny_storage_device_s *atiny_get_hal_storage_device(void); struct atiny_storage_device_tag_s; typedef struct atiny_storage_device_tag_s atiny_storage_device_s; struct atiny_storage_device_tag_s { //Device initialization int (*init)( storage_device_s *this); //Begin to write int (*begin_software_download)( storage_device_s *this); //Write software, and start from offset. buffer indicates the content, and len indicates the length. int (*write_software)( storage_device_s *this , uint32_t offset, const char *buffer, uint32_t len); //Download completed int (*end_software_download)( storage_device_s *this); //Activate software int (*active_software)( storage_device_s *this); //Activated results are obtained. O indicates successful. 1 indicates failed. int (*get_active_result)( storage_device_s *this); //Write update_info, and start from offset. buffer indicates the content, and len indicates the length. int (*write_update_info)( storage_device_s *this, long offset, const char *buffer, uint32_t len); //Read update_info, and start from offset. buffer indicates the content, and len indicates the length. int (*read_update_info)( storage_device_s *this, long offset, char *buffer, uint32_t len); };
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot