釋放參數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 | 輸入 | 可變參數列表 |
返回值說明
成功寫入的字符串長