KLZB214SDK3.2-API说明

2018-03-29 10:25:00
kelanelec_admin
原创
7112

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功能(上电默认是关闭状态)

发表评论
评论通过审核后显示。