#include "infra_types.h" #include "infra_defs.h" #include "wrappers_defs.h" #include "mqtt_api.h" void *HAL_Malloc(uint32_t size); void HAL_Free(void *ptr); void HAL_Printf(const char *fmt, ...); uint64_t HAL_UptimeMs(void); void HAL_SleepMs(uint32_t ms); int HAL_Snprintf(char *str, const int len, const char *fmt, ...); void *HAL_MutexCreate(void); void HAL_MutexDestroy(void *mutex); void HAL_MutexLock(void *mutex); void HAL_MutexUnlock(void *mutex); int HAL_GetProductKey(char product_key[IOTX_PRODUCT_KEY_LEN + 1]); int HAL_GetProductSecret(char product_secret[IOTX_PRODUCT_SECRET_LEN + 1]); int HAL_GetDeviceName(char device_name[IOTX_DEVICE_NAME_LEN + 1]); int HAL_GetDeviceSecret(char device_secret[IOTX_DEVICE_SECRET_LEN + 1]); int HAL_GetFirmwareVersion(char *version); #ifdef DYNAMIC_REGISTER int HAL_SetDeviceSecret(char *device_secret); int HAL_GetProductSecret(char product_secret[IOTX_PRODUCT_SECRET_LEN + 1]); int HAL_Kv_Set(const char *key, const void *val, int len, int sync); int HAL_Kv_Get(const char *key, void *val, int *buffer_len); #endif #ifdef SUPPORT_TLS uintptr_t HAL_SSL_Establish(const char *host, uint16_t port, const char *ca_crt, uint32_t ca_crt_len); int32_t HAL_SSL_Destroy(uintptr_t handle); int HAL_SSL_Write(uintptr_t handle, const char *buf, int len, int timeout_ms); int HAL_SSL_Read(uintptr_t handle, char *buf, int len, int timeout_ms); #else uintptr_t HAL_TCP_Establish(const char *host, uint16_t port); int HAL_TCP_Destroy(uintptr_t fd); int32_t HAL_TCP_Write(uintptr_t fd, const char *buf, uint32_t len, uint32_t timeout_ms); int32_t HAL_TCP_Read(uintptr_t fd, char *buf, uint32_t len, uint32_t timeout_ms); #endif /* mqtt protocol wrapper */ void *wrapper_mqtt_init(iotx_mqtt_param_t *mqtt_params); int wrapper_mqtt_connect(void *client); int wrapper_mqtt_yield(void *client, int timeout_ms); int wrapper_mqtt_check_state(void *client); int wrapper_mqtt_subscribe(void *client, const char *topicFilter, iotx_mqtt_qos_t qos, iotx_mqtt_event_handle_func_fpt topic_handle_func, void *pcontext); int wrapper_mqtt_subscribe_sync(void *client, const char *topic_filter, iotx_mqtt_qos_t qos, iotx_mqtt_event_handle_func_fpt topic_handle_func, void *pcontext, int timeout_ms); int wrapper_mqtt_unsubscribe(void *client, const char *topicFilter); int wrapper_mqtt_publish(void *client, const char *topicName, iotx_mqtt_topic_info_pt topic_msg); int wrapper_mqtt_release(void **pclient); int wrapper_mqtt_nwk_event_handler(void *client, iotx_mqtt_nwk_event_t event, iotx_mqtt_nwk_param_t *param);