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