dji_mqtt_connect 0.1.23 → 0.1.23.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d41d271b698a961d6df9e07d3685c002559ef4fd7584ccc34a27ed80f003fb7
4
- data.tar.gz: 710151bc2df812d86e19c1b971be1f13e308f8cff214c19ce4411218abdc6e33
3
+ metadata.gz: 7028627089ac05f602059d2510546c8ea90f0715890e4808256d72617680d51d
4
+ data.tar.gz: 9e910c6aba0f54c1a8e0b7951ccc68a24b1769f3a11cbf5f03b7ad07dd67fe9d
5
5
  SHA512:
6
- metadata.gz: '040780116df09cd20a201ce19558ccf63c939d6762bf405645b05f56866f89e6b77fde96ae491d4f2a181cae5350117b5af6e1343638e8515f621191d8c04eea'
7
- data.tar.gz: 3b8898e3ce6ed6285449421b8f8ad14bc157b8dd534d632ebd9cedafd2cd3c451c6dda29bc13b39e041af65b498801229ee31a52556bd7fb334daa8b430d794f
6
+ metadata.gz: fc15169b6decbc8ffe25e8f1577f3a6817c87ebab65a9a0f3d41ce8dc58baec37bce7e70d9dc59dfdfbaa20a492b316926f27ffdf6cb6da3296604fc1363a70a
7
+ data.tar.gz: eb6cbfa4ff76d5578245b9c278ab70fc401b30e6b327d39fee99252a152e48f30559e74927070ecef628bf2c9be146d8f7c20d1136407ba48c65b127ba657a7e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dji_mqtt_connect (0.1.23)
4
+ dji_mqtt_connect (0.1.23.1)
5
5
  activesupport (>= 6.0, <= 8)
6
6
  dry-struct (~> 1.6)
7
7
  dry-transformer (~> 1.0)
@@ -0,0 +1,251 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DjiMqttConnect
4
+ module Factories::EventsMessages
5
+ def build_device_exit_homing_notify_events_message
6
+ message_data = {
7
+ action: 1,
8
+ sn: "DOCK01",
9
+ reason: "0"
10
+ }
11
+ Thing::Product::DeviceExitHomingNotifyEventsMessage.new(
12
+ _method: "device_exit_homing_notify",
13
+ bid: Message.generate_bid,
14
+ tid: Message.generate_tid,
15
+ need_reply: 1,
16
+ gateway: "GATEWAYSN",
17
+ timestamp: Message.current_timestamp,
18
+ data: message_data,
19
+ _data: message_data
20
+ )
21
+ end
22
+
23
+ def build_thing_product_device_reboot_events_message
24
+ message_data = {
25
+ result: 0,
26
+ output: {
27
+ status: "ok",
28
+ progress: {
29
+ percent: 100
30
+ }
31
+ }
32
+ }
33
+
34
+ Thing::Product::DeviceRebootEventsMessage.new(
35
+ bid: Message.generate_bid,
36
+ tid: Message.generate_tid,
37
+ timestamp: Message.current_timestamp,
38
+ _method: "device_reboot",
39
+ need_reply: 1,
40
+ data: message_data,
41
+ _data: message_data
42
+ )
43
+ end
44
+
45
+ def build_file_upload_callback_events_message
46
+ message_data = {
47
+ file: {
48
+ object_key: "object_key",
49
+ path: "xxx",
50
+ name: "dog.jpeg",
51
+ ext: {
52
+ flight_id: "xxx",
53
+ drone_model_key: "0-67-0",
54
+ payload_model_key: "0-67-0",
55
+ is_original: true
56
+ },
57
+ metadata: {
58
+ shoot_position: {
59
+ lat: 22.1,
60
+ lng: 122.5
61
+ },
62
+ gimbal_yaw_degree: -91.4,
63
+ absolute_altitude: 56.311,
64
+ relative_altitude: 41.124,
65
+ created_time: "2021-05-10 16:04:20"
66
+ }
67
+ },
68
+ result: 0
69
+ }
70
+
71
+ Thing::Product::FileUploadCallbackEventsMessage.new(
72
+ _method: "file_upload_callback",
73
+ bid: Message.generate_bid,
74
+ tid: Message.generate_tid,
75
+ need_reply: 1,
76
+ gateway: "xxx",
77
+ timestamp: Message.current_timestamp,
78
+ data: message_data,
79
+ _data: message_data
80
+ )
81
+ end
82
+
83
+ def build_fileupload_progress_events_message
84
+ message_data = {
85
+ output: {
86
+ ext: {
87
+ files: [
88
+ {
89
+ module: "0",
90
+ size: 155232,
91
+ device_sn: "drone_sn",
92
+ key: "4bf0039f-6434-44a8-b891-8d7b6b7ff138/drone_sn/video_20220621_110830.log",
93
+ fingerprint: "4f65b891f3bc09bdb6d4c36a996b532d",
94
+ progress: {
95
+ current_step: 19,
96
+ progress: 100,
97
+ finish_time: 1655781395926,
98
+ upload_rate: 0,
99
+ result: 0,
100
+ status: "ok"
101
+ }
102
+ },
103
+ {
104
+ module: "3",
105
+ size: 155232,
106
+ device_sn: "dock_sn",
107
+ key: "4bf0039f-6434-44a8-b891-8d7b6b7ff138/dock_sn/video_20220621_110830.log",
108
+ fingerprint: "4f65b891f3bc09bdb6d4c36a996b532d",
109
+ progress: {
110
+ current_step: 19,
111
+ total_step: 30,
112
+ progress: 100,
113
+ finish_time: 1655781395926,
114
+ upload_rate: 0,
115
+ result: 0,
116
+ status: "ok"
117
+ }
118
+ }
119
+ ]
120
+ },
121
+ status: "ok"
122
+ }
123
+ }
124
+
125
+ Thing::Product::FileuploadProgressEventsMessage.new(
126
+ _method: "fileupload_progress",
127
+ need_reply: 0,
128
+ bid: Message.generate_bid,
129
+ tid: Message.generate_tid,
130
+ timestamp: Message.current_timestamp,
131
+ gateway: "dock_sn",
132
+ _data: message_data,
133
+ data: message_data
134
+ )
135
+ end
136
+
137
+ def build_flighttask_progress_events_message
138
+ message_data = {
139
+ output: {
140
+ ext: {
141
+ current_waypoint_index: 3,
142
+ media_count: 6,
143
+ track_id: "track_id",
144
+ flight_id: "flight_id",
145
+ break_point: {
146
+ index: 1,
147
+ state: 0,
148
+ progress: 0.34,
149
+ wayline_id: 0,
150
+ break_reason: 1,
151
+ latitude: 23.4,
152
+ longitude: 113.99,
153
+ height: 100.23,
154
+ attitude_head: 30
155
+ }
156
+ },
157
+ progress: {
158
+ current_step: 19,
159
+ percent: 100
160
+ },
161
+ status: "ok"
162
+ },
163
+ result: 0
164
+ }
165
+
166
+ Thing::Product::FlighttaskProgressEventsMessage.new(
167
+ bid: Message.generate_bid,
168
+ tid: Message.generate_tid,
169
+ data: message_data,
170
+ _data: message_data,
171
+ _method: "flighttask_progress",
172
+ timestamp: Message.current_timestamp
173
+ )
174
+ end
175
+
176
+ def build_flighttask_ready_events_message
177
+ message_data = {
178
+ flight_ids: [
179
+ SecureRandom.uuid,
180
+ SecureRandom.uuid
181
+ ]
182
+ }
183
+
184
+ Thing::Product::FlighttaskReadyEventsMessage.new(
185
+ bid: Message.generate_bid,
186
+ tid: Message.generate_tid,
187
+ data: message_data,
188
+ _data: message_data,
189
+ _method: "flighttask_ready",
190
+ timestamp: Message.current_timestamp
191
+ )
192
+ end
193
+
194
+ def build_highest_priority_upload_flighttask_media_events_message
195
+ message_data = {
196
+ flight_id: SecureRandom.uuid
197
+ }
198
+
199
+ Thing::Product::HighestPriorityUploadFlighttaskMediaEventsMessage.new(
200
+ bid: Message.generate_bid,
201
+ _data: message_data,
202
+ data: message_data,
203
+ _method: "highest_priority_upload_flighttask_media",
204
+ need_reply: 1,
205
+ tid: Message.generate_tid,
206
+ timestamp: Message.current_timestamp,
207
+ gateway: "DOCK01"
208
+ )
209
+ end
210
+
211
+ def build_offline_map_sync_progress_events_message
212
+ message_data = {
213
+ status: "failed",
214
+ reason: 0,
215
+ file: "geofence_xxx.json"
216
+ }
217
+
218
+ Thing::Product::OfflineMapSyncProgressEventsMessage.new(
219
+ bid: Message.generate_bid,
220
+ tid: Message.generate_tid,
221
+ timestamp: Message.current_timestamp,
222
+ _method: "offline_map_sync_progress",
223
+ need_reply: 1,
224
+ data: message_data,
225
+ _data: message_data
226
+ )
227
+ end
228
+
229
+ def build_takeoff_to_point_progress_events_message
230
+ message_data = {
231
+ flight_id: SecureRandom.uuid,
232
+ remaining_distance: 100,
233
+ remaining_time: 10,
234
+ result: 0,
235
+ status: "ok",
236
+ track_id: SecureRandom.uuid,
237
+ way_point_index: 3
238
+ }
239
+
240
+ Thing::Product::TakeoffToPointProgressEventsMessage.new(
241
+ bid: Message.generate_bid,
242
+ tid: Message.generate_tid,
243
+ timestamp: Message.current_timestamp,
244
+ _method: "takeoff_to_point_progress",
245
+ need_reply: 1,
246
+ data: message_data,
247
+ _data: message_data
248
+ )
249
+ end
250
+ end
251
+ end
@@ -4,236 +4,12 @@ module DjiMqttConnect
4
4
  # Factories for building example messages
5
5
  # Do not include this in your production code
6
6
  module Factories
7
+ autoload :EventsMessages, "dji_mqtt_connect/factories/events_messages"
7
8
  autoload :StateMessages, "dji_mqtt_connect/factories/state_messages"
8
9
 
10
+ include EventsMessages
9
11
  include StateMessages
10
12
 
11
- # Events
12
-
13
- def build_device_exit_homing_notify_events_message
14
- message_data = {
15
- action: 1,
16
- sn: "DOCK01",
17
- reason: "0"
18
- }
19
- Thing::Product::DeviceExitHomingNotifyEventsMessage.new(
20
- _method: "device_exit_homing_notify",
21
- bid: Message.generate_bid,
22
- tid: Message.generate_tid,
23
- need_reply: 1,
24
- gateway: "GATEWAYSN",
25
- timestamp: Message.current_timestamp,
26
- data: message_data,
27
- _data: message_data
28
- )
29
- end
30
-
31
- def build_thing_product_device_reboot_events_message
32
- message_data = {
33
- result: 0,
34
- output: {
35
- status: "ok",
36
- progress: {
37
- percent: 100
38
- }
39
- }
40
- }
41
-
42
- Thing::Product::DeviceRebootEventsMessage.new(
43
- bid: Message.generate_bid,
44
- tid: Message.generate_tid,
45
- timestamp: Message.current_timestamp,
46
- _method: "device_reboot",
47
- need_reply: 1,
48
- data: message_data,
49
- _data: message_data
50
- )
51
- end
52
-
53
- def build_file_upload_callback_events_message
54
- message_data = {
55
- file: {
56
- object_key: "object_key",
57
- path: "xxx",
58
- name: "dog.jpeg",
59
- ext: {
60
- flight_id: "xxx",
61
- drone_model_key: "0-67-0",
62
- payload_model_key: "0-67-0",
63
- is_original: true
64
- },
65
- metadata: {
66
- shoot_position: {
67
- lat: 22.1,
68
- lng: 122.5
69
- },
70
- gimbal_yaw_degree: -91.4,
71
- absolute_altitude: 56.311,
72
- relative_altitude: 41.124,
73
- created_time: "2021-05-10 16:04:20"
74
- }
75
- },
76
- result: 0
77
- }
78
-
79
- Thing::Product::FileUploadCallbackEventsMessage.new(
80
- _method: "file_upload_callback",
81
- bid: Message.generate_bid,
82
- tid: Message.generate_tid,
83
- need_reply: 1,
84
- gateway: "xxx",
85
- timestamp: Message.current_timestamp,
86
- data: message_data,
87
- _data: message_data
88
- )
89
- end
90
-
91
- def build_fileupload_progress_events_message
92
- message_data = {
93
- output: {
94
- ext: {
95
- files: [
96
- {
97
- module: "0",
98
- size: 155232,
99
- device_sn: "drone_sn",
100
- key: "4bf0039f-6434-44a8-b891-8d7b6b7ff138/drone_sn/video_20220621_110830.log",
101
- fingerprint: "4f65b891f3bc09bdb6d4c36a996b532d",
102
- progress: {
103
- current_step: 19,
104
- progress: 100,
105
- finish_time: 1655781395926,
106
- upload_rate: 0,
107
- result: 0,
108
- status: "ok"
109
- }
110
- },
111
- {
112
- module: "3",
113
- size: 155232,
114
- device_sn: "dock_sn",
115
- key: "4bf0039f-6434-44a8-b891-8d7b6b7ff138/dock_sn/video_20220621_110830.log",
116
- fingerprint: "4f65b891f3bc09bdb6d4c36a996b532d",
117
- progress: {
118
- current_step: 19,
119
- total_step: 30,
120
- progress: 100,
121
- finish_time: 1655781395926,
122
- upload_rate: 0,
123
- result: 0,
124
- status: "ok"
125
- }
126
- }
127
- ]
128
- },
129
- status: "ok"
130
- }
131
- }
132
-
133
- Thing::Product::FileuploadProgressEventsMessage.new(
134
- _method: "fileupload_progress",
135
- need_reply: 0,
136
- bid: Message.generate_bid,
137
- tid: Message.generate_tid,
138
- timestamp: Message.current_timestamp,
139
- gateway: "dock_sn",
140
- _data: message_data,
141
- data: message_data
142
- )
143
- end
144
-
145
- def build_flighttask_progress_events_message
146
- message_data = {
147
- output: {
148
- ext: {
149
- current_waypoint_index: 3,
150
- media_count: 6,
151
- track_id: "track_id",
152
- flight_id: "flight_id",
153
- break_point: {
154
- index: 1,
155
- state: 0,
156
- progress: 0.34,
157
- wayline_id: 0,
158
- break_reason: 1,
159
- latitude: 23.4,
160
- longitude: 113.99,
161
- height: 100.23,
162
- attitude_head: 30
163
- }
164
- },
165
- progress: {
166
- current_step: 19,
167
- percent: 100
168
- },
169
- status: "ok"
170
- },
171
- result: 0
172
- }
173
-
174
- Thing::Product::FlighttaskProgressEventsMessage.new(
175
- bid: Message.generate_bid,
176
- tid: Message.generate_tid,
177
- data: message_data,
178
- _data: message_data,
179
- _method: "flighttask_progress",
180
- timestamp: Message.current_timestamp
181
- )
182
- end
183
-
184
- def build_flighttask_ready_events_message
185
- message_data = {
186
- flight_ids: [
187
- SecureRandom.uuid,
188
- SecureRandom.uuid
189
- ]
190
- }
191
-
192
- Thing::Product::FlighttaskReadyEventsMessage.new(
193
- bid: Message.generate_bid,
194
- tid: Message.generate_tid,
195
- data: message_data,
196
- _data: message_data,
197
- _method: "flighttask_ready",
198
- timestamp: Message.current_timestamp
199
- )
200
- end
201
-
202
- def build_highest_priority_upload_flighttask_media_events_message
203
- message_data = {
204
- flight_id: SecureRandom.uuid
205
- }
206
-
207
- Thing::Product::HighestPriorityUploadFlighttaskMediaEventsMessage.new(
208
- bid: Message.generate_bid,
209
- _data: message_data,
210
- data: message_data,
211
- _method: "highest_priority_upload_flighttask_media",
212
- need_reply: 1,
213
- tid: Message.generate_tid,
214
- timestamp: Message.current_timestamp,
215
- gateway: "DOCK01"
216
- )
217
- end
218
-
219
- def build_offline_map_sync_progress_events_message
220
- message_data = {
221
- status: "failed",
222
- reason: 0,
223
- file: "geofence_xxx.json"
224
- }
225
-
226
- Thing::Product::OfflineMapSyncProgressEventsMessage.new(
227
- bid: Message.generate_bid,
228
- tid: Message.generate_tid,
229
- timestamp: Message.current_timestamp,
230
- _method: "offline_map_sync_progress",
231
- need_reply: 1,
232
- data: message_data,
233
- _data: message_data
234
- )
235
- end
236
-
237
13
  # OSD
238
14
 
239
15
  def build_thing_product_dock_osd_message_with_sub_device
@@ -2,7 +2,7 @@
2
2
 
3
3
  module DjiMqttConnect
4
4
  module Thing::Product
5
- class DeviceLogEventsMessage < ServicesReplyMessage
5
+ class DeviceLogEventsMessage < EventsMessage
6
6
  # BID is not always included in message
7
7
  attribute? :bid, Types::UUID
8
8
 
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DjiMqttConnect
4
+ module Thing::Product
5
+ class TakeoffToPointProgressEventsMessage < EventsMessage
6
+ attribute :_method, Types::String.enum("takeoff_to_point_progress")
7
+
8
+ attribute :data do
9
+ attribute :flight_id, Types::String
10
+ attribute :remaining_distance, Types::Integer
11
+ attribute :remaining_time, Types::Integer
12
+ attribute :result, Types::Integer
13
+ attribute :status, Types::String
14
+ attribute :track_id, Types::String | Types::Nil
15
+ attribute :way_point_index, Types::Integer
16
+ end
17
+ end
18
+ end
19
+ end
@@ -21,19 +21,7 @@ module DjiMqttConnect
21
21
  attribute :tid, Types::UUID
22
22
  attribute :timestamp, Types::Timestamp
23
23
 
24
- attribute :_method, Types::String.enum(
25
- "airsense_warning",
26
- "device_exit_homing_notify",
27
- "device_reboot",
28
- "file_upload_callback",
29
- "fileupload_progress",
30
- "flight_areas_drone_location",
31
- "flight_areas_sync_progress",
32
- "flighttask_progress",
33
- "flighttask_ready",
34
- "highest_priority_upload_flighttask_media",
35
- "offline_map_sync_progress"
36
- )
24
+ attribute :_method, Types::String
37
25
 
38
26
  attribute :data do
39
27
  include Mixins::ResultMessage
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DjiMqttConnect
4
- VERSION = "0.1.23"
4
+ VERSION = "0.1.23.1"
5
5
  end
@@ -51,6 +51,7 @@ module DjiMqttConnect
51
51
  autoload :OfflineMapSyncProgressEventsMessage, "dji_mqtt_connect/messages/thing/product/events/offline_map_sync_progress"
52
52
  autoload :ReturnHomeInfoEventsMessage, "dji_mqtt_connect/messages/thing/product/events/return_home_info"
53
53
  autoload :StatusCodeEventsMessage, "dji_mqtt_connect/messages/thing/product/events/status_code"
54
+ autoload :TakeoffToPointProgressEventsMessage, "dji_mqtt_connect/messages/thing/product/events/takeoff_to_point_progress"
54
55
  autoload :TrackEventsMessage, "dji_mqtt_connect/messages/thing/product/events/track"
55
56
  autoload :EventsMessage, "dji_mqtt_connect/messages/thing/product/events_message"
56
57
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dji_mqtt_connect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.23
4
+ version: 0.1.23.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sphere Drones
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-22 00:00:00.000000000 Z
11
+ date: 2024-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -113,6 +113,7 @@ files:
113
113
  - lib/dji_mqtt_connect/client.rb
114
114
  - lib/dji_mqtt_connect/error.rb
115
115
  - lib/dji_mqtt_connect/factories.rb
116
+ - lib/dji_mqtt_connect/factories/events_messages.rb
116
117
  - lib/dji_mqtt_connect/factories/state_messages.rb
117
118
  - lib/dji_mqtt_connect/marshals/sys/product/status_marshal.rb
118
119
  - lib/dji_mqtt_connect/marshals/sys/product/status_reply_marshal.rb
@@ -147,6 +148,7 @@ files:
147
148
  - lib/dji_mqtt_connect/messages/thing/product/events/offline_map_sync_progress.rb
148
149
  - lib/dji_mqtt_connect/messages/thing/product/events/return_home_info.rb
149
150
  - lib/dji_mqtt_connect/messages/thing/product/events/status_code.rb
151
+ - lib/dji_mqtt_connect/messages/thing/product/events/takeoff_to_point_progress.rb
150
152
  - lib/dji_mqtt_connect/messages/thing/product/events/track.rb
151
153
  - lib/dji_mqtt_connect/messages/thing/product/events_message.rb
152
154
  - lib/dji_mqtt_connect/messages/thing/product/events_reply_message.rb