数据结构介绍

  • 平台下发命令枚举类型
  1. typedef enum
  2. {
  3. ATINY_GET_MANUFACTURER, /*获取厂商名字*/
  4. ATINY_GET_MODEL_NUMBER, /*获取设备模型,由厂商定义和使用*/
  5. ATINY_GET_SERIAL_NUMBER, /*获取设备序列号*/
  6. ATINY_GET_FIRMWARE_VER, /*获取固件版本号*/
  7. ATINY_DO_DEV_REBOOT, /*下发设备复位命令*/
  8. ATINY_DO_FACTORY_RESET, /*厂商复位*/
  9. ATINY_GET_POWER_SOURCE, /*获取电源*/
  10. ATINY_GET_SOURCE_VOLTAGE, /*获取设备电压*/
  11. ATINY_GET_POWER_CURRENT, /*获取设备电流*/
  12. ATINY_GET_BATERRY_LEVEL, /*获取电池剩余电量*/
  13. ATINY_GET_MEMORY_FREE, /*获取空闲内存*/
  14. ATINY_GET_DEV_ERR, /*获取设备状态,比如内存耗尽、电池不足等*/
  15. ATINY_DO_RESET_DEV_ERR, /*获取设备复位状态*/
  16. ATINY_GET_CURRENT_TIME, /*获取当前时间*/
  17. ATINY_SET_CURRENT_TIME, /*设置当前时间*/
  18. ATINY_GET_UTC_OFFSET, /*获取UTC时差*/
  19. ATINY_SET_UTC_OFFSET, /*设置UTC时差*/
  20. ATINY_GET_TIMEZONE, /*获取时区*/
  21. ATINY_SET_TIMEZONE, /*设置时区*/
  22. ATINY_GET_BINDING_MODES, /*获取绑定模式*/
  23. ATINY_GET_FIRMWARE_STATE, /*获取固件升级状态*/
  24. ATINY_GET_NETWORK_BEARER, /*获取网络通信承载类型,比如GSM、WCDMA等*/
  25. ATINY_GET_SIGNAL_STRENGTH, /*获取网络信号强度*/
  26. ATINY_GET_CELL_ID, /*获取网络小区ID*/
  27. ATINY_GET_LINK_QUALITY, /*获取网络链路质量*/
  28. ATINY_GET_LINK_UTILIZATION, /*获取网络链路利用率*/
  29. ATINY_WRITE_APP_DATA, /*业务数据下发命令字*/
  30. ATINY_UPDATE_PSK, /*更新psk命令字*/
  31. ATINY_GET_LATITUDE, /*获取设备所处纬度*/
  32. ATINY_GET_LONGITUDE, /*获取设备所处经度*/
  33. ATINY_GET_ALTITUDE, /*获取设备所处高度*/
  34. ATINY_GET_SPEED, /*获取设备运行速度*/
  35. ATINY_GET_TIMESTAMP, /*获取时间戳*/
  36. } atiny_cmd_e;
  • 关键事件枚举类型

该枚举类型用于LiteOS SDK端云互通组件把自身状态通知用户

  1. typedef enum
  2. {
  3. ATINY_REG_OK, /*设备注册成功*/
  4. ATINY_REG_FAIL, /*设备注册失败*/
  5. ATINY_DATA_SUBSCRIBLE, /*数据开始订阅,设备侧允许上报数据 */
  6. ATINY_DATA_UNSUBSCRIBLE, /*数据取消订阅,设备侧停止上报数据*/
  7. ATINY_FOTA_STATE /*固件升级状态*/
  8. } atiny_event_e;
  • LwM2M协议参数结构体
  1. typedef struct
  2. {
  3. char* binding; /*目前支持U或者UQ*/
  4. int life_time; /*LwM2M协议生命周期,默认50000*/
  5. unsigned int storing_cnt; /*LwM2M缓存区总字节个数*/
  6. } atiny_server_param_t;
  • 安全及服务器参数结构体
  1. typedef struct
  2. {
  3. bool is_bootstrap; /*是否bootstrap服务器*/
  4. char* server_ip; /*服务器ip,字符串表示,支持ipv4和ipv6*/
  5. char* server_port; /*服务器端口号*/
  6. char* psk_Id; /*预置共享密钥ID*/
  7. char* psk; /*预置共享密钥*/
  8. unsigned short psk_len; /*预置共享密钥长度*/
  9. } atiny_security_param_t;
  • 上报数据的枚举类型

用户上报数据的数据类型,用户根据自身应用扩展

  1. typedef enum
  2. {
  3. FIRMWARE_UPDATE_STATE = 0 /*设备固件升级状态*/
  4. APP_DATA /*用户数据*/
  5. } atiny_report_type_e;
  • 服务器参数结构体
  1. typedef struct
  2. {
  3. atiny_server_param_t server_params;
  4. atiny_security_param_t security_params[2]; /*支持一个IOT服务器,一个bootstrap服务器*/
  5. } atiny_param_t;
  • 终端设备参数结构体
  1. typedef struct
  2. {
  3. char* endpoint_name; /*北向申请产生的设备标识码*/
  4. char* manufacturer; /*北向申请产生的厂商名称*/
  5. char* dev_type; /*北向申请产生的设备类型*/
  6. } atiny_device_info_t;
  • 数据上报数据结构

以下枚举值,表述了用户上报的数据,最终的反馈类型,比如数据发送成功,数据发送但未得到确认,具体定义如下:

  1. typedef enum
  2. {
  3. NOT_SENT = 0, /*待上报的数据未发送*/
  4. SENT_WAIT_RESPONSE, /*待上报的数据已发送,等待响应*/
  5. SENT_FAIL, /*待上报的数据发送失败*/
  6. SENT_TIME_OUT, /*待上报的数据已发送,等待响应超时*/
  7. SENT_SUCCESS, /*待上报的数据发送成功*/
  8. SENT_GET_RST, /*待上报的数据已发送,但对端响应RST报文*/
  9. SEND_PENDING, /*待上报的数据等待发送*/
  10. } data_send_status_e;

//用户使用以下数据结构上报数据:

  1. typedef struct _data_report_t
  2. {
  3. atiny_report_type_e type; /*数据上报类型,比如业务数据,电池剩余电量等 */
  4. int cookie; /*数据cookie,用以在ack回调中,区分不同的数据*/
  5. int len; /*数据长度,不应大于MAX_REPORT_DATA_LEN*/
  6. uint8_t* buf; /*数据缓冲区首地址*/
  7. atiny_ack_callback callback; /*ack回调,其入参取值data_send_status_e类型 */
  8. } data_report_t;