数据结构介绍
- 平台下发命令枚举类型
typedef enum
{
ATINY_GET_MANUFACTURER, /*获取厂商名字*/
ATINY_GET_MODEL_NUMBER, /*获取设备模型,由厂商定义和使用*/
ATINY_GET_SERIAL_NUMBER, /*获取设备序列号*/
ATINY_GET_FIRMWARE_VER, /*获取固件版本号*/
ATINY_DO_DEV_REBOOT, /*下发设备复位命令*/
ATINY_DO_FACTORY_RESET, /*厂商复位*/
ATINY_GET_POWER_SOURCE, /*获取电源*/
ATINY_GET_SOURCE_VOLTAGE, /*获取设备电压*/
ATINY_GET_POWER_CURRENT, /*获取设备电流*/
ATINY_GET_BATERRY_LEVEL, /*获取电池剩余电量*/
ATINY_GET_MEMORY_FREE, /*获取空闲内存*/
ATINY_GET_DEV_ERR, /*获取设备状态,比如内存耗尽、电池不足等*/
ATINY_DO_RESET_DEV_ERR, /*获取设备复位状态*/
ATINY_GET_CURRENT_TIME, /*获取当前时间*/
ATINY_SET_CURRENT_TIME, /*设置当前时间*/
ATINY_GET_UTC_OFFSET, /*获取UTC时差*/
ATINY_SET_UTC_OFFSET, /*设置UTC时差*/
ATINY_GET_TIMEZONE, /*获取时区*/
ATINY_SET_TIMEZONE, /*设置时区*/
ATINY_GET_BINDING_MODES, /*获取绑定模式*/
ATINY_GET_FIRMWARE_STATE, /*获取固件升级状态*/
ATINY_GET_NETWORK_BEARER, /*获取网络通信承载类型,比如GSM、WCDMA等*/
ATINY_GET_SIGNAL_STRENGTH, /*获取网络信号强度*/
ATINY_GET_CELL_ID, /*获取网络小区ID*/
ATINY_GET_LINK_QUALITY, /*获取网络链路质量*/
ATINY_GET_LINK_UTILIZATION, /*获取网络链路利用率*/
ATINY_WRITE_APP_DATA, /*业务数据下发命令字*/
ATINY_UPDATE_PSK, /*更新psk命令字*/
ATINY_GET_LATITUDE, /*获取设备所处纬度*/
ATINY_GET_LONGITUDE, /*获取设备所处经度*/
ATINY_GET_ALTITUDE, /*获取设备所处高度*/
ATINY_GET_SPEED, /*获取设备运行速度*/
ATINY_GET_TIMESTAMP, /*获取时间戳*/
} atiny_cmd_e;
- 关键事件枚举类型
该枚举类型用于LiteOS SDK端云互通组件把自身状态通知用户
typedef enum
{
ATINY_REG_OK, /*设备注册成功*/
ATINY_REG_FAIL, /*设备注册失败*/
ATINY_DATA_SUBSCRIBLE, /*数据开始订阅,设备侧允许上报数据 */
ATINY_DATA_UNSUBSCRIBLE, /*数据取消订阅,设备侧停止上报数据*/
ATINY_FOTA_STATE /*固件升级状态*/
} atiny_event_e;
- LwM2M协议参数结构体
typedef struct
{
char* binding; /*目前支持U或者UQ*/
int life_time; /*LwM2M协议生命周期,默认50000*/
unsigned int storing_cnt; /*LwM2M缓存区总字节个数*/
} atiny_server_param_t;
- 安全及服务器参数结构体
typedef struct
{
bool is_bootstrap; /*是否bootstrap服务器*/
char* server_ip; /*服务器ip,字符串表示,支持ipv4和ipv6*/
char* server_port; /*服务器端口号*/
char* psk_Id; /*预置共享密钥ID*/
char* psk; /*预置共享密钥*/
unsigned short psk_len; /*预置共享密钥长度*/
} atiny_security_param_t;
- 上报数据的枚举类型
用户上报数据的数据类型,用户根据自身应用扩展
typedef enum
{
FIRMWARE_UPDATE_STATE = 0, /*设备固件升级状态*/
APP_DATA /*用户数据*/
} atiny_report_type_e;
- 服务器参数结构体
typedef struct
{
atiny_server_param_t server_params;
atiny_security_param_t security_params[2]; /*支持一个IOT服务器,一个bootstrap服务器*/
} atiny_param_t;
- 终端设备参数结构体
typedef struct
{
char* endpoint_name; /*北向申请产生的设备标识码*/
char* manufacturer; /*北向申请产生的厂商名称*/
char* dev_type; /*北向申请产生的设备类型*/
} atiny_device_info_t;
- 数据上报数据结构
以下枚举值,表述了用户上报的数据,最终的反馈类型,比如数据发送成功,数据发送但未得到确认,具体定义如下:
typedef enum
{
NOT_SENT = 0, /*待上报的数据未发送*/
SENT_WAIT_RESPONSE, /*待上报的数据已发送,等待响应*/
SENT_FAIL, /*待上报的数据发送失败*/
SENT_TIME_OUT, /*待上报的数据已发送,等待响应超时*/
SENT_SUCCESS, /*待上报的数据发送成功*/
SENT_GET_RST, /*待上报的数据已发送,但对端响应RST报文*/
SEND_PENDING, /*待上报的数据等待发送*/
} data_send_status_e;
//用户使用以下数据结构上报数据:
typedef struct _data_report_t
{
atiny_report_type_e type; /*数据上报类型,比如业务数据,电池剩余电量等 */
int cookie; /*数据cookie,用以在ack回调中,区分不同的数据*/
int len; /*数据长度,不应大于MAX_REPORT_DATA_LEN*/
uint8_t* buf; /*数据缓冲区首地址*/
atiny_ack_callback callback; /*ack回调,其入参取值data_send_status_e类型 */
} data_report_t;