KLZB214SDK3.2-API説明

2018-03-29 10:25:00    kelanelec_admin    7111    原創

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

144分鐘

132分鐘

121分鐘

1130

1015

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蔘考電壓

referenceHAL_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);

函數功能:設置設備入網允許通道,僅對協調器有效

timeout0,關閉入網申請通道

timeout0xff,打開入網申請通道

void App_addValid_Device_Api(uint8 *DeviceMac);

函數功能:添加允許授權設備

DeviceMac8byte,設備MAC地址

void App_DiscValidDeviceList_Api(void);

函數功能:清空允許授權設備列錶

void App_Leave_Device1_Api(uint8 rejoin);

函數功能:離開網絡:自身

rejoin0,離開後重啟之前不加入任何網絡

rejoin1,離開後會重新掃描週圍網絡併嚐試加入

void App_Leave_Device2_Api(uint8 rejoin,  uint16 devictShortAdd,

uint8 *deviceMac);

函數功能:離開網絡:其牠設備

rejoin0,離開後重啟之前不加入任何網絡

rejoin1,離開後會重新掃描週圍網絡併嚐試加入

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

channel0~7 0對應通道0,端口爲P0_0,以此類推

KL_HAL_DISABLE_CHANNEL_ADC (channel)

端口關閉ADC功能(上電默認是關閉狀態)



粵ICP備:17007301-1號