1#[allow(unused_imports)]
3use super::types::*;
4#[allow(unused_imports)]
5use serde::{Deserialize, Serialize};
6#[allow(unused_imports)]
7use serde_json::Value as Json;
8#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
9pub enum CentralState {
10 #[serde(rename = "absent")]
11 Absent,
12 #[serde(rename = "powered-off")]
13 PoweredOff,
14 #[serde(rename = "powered-on")]
15 PoweredOn,
16}
17#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
18pub enum GattOperationType {
19 #[serde(rename = "connection")]
20 Connection,
21 #[serde(rename = "discovery")]
22 Discovery,
23}
24#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
25pub enum CharacteristicWriteType {
26 #[serde(rename = "write-default-deprecated")]
27 WriteDefaultDeprecated,
28 #[serde(rename = "write-with-response")]
29 WriteWithResponse,
30 #[serde(rename = "write-without-response")]
31 WriteWithoutResponse,
32}
33#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
34pub enum CharacteristicOperationType {
35 #[serde(rename = "read")]
36 Read,
37 #[serde(rename = "write")]
38 Write,
39 #[serde(rename = "subscribe-to-notifications")]
40 SubscribeToNotifications,
41 #[serde(rename = "unsubscribe-from-notifications")]
42 UnsubscribeFromNotifications,
43}
44#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
45pub enum DescriptorOperationType {
46 #[serde(rename = "read")]
47 Read,
48 #[serde(rename = "write")]
49 Write,
50}
51#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
52pub struct ManufacturerData {
53 #[serde(default)]
54 #[serde(rename = "key")]
55 pub key: JsUInt,
56 #[serde(rename = "data")]
57 pub data: Vec<u8>,
58}
59#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
60pub struct ScanRecord {
61 #[serde(skip_serializing_if = "Option::is_none")]
62 #[serde(default)]
63 #[serde(rename = "name")]
64 pub name: Option<String>,
65 #[serde(skip_serializing_if = "Option::is_none")]
66 #[serde(default)]
67 #[serde(rename = "uuids")]
68 pub uuids: Option<Vec<String>>,
69 #[serde(skip_serializing_if = "Option::is_none")]
70 #[serde(default)]
71 #[serde(rename = "appearance")]
72 pub appearance: Option<JsUInt>,
73 #[serde(skip_serializing_if = "Option::is_none")]
74 #[serde(default)]
75 #[serde(rename = "txPower")]
76 pub tx_power: Option<JsUInt>,
77 #[serde(skip_serializing_if = "Option::is_none")]
78 #[serde(rename = "manufacturerData")]
79 pub manufacturer_data: Option<Vec<ManufacturerData>>,
80}
81#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
82pub struct ScanEntry {
83 #[serde(default)]
84 #[serde(rename = "deviceAddress")]
85 pub device_address: String,
86 #[serde(default)]
87 #[serde(rename = "rssi")]
88 pub rssi: JsUInt,
89 #[serde(rename = "scanRecord")]
90 pub scan_record: ScanRecord,
91}
92#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
93pub struct CharacteristicProperties {
94 #[serde(skip_serializing_if = "Option::is_none")]
95 #[serde(default)]
96 #[serde(rename = "broadcast")]
97 pub broadcast: Option<bool>,
98 #[serde(skip_serializing_if = "Option::is_none")]
99 #[serde(default)]
100 #[serde(rename = "read")]
101 pub read: Option<bool>,
102 #[serde(skip_serializing_if = "Option::is_none")]
103 #[serde(default)]
104 #[serde(rename = "writeWithoutResponse")]
105 pub write_without_response: Option<bool>,
106 #[serde(skip_serializing_if = "Option::is_none")]
107 #[serde(default)]
108 #[serde(rename = "write")]
109 pub write: Option<bool>,
110 #[serde(skip_serializing_if = "Option::is_none")]
111 #[serde(default)]
112 #[serde(rename = "notify")]
113 pub notify: Option<bool>,
114 #[serde(skip_serializing_if = "Option::is_none")]
115 #[serde(default)]
116 #[serde(rename = "indicate")]
117 pub indicate: Option<bool>,
118 #[serde(skip_serializing_if = "Option::is_none")]
119 #[serde(default)]
120 #[serde(rename = "authenticatedSignedWrites")]
121 pub authenticated_signed_writes: Option<bool>,
122 #[serde(skip_serializing_if = "Option::is_none")]
123 #[serde(default)]
124 #[serde(rename = "extendedProperties")]
125 pub extended_properties: Option<bool>,
126}
127#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
128pub struct Enable {
129 #[serde(rename = "state")]
130 pub state: CentralState,
131 #[serde(default)]
132 #[serde(rename = "leSupported")]
133 pub le_supported: bool,
134}
135#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
136pub struct SetSimulatedCentralState {
137 #[serde(rename = "state")]
138 pub state: CentralState,
139}
140#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
141#[serde(rename_all = "camelCase")]
142pub struct Disable(pub Option<serde_json::Value>);
143#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
144pub struct SimulatePreconnectedPeripheral {
145 #[serde(default)]
146 #[serde(rename = "address")]
147 pub address: String,
148 #[serde(default)]
149 #[serde(rename = "name")]
150 pub name: String,
151 #[serde(rename = "manufacturerData")]
152 pub manufacturer_data: Vec<ManufacturerData>,
153 #[serde(default)]
154 #[serde(rename = "knownServiceUuids")]
155 pub known_service_uuids: Vec<String>,
156}
157#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
158pub struct SimulateAdvertisement {
159 #[serde(rename = "entry")]
160 pub entry: ScanEntry,
161}
162#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
163pub struct SimulateGATTOperationResponse {
164 #[serde(default)]
165 #[serde(rename = "address")]
166 pub address: String,
167 #[serde(rename = "type")]
168 pub r#type: GattOperationType,
169 #[serde(default)]
170 #[serde(rename = "code")]
171 pub code: JsUInt,
172}
173#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
174pub struct SimulateCharacteristicOperationResponse {
175 #[serde(default)]
176 #[serde(rename = "characteristicId")]
177 pub characteristic_id: String,
178 #[serde(rename = "type")]
179 pub r#type: CharacteristicOperationType,
180 #[serde(default)]
181 #[serde(rename = "code")]
182 pub code: JsUInt,
183 #[serde(skip_serializing_if = "Option::is_none")]
184 #[serde(rename = "data")]
185 pub data: Option<Vec<u8>>,
186}
187#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
188pub struct SimulateDescriptorOperationResponse {
189 #[serde(default)]
190 #[serde(rename = "descriptorId")]
191 pub descriptor_id: String,
192 #[serde(rename = "type")]
193 pub r#type: DescriptorOperationType,
194 #[serde(default)]
195 #[serde(rename = "code")]
196 pub code: JsUInt,
197 #[serde(skip_serializing_if = "Option::is_none")]
198 #[serde(rename = "data")]
199 pub data: Option<Vec<u8>>,
200}
201#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
202pub struct AddService {
203 #[serde(default)]
204 #[serde(rename = "address")]
205 pub address: String,
206 #[serde(default)]
207 #[serde(rename = "serviceUuid")]
208 pub service_uuid: String,
209}
210#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
211pub struct RemoveService {
212 #[serde(default)]
213 #[serde(rename = "serviceId")]
214 pub service_id: String,
215}
216#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
217pub struct AddCharacteristic {
218 #[serde(default)]
219 #[serde(rename = "serviceId")]
220 pub service_id: String,
221 #[serde(default)]
222 #[serde(rename = "characteristicUuid")]
223 pub characteristic_uuid: String,
224 #[serde(rename = "properties")]
225 pub properties: CharacteristicProperties,
226}
227#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
228pub struct RemoveCharacteristic {
229 #[serde(default)]
230 #[serde(rename = "characteristicId")]
231 pub characteristic_id: String,
232}
233#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
234pub struct AddDescriptor {
235 #[serde(default)]
236 #[serde(rename = "characteristicId")]
237 pub characteristic_id: String,
238 #[serde(default)]
239 #[serde(rename = "descriptorUuid")]
240 pub descriptor_uuid: String,
241}
242#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
243pub struct RemoveDescriptor {
244 #[serde(default)]
245 #[serde(rename = "descriptorId")]
246 pub descriptor_id: String,
247}
248#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
249pub struct SimulateGATTDisconnection {
250 #[serde(default)]
251 #[serde(rename = "address")]
252 pub address: String,
253}
254#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
255#[serde(rename_all = "camelCase")]
256pub struct EnableReturnObject {}
257#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
258#[serde(rename_all = "camelCase")]
259pub struct SetSimulatedCentralStateReturnObject {}
260#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
261#[serde(rename_all = "camelCase")]
262pub struct DisableReturnObject {}
263#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
264#[serde(rename_all = "camelCase")]
265pub struct SimulatePreconnectedPeripheralReturnObject {}
266#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
267#[serde(rename_all = "camelCase")]
268pub struct SimulateAdvertisementReturnObject {}
269#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
270#[serde(rename_all = "camelCase")]
271pub struct SimulateGATTOperationResponseReturnObject {}
272#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
273#[serde(rename_all = "camelCase")]
274pub struct SimulateCharacteristicOperationResponseReturnObject {}
275#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
276#[serde(rename_all = "camelCase")]
277pub struct SimulateDescriptorOperationResponseReturnObject {}
278#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
279pub struct AddServiceReturnObject {
280 #[serde(default)]
281 #[serde(rename = "serviceId")]
282 pub service_id: String,
283}
284#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
285#[serde(rename_all = "camelCase")]
286pub struct RemoveServiceReturnObject {}
287#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
288pub struct AddCharacteristicReturnObject {
289 #[serde(default)]
290 #[serde(rename = "characteristicId")]
291 pub characteristic_id: String,
292}
293#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
294#[serde(rename_all = "camelCase")]
295pub struct RemoveCharacteristicReturnObject {}
296#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
297pub struct AddDescriptorReturnObject {
298 #[serde(default)]
299 #[serde(rename = "descriptorId")]
300 pub descriptor_id: String,
301}
302#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
303#[serde(rename_all = "camelCase")]
304pub struct RemoveDescriptorReturnObject {}
305#[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
306#[serde(rename_all = "camelCase")]
307pub struct SimulateGATTDisconnectionReturnObject {}
308impl Method for Enable {
309 const NAME: &'static str = "BluetoothEmulation.enable";
310 type ReturnObject = EnableReturnObject;
311}
312impl Method for SetSimulatedCentralState {
313 const NAME: &'static str = "BluetoothEmulation.setSimulatedCentralState";
314 type ReturnObject = SetSimulatedCentralStateReturnObject;
315}
316impl Method for Disable {
317 const NAME: &'static str = "BluetoothEmulation.disable";
318 type ReturnObject = DisableReturnObject;
319}
320impl Method for SimulatePreconnectedPeripheral {
321 const NAME: &'static str = "BluetoothEmulation.simulatePreconnectedPeripheral";
322 type ReturnObject = SimulatePreconnectedPeripheralReturnObject;
323}
324impl Method for SimulateAdvertisement {
325 const NAME: &'static str = "BluetoothEmulation.simulateAdvertisement";
326 type ReturnObject = SimulateAdvertisementReturnObject;
327}
328impl Method for SimulateGATTOperationResponse {
329 const NAME: &'static str = "BluetoothEmulation.simulateGATTOperationResponse";
330 type ReturnObject = SimulateGATTOperationResponseReturnObject;
331}
332impl Method for SimulateCharacteristicOperationResponse {
333 const NAME: &'static str = "BluetoothEmulation.simulateCharacteristicOperationResponse";
334 type ReturnObject = SimulateCharacteristicOperationResponseReturnObject;
335}
336impl Method for SimulateDescriptorOperationResponse {
337 const NAME: &'static str = "BluetoothEmulation.simulateDescriptorOperationResponse";
338 type ReturnObject = SimulateDescriptorOperationResponseReturnObject;
339}
340impl Method for AddService {
341 const NAME: &'static str = "BluetoothEmulation.addService";
342 type ReturnObject = AddServiceReturnObject;
343}
344impl Method for RemoveService {
345 const NAME: &'static str = "BluetoothEmulation.removeService";
346 type ReturnObject = RemoveServiceReturnObject;
347}
348impl Method for AddCharacteristic {
349 const NAME: &'static str = "BluetoothEmulation.addCharacteristic";
350 type ReturnObject = AddCharacteristicReturnObject;
351}
352impl Method for RemoveCharacteristic {
353 const NAME: &'static str = "BluetoothEmulation.removeCharacteristic";
354 type ReturnObject = RemoveCharacteristicReturnObject;
355}
356impl Method for AddDescriptor {
357 const NAME: &'static str = "BluetoothEmulation.addDescriptor";
358 type ReturnObject = AddDescriptorReturnObject;
359}
360impl Method for RemoveDescriptor {
361 const NAME: &'static str = "BluetoothEmulation.removeDescriptor";
362 type ReturnObject = RemoveDescriptorReturnObject;
363}
364impl Method for SimulateGATTDisconnection {
365 const NAME: &'static str = "BluetoothEmulation.simulateGATTDisconnection";
366 type ReturnObject = SimulateGATTDisconnectionReturnObject;
367}
368pub mod events {
369 #[allow(unused_imports)]
370 use super::super::types::*;
371 #[allow(unused_imports)]
372 use serde::{Deserialize, Serialize};
373 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
374 pub struct GattOperationReceivedEvent {
375 pub params: GattOperationReceivedEventParams,
376 }
377 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
378 pub struct GattOperationReceivedEventParams {
379 #[serde(default)]
380 #[serde(rename = "address")]
381 pub address: String,
382 #[serde(rename = "type")]
383 pub r#type: super::GattOperationType,
384 }
385 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
386 pub struct CharacteristicOperationReceivedEvent {
387 pub params: CharacteristicOperationReceivedEventParams,
388 }
389 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
390 pub struct CharacteristicOperationReceivedEventParams {
391 #[serde(default)]
392 #[serde(rename = "characteristicId")]
393 pub characteristic_id: String,
394 #[serde(rename = "type")]
395 pub r#type: super::CharacteristicOperationType,
396 #[serde(skip_serializing_if = "Option::is_none")]
397 #[serde(default)]
398 #[serde(rename = "data")]
399 pub data: Option<u8>,
400 #[serde(skip_serializing_if = "Option::is_none")]
401 #[serde(rename = "writeType")]
402 pub write_type: Option<super::CharacteristicWriteType>,
403 }
404 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
405 pub struct DescriptorOperationReceivedEvent {
406 pub params: DescriptorOperationReceivedEventParams,
407 }
408 #[derive(Deserialize, Serialize, Debug, Clone, PartialEq)]
409 pub struct DescriptorOperationReceivedEventParams {
410 #[serde(default)]
411 #[serde(rename = "descriptorId")]
412 pub descriptor_id: String,
413 #[serde(rename = "type")]
414 pub r#type: super::DescriptorOperationType,
415 #[serde(skip_serializing_if = "Option::is_none")]
416 #[serde(default)]
417 #[serde(rename = "data")]
418 pub data: Option<u8>,
419 }
420}