1use std::collections::HashMap;
2
3use serde::{Deserialize, Serialize};
4
5pub mod kafka_topic_contrant;
6
7pub const REDIS_KEY_DEVICE_ALL: &str = "IOT:DEVICE:ALL";
10pub const REDIS_KEY_DEVICE_INFO: &str = "IOT:DEVICE:INFO:";
12
13#[derive(Serialize, Deserialize, Clone)]
15pub struct ConnectParam {
16 pub name: String,
18 pub desc: String,
20 pub value: String,
22}
23
24#[derive(Serialize, Deserialize, Clone)]
26pub struct InitialParam {
27 pub connect_params: Vec<ConnectParam>,
29}
30
31#[derive(Serialize, Deserialize, Clone)]
33pub struct DriverAttribute {
34 pub driver_function_id: String,
36 pub driver_function_name: String,
38 pub param_desc: String,
40}
41
42#[derive(Serialize, Deserialize, Clone)]
44pub struct DriverFunction {
45
46 pub driver_attributes: Vec<DriverAttribute>,
48
49}
50
51#[derive(Serialize, Deserialize, Clone)]
53pub enum AttributeOperationEnum {
54 Read,
56 Write,
58}
59
60#[derive(Serialize, Deserialize, Clone)]
62pub struct TslAttributeAction {
63 pub id: String,
65 pub device_id: String,
67 pub device_number: String,
69 pub identifier: String,
71 pub driver_function_name: String,
73 pub driver_function_param: String,
75 pub value: String,
77}
78
79#[derive(Serialize, Deserialize, Clone)]
81pub struct TupleFrame {
82 pub operation: AttributeOperationEnum,
84 pub attribute_actions: Vec<TslAttributeAction>,
86
87}
88
89#[derive(Serialize, Deserialize, Clone)]
91pub struct DriverResult {
92 pub result: bool,
94 pub attribute_actions: Vec<TslAttributeAction>,
96
97}
98
99#[derive(Serialize, Deserialize, Clone)]
101pub struct DeviceTag {
102 #[serde(rename = "devId")]
104 pub device_id: String,
105 pub id: String,
107 pub identifier: String,
109 #[serde(rename = "identifierName")]
111 pub identifier_name: String,
112 #[serde(rename = "type")]
114 pub tag_type: String,
115 #[serde(rename = "accessCycle")]
117 pub access_cycle: i64,
118 #[serde(rename = "functionName")]
120 pub function_name: String,
121 #[serde(rename = "functionParam")]
123 pub function_param: String,
124 #[serde(rename = "dataType")]
126 pub data_type: String,
127 #[serde(rename = "accessMode")]
129 pub access_mode: String,
130}
131
132#[derive(Serialize, Deserialize, Clone)]
134pub struct GatewayDriver {
135
136 pub id: String,
138 #[serde(rename = "driverId")]
140 pub driver_id: String,
141 #[serde(rename = "fileName")]
143 pub file_name: String,
144 #[serde(rename = "filePath")]
146 pub file_path: String,
147 #[serde(rename = "packageName")]
149 pub package_name: String,
150 #[serde(rename = "clzName")]
152 pub class_name: String,
153
154}
155
156#[derive(Serialize, Deserialize, Clone)]
158pub struct GatewayDriverInstance {
159 pub id: String,
161 #[serde(rename = "gatewayId")]
163 pub gateway_id: i64,
164 pub name: String,
166 #[serde(rename = "connectParams")]
168 pub connect_params: Vec<ConnectParam>,
169 #[serde(rename = "gatewayDriver")]
171 pub gateway_driver: GatewayDriver,
172}
173
174#[derive(Serialize, Deserialize, Clone)]
176pub struct Device {
177 #[serde(rename = "devId")]
179 pub device_id: String,
180 #[serde(rename = "devNo")]
182 pub device_number: String,
183 #[serde(rename = "communicationMethod")]
185 pub communication_method: String,
186 #[serde(rename = "productKey")]
188 pub product_key: String,
189 #[serde(rename = "devName")]
191 pub device_name: String,
192 pub secret: String,
194 #[serde(rename = "deviceTags")]
196 pub device_tags: Vec<DeviceTag>,
197 #[serde(rename = "gatewayDriverInstance")]
199 pub gateway_driver_instance: GatewayDriverInstance,
200 #[serde(rename = "tenantId")]
202 pub tenant_id: i32,
203}
204
205#[derive(Serialize, Deserialize, Clone)]
207pub struct Packet {
208 pub device_id: String,
210 pub device_number: String,
212 pub device_name: String,
214 pub product_key: String,
216 pub identifier: String,
218 pub val: String,
220 pub time: String,
222 pub control_number: String,
224}
225
226#[derive(Serialize, Deserialize, Clone)]
228pub struct PacketOld {
229 pub pk: String,
231 pub devId: String,
233 pub devName: String,
235 pub extra: String,
237 pub time: String,
239 pub identifier: String,
240 pub val: String,
242 pub tableName: String,
244 pub devNo: String,
246 pub controlNo: String,
247}
248
249#[derive(Serialize, Deserialize, Clone)]
251pub struct DeviceItem {
252 pub devId: String,
253}
254
255#[derive(Serialize, Deserialize, Clone)]
257pub struct DeviceOnlineStatus {
258 pub device_id: String,
260 pub device_number: String,
262 pub device_name: String,
264 pub online_status: bool,
266}
267
268#[derive(Serialize, Deserialize, Clone)]
270pub struct DevicePacket {
271 pub device_number: String,
273 pub device_name: String,
275 pub control_no: String,
277 pub data: HashMap<String, String>,
279}
280
281#[derive(Serialize, Deserialize, Clone)]
283pub struct Updata {
284 #[serde(rename = "pk")]
286 pub product_key: String,
287 #[serde(rename = "devId")]
289 pub device_id: String,
290 #[serde(rename = "devNo")]
292 pub device_number: String,
293 pub time: i64,
295 pub params: HashMap<String, String>,
297}
298
299#[derive(Serialize, Deserialize, Clone)]
301pub struct AttrUpDataPacket {
302 pub operate: String,
304 #[serde(rename = "operateId")]
306 pub operate_id: i32,
307 pub data: Updata,
309}