更新时间:2022-02-21 GMT+08:00

LiteOS SDK端云互通组件命令处理接口

IoT平台下发的各类命令,都通过接口atiny_cmd_ioctl()来具体执行。

接口名

描述

int atiny_cmd_ioctl (atiny_cmd_e cmd, char* arg, int len);

LiteOS SDK端云互通组件申明和调用,由开发者实现。该接口是LwM2M标准对象向设备下发命令的统一入口。

参数列表:参数cmd为具体命令字,比如下发业务数据,下发复位,升级命令等;参数arg为存放命令参数的缓存;参数len为缓存大小。

返回值:空。

atiny_cmd_ioctl()是LiteOS SDK端云互通组件定义的一个通用可扩展的接口,其命令字如atiny_cmd_e所定义,用户根据自身需求进行选择性实现,也可以根据自身需求进行扩展。常用的接口定义如下表所示,每一个接口都和atiny_cmd_e的枚举值一一对应:

回调接口函数

描述

int atiny_get_manufacturer(char* manufacturer,int len)

获取厂商名字,参数manufacturer指向的内存由LiteOS SDK端云互通组件分配,户填充自身的厂商名字,长度不能超过参数len。

int atiny_get_dev_type(char * dev_type,int len)

获取设备类型,参数dev_type指向的内存由LiteOS SDK端云互通组件分配,户填充自身的设备类型,长度不能超过参数len。

int atiny_get_model_number((char * model_numer, int len)

获取设备模型号,参数model_numer指向的内存由LiteOS SDK端云互通组件分配,户填充自身的设备模型号,长度不能超过参数len。

int atiny_get_serial_number(char* num,int len)

获取设备序列号,参数numer指向的内存由LiteOS SDK端云互通组件分配,户填充自身的设备序列号,长度不能超过参数len。

int atiny_get_dev_err(int* arg,int len)

获取设备状态,比如内存耗尽、电池不足、信号强度低等,参数arg由LiteOS SDK端云互通组件分配,用户填充,长度不能超过len。

int atiny_do_dev_reboot(void)

设备复位。

int atiny_do_factory_reset(void)

厂商复位。

int atiny_get_baterry_level(int* voltage)

获取电池剩余电量。

int atiny_get_memory_free(int* size)

获取空闲内存大小。

int atiny_get_total_memory(int* size)

获取总共内存大小。

int atiny_get_signal_strength(int* singal_strength)

获取信号强度。

int atiny_get_cell_id(long* cell_id)

获取小区ID。

int atiny_get_link_quality(int* quality)

获取信道质量。

int atiny_write_app_write(void* user_data, int len)

业务数据下发。

int atiny_update_psk(char* psk_id, int len)

预置共享密钥更新。

其中,开发者需要根据自身的业务,在接口atiny_write_app_write()中实现自己的命令响应。

    int atiny_write_app_write(void* user_data, int len)
     {
         (void)atiny_printf("write num19 object success\r\n");
         return ATINY_OK;
     }