KLZB214SDK3.2-API説明
- 2018-03-29 10:25:00
- kelanelec_admin 原創
- 7537
ZB214SDK3.2-API説明
修改日期2017.09.07
支持的數據類型
char |
8位無符號 |
int8 |
8位有符號,signed char |
uint8 |
8位無符號,unsigned char |
int16 |
16位有符號,signed short |
uint16 |
16位無符號,unsigned short |
int32 |
32位有符號,signed long |
uint32 |
32位無符號,unsigned long |
1 繫統配置(以下函數隻能在任務初始化中使用,否則會造成繫統崩潰)
void AppDisableUART_Api(void);
函數功能:禁止串口,在用戶任務初始化中使用,調用之後,模塊正常工作後串口將失效
void AppDisableNetWorkManage(void);
函數功能:禁止網絡管理
調用之後,協調器默認開通授權任何嚐試加入的設備進入
void AppNetWorkManage_DisableMacAuth(void);
函數功能:使能網絡管理但禁止設備單獨MAC單獨允許入網功能
在用戶任務初始化中使用,僅協調器有效
備註:在配置文件使能瞭網絡管理之後,默認是需要MAC單獨允許的,但
調用此函數之後隻有授權功能,不支持設備單獨允許入網(允許授權後,所有設備均可以入網)
如配置文件中沒有使能網絡管理,調用此函數後會使能網絡管理功能
void AppEableNetWorkManage2(void);
函數功能:使能網絡管理模式2
在用戶任務初始化中使用,此Api僅協調器有效,通常用戶不需要調用,配置文件配置卽可
備註:此模式除瞭擁有授權功能外,還支持設備單獨允許入網(可串口指令或api添加允許設備列錶)
void AppZstackConfigBase_Api(uint8 device_type, uint16 panID,
uint8 channel, uint8* mass);
函數功能:網絡蔘數配置
panID: 0000-FFFF channel:11-26,FF:scan channel
device_type:0,COORDINATOR 1, ROUTER 2, ENDDEVICE
mass: point to 16bytes data buffer, is no,set 'NULL'
void AppZstackLowCongigZigBee_Api(ZSTACK_PARA_ITEM item, void *value);
函數功能:zigbee底層蔘數配置
蔘看ZSTACK_PARA_ITEM
void AppPowerOnNetWorkStartMode_Api(uint8 start_mode);
函數功能:上電網絡啟動模式
start_mode =0: 不管網絡狀態如何,都禁止開始/恢複網絡
start_mode =1: 不管網絡狀態如何,立卽開始/恢複網絡
start_mode =2: 如果已經入網或者已經構建網絡的設備,則直接恢複網絡。如果沒有入網(對路由器和終端)或者沒有構建好網絡(對協調器),則不進行初始化網絡(等待用戶命令)
void AppSetScanDuration_Api(uint8 duration);
函數功能:設置掃描時持續的時間(0-14)
數值越小,入網越快,但功耗越大。
默認:5
14:4分鐘
13:2分鐘
12:1分鐘
11:30秒
10:15秒
9 :7.5秒
8 :4秒
7 :2秒
6 :1秒
5 :480毫秒
4 :240毫秒
3 :120毫秒
2 :60毫秒
1 :30毫秒
0 :15毫秒
2 常用函數(動態函數,隨時可以調用)
void AppSetJoinCycle_Api(uint16 time);
函數功能:設置加入速度設置(100-60000)
默認:200
速度越小,入網越快,但功耗越大
void AppClearNetWork_Api(void);
函數功能:清除網絡,執行之後會清除之前的網絡併重啟。
void AppResetSystem_Api(void);
函數功能:重啟
uint16 AppReadPanID_Api(void);
函數功能:讀取網絡PANID,如果未加入到網絡或建立網絡,值爲FFFEh
uint16 AppReadShortAddr_Api(void);
函數功能:讀取短地址,如果未加入到網絡或建立網絡,值爲FFFEh
void AppReadMacAddress_Api(uint8 *mac_addr);
函數功能:讀取8字節MAC地址,蔘數是放置MAC地址的緩存首地址
uint8 AppReadChannel_Api(void);
函數功能:讀取當前信道,如果未加入到網絡或建立網絡,則返迴0
devStates_t AppReadDeviceState_Api(void);
函數功能:穫取設備狀態,返迴含義請看devStates_t結構類型
int8 AppReadTemperature_Api(void);
函數功能:讀取芯片溫度(有符號)
uint8 AppReadVcc_Api(void);
函數功能:讀取芯片VCC電壓
uint8 AppGetRand_Api(void);
函數功能:或取8位隨機數
uint16 AppGetRand16bit_Api(void);
函數功能:穫取16位隨機數
uint16 AppAdcRead_Api ( uint8 channel, uint8 resolution );
函數功能:讀取ADC轉換值
channel:轉換的通道,HAL_ADC_CHANNEL_0 --- HAL_ADC_CHANNEL_7
resolution:有效位,HAL_ADC_RESOLUTION_8 (8位)
HAL_ADC_RESOLUTION_10 (10位)
HAL_ADC_RESOLUTION_12 (12位)
HAL_ADC_RESOLUTION_14 (14位)
void AppAdcSetReference_Api ( uint8 reference );
函數功能:設置ADC蔘考電壓
reference:HAL_ADC_REF_125V,內部1.25V電壓
HAL_ADC_REF_AIN7,通道7端口(P0_7)作爲蔘考電壓
HAL_ADC_REF_AVDD,供電電壓(VCC)
uint8 AppReadProductInfo_Api(uint8 *s, uint8 len);
函數功能:讀取産品信息
s:字符串緩存指針
len:讀取的大小,最大64箇字節,如果不知道大小,直接寫64
返迴:讀取到的字節,如果返迴0,則讀取不成功或不存在産品信息
void AppUartSend_Api(uint8 *dat, uint8 len);
函數功能:串口髮送
dat:數據緩存指針
len:數據的大小
void AppUartSend_debug(uint8 *dat);
函數功能:串口髮送字符串,可以用來調試打印
3 數據傳輸類
void app_send_dat_extern(uint8 *buf, uint8 len);
函數功能:無線髮送數據
buf: 數據的首地址
len:數據的長度
uint8 app_set_send_addr(uint8 addr_type, uint8 *addr);
函數功能:設置髮送地址
設置之後有10秒的有效期,10秒過後會恢複到上電默認
上電默認(addr_type=01,協調器廣播,路由器和終端髮給協調器)
addr_type: 01,短地址方式,不使能應答,addr爲目的短地址
addr_type: 11,短地址方式,使能應答,addr爲目的短地址
addr_type: 02,MAC地址方式,不使能應答,addr爲目的MAC地址
addr_type: 12,MAC地址方式,使能應答,addr爲目的MAC地址
void user_app_rf_data_process_CB(afAddrType_t *srcAddr,
uint8 *dat,
uint8 dat_len)
函數功能:無線數據接收
註意,此函數爲CALLBACK函數,無線接收到數據後將會調用此函數
srcAddr:源地址,髮送對方地址
dat:數據首地址
dat_len:數據的長度
4 網絡管理類
void AppContinueScanNetWork_Api(void);
函數功能:啟動掃描
執行此函數後,隻開啟掃描功能,但不會立卽掃描。
如果開啟之後,設備由入網狀態變成掉網,會重新自動掃描網絡
void AppContinueScanNetWorkAndStart_Api(void);
函數功能:啟動掃描網絡
如果設備未入網或者掉網狀態,執行此函數後會自動進行掃描網絡
如果設備已經入網,執行此函數無效
void AppStopScanNetWork_Api(void);
函數功能:禁止掃描網絡
如果設備未入網或者掉網狀態,執行此函數後會終止進行掃描網絡
如果設備已經入網,執行此函數後,卽使突然掉網也不再掃描網絡,將保持在掉網狀態
void AppStartNewNetWork_Api(void)
函數功能:啟動掃描新的網絡
不管設備當前網絡狀態如何,執行此函數之後都將掃描新的網絡,
跟AppClearNetWork_Api功能類似,不衕在於不會重啟設備。
void App_MgrPermitJoining_Api(uint8 timeout);
函數功能:設置設備入網允許通道,僅對協調器有效
timeout:0,關閉入網申請通道
timeout:0xff,打開入網申請通道
void App_addValid_Device_Api(uint8 *DeviceMac);
函數功能:添加允許授權設備
DeviceMac:8byte,設備MAC地址
void App_DiscValidDeviceList_Api(void);
函數功能:清空允許授權設備列錶
void App_Leave_Device1_Api(uint8 rejoin);
函數功能:離開網絡:自身
rejoin:0,離開後重啟之前不加入任何網絡
rejoin:1,離開後會重新掃描週圍網絡併嚐試加入
void App_Leave_Device2_Api(uint8 rejoin, uint16 devictShortAdd,
uint8 *deviceMac);
函數功能:離開網絡:其牠設備
rejoin:0,離開後重啟之前不加入任何網絡
rejoin:1,離開後會重新掃描週圍網絡併嚐試加入
devictShortAdd:離開設備的短地址,不清楚地址,可以設置爲0xFFFF
deviceMac: 離開設備的MAC地址
5 操作繫統常用函數
uint8 osal_set_event( uint8 task_id, uint16 event_id);
函數功能:設置事件
task_id:對應的任務ID
event_id:事件ID
uint8 osal_clear_event ( uint8 task_id, uint16 event_id);
函數功能:清除事件
task_id:對應的任務ID
event_id:事件ID
uint8 osal_start_timerEx ( uint8 task_id, uint16 event_id, uint16 timeout_value);
函數功能:開始一箇定時事件
task_id:對應的任務ID
event_id:事件ID
timeout_value:到期時間,單位毫秒
uint8 osal_stop_timerEx ( uint8 task_id, uint16 event_id);
函數功能:停止一箇定時事件
task_id:對應的任務ID
event_id:事件ID
void *osal_mem_alloc( uint16 size )
函數功能:申請動態內存
size:內存大小
返迴:內存指針
void osal_mem_free(void *ptr)
函數功能:釋放動態內存(一般跟osal_mem_alloc函數配套使用)
ptr:內存指針(申請時返迴的指針值)
uint8 osal_nv_item_init( uint16 id, uint16 len, void *buf )
函數功能:初始化一箇NV(掉電不丟失)條目
id:條目ID,共16箇可以用,範圍0x5f0~0x5ff,禁止使用其牠ID,否則會造成不可預知的錯誤。
len:數據長度(最大16箇字節)
buf:初始化NV值,寫NULL,錶示不進行初始化
uint8 osal_nv_read( uint16 id, uint16 offset, uint16 len, void *buf );
函數功能:度一箇NV(掉電不丟失)條目
id:條目ID,共16箇可以用,範圍0x5f0~0x5ff,禁止使用其牠ID,否則會造成不可預知的錯誤。使用之前,請先在user_app_Init函數中初始NV條目。
offset:偏移
len:讀入的大小(不能大於初始化時條目的長度)
buf:指曏讀取緩存
uint8 osal_nv_write( uint16 id, uint16 offset, uint16 len, void *buf )
函數功能:寫一箇NV(掉電不丟失)條目
id:條目ID,共16箇可以用,範圍0x5f0~0x5ff,禁止使用其牠ID,否則會造成不可預知的錯誤。使用之前,請先在user_app_Init函數中初始NV條目。
offset:偏移
len:寫入的大小(不能大於初始化時條目的長度)
buf:指曏寫入數值的緩存
6 臨界函數
使用臨界保護,需要先在函數開頭定義halIntState_t變量halIntState
定義方法:halIntState_t halIntState;
HAL_ENTER_CRITICAL_SECTION(halIntState)
函數功能:進入臨界保護(執行後不會被中斷)
HAL_EXIT_CRITICAL_SECTION (halIntState)
函數功能:退齣臨界保護
7 端口配置
註意:
端口可配置成通用IO或者模擬輸入,繫統未使用的IO(根據用戶配置頭文件),上電默認都是通用IO口
配置流程:
第一步 配置通用IO還是模擬輸入(作爲通用IO口時,由於上電默認,可以省去)
第二步 配置輸入還是輸齣端口(模擬輸入時可以省去)
第三步 配置中斷功能(模擬輸入和通用IO輸齣時可以省去)
KL_HAL_ENABLE_CHANNEL_ADC(channel)
端口開啟ADC功能,隻有P0口支持ADC
channel:0~7, 0對應通道0,端口爲P0_0,以此類推
KL_HAL_DISABLE_CHANNEL_ADC (channel)
端口關閉ADC功能(上電默認是關閉狀態)