釋放參數ptr指向的一塊堆內存, 當傳入的參數為NULL時不執行任何操作

原型

void HAL_Free(_IN_ void *ptr);
            

接口說明

參數說明

參數 數據類型 方向 說明
ptr void * 輸入 指向將要釋放的堆內存的指針

返回值說明

void

HAL_GetChipID

原型

char *HAL_GetChipID(_OU_ char cid_str[HAL_CID_LEN]);
            

接口說明

獲取唯一的芯片ID字符串, 字符串長度不能超過HAL_CID_LEN定義的數值。

注:該HAL只需要芯片商進行適配,如果用戶不是芯片商,該HAL返回空字符串即可

參數說明

參數 數據類型 方向 說明
cid_str char[] 輸出 存放芯片ID的字符串緩沖區

返回值說明

指向字符串緩沖區的指針

HAL_GetDeviceID

(在2.3.1及以后版本中不需要實現)

原型

int HAL_GetDeviceID(_OU_ char device_id[DEVICE_ID_LEN]);
            

接口說明

獲取設備的DeviceID, 用于標識設備單品的ID

參數說明

參數 數據類型 方向 說明
device_id char[] 輸出 存放DeviceID的字符串緩沖區

返回值說明

實際獲取到的DeviceID字符串長度

HAL_GetDeviceName

原型

int HAL_GetDeviceName(_OU_ char device_name[DEVICE_NAME_LEN]);
            

接口說明

獲取設備的DeviceName,用于唯一標識單個設備的名字,在云端控制臺注冊得到并燒寫到設備中。

參數說明

參數 數據類型 方向 說明
device_name char[] 輸出 存放DeviceName的字符串緩沖區

返回值說明

實際獲取到的DeviceName字符串長度

HAL_GetDeviceSecret

原型

int HAL_GetDeviceSecret(_OU_ char device_secret[DEVICE_SECRET_LEN]);
            

接口說明

獲取設備的DeviceSecret,用于標識單個設備的密鑰,在云端控制臺注冊得到并燒寫到設備中。

參數說明

參數 數據類型 方向 說明
device_secret char[] 輸出 存放DeviceSecret的字符串緩沖區

返回值說明

實際獲取到的DeviceSecret字符串長度

HAL_GetFirmwareVersion

原型

int HAL_GetFirmwareVersion(_OU_ char version[FIRMWARE_VERSION_MAXLEN]);
            

接口說明

獲取設備的固件版本字符串, 此固件版本號將會用于OTA升級的版本上報。如果設備不準備支持OTA,該函數返回空串即可。

參數說明

參數 數據類型 方向 說明
version char[] 輸出 存放FirmwareVesion的字符串緩沖區

返回值說明

實際獲取到的FirmwareVesion字符串長度

HAL_GetModuleID

原型

int HAL_GetModuleID(_OU_ char mid_str[MID_STR_MAXLEN]);
            

接口說明

獲取設備的Module ID, 僅用于緊密合作伙伴。該函數用于模組商上報模組型號,其它角色的用戶返回空串即可。

參數說明

參數 數據類型 方向 說明
mid_str char[] 輸出 存放Module ID的字符串緩沖區

返回值說明

實際獲取到的Module ID字符串長度

HAL_GetPartnerID

原型

int HAL_GetPartnerID(_OU_ char pid_str[PID_STR_MAXLEN]);
            

接口說明

獲取設備的Partner ID, 僅用于緊密合作伙伴。

參數說明

參數 數據類型 方向 說明
pid_str char[] 輸出 存放Partner ID的字符串緩沖區

返回值說明

實際獲取到的Partner ID字符串長度

HAL_GetProductKey

原型

int HAL_GetProductKey(_OU_ char product_key[PRODUCT_KEY_LEN]);
            

接口說明

獲取設備的ProductKey,用于標識設備的品類,在云端控制臺注冊得到并燒寫到設備中。

參數說明

參數 數據類型 方向 說明
product_key char[] 輸出 存放ProductKey的字符串緩沖區

返回值說明

實際獲取到的ProductKey字符串長度

HAL_GetProductSecret

原型

int HAL_GetProductSecret(_OU_ char product_secret[DEVICE_SECRET_LEN]);
            

接口說明

獲取設備的ProductSecret, 用于標識品類的密鑰, 在云端控制臺注冊得到并燒寫到設備中, 在一型一密的場景下將會使用到此字符串

參數說明

參數 數據類型 方向 說明
product_secret char[] 輸出 存放ProductSecret的字符串緩沖區

返回值說明

實際獲取到的ProductSecret字符串長度

HAL_GetTimeStr

(在2.3.1及以后版本中不需要實現)原型

char *HAL_GetTimeStr(_OU_ char *buf, _IN_ int len);
            

接口說明

獲取當前時間字符串

參數說明

參數 數據類型 方向 說明
buf char * 輸出 指向時間字符串緩沖區的指針
len int 輸入 字符串緩沖區的字節長度

返回值說明

指向時間字符串緩沖區的指針

HAL_Kv_Del

原型

int HAL_Kv_Del(const char *key);
            

接口說明

刪除指定KV數據, 刪除key對應的KV對數據, 可以通過擦除Flash或修改文件數據的方式實現持久化數據的刪除

參數說明

參數 數據類型 方向 說明
key const char * 輸入 指向key字符串的指針
buffer void * 輸出 指向存放獲取數據的指針
buffer_len int * 輸出 指向存放獲取

返回值說明

說明
0 刪除成功
-1 刪除失敗

HAL_Kv_Erase_All

原型

int HAL_Kv_Erase_All(void);
            

接口說明

擦除所有的KV數據, 可以通過擦除Flash或修改文件數據的方式實現持久化數據的刪除

參數說明

void

返回值說明

說明
0 操作成功
-1 操作失敗

HAL_Kv_Get

原型

int HAL_Kv_Get(const char *key, void *buffer, int *buffer_len);
            

接口說明

獲取KV數據, 獲取key對應的KV對數據, 可以通過讀取Flash或讀取文件的方式實現持久化數據的讀取

參數說明

參數 數據類型 方向 說明
key const char * 輸入 指向key字符串的指針
buffer void * 輸出 指向存放獲取數據的指針
buffer_len int * 輸出 指向存放獲取

返回值說明

說明
0 獲取成功
-1 獲取失敗

HAL_Kv_Set

原型

int HAL_Kv_Set(const char *key, const void *val, int len, int sync);
            

接口說明

設置KV數據接口, 可通過寫flash或寫文件的方式實現數據持久化

參數說明

參數 數據類型 方向 說明
key const char * 輸入 指向key字符串的指針
val const void * 輸入 指向待設置數據的指針
len int 輸入 待設置數據的字節長度
sync int 輸入 0: 異步接口. 1: 同步接口

返回值說明

說明
0 設置成功
-1 設置失敗

HAL_Malloc

原型

void *HAL_Malloc(_IN_ uint32_t size);
            

接口說明

申請一塊堆內存

參數說明

參數 數據類型 方向 說明
size uint32_t 輸入 申請的堆內存大小

返回值說明

說明
NULL 內存申請失敗
!NULL 指向堆內存首地址的指針

HAL_Printf

原型

void HAL_Printf(_IN_ const char *fmt, ...);
            

接口說明

打印函數, 用于向串口或其它標準輸出打印日志或調試信息, 可參考C99的printf()函數實現

參數說明

參數 數據類型 方向 說明
fmt const char * 輸入 格式化字符串
... 可變類型 輸入 可變參數列表

返回值說明

void

HAL_Random

HAL_Random 原型

uint32_t HAL_Random(_IN_ uint32_t region);
            

接口說明

隨機數函數, 接受一個無符號數作為范圍, 返回0到region范圍內的一個隨機數

參數說明

參數 數據類型 方向 說明
region uint32_t 輸入 用于指定隨機數范圍的無符號數

返回值說明

在指定范圍的隨機數

HAL_Reboot

原型

void HAL_Reboot(void);
            

接口說明

設備重啟, 調用該接口能實現復位功能

參數說明

void

返回值說明

void

HAL_SetDeviceName

原型

int HAL_SetDeviceName(_IN_ char *device_name);
            

接口說明

設置設備的DeviceName,用于標識設備單品的名字。

參數說明

參數 數據類型 方向 說明
device_name char * 輸出 指向待傳入DeviceName字符串的指針

返回值說明

待設置DeviceName字符串的長度

HAL_SetDeviceSecret

原型

int HAL_SetDeviceSecret(_IN_ char *device_secret);
            

接口說明

設置設備的DeviceSecret,用于標識設備單品的密鑰。

參數說明

參數 數據類型 方向 說明
device_secret char * 輸出 指向待傳入DeviceSecret字符串的指針

返回值說明

待設置DeviceSecret字符串的長度

HAL_SetProductKey

原型

int HAL_SetProductKey(_IN_ char *product_key);
            

接口說明

設置設備的ProductKey,用于標識設備的品類。

參數說明

參數 數據類型 方向 說明
product_key char * 輸入 指向待設置ProductKey字符串的指針

返回值說明

待設置ProductKey字符串的長度

HAL_SetProductSecret

原型

int HAL_SetProductSecret(_IN_ char *product_secret);
            

接口說明

設置設備的ProductSecret, 用于標識品類的密鑰, 在一型一密場景中會使用到此字符串

參數說明

參數 數據類型 方向 說明
product_secret char * 輸出 指向待傳入ProductSecret字符串的指針

返回值說明

待設置ProductSecret字符串的長度

HAL_SleepMs

原型

void HAL_SleepMs(_IN_ uint32_t ms);
            

接口說明

睡眠函數, 使當前執行線程睡眠指定的毫秒數

參數說明

參數 數據類型 方向 說明
ms uint32_t 輸入 線程掛起的時間, 單位ms

返回值說明

void

HAL_Snprintf

原型

int HAL_Snprintf(_OU_ char *str, _IN_ const int len, _IN_ const char *fmt, ...);
            

接口說明

打印函數, 向內存緩沖區格式化構建一個字符串, 參考C99標準庫函數

參數說明

參數 數據類型 方向 說明
str char * 輸入 指向字符緩沖區的指針
len int 輸入 緩沖區的字符長度
fmt const char * 輸入 格式化字符串
... 輸入 可變參數列表

返回值說明

實際寫入緩沖區的字符串長度

HAL_Srandom

原型

void HAL_Srandom(_IN_ uint32_t seed);
            

接口說明

隨機數播種函數,使HAL Random的返回值每個隨機序列各不相同,類似C標準庫中的srand

參數說明

參數 數據類型 方向 說明
seed uint32_t 輸入 用于產生新隨機序列的種子

返回值說明

void

HAL_Sys_reboot

原型

void HAL_Sys_reboot(void);
            

接口說明

系統立即重啟

參數說明

void

返回值說明

void

HAL_Timer_Create

原型

void *HAL_Timer_Create(const char *name, void (*func)(void *), void *user_data);
            

接口說明

創建指定名稱的定時器, 同時注冊用戶回調函數和用戶數據

參數說明

參數 數據類型 方向 說明
name const char * 輸入 定時器名稱字符串
func void (*func)(void *) 輸入 用戶回調函數
user_data void * 輸入 指向用戶數據的指針

返回值說明

說明
NULL 創建失敗
!NULL 創建成功, 返回定時器句柄

HAL_Timer_Delete

原型

int HAL_Timer_Delete(void *timer);
            

接口說明

刪除由HAL_Timer_Create()創建的定時器, 釋放資源

參數說明

參數 數據類型 方向 說明
timer void * 輸入 定時器句柄, 此句柄由調用HAL_Timer_Create()時返回

返回值說明

說明
0 操作成功
-1 操作失敗

HAL_Timer_Start

原型

int HAL_Timer_Start(void *t, int ms);
            

接口說明

啟動定時器

參數說明

參數 數據類型 方向 說明
timer void * 輸入 定時器句柄, 此句柄由調用HAL_Timer_Create()時返回
ms int 輸入 定時器定時時間, 單位ms

返回值說明

說明
0 操作成功
-1 操作失敗

HAL_Timer_Stop

原型

int HAL_Timer_Stop(void *t);
            

接口說明

關閉定時器

參數說明

參數 數據類型 方向 說明
timer void * 輸入 定時器句柄, 此句柄由調用HAL_Timer_Create()時返回

返回值說明

說明
0 操作成功
-1 操作失敗

HAL_UptimeMs

原型

uint64_t HAL_UptimeMs(void);
            

接口說明

獲取設備從上電到當前時刻所經過的毫秒數

參數說明

void

返回值說明

設備從上電到當前時刻所經過的毫秒數

HAL_UTC_Get

原型

long long HAL_UTC_Get(void);
            

接口說明

獲取UTC時間, 數值為從Epoch(1970年1月1日00:00:00 UTC)開始所經過的秒數單位

參數說明

void

返回值說明

單位為ms的UTC時間

HAL_UTC_Set

原型

void HAL_UTC_Set(long long ms);
            

接口說明

設置UTC時間, 設置參數為從Epoch(1970年1月1日00:00:00 UTC)開始所經過的秒數單位

參數說明

參數 數據類型 方向 說明
ms long long 輸入 單位為ms的UTC時間

返回值說明

void

HAL_Vsnprintf

原型

int HAL_Vsnprintf(_OU_ char *str, _IN_ const int len, _IN_ const char *fmt, _IN_ va_list ap);
            

接口說明

格式化輸出字符串到指定buffer中, 可參考C標準庫的vsnprintf()實現

參數說明

參數 數據類型 方向 說明
str char * 輸出 用于存放寫入字符串的buffer
len const int 輸入 允許寫入的最大字符串長度
fmt const char 輸入 格式化字符串
ap va_list 輸入 可變參數列表

返回值說明

成功寫入的字符串長