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(Debug,Serialize, Deserialize, Clone)]
14pub struct ConnectParam {
15 pub name: String,
17 pub desc: String,
19 pub value: String,
21}
22#[derive(Serialize, Deserialize, Clone)]
24pub struct InitialParam {
25 pub connect_params: Vec<ConnectParam>,
27}
28
29#[derive(Serialize, Deserialize, Clone)]
31pub struct DriverAttribute {
32 pub driver_function_id: String,
34 pub driver_function_name: String,
36 pub param_desc: String,
38}
39
40#[derive(Serialize, Deserialize, Clone)]
42pub struct DriverFunction {
43
44 pub driver_attributes: Vec<DriverAttribute>,
46
47}
48
49#[derive(Serialize, Deserialize, Clone)]
51pub enum AttributeOperationEnum {
52 Read,
54 Write,
56}
57
58#[derive(Serialize, Deserialize, Clone)]
60pub struct TslAttributeAction {
61 pub id: String,
63 pub device_id: String,
65 pub device_number: String,
67 pub identifier: String,
69 pub driver_function_name: String,
71 pub driver_function_param: String,
73 pub value: String,
75}
76
77#[derive(Serialize, Deserialize, Clone)]
79pub struct TupleFrame {
80 pub operation: AttributeOperationEnum,
82 pub attribute_actions: Vec<TslAttributeAction>,
84
85}
86
87#[derive(Serialize, Deserialize, Clone)]
89pub struct DriverResult {
90 pub result: bool,
92 pub attribute_actions: Vec<TslAttributeAction>,
94
95}
96
97#[derive(Debug,Serialize, Deserialize, Clone)]
99pub struct DeviceTag {
100 #[serde(rename = "deviceId")]
102 pub device_id: i32,
103 pub identifier: String,
105 #[serde(rename = "identifierName")]
107 pub identifier_name: String,
108 #[serde(rename = "accessCycle")]
110 pub access_cycle: u64,
111 #[serde(rename = "functionName")]
113 pub function_name: String,
114 #[serde(rename = "functionParam")]
116 pub function_param: String,
117 #[serde(rename = "dataType")]
119 pub data_type: String,
120 #[serde(rename = "accessMode")]
122 pub access_mode: String,
123}
124
125#[derive(Debug,Serialize, Deserialize, Clone)]
128pub struct GatewayDriver {
129
130 pub id: i32,
132 #[serde(rename = "driverId")]
134 pub driver_id: String,
135 #[serde(rename = "fileName")]
137 pub file_name: String,
138 #[serde(rename = "filePath")]
140 pub file_path: String,
141 #[serde(rename = "packageName")]
143 pub package_name: String,
144 #[serde(rename = "clzName")]
146 pub class_name: String,
147
148}
149#[derive(Debug,Serialize, Deserialize, Clone)]
151pub struct GatewayDriverInstance {
152 pub id: i32,
154 #[serde(rename = "gatewayId")]
156 pub gateway_id: i64,
157 pub name: String,
159 #[serde(rename = "connectParams")]
161 pub connect_params: Vec<ConnectParam>,
162 #[serde(rename = "gatewayDriver")]
164 pub gateway_driver: GatewayDriver,
165 #[serde(rename = "deviceIds")]
167 pub device_ids: Option<Vec<i32>>,
168}
169
170#[derive(Debug, Serialize, Deserialize, Clone)]
172pub struct Device {
173 #[serde(rename = "deviceId")]
175 pub device_id: i32,
176 #[serde(rename = "deviceNo")]
178 pub device_number: String,
179 #[serde(rename = "deviceName")]
181 pub device_name: String,
182 #[serde(rename = "communicationMethod")]
184 pub communication_method: String,
185 #[serde(rename = "deviceTags")]
187 pub device_tags: Vec<DeviceTag>,
188 #[serde(rename = "gatewayDriverInstance")]
190 pub gateway_driver_instance: GatewayDriverInstance,
191 #[serde(rename = "tenantId")]
193 pub tenant_id: i32,
194}
195
196#[derive(Serialize, Deserialize, Clone)]
198pub struct Packet {
199 pub device_id: String,
201 pub device_number: String,
203 pub device_name: String,
205 pub product_key: String,
207 pub identifier: String,
209 pub val: String,
211 pub time: String,
213 pub control_number: String,
215}
216
217
218#[derive(Serialize, Deserialize, Clone)]
220pub struct PacketOld {
221 pub categoryId: String,
223 pub deviceId: String,
225 pub deviceName: String,
227 pub extra: Option<String>,
229 pub time: String,
231 pub identifier: String,
233 pub val: String,
235 pub tableName: String,
237 pub deviceNo: String,
239 pub controlNo: String,
241}
242#[derive(Serialize, Deserialize, Clone)]
244pub struct DeviceItem {
245 pub deviceId: String,
247}
248#[derive(Serialize, Deserialize, Clone)]
250pub struct DeviceOnlineStatus {
251 pub device_id: String,
253 pub device_number: String,
255 pub device_name: String,
257 pub online_status: bool,
259}
260
261#[derive(Serialize, Deserialize, Clone)]
263pub struct DevicePacket {
264 pub device_number: String,
266 pub device_name: String,
268 pub control_no: String,
270 pub data: HashMap<String, String>,
272}
273#[derive(Debug,Serialize, Deserialize, Clone)]
275pub struct Updata {
276 #[serde(rename = "categoryId")]
278 pub category_id: Option<i32>,
279 #[serde(rename = "deviceId")]
281 pub device_id: i32,
282 #[serde(rename = "deviceNo")]
284 pub device_number: String,
285 pub time: i64,
287 pub params: HashMap<String, String>,
289}
290
291
292#[derive(Debug,Serialize, Deserialize, Clone)]
294pub struct AttrUpDataPacket {
295 pub operate: String,
297 #[serde(rename = "operateId")]
299 pub operate_id: i32,
300 pub data: Updata,
302 }
305
306#[derive(Clone, Debug, Serialize, Deserialize)]
307pub struct PubSubMessage {
308 pub target: String,
310 pub args: Option<String>,
312}