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;
}