dji_mqtt_connect 0.1.21 → 0.1.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -1
  3. data/lib/dji_mqtt_connect/factories.rb +41 -0
  4. data/lib/dji_mqtt_connect/marshals/sys/product/status_marshal.rb +2 -6
  5. data/lib/dji_mqtt_connect/marshals/thing/product/events_marshal.rb +2 -6
  6. data/lib/dji_mqtt_connect/marshals/thing/product/osd_marshal.rb +4 -6
  7. data/lib/dji_mqtt_connect/marshals/thing/product/requests_marshal.rb +2 -6
  8. data/lib/dji_mqtt_connect/marshals/thing/product/services_reply_marshal.rb +2 -6
  9. data/lib/dji_mqtt_connect/marshals/thing/product/state_marshal.rb +2 -6
  10. data/lib/dji_mqtt_connect/messages/thing/product/events/file_upload_callback.rb +2 -2
  11. data/lib/dji_mqtt_connect/messages/thing/product/events/flighttask_progress.rb +1 -1
  12. data/lib/dji_mqtt_connect/messages/thing/product/events/offline_map_sync_progress.rb +15 -0
  13. data/lib/dji_mqtt_connect/messages/thing/product/events_reply_message.rb +2 -1
  14. data/lib/dji_mqtt_connect/messages/thing/product/osd/drone.rb +4 -4
  15. data/lib/dji_mqtt_connect/messages/thing/product/osd/remote.rb +1 -1
  16. data/lib/dji_mqtt_connect/messages/thing/product/requests/airport_organization_bind.rb +3 -3
  17. data/lib/dji_mqtt_connect/messages/thing/product/requests/airport_organization_get.rb +2 -2
  18. data/lib/dji_mqtt_connect/messages/thing/product/requests/offline_map_get.rb +13 -0
  19. data/lib/dji_mqtt_connect/messages/thing/product/requests_reply/offline_map_get.rb +29 -0
  20. data/lib/dji_mqtt_connect/utils/message_parsing.rb +41 -0
  21. data/lib/dji_mqtt_connect/version.rb +1 -1
  22. data/lib/dji_mqtt_connect.rb +3 -0
  23. metadata +6 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c7dcc1c840ccf9aaee09ac40525e54250b00543951b3adf3fc2535fead82529
4
- data.tar.gz: 768cbfdd365db52896838434a319742e55dbd82ad021d0a3aa6c76f07d94f8ac
3
+ metadata.gz: 904fc18520b674341b8c69c048a1a15c13d9f3e0cc7d053fa4141bb0a45479b8
4
+ data.tar.gz: fbf55a2a6858ecca53d5154683ebd9fc6c1d3d3d87075e8d2c4db9c778b7708a
5
5
  SHA512:
6
- metadata.gz: 530a33ad82c122710f9a8421553768cd7eff877099722d2ce34918d434703c7fa429fdad587030db3fca04953c5c26411d3665d9bd61e468d4e6ddfc4feafee5
7
- data.tar.gz: 01df1da7273ba9b2492cd799c6eb08d8d20bb022c90f3860acd528abc32af4e2d759f6d8ec4a0ed922035db58bd0e7ef9cf68e2f668d68aaa97d00d4532282a7
6
+ metadata.gz: 3a6992caed4090fb4a9498226d70faf1b584918bfe9681242a234ab46e8877682000574e83b3809dc7d0825d778056651a10211183278dde55b3f4b939dc4441
7
+ data.tar.gz: 70c74955236b489540ad2854695e2ece19d141b52b99ff2ca50461747c321c2f3f6381d00ac1079d19ddfc9c69b0686567188d004e2d233f6e63ee66fb392345
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dji_mqtt_connect (0.1.21)
4
+ dji_mqtt_connect (0.1.22.1)
5
5
  activesupport (>= 6.0, <= 8)
6
6
  dry-struct (~> 1.6)
7
7
  dry-transformer (~> 1.0)
@@ -144,6 +144,7 @@ GEM
144
144
 
145
145
  PLATFORMS
146
146
  arm64-darwin-22
147
+ arm64-darwin-23
147
148
  x86_64-darwin-21
148
149
  x86_64-linux
149
150
 
@@ -212,6 +212,24 @@ module DjiMqttConnect
212
212
  )
213
213
  end
214
214
 
215
+ def build_offline_map_sync_progress_events_message
216
+ message_data = {
217
+ status: "failed",
218
+ reason: 0,
219
+ file: "geofence_xxx.json"
220
+ }
221
+
222
+ Thing::Product::OfflineMapSyncProgressEventsMessage.new(
223
+ bid: Message.generate_bid,
224
+ tid: Message.generate_tid,
225
+ timestamp: Message.current_timestamp,
226
+ _method: "offline_map_sync_progress",
227
+ need_reply: 1,
228
+ data: message_data,
229
+ _data: message_data
230
+ )
231
+ end
232
+
215
233
  # OSD
216
234
 
217
235
  def build_thing_product_dock_osd_message_with_sub_device
@@ -644,6 +662,29 @@ module DjiMqttConnect
644
662
  )
645
663
  end
646
664
 
665
+ def build_thing_product_offline_map_get_requests_message
666
+ message_data = {}
667
+
668
+ Thing::Product::OfflineMapGetRequestsMessage.new(
669
+ _method: "offline_map_get",
670
+ _data: message_data,
671
+ tid: Message.generate_tid,
672
+ bid: Message.generate_bid,
673
+ timestamp: Message.current_timestamp,
674
+ gateway: "gatewaysn",
675
+ data: message_data
676
+ )
677
+ end
678
+
679
+ def build_thing_product_offline_map_get_requests_reply_message
680
+ request_message = build_thing_product_offline_map_get_requests_message
681
+
682
+ Thing::Product::OfflineMapGetRequestsReplyMessage.build_for(
683
+ request_message,
684
+ result: 0
685
+ )
686
+ end
687
+
647
688
  def build_thing_product_storage_config_get_requests_message
648
689
  message_data = {
649
690
  module: 0
@@ -21,7 +21,7 @@ module DjiMqttConnect
21
21
  # Attempts to look a the method attribute, and builds a specific Message class for the message
22
22
  def load(raw_message)
23
23
  # Parse the message from JSON
24
- parsed_message = JSON.parse(raw_message)
24
+ parsed_message = parse_json(raw_message)
25
25
 
26
26
  # Transform the message
27
27
  transformed_message = attribute_transformer.call(parsed_message)
@@ -29,11 +29,7 @@ module DjiMqttConnect
29
29
 
30
30
  # Build an instance of the class, or a generic message from the current class
31
31
  message_class = message_class_from_message_method(message_method, StatusMessage)
32
- message_class.new transformed_message
33
- rescue JSON::ParserError => e
34
- raise ParseError.new(e, "Unable to parse message as JSON")
35
- rescue Dry::Struct::Error => e
36
- raise ParseError.new(e, "Unexpected #{message_class} payload")
32
+ build_message(message_class, transformed_message)
37
33
  end
38
34
 
39
35
  private
@@ -62,7 +62,7 @@ module DjiMqttConnect
62
62
  # Attempts to look a the method attribute, and builds a specific Message class for the message
63
63
  def load(raw_message)
64
64
  # Parse the message from JSON
65
- parsed_message = JSON.parse(raw_message)
65
+ parsed_message = parse_json(raw_message)
66
66
 
67
67
  # Transform the message
68
68
  transformed_message = attribute_transformer.call(parsed_message)
@@ -70,11 +70,7 @@ module DjiMqttConnect
70
70
 
71
71
  # Build an instance of the class, or a generic message from the current class
72
72
  message_class = message_class_from_message_method(message_method, EventsMessage)
73
- message_class.new transformed_message
74
- rescue JSON::ParserError => e
75
- raise ParseError.new(e, "Unable to parse message as JSON")
76
- rescue Dry::Struct::Error => e
77
- raise ParseError.new(e, "Unexpected #{message_class} payload")
73
+ build_message(message_class, transformed_message)
78
74
  end
79
75
 
80
76
  private
@@ -6,6 +6,8 @@ require "json"
6
6
  module DjiMqttConnect
7
7
  module Thing::Product
8
8
  class OsdMarshal < MessageMarshal
9
+ include Utils::MessageParsing
10
+
9
11
  # Make a copy of the raw data
10
12
  class AttributeTransformer < Dry::Transformer::Pipe
11
13
  import Dry::Transformer::Conditional
@@ -36,7 +38,7 @@ module DjiMqttConnect
36
38
 
37
39
  # Parse message from Device > Cloud Server
38
40
  def load(raw_message)
39
- parsed_message = JSON.parse(raw_message)
41
+ parsed_message = parse_json(raw_message)
40
42
 
41
43
  message_data = parsed_message.fetch("data", {})
42
44
 
@@ -53,11 +55,7 @@ module DjiMqttConnect
53
55
 
54
56
  transformed_message = attribute_transformer.call(parsed_message)
55
57
 
56
- message_class.new(transformed_message)
57
- rescue JSON::ParserError => e
58
- raise ParseError.new(e, "Unable to parse message as JSON")
59
- rescue Dry::Struct::Error => e
60
- raise ParseError.new(e, "Invalid #{message_class} payload")
58
+ build_message(message_class, transformed_message)
61
59
  end
62
60
 
63
61
  private
@@ -22,7 +22,7 @@ module DjiMqttConnect
22
22
  # Attempts to look a the method attribute, and builds a specific Message class for the message
23
23
  def load(raw_message)
24
24
  # Parse the message from JSON
25
- parsed_message = JSON.parse(raw_message)
25
+ parsed_message = parse_json(raw_message)
26
26
 
27
27
  # Transform the message
28
28
  transformed_message = attribute_transformer.call(parsed_message)
@@ -30,11 +30,7 @@ module DjiMqttConnect
30
30
 
31
31
  # Build an instance of the class, or a generic message from the current class
32
32
  message_class = message_class_from_message_method(message_method, RequestsMessage)
33
- message_class.new transformed_message
34
- rescue JSON::ParserError => e
35
- raise ParseError.new(e, "Unable to parse message as JSON")
36
- rescue Dry::Struct::Error => e
37
- raise ParseError.new(e, "Unexpected #{message_class} payload")
33
+ build_message(message_class, transformed_message)
38
34
  end
39
35
 
40
36
  private
@@ -22,7 +22,7 @@ module DjiMqttConnect
22
22
  # Attempts to look a the method attribute, and builds a specific Message class for the message
23
23
  def load(raw_message)
24
24
  # Parse the message from JSON
25
- parsed_message = JSON.parse(raw_message)
25
+ parsed_message = parse_json(raw_message)
26
26
 
27
27
  # Transform the message
28
28
  transformed_message = attribute_transformer.call(parsed_message)
@@ -30,11 +30,7 @@ module DjiMqttConnect
30
30
 
31
31
  # Build an instance of the class, or a generic message from the current class
32
32
  message_class = message_class_from_message_method(message_method, ServicesReplyMessage)
33
- message_class.new transformed_message
34
- rescue JSON::ParserError => e
35
- raise ParseError.new(e, "Unable to parse message as JSON")
36
- rescue Dry::Struct::Error => e
37
- raise ParseError.new(e, "Unexpected #{message_class} payload")
33
+ build_message(message_class, transformed_message)
38
34
  end
39
35
 
40
36
  private
@@ -21,17 +21,13 @@ module DjiMqttConnect
21
21
  # Attempts to look a the method attribute, and builds a specific Message class for the message
22
22
  def load(raw_message)
23
23
  # Parse the message from JSON
24
- parsed_message = JSON.parse(raw_message)
24
+ parsed_message = parse_json(raw_message)
25
25
 
26
26
  # Transform the message
27
27
  transformed_message = attribute_transformer.call(parsed_message)
28
28
 
29
29
  # Build an instance of the class, or a generic message from the current class
30
- StateMessage.new transformed_message
31
- rescue JSON::ParserError => e
32
- raise ParseError.new(e, "Unable to parse message as JSON")
33
- rescue Dry::Struct::Error => e
34
- raise ParseError.new(e, "Unexpected #{StateMessage} payload")
30
+ build_message(StateMessage, transformed_message)
35
31
  end
36
32
 
37
33
  private
@@ -13,7 +13,7 @@ module DjiMqttConnect
13
13
  attribute :file do
14
14
  attribute :object_key, Types::String
15
15
 
16
- attribute :path, Types::String
16
+ attribute :path, Types::String | Types::Nil
17
17
 
18
18
  attribute :name, Types::String
19
19
 
@@ -35,7 +35,7 @@ module DjiMqttConnect
35
35
 
36
36
  attribute :relative_altitude, Types::JSON::Decimal
37
37
 
38
- attribute :created_time, Types::JSON::DateTime
38
+ attribute :created_time, Types::JSON::DateTime | Types::Nil
39
39
 
40
40
  attribute :shoot_position do
41
41
  include Mixins::LatitudeConditional
@@ -16,7 +16,7 @@ module DjiMqttConnect
16
16
  attribute :ext do
17
17
  attribute :current_waypoint_index, Types::Integer
18
18
  attribute? :media_count, Types::Integer
19
- attribute :track_id, Types::String
19
+ attribute :track_id, Types::String | Types::Nil
20
20
  attribute :flight_id, Types::String
21
21
 
22
22
  attribute? :break_point do
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DjiMqttConnect
4
+ module Thing::Product
5
+ class OfflineMapSyncProgressEventsMessage < EventsMessage
6
+ attribute :_method, Types::String.enum("offline_map_sync_progress")
7
+
8
+ attribute :data do
9
+ attribute :status, Types::String
10
+ attribute :reason, Types::Integer
11
+ attribute :file, Types::String | Types::Nil
12
+ end
13
+ end
14
+ end
15
+ end
@@ -31,7 +31,8 @@ module DjiMqttConnect
31
31
  "flight_areas_sync_progress",
32
32
  "flighttask_progress",
33
33
  "flighttask_ready",
34
- "highest_priority_upload_flighttask_media"
34
+ "highest_priority_upload_flighttask_media",
35
+ "offline_map_sync_progress"
35
36
  )
36
37
 
37
38
  attribute :data do
@@ -32,11 +32,11 @@ module DjiMqttConnect
32
32
  include Mixins::TemperatureConditional
33
33
 
34
34
  attribute :capacity_percent, Types::Integer
35
- attribute :firmware_version, Types::String
35
+ attribute :firmware_version, Types::String | Types::Nil
36
36
  attribute? :high_voltage_storage_days, Types::Integer
37
37
  attribute :index, Types::Integer
38
38
  attribute :loop_times, Types::Integer
39
- attribute :sn, Types::String
39
+ attribute :sn, Types::String | Types::Nil
40
40
  attribute :sub_type, Types::DeviceSubType
41
41
  attribute :temperature, Types::Temperature
42
42
  attribute :type, Types::DeviceType
@@ -58,7 +58,7 @@ module DjiMqttConnect
58
58
  end
59
59
  attribute :elevation, Types::JSON::Decimal
60
60
 
61
- attribute? :firmware_version, Types::String
61
+ attribute? :firmware_version, Types::String | Types::Nil
62
62
  attribute :gear, Types::Integer
63
63
  attribute :height, Types::JSON::Decimal
64
64
  attribute? :height_limit, Types::JSON::Decimal
@@ -79,7 +79,7 @@ module DjiMqttConnect
79
79
  end
80
80
  attribute :total_flight_distance, Types::JSON::Decimal
81
81
  attribute :total_flight_time, Types::JSON::Decimal
82
- attribute? :track_id, Types::String
82
+ attribute? :track_id, Types::String | Types::Nil
83
83
  attribute :vertical_speed, Types::JSON::Decimal
84
84
  attribute :wind_direction, Types::JSON::Decimal
85
85
  attribute :wind_speed, Types::JSON::Decimal
@@ -15,7 +15,7 @@ module DjiMqttConnect
15
15
  attribute? :live_status do
16
16
  attribute :live_time, Types::Integer
17
17
  attribute :live_trendline, Types::Integer
18
- attribute :video_id, Types::String
18
+ attribute :video_id, Types::String | Types::Nil
19
19
  attribute :video_quality, Types::Integer
20
20
  end
21
21
  attribute? :transmission_signal_quality, Types::Integer
@@ -8,9 +8,9 @@ module DjiMqttConnect
8
8
 
9
9
  attribute :data do
10
10
  attribute :bind_devices, Types::Array do
11
- attribute :device_binding_code, Types::String
12
- attribute :organization_id, Types::String
13
- attribute :device_callsign, Types::String
11
+ attribute :device_binding_code, Types::String | Types::Nil
12
+ attribute :organization_id, Types::String | Types::Nil
13
+ attribute :device_callsign, Types::String | Types::Nil
14
14
  attribute :sn, Types::String
15
15
  attribute :device_model_key, Types::String
16
16
  attribute :device_nonce, Types::String
@@ -7,8 +7,8 @@ module DjiMqttConnect
7
7
  attribute :_method, Types::String.enum("airport_organization_get")
8
8
 
9
9
  attribute :data do
10
- attribute :device_binding_code, Types::String
11
- attribute :organization_id, Types::String
10
+ attribute :device_binding_code, Types::String | Types::Nil
11
+ attribute :organization_id, Types::String | Types::Nil
12
12
  end
13
13
  end
14
14
  end
@@ -0,0 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DjiMqttConnect
4
+ module Thing::Product
5
+ # Get the offline map data
6
+ # https://developer.dji.com/doc/cloud-api-tutorial/en/faq.html#why-does-the-third-party-platform-experience-prolonged-wait-time-when-executing-one-key-takeoff-or-wayline-missions-on-the-dock
7
+ class OfflineMapGetRequestsMessage < RequestsMessage
8
+ attribute :_method, Types::String.enum("offline_map_get")
9
+
10
+ attribute :data, Types::Hash
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DjiMqttConnect
4
+ module Thing::Product
5
+ # https://developer.dji.com/doc/cloud-api-tutorial/en/faq.html#why-does-the-third-party-platform-experience-prolonged-wait-time-when-executing-one-key-takeoff-or-wayline-missions-on-the-dock
6
+ class OfflineMapGetRequestsReplyMessage < Message
7
+ def self.build_for(offline_map_get, result: 0)
8
+ new(
9
+ _method: offline_map_get._method,
10
+ data: {
11
+ result: result
12
+ },
13
+ tid: offline_map_get.tid,
14
+ bid: offline_map_get.bid,
15
+ timestamp: current_timestamp
16
+ )
17
+ end
18
+
19
+ attribute :tid, Types::UUID
20
+ attribute :bid, Types::UUID
21
+ attribute :timestamp, Types::Timestamp
22
+
23
+ attribute :_method, Types::String.enum("offline_map_get")
24
+ attribute :data do
25
+ attribute :result, Types::ResultCode
26
+ end
27
+ end
28
+ end
29
+ end
@@ -5,6 +5,47 @@ module DjiMqttConnect
5
5
  module MessageParsing
6
6
  private
7
7
 
8
+ def parse_json(raw_message)
9
+ parsed_message = JSON.parse(raw_message)
10
+ strip_blank_strings(parsed_message)
11
+ rescue JSON::ParserError => e
12
+ raise ParseError.new(e, "Unable to parse message as JSON (#{e.message})")
13
+ end
14
+
15
+ def strip_blank_strings(object)
16
+ case object
17
+ when Hash
18
+ object.transform_values(&method(:strip_blank_strings))
19
+ when Array
20
+ object.map(&method(:strip_blank_strings))
21
+ when String
22
+ object.strip.presence
23
+ else
24
+ object
25
+ end
26
+ end
27
+
28
+ def build_message(message_class, transformed_message)
29
+ message_class.new transformed_message
30
+ rescue Dry::Struct::Error => e
31
+ # Get the source of the error and the error message (without the source)
32
+ source = e.message.include?(".new] ") ? e.message.split(".new] ").first.sub(/\A\[/, "") : message_class.name
33
+ error_message = e.message.split(".new] ").last
34
+
35
+ case e.cause
36
+ when Dry::Types::SchemaError
37
+ # Clean up the error message to be more developer-friendly
38
+ # e.message: [DjiMqttConnect::Sys::Product::StatusMessage.new] nil (NilClass) has invalid type for :_data violates constraints (type?(Hash, nil) failed)
39
+ # e.cause.message: nil (NilClass) has invalid type for :_data violates constraints (type?(Hash, nil) failed)
40
+ cause_key = e.cause.key.to_s.sub("_data", "data")
41
+ cause_message = "#{e.cause.value.inspect} (#{e.cause.value.class.name}) is invalid type for :#{cause_key}"
42
+ # cause_message: nil (NilClass) is invalid type for :data
43
+ raise ParseError.new(e, "Unexpected #{source} payload (#{cause_message})")
44
+ else
45
+ raise ParseError.new(e, "Unexpected #{source} payload (#{error_message})")
46
+ end
47
+ end
48
+
8
49
  def message_class_from_message_method(message_method, generic_class)
9
50
  return generic_class if message_method.blank?
10
51
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DjiMqttConnect
4
- VERSION = "0.1.21"
4
+ VERSION = "0.1.22.1"
5
5
  end
@@ -48,6 +48,7 @@ module DjiMqttConnect
48
48
  autoload :FlighttaskReadyEventsMessage, "dji_mqtt_connect/messages/thing/product/events/flighttask_ready"
49
49
  autoload :HighestPriorityUploadFlighttaskMediaEventsMessage, "dji_mqtt_connect/messages/thing/product/events/highest_priority_upload_flighttask_media"
50
50
  autoload :HmsEventsMessage, "dji_mqtt_connect/messages/thing/product/events/hms"
51
+ autoload :OfflineMapSyncProgressEventsMessage, "dji_mqtt_connect/messages/thing/product/events/offline_map_sync_progress"
51
52
  autoload :ReturnHomeInfoEventsMessage, "dji_mqtt_connect/messages/thing/product/events/return_home_info"
52
53
  autoload :StatusCodeEventsMessage, "dji_mqtt_connect/messages/thing/product/events/status_code"
53
54
  autoload :TrackEventsMessage, "dji_mqtt_connect/messages/thing/product/events/track"
@@ -66,6 +67,7 @@ module DjiMqttConnect
66
67
  autoload :ConfigRequestsMessage, "dji_mqtt_connect/messages/thing/product/requests/config"
67
68
  autoload :FlightAreasGetRequestsMessage, "dji_mqtt_connect/messages/thing/product/requests/flight_areas_get"
68
69
  autoload :FlighttaskResourceGetRequestsMessage, "dji_mqtt_connect/messages/thing/product/requests/flighttask_resource_get"
70
+ autoload :OfflineMapGetRequestsMessage, "dji_mqtt_connect/messages/thing/product/requests/offline_map_get"
69
71
  autoload :StorageConfigGetRequestsMessage, "dji_mqtt_connect/messages/thing/product/requests/storage_config_get"
70
72
  autoload :RequestsMessage, "dji_mqtt_connect/messages/thing/product/requests_message"
71
73
 
@@ -75,6 +77,7 @@ module DjiMqttConnect
75
77
  autoload :FlightAreasGetRequestsReplyMessage, "dji_mqtt_connect/messages/thing/product/requests_reply/flight_areas_get"
76
78
  autoload :ConfigRequestsReplyMessage, "dji_mqtt_connect/messages/thing/product/requests_reply/config"
77
79
  autoload :FlighttaskResourceGetRequestsReplyMessage, "dji_mqtt_connect/messages/thing/product/requests_reply/flighttask_resource_get"
80
+ autoload :OfflineMapGetRequestsReplyMessage, "dji_mqtt_connect/messages/thing/product/requests_reply/offline_map_get"
78
81
  autoload :StorageConfigGetRequestsReplyMessage, "dji_mqtt_connect/messages/thing/product/requests_reply/storage_config_get"
79
82
 
80
83
  autoload :ServicesMessage, "dji_mqtt_connect/messages/thing/product/services_message"
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.21
4
+ version: 0.1.22.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-04-12 00:00:00.000000000 Z
11
+ date: 2024-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -142,6 +142,7 @@ files:
142
142
  - lib/dji_mqtt_connect/messages/thing/product/events/flighttask_ready.rb
143
143
  - lib/dji_mqtt_connect/messages/thing/product/events/highest_priority_upload_flighttask_media.rb
144
144
  - lib/dji_mqtt_connect/messages/thing/product/events/hms.rb
145
+ - lib/dji_mqtt_connect/messages/thing/product/events/offline_map_sync_progress.rb
145
146
  - lib/dji_mqtt_connect/messages/thing/product/events/return_home_info.rb
146
147
  - lib/dji_mqtt_connect/messages/thing/product/events/status_code.rb
147
148
  - lib/dji_mqtt_connect/messages/thing/product/events/track.rb
@@ -157,6 +158,7 @@ files:
157
158
  - lib/dji_mqtt_connect/messages/thing/product/requests/config.rb
158
159
  - lib/dji_mqtt_connect/messages/thing/product/requests/flight_areas_get.rb
159
160
  - lib/dji_mqtt_connect/messages/thing/product/requests/flighttask_resource_get.rb
161
+ - lib/dji_mqtt_connect/messages/thing/product/requests/offline_map_get.rb
160
162
  - lib/dji_mqtt_connect/messages/thing/product/requests/storage_config_get.rb
161
163
  - lib/dji_mqtt_connect/messages/thing/product/requests_message.rb
162
164
  - lib/dji_mqtt_connect/messages/thing/product/requests_reply/airport_bind_status.rb
@@ -165,6 +167,7 @@ files:
165
167
  - lib/dji_mqtt_connect/messages/thing/product/requests_reply/config.rb
166
168
  - lib/dji_mqtt_connect/messages/thing/product/requests_reply/flight_areas_get.rb
167
169
  - lib/dji_mqtt_connect/messages/thing/product/requests_reply/flighttask_resource_get.rb
170
+ - lib/dji_mqtt_connect/messages/thing/product/requests_reply/offline_map_get.rb
168
171
  - lib/dji_mqtt_connect/messages/thing/product/requests_reply/storage_config_get.rb
169
172
  - lib/dji_mqtt_connect/messages/thing/product/services/alarm_state_switch.rb
170
173
  - lib/dji_mqtt_connect/messages/thing/product/services/cover_close.rb
@@ -251,7 +254,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
251
254
  - !ruby/object:Gem::Version
252
255
  version: '0'
253
256
  requirements: []
254
- rubygems_version: 3.5.4
257
+ rubygems_version: 3.5.15
255
258
  signing_key:
256
259
  specification_version: 4
257
260
  summary: Manages MQTT Connections with DJI Drones