EDP KIT from OneNet
Dependents: 8-0_OneNet_IoT_demo STM32F103C8T6_OneNet_IoT
EdpKit.h@0:79de700849c5, 2017-03-29 (annotated)
- Committer:
- TaylorGy
- Date:
- Wed Mar 29 03:07:27 2017 +0000
- Revision:
- 0:79de700849c5
EDP KIT from OneNet
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
TaylorGy | 0:79de700849c5 | 1 | #ifndef __EDP_KIT_H__ |
TaylorGy | 0:79de700849c5 | 2 | #define __EDP_KIT_H__ |
TaylorGy | 0:79de700849c5 | 3 | |
TaylorGy | 0:79de700849c5 | 4 | #ifdef EDPKIT_EXPORTS |
TaylorGy | 0:79de700849c5 | 5 | #define EDPKIT_DLL __declspec(dllexport) |
TaylorGy | 0:79de700849c5 | 6 | #else |
TaylorGy | 0:79de700849c5 | 7 | #define EDPKIT_DLL |
TaylorGy | 0:79de700849c5 | 8 | #endif |
TaylorGy | 0:79de700849c5 | 9 | |
TaylorGy | 0:79de700849c5 | 10 | #include "Common.h" |
TaylorGy | 0:79de700849c5 | 11 | #include "cJSON.h" |
TaylorGy | 0:79de700849c5 | 12 | #include "time.h" |
TaylorGy | 0:79de700849c5 | 13 | /* |
TaylorGy | 0:79de700849c5 | 14 | * history |
TaylorGy | 0:79de700849c5 | 15 | * 2015-06-01 v1.0.1 wululu fix bug: malloc for string, MUST memset to 0 |
TaylorGy | 0:79de700849c5 | 16 | * 2015-07-10 v1.1.0 wusongwei add UnpackCmdReq() and PacketCmdResp() |
TaylorGy | 0:79de700849c5 | 17 | * 2015-07-13 v1.1.1 wululu 增加封装json的接口, windows版本dll |
TaylorGy | 0:79de700849c5 | 18 | * 2015-07-13 v1.1.2 wululu 支持double和string类型的打包函数和解包函数 |
TaylorGy | 0:79de700849c5 | 19 | * 2015-07-15 v1.1.3 wusongwei 添加SAVEACK响应 |
TaylorGy | 0:79de700849c5 | 20 | * 2015-07-20 v1.1.4 wusongwei 添加/修改SAVEDATA消息的打包/解包函数 |
TaylorGy | 0:79de700849c5 | 21 | */ |
TaylorGy | 0:79de700849c5 | 22 | |
TaylorGy | 0:79de700849c5 | 23 | #ifdef __cplusplus |
TaylorGy | 0:79de700849c5 | 24 | extern "C" { |
TaylorGy | 0:79de700849c5 | 25 | #endif |
TaylorGy | 0:79de700849c5 | 26 | |
TaylorGy | 0:79de700849c5 | 27 | /*---------------------------------------------------------------------------*/ |
TaylorGy | 0:79de700849c5 | 28 | #define MOSQ_MSB(A) (uint8)((A & 0xFF00) >> 8) |
TaylorGy | 0:79de700849c5 | 29 | #define MOSQ_LSB(A) (uint8)(A & 0x00FF) |
TaylorGy | 0:79de700849c5 | 30 | #define BUFFER_SIZE (0x100) |
TaylorGy | 0:79de700849c5 | 31 | #define PROTOCOL_NAME "EDP" |
TaylorGy | 0:79de700849c5 | 32 | #define PROTOCOL_VERSION 1 |
TaylorGy | 0:79de700849c5 | 33 | /*----------------------------错误码-----------------------------------------*/ |
TaylorGy | 0:79de700849c5 | 34 | #define ERR_UNPACK_CONNRESP_REMAIN -1000 |
TaylorGy | 0:79de700849c5 | 35 | #define ERR_UNPACK_CONNRESP_FLAG -1001 |
TaylorGy | 0:79de700849c5 | 36 | #define ERR_UNPACK_CONNRESP_RTN -1002 |
TaylorGy | 0:79de700849c5 | 37 | #define ERR_UNPACK_PUSHD_REMAIN -1010 |
TaylorGy | 0:79de700849c5 | 38 | #define ERR_UNPACK_PUSHD_DEVID -1011 |
TaylorGy | 0:79de700849c5 | 39 | #define ERR_UNPACK_PUSHD_DATA -1012 |
TaylorGy | 0:79de700849c5 | 40 | #define ERR_UNPACK_SAVED_REMAIN -1020 |
TaylorGy | 0:79de700849c5 | 41 | #define ERR_UNPACK_SAVED_TANSFLAG -1021 |
TaylorGy | 0:79de700849c5 | 42 | #define ERR_UNPACK_SAVED_DEVID -1022 |
TaylorGy | 0:79de700849c5 | 43 | #define ERR_UNPACK_SAVED_DATAFLAG -1023 |
TaylorGy | 0:79de700849c5 | 44 | #define ERR_UNPACK_SAVED_JSON -1024 |
TaylorGy | 0:79de700849c5 | 45 | #define ERR_UNPACK_SAVED_PARSEJSON -1025 |
TaylorGy | 0:79de700849c5 | 46 | #define ERR_UNPACK_SAVED_BIN_DESC -1026 |
TaylorGy | 0:79de700849c5 | 47 | #define ERR_UNPACK_SAVED_PARSEDESC -1027 |
TaylorGy | 0:79de700849c5 | 48 | #define ERR_UNPACK_SAVED_BINLEN -1028 |
TaylorGy | 0:79de700849c5 | 49 | #define ERR_UNPACK_SAVED_BINDATA -1029 |
TaylorGy | 0:79de700849c5 | 50 | #define ERR_UNPACK_PING_REMAIN -1030 |
TaylorGy | 0:79de700849c5 | 51 | #define ERR_UNPACK_CMDREQ -1031 |
TaylorGy | 0:79de700849c5 | 52 | #define ERR_UNPACK_ENCRYPT_RESP -1032 |
TaylorGy | 0:79de700849c5 | 53 | #define ERR_UNPACK_SAVEDATA_ACK -1033 |
TaylorGy | 0:79de700849c5 | 54 | |
TaylorGy | 0:79de700849c5 | 55 | /*----------------------------消息类型---------------------------------------*/ |
TaylorGy | 0:79de700849c5 | 56 | /* 连接请求 */ |
TaylorGy | 0:79de700849c5 | 57 | #define CONNREQ 0x10 |
TaylorGy | 0:79de700849c5 | 58 | /* 连接响应 */ |
TaylorGy | 0:79de700849c5 | 59 | #define CONNRESP 0x20 |
TaylorGy | 0:79de700849c5 | 60 | /* 转发(透传)数据 */ |
TaylorGy | 0:79de700849c5 | 61 | #define PUSHDATA 0x30 |
TaylorGy | 0:79de700849c5 | 62 | /* 存储(转发)数据 */ |
TaylorGy | 0:79de700849c5 | 63 | #define SAVEDATA 0x80 |
TaylorGy | 0:79de700849c5 | 64 | /* 存储确认 */ |
TaylorGy | 0:79de700849c5 | 65 | #define SAVEACK 0x90 |
TaylorGy | 0:79de700849c5 | 66 | /* 命令请求 */ |
TaylorGy | 0:79de700849c5 | 67 | #define CMDREQ 0xA0 |
TaylorGy | 0:79de700849c5 | 68 | /* 命令响应 */ |
TaylorGy | 0:79de700849c5 | 69 | #define CMDRESP 0xB0 |
TaylorGy | 0:79de700849c5 | 70 | /* 心跳请求 */ |
TaylorGy | 0:79de700849c5 | 71 | #define PINGREQ 0xC0 |
TaylorGy | 0:79de700849c5 | 72 | /* 心跳响应 */ |
TaylorGy | 0:79de700849c5 | 73 | #define PINGRESP 0xD0 |
TaylorGy | 0:79de700849c5 | 74 | /* 加密请求 */ |
TaylorGy | 0:79de700849c5 | 75 | #define ENCRYPTREQ 0xE0 |
TaylorGy | 0:79de700849c5 | 76 | /* 加密响应 */ |
TaylorGy | 0:79de700849c5 | 77 | #define ENCRYPTRESP 0xF0 |
TaylorGy | 0:79de700849c5 | 78 | |
TaylorGy | 0:79de700849c5 | 79 | #ifndef NULL |
TaylorGy | 0:79de700849c5 | 80 | #define NULL (void*)0 |
TaylorGy | 0:79de700849c5 | 81 | #endif |
TaylorGy | 0:79de700849c5 | 82 | |
TaylorGy | 0:79de700849c5 | 83 | /* SAVEDATA消息支持的格式类型 */ |
TaylorGy | 0:79de700849c5 | 84 | typedef enum { |
TaylorGy | 0:79de700849c5 | 85 | kTypeFullJson = 0x01, |
TaylorGy | 0:79de700849c5 | 86 | kTypeBin = 0x02, |
TaylorGy | 0:79de700849c5 | 87 | kTypeSimpleJsonWithoutTime = 0x03, |
TaylorGy | 0:79de700849c5 | 88 | kTypeSimpleJsonWithTime = 0x04, |
TaylorGy | 0:79de700849c5 | 89 | kTypeString = 0x05 |
TaylorGy | 0:79de700849c5 | 90 | }SaveDataType; |
TaylorGy | 0:79de700849c5 | 91 | |
TaylorGy | 0:79de700849c5 | 92 | /*-------------发送buffer, 接收buffer, EDP包结构定义-------------------------*/ |
TaylorGy | 0:79de700849c5 | 93 | EDPKIT_DLL |
TaylorGy | 0:79de700849c5 | 94 | typedef struct Buffer |
TaylorGy | 0:79de700849c5 | 95 | { |
TaylorGy | 0:79de700849c5 | 96 | uint8* _data; /* buffer数据 */ |
TaylorGy | 0:79de700849c5 | 97 | uint32 _write_pos; /* buffer写入位置 */ |
TaylorGy | 0:79de700849c5 | 98 | uint32 _read_pos; /* buffer读取位置 */ |
TaylorGy | 0:79de700849c5 | 99 | uint32 _capacity; /* buffer容量 */ |
TaylorGy | 0:79de700849c5 | 100 | }Buffer, SendBuffer, RecvBuffer, EdpPacket; |
TaylorGy | 0:79de700849c5 | 101 | /*-----------------------------操作Buffer的接口------------------------------*/ |
TaylorGy | 0:79de700849c5 | 102 | /* |
TaylorGy | 0:79de700849c5 | 103 | * 函数名: NewBuffer |
TaylorGy | 0:79de700849c5 | 104 | * 功能: 生成Buffer |
TaylorGy | 0:79de700849c5 | 105 | * 说明: 一般情况下, NewBuffer和DeleteBuffer应该成对出现 |
TaylorGy | 0:79de700849c5 | 106 | * 参数: 无 |
TaylorGy | 0:79de700849c5 | 107 | * 返回值: 类型 (Buffer*) |
TaylorGy | 0:79de700849c5 | 108 | * 返回值非空 生成Buffer成功, 返回这个Buffer的指针 |
TaylorGy | 0:79de700849c5 | 109 | * 返回值为空 生成Buffer失败, 内存不够 |
TaylorGy | 0:79de700849c5 | 110 | */ |
TaylorGy | 0:79de700849c5 | 111 | EDPKIT_DLL Buffer* NewBuffer(); |
TaylorGy | 0:79de700849c5 | 112 | /* |
TaylorGy | 0:79de700849c5 | 113 | * 函数名: DeleteBuffer |
TaylorGy | 0:79de700849c5 | 114 | * 功能: 销毁Buffer |
TaylorGy | 0:79de700849c5 | 115 | * 说明: 一般情况下, NewBuffer和DeleteBuffer应该成对出现 |
TaylorGy | 0:79de700849c5 | 116 | * 参数: buf 一个Buffer的指针的指针 |
TaylorGy | 0:79de700849c5 | 117 | * 返回值: 无 |
TaylorGy | 0:79de700849c5 | 118 | */ |
TaylorGy | 0:79de700849c5 | 119 | EDPKIT_DLL void DeleteBuffer(Buffer** buf); |
TaylorGy | 0:79de700849c5 | 120 | /* |
TaylorGy | 0:79de700849c5 | 121 | * 函数名: CheckCapacity |
TaylorGy | 0:79de700849c5 | 122 | * 功能: 检查Buffer是否能够写入长度为len的字节流, |
TaylorGy | 0:79de700849c5 | 123 | * 如果Buffer的容量不够, 自动成倍扩展Buffer的容量(不影响Buffer数据) |
TaylorGy | 0:79de700849c5 | 124 | * 参数: buf 需要写入Buffer的指针 |
TaylorGy | 0:79de700849c5 | 125 | * len 期望写入的长度 |
TaylorGy | 0:79de700849c5 | 126 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 127 | * <0 失败, 内存不够 |
TaylorGy | 0:79de700849c5 | 128 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 129 | */ |
TaylorGy | 0:79de700849c5 | 130 | EDPKIT_DLL int32 CheckCapacity(Buffer* buf, uint32 len); |
TaylorGy | 0:79de700849c5 | 131 | |
TaylorGy | 0:79de700849c5 | 132 | /*------------------------读取EDP包数据的接口-------------------------------*/ |
TaylorGy | 0:79de700849c5 | 133 | /* |
TaylorGy | 0:79de700849c5 | 134 | * 函数名: ReadByte |
TaylorGy | 0:79de700849c5 | 135 | * 功能: 按EDP协议, 从Buffer(包)中读取一个字节数据 |
TaylorGy | 0:79de700849c5 | 136 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 137 | * val 数据(一个字节) |
TaylorGy | 0:79de700849c5 | 138 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 139 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 140 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 141 | */ |
TaylorGy | 0:79de700849c5 | 142 | EDPKIT_DLL int32 ReadByte(EdpPacket* pkg, uint8* val); |
TaylorGy | 0:79de700849c5 | 143 | /* |
TaylorGy | 0:79de700849c5 | 144 | * 函数名: ReadBytes |
TaylorGy | 0:79de700849c5 | 145 | * 功能: 按EDP协议, 从Buffer(包)中读取count个字节数据 |
TaylorGy | 0:79de700849c5 | 146 | * 说明: val是malloc出来的, 需要客户端自己free |
TaylorGy | 0:79de700849c5 | 147 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 148 | * val 数据(count个字节) |
TaylorGy | 0:79de700849c5 | 149 | * count 字节数 |
TaylorGy | 0:79de700849c5 | 150 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 151 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 152 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 153 | */ |
TaylorGy | 0:79de700849c5 | 154 | EDPKIT_DLL int32 ReadBytes(EdpPacket* pkg, uint8** val, uint32 count); |
TaylorGy | 0:79de700849c5 | 155 | /* |
TaylorGy | 0:79de700849c5 | 156 | * 函数名: ReadUint16 |
TaylorGy | 0:79de700849c5 | 157 | * 功能: 按EDP协议, 从Buffer(包)中读取uint16值 |
TaylorGy | 0:79de700849c5 | 158 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 159 | * val uint16值 |
TaylorGy | 0:79de700849c5 | 160 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 161 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 162 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 163 | */ |
TaylorGy | 0:79de700849c5 | 164 | EDPKIT_DLL int32 ReadUint16(EdpPacket* pkg, uint16* val); |
TaylorGy | 0:79de700849c5 | 165 | /* |
TaylorGy | 0:79de700849c5 | 166 | * 函数名: ReadUint32 |
TaylorGy | 0:79de700849c5 | 167 | * 功能: 按EDP协议, 从Buffer(包)中读取uint32值 |
TaylorGy | 0:79de700849c5 | 168 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 169 | * val uint32值 |
TaylorGy | 0:79de700849c5 | 170 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 171 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 172 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 173 | */ |
TaylorGy | 0:79de700849c5 | 174 | EDPKIT_DLL int32 ReadUint32(EdpPacket* pkg, uint32* val); |
TaylorGy | 0:79de700849c5 | 175 | /* |
TaylorGy | 0:79de700849c5 | 176 | * 函数名: ReadStr |
TaylorGy | 0:79de700849c5 | 177 | * 功能: 按EDP协议, 从Buffer(包)中读取字符串, 以\0结尾 |
TaylorGy | 0:79de700849c5 | 178 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 179 | * val 字符串 |
TaylorGy | 0:79de700849c5 | 180 | * 说明: val是malloc出来的, 需要客户端自己free |
TaylorGy | 0:79de700849c5 | 181 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 182 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 183 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 184 | */ |
TaylorGy | 0:79de700849c5 | 185 | EDPKIT_DLL int32 ReadStr(EdpPacket* pkg, char** val); |
TaylorGy | 0:79de700849c5 | 186 | /* |
TaylorGy | 0:79de700849c5 | 187 | * 函数名: ReadRemainlen |
TaylorGy | 0:79de700849c5 | 188 | * 功能: 按EDP协议, 从Buffer(包)中remainlen |
TaylorGy | 0:79de700849c5 | 189 | * 说明: remainlen是EDP协议中的概念, 是一个EDP包身的长度 |
TaylorGy | 0:79de700849c5 | 190 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 191 | * len_val remainlen |
TaylorGy | 0:79de700849c5 | 192 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 193 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 194 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 195 | */ |
TaylorGy | 0:79de700849c5 | 196 | EDPKIT_DLL int32 ReadRemainlen(EdpPacket* pkg, uint32* len_val); |
TaylorGy | 0:79de700849c5 | 197 | |
TaylorGy | 0:79de700849c5 | 198 | /*------------------------数据写入EDP包的接口-------------------------------*/ |
TaylorGy | 0:79de700849c5 | 199 | /* |
TaylorGy | 0:79de700849c5 | 200 | * 说明: 目前不支持一个包即在写入又在读取, 因此, 只有对于_read_pos为0的包才能被写入 |
TaylorGy | 0:79de700849c5 | 201 | */ |
TaylorGy | 0:79de700849c5 | 202 | /* |
TaylorGy | 0:79de700849c5 | 203 | * 函数名: WriteByte |
TaylorGy | 0:79de700849c5 | 204 | * 功能: 按EDP协议, 将一个字节数据写入Buffer(包)中 |
TaylorGy | 0:79de700849c5 | 205 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 206 | * byte 数据(一个字节) |
TaylorGy | 0:79de700849c5 | 207 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 208 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 209 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 210 | */ |
TaylorGy | 0:79de700849c5 | 211 | EDPKIT_DLL int32 WriteByte(Buffer* buf, uint8 byte); |
TaylorGy | 0:79de700849c5 | 212 | /* |
TaylorGy | 0:79de700849c5 | 213 | * 函数名: WriteBytes |
TaylorGy | 0:79de700849c5 | 214 | * 功能: 按EDP协议, 将count个字节数据写入Buffer(包)中 |
TaylorGy | 0:79de700849c5 | 215 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 216 | * bytes 数据 |
TaylorGy | 0:79de700849c5 | 217 | * count 字节数 |
TaylorGy | 0:79de700849c5 | 218 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 219 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 220 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 221 | */ |
TaylorGy | 0:79de700849c5 | 222 | EDPKIT_DLL int32 WriteBytes(Buffer* buf, const void* bytes, uint32 count); |
TaylorGy | 0:79de700849c5 | 223 | /* |
TaylorGy | 0:79de700849c5 | 224 | * 函数名: WriteUint16 |
TaylorGy | 0:79de700849c5 | 225 | * 功能: 按EDP协议, 将uint16写入Buffer(包)中 |
TaylorGy | 0:79de700849c5 | 226 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 227 | * val uint16数据 |
TaylorGy | 0:79de700849c5 | 228 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 229 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 230 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 231 | */ |
TaylorGy | 0:79de700849c5 | 232 | EDPKIT_DLL int32 WriteUint16(Buffer* buf, uint16 val); |
TaylorGy | 0:79de700849c5 | 233 | /* |
TaylorGy | 0:79de700849c5 | 234 | * 函数名: WriteUint32 |
TaylorGy | 0:79de700849c5 | 235 | * 功能: 按EDP协议, 将uint32写入Buffer(包)中 |
TaylorGy | 0:79de700849c5 | 236 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 237 | * val uint32数据 |
TaylorGy | 0:79de700849c5 | 238 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 239 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 240 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 241 | */ |
TaylorGy | 0:79de700849c5 | 242 | EDPKIT_DLL int32 WriteUint32(Buffer* buf, uint32 val); |
TaylorGy | 0:79de700849c5 | 243 | /* |
TaylorGy | 0:79de700849c5 | 244 | * 函数名: WriteStr |
TaylorGy | 0:79de700849c5 | 245 | * 功能: 按EDP协议, 将字符串写入Buffer(包)中 |
TaylorGy | 0:79de700849c5 | 246 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 247 | * val 字符串 |
TaylorGy | 0:79de700849c5 | 248 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 249 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 250 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 251 | */ |
TaylorGy | 0:79de700849c5 | 252 | EDPKIT_DLL int32 WriteStr(Buffer* buf, const char *str); |
TaylorGy | 0:79de700849c5 | 253 | /* |
TaylorGy | 0:79de700849c5 | 254 | * 函数名: WriteRemainlen |
TaylorGy | 0:79de700849c5 | 255 | * 功能: 按EDP协议, 将remainlen写入Buffer(包)中 |
TaylorGy | 0:79de700849c5 | 256 | * 说明: remainlen是EDP协议中的概念, 是一个EDP包身的长度 |
TaylorGy | 0:79de700849c5 | 257 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 258 | * len_val remainlen |
TaylorGy | 0:79de700849c5 | 259 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 260 | * <0 失败, pkg中无数据 |
TaylorGy | 0:79de700849c5 | 261 | * =0 成功 |
TaylorGy | 0:79de700849c5 | 262 | */ |
TaylorGy | 0:79de700849c5 | 263 | EDPKIT_DLL int32 WriteRemainlen(Buffer* buf, uint32 len_val); |
TaylorGy | 0:79de700849c5 | 264 | /* |
TaylorGy | 0:79de700849c5 | 265 | * 函数名: IsPkgComplete |
TaylorGy | 0:79de700849c5 | 266 | * 功能: 判断接收到的Buffer, 是否为一个完整的EDP包 |
TaylorGy | 0:79de700849c5 | 267 | * 参数: buf 接收到的Buffer(二进制流) |
TaylorGy | 0:79de700849c5 | 268 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 269 | * =0 数据还未收完, 需要继续接收 |
TaylorGy | 0:79de700849c5 | 270 | * >0 成功 |
TaylorGy | 0:79de700849c5 | 271 | * <0 数据错误, 不符合EDP协议 |
TaylorGy | 0:79de700849c5 | 272 | */ |
TaylorGy | 0:79de700849c5 | 273 | EDPKIT_DLL int32 IsPkgComplete(RecvBuffer* buf); |
TaylorGy | 0:79de700849c5 | 274 | |
TaylorGy | 0:79de700849c5 | 275 | /*-----------------------------客户端操作的接口------------------------------*/ |
TaylorGy | 0:79de700849c5 | 276 | /* |
TaylorGy | 0:79de700849c5 | 277 | * 函数名: GetEdpPacket |
TaylorGy | 0:79de700849c5 | 278 | * 功能: 将接收到的二进制流, 分解成一个一个的EDP包 |
TaylorGy | 0:79de700849c5 | 279 | * 说明: 返回的EDP包使用后, 需要删除 |
TaylorGy | 0:79de700849c5 | 280 | * 相关函数:EdpPacketType, Unpack***类函数 |
TaylorGy | 0:79de700849c5 | 281 | * 参数: buf 接收缓存 |
TaylorGy | 0:79de700849c5 | 282 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 283 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 284 | * 为空 无完整的EDP协议包 |
TaylorGy | 0:79de700849c5 | 285 | */ |
TaylorGy | 0:79de700849c5 | 286 | EDPKIT_DLL EdpPacket* GetEdpPacket(RecvBuffer* buf); |
TaylorGy | 0:79de700849c5 | 287 | |
TaylorGy | 0:79de700849c5 | 288 | /* |
TaylorGy | 0:79de700849c5 | 289 | * 函数名: EdpPacketType |
TaylorGy | 0:79de700849c5 | 290 | * 功能: 获取一个EDP包的消息类型, 客户程序根据消息类型做不同的处理 |
TaylorGy | 0:79de700849c5 | 291 | * 相关函数:Unpack***类函数 |
TaylorGy | 0:79de700849c5 | 292 | * 参数: pkg EDP协议包 |
TaylorGy | 0:79de700849c5 | 293 | * 返回值: 类型 (uint8) |
TaylorGy | 0:79de700849c5 | 294 | * 值 消息类型(详细参见本h的消息类型定义) |
TaylorGy | 0:79de700849c5 | 295 | */ |
TaylorGy | 0:79de700849c5 | 296 | /* 例子: |
TaylorGy | 0:79de700849c5 | 297 | * ... |
TaylorGy | 0:79de700849c5 | 298 | * int8 mtype = EdpPacketType(pkg); |
TaylorGy | 0:79de700849c5 | 299 | * switch(mtype) |
TaylorGy | 0:79de700849c5 | 300 | * { |
TaylorGy | 0:79de700849c5 | 301 | * case CONNRESP: |
TaylorGy | 0:79de700849c5 | 302 | * UnpackConnectResp(pkg); |
TaylorGy | 0:79de700849c5 | 303 | * break; |
TaylorGy | 0:79de700849c5 | 304 | * case PUSHDATA: |
TaylorGy | 0:79de700849c5 | 305 | * UnpackPushdata(pkg, src_devid, data, data_len); |
TaylorGy | 0:79de700849c5 | 306 | * break; |
TaylorGy | 0:79de700849c5 | 307 | * case SAVEDATA: |
TaylorGy | 0:79de700849c5 | 308 | * UnpackSavedata(pkg, src_devid, flag, data); |
TaylorGy | 0:79de700849c5 | 309 | * break; |
TaylorGy | 0:79de700849c5 | 310 | * case PINGRESP: |
TaylorGy | 0:79de700849c5 | 311 | * UnpackPingResp(pkg); |
TaylorGy | 0:79de700849c5 | 312 | * break; |
TaylorGy | 0:79de700849c5 | 313 | * ... |
TaylorGy | 0:79de700849c5 | 314 | * } |
TaylorGy | 0:79de700849c5 | 315 | */ |
TaylorGy | 0:79de700849c5 | 316 | EDPKIT_DLL uint8 EdpPacketType(EdpPacket* pkg); |
TaylorGy | 0:79de700849c5 | 317 | |
TaylorGy | 0:79de700849c5 | 318 | /* |
TaylorGy | 0:79de700849c5 | 319 | * 函数名: PacketConnect1 |
TaylorGy | 0:79de700849c5 | 320 | * 功能: 打包 由设备到设备云的EDP协议包, 连接设备云的请求(登录认证方式1) |
TaylorGy | 0:79de700849c5 | 321 | * 说明: 返回的EDP包发送给设备云后, 需要客户程序删除该包 |
TaylorGy | 0:79de700849c5 | 322 | * 设备云会回复连接响应给设备 |
TaylorGy | 0:79de700849c5 | 323 | * 相关函数:UnpackConnectResp |
TaylorGy | 0:79de700849c5 | 324 | * 参数: devid 设备ID, 申请设备时平台返回的ID |
TaylorGy | 0:79de700849c5 | 325 | * auth_key 鉴权信息(api-key), 在平台申请的可以操作该设备的api-key字符串 |
TaylorGy | 0:79de700849c5 | 326 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 327 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 328 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 329 | */ |
TaylorGy | 0:79de700849c5 | 330 | EDPKIT_DLL EdpPacket* PacketConnect1(const char* devid, const char* auth_key); |
TaylorGy | 0:79de700849c5 | 331 | |
TaylorGy | 0:79de700849c5 | 332 | /* |
TaylorGy | 0:79de700849c5 | 333 | * 函数名: PacketConnect2 |
TaylorGy | 0:79de700849c5 | 334 | * 功能: 打包 由设备到设备云的EDP协议包, 连接设备云的请求(登录认证方式2) |
TaylorGy | 0:79de700849c5 | 335 | * 说明: 返回的EDP包发送给设备云后, 需要客户程序删除该包 |
TaylorGy | 0:79de700849c5 | 336 | * 设备云会回复连接响应给设备 |
TaylorGy | 0:79de700849c5 | 337 | * 相关函数:UnpackConnectResp |
TaylorGy | 0:79de700849c5 | 338 | * 参数: userid 用户ID, 在平台注册账号时平台返回的用户ID |
TaylorGy | 0:79de700849c5 | 339 | * auth_info 鉴权信息, 在平台申请设备时填写设备的auth_info属性 |
TaylorGy | 0:79de700849c5 | 340 | * (json对象字符串), 该属性需要具备唯一性 |
TaylorGy | 0:79de700849c5 | 341 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 342 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 343 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 344 | */ |
TaylorGy | 0:79de700849c5 | 345 | EDPKIT_DLL EdpPacket* PacketConnect2(const char* userid, const char* auth_info); |
TaylorGy | 0:79de700849c5 | 346 | |
TaylorGy | 0:79de700849c5 | 347 | /* |
TaylorGy | 0:79de700849c5 | 348 | * 函数名: UnpackConnectResp |
TaylorGy | 0:79de700849c5 | 349 | * 功能: 解包 由设备云到设备的EDP协议包, 连接响应 |
TaylorGy | 0:79de700849c5 | 350 | * 说明: 接收设备云发来的数据, 通过函数GetEdpPacket和EdpPacketType判断出是连接响应后, |
TaylorGy | 0:79de700849c5 | 351 | * 将整个响应EDP包作为参数, 由该函数进行解析 |
TaylorGy | 0:79de700849c5 | 352 | * 相关函数:PacketConnect1, PacketConnect2, GetEdpPacket, EdpPacketType |
TaylorGy | 0:79de700849c5 | 353 | * 参数: pkg EDP包, 必须是连接响应包 |
TaylorGy | 0:79de700849c5 | 354 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 355 | * =0 连接成功 |
TaylorGy | 0:79de700849c5 | 356 | * >0 连接失败, 具体失败原因见<OneNet接入方案与接口.docx> |
TaylorGy | 0:79de700849c5 | 357 | * <0 解析失败, 具体失败原因见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 358 | */ |
TaylorGy | 0:79de700849c5 | 359 | EDPKIT_DLL int32 UnpackConnectResp(EdpPacket* pkg); |
TaylorGy | 0:79de700849c5 | 360 | |
TaylorGy | 0:79de700849c5 | 361 | /* |
TaylorGy | 0:79de700849c5 | 362 | * 函数名: PacketPushdata |
TaylorGy | 0:79de700849c5 | 363 | * 功能: 打包 设备到设备云的EDP协议包, 设备与设备之间转发数据 |
TaylorGy | 0:79de700849c5 | 364 | * 说明: 返回的EDP包发送给设备云后, 需要删除这个包 |
TaylorGy | 0:79de700849c5 | 365 | * 相关函数:UnpackPushdata |
TaylorGy | 0:79de700849c5 | 366 | * 参数: dst_devid 目的设备ID |
TaylorGy | 0:79de700849c5 | 367 | * data 数据 |
TaylorGy | 0:79de700849c5 | 368 | * data_len 数据长度 |
TaylorGy | 0:79de700849c5 | 369 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 370 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 371 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 372 | */ |
TaylorGy | 0:79de700849c5 | 373 | EDPKIT_DLL EdpPacket* PacketPushdata(const char* dst_devid, |
TaylorGy | 0:79de700849c5 | 374 | const char* data, uint32 data_len); |
TaylorGy | 0:79de700849c5 | 375 | |
TaylorGy | 0:79de700849c5 | 376 | /* |
TaylorGy | 0:79de700849c5 | 377 | * 函数名: UnpackPushdata |
TaylorGy | 0:79de700849c5 | 378 | * 功能: 解包 由设备云到设备的EDP协议包, 设备与设备之间转发数据 |
TaylorGy | 0:79de700849c5 | 379 | * 说明: 接收设备云发来的数据, 通过函数GetEdpPacket和EdpPacketType判断出是pushdata后, |
TaylorGy | 0:79de700849c5 | 380 | * 将整个响应EDP包作为参数, 由该函数进行解析 |
TaylorGy | 0:79de700849c5 | 381 | * 返回的源设备ID(src_devid)和数据(data)都需要客户端释放 |
TaylorGy | 0:79de700849c5 | 382 | * 相关函数:PacketPushdata, GetEdpPacket, EdpPacketType |
TaylorGy | 0:79de700849c5 | 383 | * 参数: pkg EDP包, 必须是pushdata包 |
TaylorGy | 0:79de700849c5 | 384 | * src_devid 源设备ID |
TaylorGy | 0:79de700849c5 | 385 | * data 数据 |
TaylorGy | 0:79de700849c5 | 386 | * data_len 数据长度 |
TaylorGy | 0:79de700849c5 | 387 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 388 | * =0 解析成功 |
TaylorGy | 0:79de700849c5 | 389 | * <0 解析失败, 具体失败原因见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 390 | */ |
TaylorGy | 0:79de700849c5 | 391 | EDPKIT_DLL int32 UnpackPushdata(EdpPacket* pkg, char** src_devid, |
TaylorGy | 0:79de700849c5 | 392 | char** data, uint32* data_len); |
TaylorGy | 0:79de700849c5 | 393 | |
TaylorGy | 0:79de700849c5 | 394 | /* |
TaylorGy | 0:79de700849c5 | 395 | * 函数名: PacketSavedataJson |
TaylorGy | 0:79de700849c5 | 396 | * 功能: 打包 设备到设备云的EDP协议包, 存储数据(json格式数据) |
TaylorGy | 0:79de700849c5 | 397 | * 说明: 返回的EDP包发送给设备云后, 需要删除这个包 |
TaylorGy | 0:79de700849c5 | 398 | * 相关函数:UnpackSavedata, UnpackSavedataJson |
TaylorGy | 0:79de700849c5 | 399 | * 参数: dst_devid 目的设备ID |
TaylorGy | 0:79de700849c5 | 400 | * json_obj json数据 |
TaylorGy | 0:79de700849c5 | 401 | * type json的类型 |
TaylorGy | 0:79de700849c5 | 402 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 403 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 404 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 405 | */ |
TaylorGy | 0:79de700849c5 | 406 | EdpPacket* PacketSavedataJson(const char* dst_devid, cJSON* json_obj, int type); |
TaylorGy | 0:79de700849c5 | 407 | |
TaylorGy | 0:79de700849c5 | 408 | /* |
TaylorGy | 0:79de700849c5 | 409 | * 函数名: PacketSavedataInt |
TaylorGy | 0:79de700849c5 | 410 | * 功能: 打包 设备到设备云的EDP协议包, 存储数据(json格式数据) |
TaylorGy | 0:79de700849c5 | 411 | * 说明: 该函数适用于数据点为int类型的数据流 |
TaylorGy | 0:79de700849c5 | 412 | * 它把参数封装成EDP协议规定的cJSON对象, |
TaylorGy | 0:79de700849c5 | 413 | * type类型决定使用哪种JSON格式,具体格式说明见文档《设备终端接入协议2-EDP.docx》 |
TaylorGy | 0:79de700849c5 | 414 | * 相关函数:UnPacketSavedataInt |
TaylorGy | 0:79de700849c5 | 415 | * 参数: type 采用的JSON数据类型,可选类型为:kTypeFullJson, |
TaylorGy | 0:79de700849c5 | 416 | * kTypeSimpleJsonWithoutTime, kTypeSimpleJsonWithTime |
TaylorGy | 0:79de700849c5 | 417 | * dst_devid 目的设备ID |
TaylorGy | 0:79de700849c5 | 418 | * ds_id 数据流ID |
TaylorGy | 0:79de700849c5 | 419 | * value int型数据点 |
TaylorGy | 0:79de700849c5 | 420 | * at 如果设置为0,则采用系统当前时间,否则采用给定时间。 |
TaylorGy | 0:79de700849c5 | 421 | * 如果type选择为kTypeSimpleJsonWithoutTime,由于这种类型的JSON格式不带时间, |
TaylorGy | 0:79de700849c5 | 422 | * 服务器端统一采用系统时间,此值将被忽略 |
TaylorGy | 0:79de700849c5 | 423 | * token 当type为kTypeFullJson时,将根据EDP协议封装token字段, |
TaylorGy | 0:79de700849c5 | 424 | * 为其它类型时将被忽略。 |
TaylorGy | 0:79de700849c5 | 425 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 426 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 427 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 428 | */ |
TaylorGy | 0:79de700849c5 | 429 | EDPKIT_DLL EdpPacket* PacketSavedataInt(SaveDataType type, const char* dst_devid, |
TaylorGy | 0:79de700849c5 | 430 | const char* ds_id, int value, |
TaylorGy | 0:79de700849c5 | 431 | time_t at, const char* token); |
TaylorGy | 0:79de700849c5 | 432 | |
TaylorGy | 0:79de700849c5 | 433 | /* |
TaylorGy | 0:79de700849c5 | 434 | * 函数名: PacketSavedataDouble |
TaylorGy | 0:79de700849c5 | 435 | * 功能: 打包 设备到设备云的EDP协议包, 存储数据(json格式数据) |
TaylorGy | 0:79de700849c5 | 436 | * 说明: 该函数适用于数据点为double类型的数据流 |
TaylorGy | 0:79de700849c5 | 437 | * 它把参数封装成EDP协议规定的cJSON对象, |
TaylorGy | 0:79de700849c5 | 438 | * type类型决定使用哪种JSON格式,具体格式说明见文档《设备终端接入协议2-EDP.docx》 |
TaylorGy | 0:79de700849c5 | 439 | * 相关函数:UnPacketSavedataDouble |
TaylorGy | 0:79de700849c5 | 440 | * 参数: type 采用的JSON数据类型,可选类型为:kTypeFullJson, |
TaylorGy | 0:79de700849c5 | 441 | * kTypeSimpleJsonWithoutTime, kTypeSimpleJsonWithTime |
TaylorGy | 0:79de700849c5 | 442 | * dst_devid 目的设备ID |
TaylorGy | 0:79de700849c5 | 443 | * ds_id 数据流ID |
TaylorGy | 0:79de700849c5 | 444 | * value double型数据点 |
TaylorGy | 0:79de700849c5 | 445 | * at 如果设置为0,则采用系统当前时间,否则采用给定时间。 |
TaylorGy | 0:79de700849c5 | 446 | * 如果type选择为kTypeSimpleJsonWithoutTime,由于这种类型的JSON格式不带时间, |
TaylorGy | 0:79de700849c5 | 447 | * 服务器端统一采用系统时间,此值将被忽略 |
TaylorGy | 0:79de700849c5 | 448 | * token 当type为kTypeFullJson时,将根据EDP协议封装token字段, |
TaylorGy | 0:79de700849c5 | 449 | * 为其它类型时将被忽略。 |
TaylorGy | 0:79de700849c5 | 450 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 451 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 452 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 453 | */ |
TaylorGy | 0:79de700849c5 | 454 | EDPKIT_DLL EdpPacket* PacketSavedataDouble(SaveDataType type, const char* dst_devid, |
TaylorGy | 0:79de700849c5 | 455 | const char* ds_id, double value, |
TaylorGy | 0:79de700849c5 | 456 | time_t at, const char* token); |
TaylorGy | 0:79de700849c5 | 457 | |
TaylorGy | 0:79de700849c5 | 458 | /* |
TaylorGy | 0:79de700849c5 | 459 | * 函数名: PacketSavedataString |
TaylorGy | 0:79de700849c5 | 460 | * 功能: 打包 设备到设备云的EDP协议包, 存储数据(json格式数据) |
TaylorGy | 0:79de700849c5 | 461 | * 说明: 该函数适用于数据点为char*类型的数据流 |
TaylorGy | 0:79de700849c5 | 462 | * 它把参数封装成EDP协议规定的cJSON对象, |
TaylorGy | 0:79de700849c5 | 463 | * type类型决定使用哪种JSON格式,具体格式说明见文档《设备终端接入协议2-EDP.docx》 |
TaylorGy | 0:79de700849c5 | 464 | * 相关函数:UnPacketSavedataString |
TaylorGy | 0:79de700849c5 | 465 | * 参数: type 采用的JSON数据类型,可选类型为:kTypeFullJson, |
TaylorGy | 0:79de700849c5 | 466 | * kTypeSimpleJsonWithoutTime, kTypeSimpleJsonWithTime |
TaylorGy | 0:79de700849c5 | 467 | * dst_devid 目的设备ID |
TaylorGy | 0:79de700849c5 | 468 | * ds_id 数据流ID |
TaylorGy | 0:79de700849c5 | 469 | * value char*型数据点 |
TaylorGy | 0:79de700849c5 | 470 | * at 如果设置为0,则采用系统当前时间,否则采用给定时间。 |
TaylorGy | 0:79de700849c5 | 471 | * 如果type选择为kTypeSimpleJsonWithoutTime,由于这种类型的JSON格式不带时间, |
TaylorGy | 0:79de700849c5 | 472 | * 服务器端统一采用系统时间,此值将被忽略 |
TaylorGy | 0:79de700849c5 | 473 | * token 当type为kTypeFullJson时,将根据EDP协议封装token字段, |
TaylorGy | 0:79de700849c5 | 474 | * 为其它类型时将被忽略。 |
TaylorGy | 0:79de700849c5 | 475 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 476 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 477 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 478 | */ |
TaylorGy | 0:79de700849c5 | 479 | EDPKIT_DLL EdpPacket* PacketSavedataString(SaveDataType type, const char* dst_devid, |
TaylorGy | 0:79de700849c5 | 480 | const char* ds_id, const char* value, |
TaylorGy | 0:79de700849c5 | 481 | time_t at, const char* token); |
TaylorGy | 0:79de700849c5 | 482 | |
TaylorGy | 0:79de700849c5 | 483 | /* |
TaylorGy | 0:79de700849c5 | 484 | * 函数名: UnpackSavedataInt |
TaylorGy | 0:79de700849c5 | 485 | * 功能: 解包 由设备云到设备的EDP协议包, 存储数据 |
TaylorGy | 0:79de700849c5 | 486 | * 说明: 接收设备云发来的数据,将其中的数据流ID及值解析出来。 |
TaylorGy | 0:79de700849c5 | 487 | * |
TaylorGy | 0:79de700849c5 | 488 | * 相关函数:PacketSavedataInt |
TaylorGy | 0:79de700849c5 | 489 | * |
TaylorGy | 0:79de700849c5 | 490 | * 参数: type 采用的JSON数据类型,可选类型为:kTypeFullJson, |
TaylorGy | 0:79de700849c5 | 491 | * kTypeSimpleJsonWithoutTime, kTypeSimpleJsonWithTime |
TaylorGy | 0:79de700849c5 | 492 | * pkg EDP包, 必须是savedata包 |
TaylorGy | 0:79de700849c5 | 493 | * ds_id 获取数据流ID,使用完后必须释放 |
TaylorGy | 0:79de700849c5 | 494 | * value 数据流对应的值 |
TaylorGy | 0:79de700849c5 | 495 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 496 | * =0 解析成功 |
TaylorGy | 0:79de700849c5 | 497 | * <0 解析失败, -1 type类型不合法,其它值见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 498 | */ |
TaylorGy | 0:79de700849c5 | 499 | EDPKIT_DLL int32 UnpackSavedataInt(SaveDataType type, EdpPacket* pkg, |
TaylorGy | 0:79de700849c5 | 500 | char** ds_id, int* value); |
TaylorGy | 0:79de700849c5 | 501 | |
TaylorGy | 0:79de700849c5 | 502 | /* |
TaylorGy | 0:79de700849c5 | 503 | * 函数名: UnpackSavedataDouble |
TaylorGy | 0:79de700849c5 | 504 | * 功能: 解包 由设备云到设备的EDP协议包, 存储数据 |
TaylorGy | 0:79de700849c5 | 505 | * 说明: 接收设备云发来的数据,将其中的数据流ID及值解析出来。 |
TaylorGy | 0:79de700849c5 | 506 | * |
TaylorGy | 0:79de700849c5 | 507 | * 相关函数:PacketSavedataDouble |
TaylorGy | 0:79de700849c5 | 508 | * |
TaylorGy | 0:79de700849c5 | 509 | * 参数: type 采用的JSON数据类型,可选类型为:kTypeFullJson, |
TaylorGy | 0:79de700849c5 | 510 | * kTypeSimpleJsonWithoutTime, kTypeSimpleJsonWithTime |
TaylorGy | 0:79de700849c5 | 511 | * pkg EDP包, 必须是savedata包 |
TaylorGy | 0:79de700849c5 | 512 | * ds_id 获取数据流ID,使用完后必须释放 |
TaylorGy | 0:79de700849c5 | 513 | * value 数据流对应的值 |
TaylorGy | 0:79de700849c5 | 514 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 515 | * =0 解析成功 |
TaylorGy | 0:79de700849c5 | 516 | * <0 解析失败, -1 type类型不合法,其它值见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 517 | */ |
TaylorGy | 0:79de700849c5 | 518 | EDPKIT_DLL int32 UnpackSavedataDouble(SaveDataType type, EdpPacket* pkg, |
TaylorGy | 0:79de700849c5 | 519 | char** ds_id, double* value); |
TaylorGy | 0:79de700849c5 | 520 | |
TaylorGy | 0:79de700849c5 | 521 | /* |
TaylorGy | 0:79de700849c5 | 522 | * 函数名: UnpackSavedataString |
TaylorGy | 0:79de700849c5 | 523 | * 功能: 解包 由设备云到设备的EDP协议包, 存储数据 |
TaylorGy | 0:79de700849c5 | 524 | * 说明: 接收设备云发来的数据,将其中的数据流ID及值解析出来。 |
TaylorGy | 0:79de700849c5 | 525 | * |
TaylorGy | 0:79de700849c5 | 526 | * 相关函数:PacketSavedataString |
TaylorGy | 0:79de700849c5 | 527 | * |
TaylorGy | 0:79de700849c5 | 528 | * 参数: type 采用的JSON数据类型,可选类型为:kTypeFullJson, |
TaylorGy | 0:79de700849c5 | 529 | * kTypeSimpleJsonWithoutTime, kTypeSimpleJsonWithTime |
TaylorGy | 0:79de700849c5 | 530 | * pkg EDP包, 必须是savedata包 |
TaylorGy | 0:79de700849c5 | 531 | * ds_id 获取数据流ID,使用完后需要释放 |
TaylorGy | 0:79de700849c5 | 532 | * value 数据流对应的值,使用完后需要释放 |
TaylorGy | 0:79de700849c5 | 533 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 534 | * =0 解析成功 |
TaylorGy | 0:79de700849c5 | 535 | * <0 解析失败, -1 type类型不合法,其它值见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 536 | */ |
TaylorGy | 0:79de700849c5 | 537 | EDPKIT_DLL int32 UnpackSavedataString(SaveDataType type, EdpPacket* pkg, |
TaylorGy | 0:79de700849c5 | 538 | char** ds_id, char** value); |
TaylorGy | 0:79de700849c5 | 539 | |
TaylorGy | 0:79de700849c5 | 540 | |
TaylorGy | 0:79de700849c5 | 541 | /* |
TaylorGy | 0:79de700849c5 | 542 | * 函数名: UnpackSavedataAck |
TaylorGy | 0:79de700849c5 | 543 | * 功能: 解包 由设备云到设备的EDP协议包, 存贮(转发)消息的响应 |
TaylorGy | 0:79de700849c5 | 544 | * 说明: 当存贮(转发)消息带token时,平台会响应一个SAVE_ACK消息, |
TaylorGy | 0:79de700849c5 | 545 | * 用作存储消息的确认。 |
TaylorGy | 0:79de700849c5 | 546 | * 相关函数: PacketSavedataDoubleWithToken PacketSavedataStringWithToken |
TaylorGy | 0:79de700849c5 | 547 | * 参数: pkg EDP包, 必须是连接响应包 |
TaylorGy | 0:79de700849c5 | 548 | * json_ack 获取响应的json字符串,使用完后需要释放 |
TaylorGy | 0:79de700849c5 | 549 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 550 | * =0 心跳成功 |
TaylorGy | 0:79de700849c5 | 551 | * <0 解析失败, 具体失败原因见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 552 | */ |
TaylorGy | 0:79de700849c5 | 553 | EDPKIT_DLL int32 UnpackSavedataAck(EdpPacket* pkg, char** json_ack); |
TaylorGy | 0:79de700849c5 | 554 | |
TaylorGy | 0:79de700849c5 | 555 | /* |
TaylorGy | 0:79de700849c5 | 556 | * 函数名: PacketSavedataSimpleString |
TaylorGy | 0:79de700849c5 | 557 | * 功能: 打包 设备到设备云的EDP协议包, 存储数据(以分号分隔的简单字符串形式) |
TaylorGy | 0:79de700849c5 | 558 | * 说明: 返回的EDP包发送给设备云后, 需要删除这个包 |
TaylorGy | 0:79de700849c5 | 559 | * 相关函数:UnpackSavedataSimpleString |
TaylorGy | 0:79de700849c5 | 560 | * 参数: dst_devid 目的设备ID |
TaylorGy | 0:79de700849c5 | 561 | * input 以分号分隔的简单字符串形式, |
TaylorGy | 0:79de700849c5 | 562 | * 详见《设备终端接入协议2-EDP.docx》 |
TaylorGy | 0:79de700849c5 | 563 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 564 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 565 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 566 | */ |
TaylorGy | 0:79de700849c5 | 567 | EDPKIT_DLL EdpPacket* PacketSavedataSimpleString(const char* dst_devid, const char* input); |
TaylorGy | 0:79de700849c5 | 568 | |
TaylorGy | 0:79de700849c5 | 569 | /* |
TaylorGy | 0:79de700849c5 | 570 | * 函数名: UnpackSavedataSimpleString |
TaylorGy | 0:79de700849c5 | 571 | * 功能: 解包 由设备云到设备的EDP协议包, 存储数据 |
TaylorGy | 0:79de700849c5 | 572 | * 说明: 接收设备云发来的数据, 通过函数GetEdpPacket和EdpPacketType判断出是savedata后, |
TaylorGy | 0:79de700849c5 | 573 | * 将整个响应EDP包作为参数, 由该函数进行解析, |
TaylorGy | 0:79de700849c5 | 574 | * 获取源端发送来的以分号作为分隔符的字符串。 |
TaylorGy | 0:79de700849c5 | 575 | * 相关函数: PacketSavedataSimpleString |
TaylorGy | 0:79de700849c5 | 576 | * |
TaylorGy | 0:79de700849c5 | 577 | * 参数: pkg EDP包, 必须是savedata包 |
TaylorGy | 0:79de700849c5 | 578 | * output 存储发送来的字符串 |
TaylorGy | 0:79de700849c5 | 579 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 580 | * =0 解析成功 |
TaylorGy | 0:79de700849c5 | 581 | * <0 解析失败, 具体失败原因见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 582 | */ |
TaylorGy | 0:79de700849c5 | 583 | EDPKIT_DLL int32 UnpackSavedataSimpleString(EdpPacket* pkg, char** output); |
TaylorGy | 0:79de700849c5 | 584 | |
TaylorGy | 0:79de700849c5 | 585 | /* |
TaylorGy | 0:79de700849c5 | 586 | * 函数名: PacketSavedataBin |
TaylorGy | 0:79de700849c5 | 587 | * 功能: 打包 设备到设备云的EDP协议包, 存储数据(bin格式数据) |
TaylorGy | 0:79de700849c5 | 588 | * 说明: 返回的EDP包发送给设备云后, 需要删除这个包 |
TaylorGy | 0:79de700849c5 | 589 | * 相关函数:UnpackSavedata, UnpackSavedataBin |
TaylorGy | 0:79de700849c5 | 590 | * 参数: dst_devid 目的设备ID |
TaylorGy | 0:79de700849c5 | 591 | * desc_obj 数据描述 json格式 |
TaylorGy | 0:79de700849c5 | 592 | * bin_data 二进制数据 |
TaylorGy | 0:79de700849c5 | 593 | * bin_len 二进制数据长度 |
TaylorGy | 0:79de700849c5 | 594 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 595 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 596 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 597 | */ |
TaylorGy | 0:79de700849c5 | 598 | EdpPacket* PacketSavedataBin(const char* dst_devid, |
TaylorGy | 0:79de700849c5 | 599 | cJSON* desc_obj, const uint8* bin_data, uint32 bin_len); |
TaylorGy | 0:79de700849c5 | 600 | /* |
TaylorGy | 0:79de700849c5 | 601 | * 函数名: PacketSavedataBinStr |
TaylorGy | 0:79de700849c5 | 602 | * 功能: 打包 设备到设备云的EDP协议包, 存储数据(bin格式数据) |
TaylorGy | 0:79de700849c5 | 603 | * 说明: 返回的EDP包发送给设备云后, 需要删除这个包 |
TaylorGy | 0:79de700849c5 | 604 | * 相关函数:UnpackSavedata, UnpackSavedataBin |
TaylorGy | 0:79de700849c5 | 605 | * 参数: dst_devid 目的设备ID |
TaylorGy | 0:79de700849c5 | 606 | * desc_obj 数据描述 字符串格式 |
TaylorGy | 0:79de700849c5 | 607 | * bin_data 二进制数据 |
TaylorGy | 0:79de700849c5 | 608 | * bin_len 二进制数据长度 |
TaylorGy | 0:79de700849c5 | 609 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 610 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 611 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 612 | */ |
TaylorGy | 0:79de700849c5 | 613 | EDPKIT_DLL EdpPacket* PacketSavedataBinStr(const char* dst_devid, |
TaylorGy | 0:79de700849c5 | 614 | const char* desc_str, const uint8* bin_data, uint32 bin_len); |
TaylorGy | 0:79de700849c5 | 615 | |
TaylorGy | 0:79de700849c5 | 616 | /* |
TaylorGy | 0:79de700849c5 | 617 | * 函数名: UnpackSavedata |
TaylorGy | 0:79de700849c5 | 618 | * 功能: 解包 由设备云到设备的EDP协议包, 存储数据 |
TaylorGy | 0:79de700849c5 | 619 | * 说明: 接收设备云发来的数据, 通过函数GetEdpPacket和EdpPacketType判断出是savedata后, |
TaylorGy | 0:79de700849c5 | 620 | * 将整个响应EDP包作为参数, 由该函数进行解析 |
TaylorGy | 0:79de700849c5 | 621 | * 然后再根据json和bin的标识(jb_flag), 调用相应的解析函数 |
TaylorGy | 0:79de700849c5 | 622 | * 返回的源设备ID(src_devid)需要客户端释放 |
TaylorGy | 0:79de700849c5 | 623 | * 相关函数:PacketSavedataJson, PacketSavedataBin, GetEdpPacket, |
TaylorGy | 0:79de700849c5 | 624 | * UnpackSavedataJson, UnpackSavedataBin |
TaylorGy | 0:79de700849c5 | 625 | * 参数: pkg EDP包, 必须是savedata包 |
TaylorGy | 0:79de700849c5 | 626 | * src_devid 源设备ID |
TaylorGy | 0:79de700849c5 | 627 | * jb_flag json or bin数据, 1: json, 2: 二进制 |
TaylorGy | 0:79de700849c5 | 628 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 629 | * =0 解析成功 |
TaylorGy | 0:79de700849c5 | 630 | * <0 解析失败, 具体失败原因见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 631 | */ |
TaylorGy | 0:79de700849c5 | 632 | EDPKIT_DLL int32 UnpackSavedata(EdpPacket* pkg, char** src_devid, uint8* jb_flag); |
TaylorGy | 0:79de700849c5 | 633 | |
TaylorGy | 0:79de700849c5 | 634 | /* |
TaylorGy | 0:79de700849c5 | 635 | * 函数名: UnpackSavedataJson |
TaylorGy | 0:79de700849c5 | 636 | * 功能: 解包 由设备云到设备的EDP协议包, 存储数据(json格式数据) |
TaylorGy | 0:79de700849c5 | 637 | * 说明: 返回的json数据(json_obj)需要客户端释放 |
TaylorGy | 0:79de700849c5 | 638 | * 相关函数:PacketSavedataJson, GetEdpPacket, EdpPacketType, UnpackSavedata |
TaylorGy | 0:79de700849c5 | 639 | * 参数: pkg EDP包, 必须是savedata包的json数据包 |
TaylorGy | 0:79de700849c5 | 640 | * json_obj json数据 |
TaylorGy | 0:79de700849c5 | 641 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 642 | * =0 解析成功 |
TaylorGy | 0:79de700849c5 | 643 | * <0 解析失败, 具体失败原因见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 644 | */ |
TaylorGy | 0:79de700849c5 | 645 | int32 UnpackSavedataJson(EdpPacket* pkg, cJSON** json_obj); |
TaylorGy | 0:79de700849c5 | 646 | |
TaylorGy | 0:79de700849c5 | 647 | /* |
TaylorGy | 0:79de700849c5 | 648 | * 函数名: UnpackSavedataBin |
TaylorGy | 0:79de700849c5 | 649 | * 功能: 解包 由设备云到设备的EDP协议包, 存储数据(bin格式数据) |
TaylorGy | 0:79de700849c5 | 650 | * 说明: 返回的数据描述(desc_obj)和bin数据(bin_data)需要客户端释放 |
TaylorGy | 0:79de700849c5 | 651 | * 相关函数:PacketSavedataBin, GetEdpPacket, EdpPacketType, UnpackSavedata |
TaylorGy | 0:79de700849c5 | 652 | * 参数: pkg EDP包, 必须是savedata包的bin数据包 |
TaylorGy | 0:79de700849c5 | 653 | * desc_obj 数据描述 json格式 |
TaylorGy | 0:79de700849c5 | 654 | * bin_data 二进制数据 |
TaylorGy | 0:79de700849c5 | 655 | * bin_len 二进制数据长度 |
TaylorGy | 0:79de700849c5 | 656 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 657 | * =0 解析成功 |
TaylorGy | 0:79de700849c5 | 658 | * <0 解析失败, 具体失败原因见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 659 | */ |
TaylorGy | 0:79de700849c5 | 660 | int32 UnpackSavedataBin(EdpPacket* pkg, cJSON** desc_obj, |
TaylorGy | 0:79de700849c5 | 661 | uint8** bin_data, uint32* bin_len); |
TaylorGy | 0:79de700849c5 | 662 | /* |
TaylorGy | 0:79de700849c5 | 663 | * 函数名: UnpackSavedataBinStr |
TaylorGy | 0:79de700849c5 | 664 | * 功能: 解包 由设备云到设备的EDP协议包, 存储数据(bin格式数据) |
TaylorGy | 0:79de700849c5 | 665 | * 说明: 返回的数据描述(desc_obj)和bin数据(bin_data)需要客户端释放 |
TaylorGy | 0:79de700849c5 | 666 | * 相关函数:PacketSavedataBin, GetEdpPacket, EdpPacketType, UnpackSavedata |
TaylorGy | 0:79de700849c5 | 667 | * 参数: pkg EDP包, 必须是savedata包的bin数据包 |
TaylorGy | 0:79de700849c5 | 668 | * desc_obj 数据描述 string格式 |
TaylorGy | 0:79de700849c5 | 669 | * bin_data 二进制数据 |
TaylorGy | 0:79de700849c5 | 670 | * bin_len 二进制数据长度 |
TaylorGy | 0:79de700849c5 | 671 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 672 | * =0 解析成功 |
TaylorGy | 0:79de700849c5 | 673 | * <0 解析失败, 具体失败原因见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 674 | */ |
TaylorGy | 0:79de700849c5 | 675 | EDPKIT_DLL int32 UnpackSavedataBinStr(EdpPacket* pkg, char** desc_str, |
TaylorGy | 0:79de700849c5 | 676 | uint8** bin_data, uint32* bin_len); |
TaylorGy | 0:79de700849c5 | 677 | /* |
TaylorGy | 0:79de700849c5 | 678 | * 函数名: PacketCmdResp |
TaylorGy | 0:79de700849c5 | 679 | * 功能: 向接入机发送命令响应 |
TaylorGy | 0:79de700849c5 | 680 | * 说明: 返回的EDP包发送给设备云后, 需要客户程序删除该包 |
TaylorGy | 0:79de700849c5 | 681 | * |
TaylorGy | 0:79de700849c5 | 682 | * 相关函数:UnpackCmdReq |
TaylorGy | 0:79de700849c5 | 683 | * 参数: cmdid 命令id |
TaylorGy | 0:79de700849c5 | 684 | * cmdid_len 命令id长度 |
TaylorGy | 0:79de700849c5 | 685 | * resp 响应的消息 |
TaylorGy | 0:79de700849c5 | 686 | * resp_len 响应消息长度 |
TaylorGy | 0:79de700849c5 | 687 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 688 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 689 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 690 | */ |
TaylorGy | 0:79de700849c5 | 691 | EDPKIT_DLL EdpPacket* PacketCmdResp(const char* cmdid, uint16 cmdid_len, |
TaylorGy | 0:79de700849c5 | 692 | const char* resp, uint32 resp_len); |
TaylorGy | 0:79de700849c5 | 693 | |
TaylorGy | 0:79de700849c5 | 694 | /* |
TaylorGy | 0:79de700849c5 | 695 | * 函数名: UnpackCmdReq |
TaylorGy | 0:79de700849c5 | 696 | * 功能: 解包 由设备云到设备的EDP协议包, 命令请求消息 |
TaylorGy | 0:79de700849c5 | 697 | * 说明: 接收设备云发来的数据, 解析命令请求消息包 |
TaylorGy | 0:79de700849c5 | 698 | * 获取的cmdid以及req需要在使用后释放。 |
TaylorGy | 0:79de700849c5 | 699 | * 相关函数:PacketCmdResp |
TaylorGy | 0:79de700849c5 | 700 | * 参数: pkg EDP包 |
TaylorGy | 0:79de700849c5 | 701 | * cmdid 获取命令id |
TaylorGy | 0:79de700849c5 | 702 | * cmdid_len cmdid的长度 |
TaylorGy | 0:79de700849c5 | 703 | * req 用户命令的起始位置 |
TaylorGy | 0:79de700849c5 | 704 | * req_len 用户命令的长度 |
TaylorGy | 0:79de700849c5 | 705 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 706 | * =0 解析成功 |
TaylorGy | 0:79de700849c5 | 707 | * <0 解析失败, 具体失败原因见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 708 | */ |
TaylorGy | 0:79de700849c5 | 709 | EDPKIT_DLL int32 UnpackCmdReq(EdpPacket* pkg, char** cmdid, uint16* cmdid_len, |
TaylorGy | 0:79de700849c5 | 710 | char** req, uint32* req_len); |
TaylorGy | 0:79de700849c5 | 711 | |
TaylorGy | 0:79de700849c5 | 712 | /* |
TaylorGy | 0:79de700849c5 | 713 | * 函数名: PacketPing |
TaylorGy | 0:79de700849c5 | 714 | * 功能: 打包 由设备到设备云的EDP协议包, 心跳 |
TaylorGy | 0:79de700849c5 | 715 | * 说明: 返回的EDP包发送给设备云后, 需要客户程序删除该包 |
TaylorGy | 0:79de700849c5 | 716 | * 设备云会回复心跳响应给设备 |
TaylorGy | 0:79de700849c5 | 717 | * 相关函数:UnpackPingResp |
TaylorGy | 0:79de700849c5 | 718 | * 参数: 无 |
TaylorGy | 0:79de700849c5 | 719 | * 返回值: 类型 (EdpPacket*) |
TaylorGy | 0:79de700849c5 | 720 | * 非空 EDP协议包 |
TaylorGy | 0:79de700849c5 | 721 | * 为空 EDP协议包生成失败 |
TaylorGy | 0:79de700849c5 | 722 | */ |
TaylorGy | 0:79de700849c5 | 723 | EDPKIT_DLL EdpPacket* PacketPing(void); |
TaylorGy | 0:79de700849c5 | 724 | |
TaylorGy | 0:79de700849c5 | 725 | /* |
TaylorGy | 0:79de700849c5 | 726 | * 函数名: UnpackPingResp |
TaylorGy | 0:79de700849c5 | 727 | * 功能: 解包 由设备云到设备的EDP协议包, 心跳响应 |
TaylorGy | 0:79de700849c5 | 728 | * 说明: 接收设备云发来的数据, 通过函数GetEdpPacket和EdpPacketType判断出是连接响应后, |
TaylorGy | 0:79de700849c5 | 729 | * 将整个响应EDP包作为参数, 由该函数进行解析 |
TaylorGy | 0:79de700849c5 | 730 | * 相关函数:PacketPing, GetEdpPacket, EdpPacketType |
TaylorGy | 0:79de700849c5 | 731 | * 参数: pkg EDP包, 必须是连接响应包 |
TaylorGy | 0:79de700849c5 | 732 | * 返回值: 类型 (int32) |
TaylorGy | 0:79de700849c5 | 733 | * =0 心跳成功 |
TaylorGy | 0:79de700849c5 | 734 | * >0 心跳失败, 具体失败原因见<OneNet接入方案与接口.docx> |
TaylorGy | 0:79de700849c5 | 735 | * <0 解析失败, 具体失败原因见本h文件的错误码 |
TaylorGy | 0:79de700849c5 | 736 | */ |
TaylorGy | 0:79de700849c5 | 737 | EDPKIT_DLL int32 UnpackPingResp(EdpPacket* pkg); |
TaylorGy | 0:79de700849c5 | 738 | |
TaylorGy | 0:79de700849c5 | 739 | #ifdef __cplusplus |
TaylorGy | 0:79de700849c5 | 740 | } |
TaylorGy | 0:79de700849c5 | 741 | #endif |
TaylorGy | 0:79de700849c5 | 742 | |
TaylorGy | 0:79de700849c5 | 743 | #endif /* __EDP_KIT_H__ */ |