dji_mqtt_connect 0.1.5 → 0.1.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b81ef7e12ef07f8f3d42d5bae091f2f5d3e99c4afe3bea10cf1b5bacf8592a83
4
- data.tar.gz: b374963480351bdbb3de7418d3fbcbd8bf6a6c8785b7e107051c3fcddf870676
3
+ metadata.gz: 582b7c6a4036b0190421f3d2fd80ab8f6428cfabb7c5b7eda8f2240e95e1788d
4
+ data.tar.gz: 3e831322588f0ef27d278b1463c8a87ee07f4eb3e982ec7367d61a7cfb4ed051
5
5
  SHA512:
6
- metadata.gz: e97c71486c48d8c475b212e804c1ad8e12e5e32dc9769dd2332465b34a86c9ff5429e37727000cc606704eba10916d62226f1ebc3ebbef2b23382292ab5274b5
7
- data.tar.gz: 6f35209caa9a35bbf8ca3e82fa24d103b6387d026334e7ecb4f3454c0327c03b598ed67b1e614f40742d26ff87f78c5391e9d8e1c947c58ff1d7a076f3d02588
6
+ metadata.gz: 423e217b569b6272a228a841afc88e34aede3f56407dd10a79277fa893386da326220c8233042d05a7810b28d1152b982777e0874f9003632c1d52f1f61fd872
7
+ data.tar.gz: c8a5308a2da2825d196efe9d34a7f67a1d1df6482f4a3d3a9a755b276dbe65f0eb70d2634eeaeba2c8c56e5928c105f377d9bb6a49e9bfd8e52e266019b0162f
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dji_mqtt_connect (0.1.5)
4
+ dji_mqtt_connect (0.1.7)
5
5
  activesupport (>= 6.0, <= 8)
6
6
  dry-struct (~> 1.6)
7
7
  dry-transformer (~> 1.0)
@@ -115,6 +115,50 @@ module DjiMqttConnect
115
115
  )
116
116
  end
117
117
 
118
+ def build_thing_product_airport_organization_bind_requests_message
119
+ message_data = {
120
+ bind_devices: [
121
+ {
122
+ device_binding_code: "",
123
+ organization_id: "curo",
124
+ device_callsign: "",
125
+ sn: "DOCK01",
126
+ device_secret: "DEVICE_SECRET",
127
+ device_nonce: "DEVICE_NONCE",
128
+ device_model_key: "3-1-0"
129
+ },
130
+ {
131
+ device_binding_code: "",
132
+ organization_id: "curo",
133
+ device_callsign: "",
134
+ sn: "M30DRONE01",
135
+ device_secret: "DEVICE_SECRET",
136
+ device_nonce: "DEVICE_NONCE",
137
+ device_model_key: "0-67-0"
138
+ }
139
+ ]
140
+ }
141
+
142
+ Thing::Product::AirportOrganizationBindRequestsMessage.new(
143
+ _method: "airport_organization_bind",
144
+ _data: message_data,
145
+ tid: "3093aad5-bb98-5026-685a-cea540eb9267",
146
+ bid: "479533e0-cb01-933c-3758-22f2a82abeb8",
147
+ timestamp: 1679380233000,
148
+ data: message_data,
149
+ gateway: "DOCK01"
150
+ )
151
+ end
152
+
153
+ def build_thing_product_airport_organization_bind_requests_reply_message
154
+ airport_organization_bind_request = build_thing_product_airport_organization_bind_requests_message
155
+
156
+ Thing::Product::AirportOrganizationBindRequestsReplyMessage.build_for(
157
+ airport_organization_bind_request,
158
+ result: 0
159
+ )
160
+ end
161
+
118
162
  def build_thing_product_airport_organization_get_requests_message
119
163
  message_data = {
120
164
  device_binding_code: "device_binding_code",
@@ -45,6 +45,15 @@ module DjiMqttConnect
45
45
  unwrap "data", ["method"]
46
46
  end
47
47
 
48
+ # Fix the legacy status code message
49
+ guard ->(message) { message.dig("data", "method") == "status_code" } do
50
+ map_value "data" do
51
+ unwrap "output", ["codes"]
52
+ end
53
+
54
+ unwrap "data", ["method"]
55
+ end
56
+
48
57
  rename_keys "method" => "_method"
49
58
  end
50
59
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DjiMqttConnect
4
+ module Thing::Product
5
+ # https://developer.dji.com/doc/cloud-api-tutorial/en/server-api-reference/mqtt/thing-model/gateway/dock/organization.html#device-bind-to-organization
6
+ class AirportOrganizationBindRequestsMessage < RequestsMessage
7
+ attribute :_method, Types::String.enum("airport_organization_bind")
8
+
9
+ attribute :data do
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
14
+ attribute :sn, Types::String
15
+ attribute :device_model_key, Types::String
16
+ attribute :device_nonce, Types::String
17
+ attribute :device_secret, Types::String
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DjiMqttConnect
4
+ module Thing::Product
5
+ # https://developer.dji.com/doc/cloud-api-tutorial/en/server-api-reference/mqtt/thing-model/gateway/dock/organization.html#device-bind-to-organization
6
+ class AirportOrganizationBindRequestsReplyMessage < Message
7
+ def self.build_for(airport_organization_bind_message, err_infos: [], result: 0)
8
+ new(
9
+ _method: airport_organization_bind_message._method,
10
+ tid: airport_organization_bind_message.tid,
11
+ bid: airport_organization_bind_message.bid,
12
+ timestamp: Time.now.strftime("%s%L").to_i,
13
+ data: {
14
+ result: result,
15
+ err_infos: err_infos
16
+ }
17
+ )
18
+ end
19
+
20
+ attribute :tid, Types::UUID
21
+ attribute :bid, Types::UUID
22
+ attribute :timestamp, Types::Timestamp
23
+
24
+ attribute :_method, Types::String.enum("airport_organization_bind")
25
+
26
+ attribute :data do
27
+ attribute :result, Types::Integer
28
+ attribute :err_infos, Types::Array do
29
+ attribute :sn, Types::String
30
+
31
+ # Custom field. Non-zero indicates that the bind was unsuccessful.
32
+ attribute :err_code, Types::Integer
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DjiMqttConnect
4
+ module Thing::Product
5
+ class FileUploadCallbackEventsMessage < EventsMessage
6
+ attribute :_method, Types::String.enum("file_upload_callback")
7
+
8
+ # NOTE: Not documented, but appears in examples
9
+ attribute? :need_reply, Types::Integer.enum(0, 1)
10
+
11
+ attribute :data do
12
+ attribute :file do
13
+ attribute :object_key, Types::String
14
+
15
+ attribute :path, Types::String
16
+
17
+ attribute :name, Types::String
18
+
19
+ attribute :ext do
20
+ attribute :flight_id, Types::String
21
+
22
+ attribute :drone_model_key, Types::String
23
+
24
+ attribute :payload_model_key, Types::String
25
+
26
+ # {"0":"No","1":"Yes"}
27
+ attribute :is_original, Types::Bool
28
+ end
29
+
30
+ attribute :metadata do
31
+ attribute :gimbal_yaw_degree, Types::JSON::Decimal
32
+
33
+ attribute :absolute_altitude, Types::JSON::Decimal
34
+
35
+ attribute :relative_altitude, Types::JSON::Decimal
36
+
37
+ attribute :created_time, Types::JSON::DateTime
38
+
39
+ attribute :shoot_position do
40
+ include Mixins::LatitudeConditional
41
+ include Mixins::LongitudeConditional
42
+
43
+ attribute :lat, Types::Latitude
44
+ attribute :lng, Types::Longitude
45
+
46
+ alias_method :latitude, :lat
47
+ alias_method :longitude, :lng
48
+ end
49
+ end
50
+ end
51
+
52
+ attribute :result, Types::Integer
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DjiMqttConnect
4
+ module Thing::Product
5
+ # NOTE: Message is not documented, but observed from M30 Drones
6
+ class StatusCodeEventsMessage < EventsMessage
7
+ attribute :_method, Types::String.enum("status_code")
8
+
9
+ attribute :data do
10
+ attribute :codes, Types::Array do
11
+ attribute :id, Types::Integer
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DjiMqttConnect
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.7"
5
5
  end
@@ -33,7 +33,9 @@ module DjiMqttConnect
33
33
  module Thing
34
34
  module Product
35
35
  # Messages
36
+ autoload :FileUploadCallbackEventsMessage, "dji_mqtt_connect/messages/thing/product/file_upload_callback_events_message"
36
37
  autoload :HmsEventsMessage, "dji_mqtt_connect/messages/thing/product/hms_events_message"
38
+ autoload :StatusCodeEventsMessage, "dji_mqtt_connect/messages/thing/product/status_code_events_message"
37
39
  autoload :EventsMessage, "dji_mqtt_connect/messages/thing/product/events_message"
38
40
 
39
41
  autoload :OsdMessage, "dji_mqtt_connect/messages/thing/product/osd_message"
@@ -42,12 +44,14 @@ module DjiMqttConnect
42
44
  autoload :RemoteOsdMessage, "dji_mqtt_connect/messages/thing/product/remote_osd_message"
43
45
 
44
46
  autoload :AirportBindStatusRequestsMessage, "dji_mqtt_connect/messages/thing/product/airport_bind_status_requests_message"
47
+ autoload :AirportOrganizationBindRequestsMessage, "dji_mqtt_connect/messages/thing/product/airport_organization_bind_requests_message"
45
48
  autoload :AirportOrganizationGetRequestsMessage, "dji_mqtt_connect/messages/thing/product/airport_organization_get_requests_message"
46
49
  autoload :ConfigRequestsMessage, "dji_mqtt_connect/messages/thing/product/config_requests_message"
47
50
  autoload :StorageConfigGetRequestsMessage, "dji_mqtt_connect/messages/thing/product/storage_config_get_requests_message"
48
51
  autoload :RequestsMessage, "dji_mqtt_connect/messages/thing/product/requests_message"
49
52
 
50
53
  autoload :AirportBindStatusRequestsReplyMessage, "dji_mqtt_connect/messages/thing/product/airport_bind_status_requests_reply_message"
54
+ autoload :AirportOrganizationBindRequestsReplyMessage, "dji_mqtt_connect/messages/thing/product/airport_organization_bind_requests_reply_message"
51
55
  autoload :AirportOrganizationGetRequestsReplyMessage, "dji_mqtt_connect/messages/thing/product/airport_organization_get_requests_reply_message"
52
56
  autoload :ConfigRequestsReplyMessage, "dji_mqtt_connect/messages/thing/product/config_requests_reply_message"
53
57
  autoload :StorageConfigGetRequestsReplyMessage, "dji_mqtt_connect/messages/thing/product/storage_config_get_requests_reply_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.5
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sphere Drones
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-05-16 00:00:00.000000000 Z
11
+ date: 2023-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -121,6 +121,8 @@ files:
121
121
  - lib/dji_mqtt_connect/messages/sys/product/update_topo_status_reply_message.rb
122
122
  - lib/dji_mqtt_connect/messages/thing/product/airport_bind_status_requests_message.rb
123
123
  - lib/dji_mqtt_connect/messages/thing/product/airport_bind_status_requests_reply_message.rb
124
+ - lib/dji_mqtt_connect/messages/thing/product/airport_organization_bind_requests_message.rb
125
+ - lib/dji_mqtt_connect/messages/thing/product/airport_organization_bind_requests_reply_message.rb
124
126
  - lib/dji_mqtt_connect/messages/thing/product/airport_organization_get_requests_message.rb
125
127
  - lib/dji_mqtt_connect/messages/thing/product/airport_organization_get_requests_reply_message.rb
126
128
  - lib/dji_mqtt_connect/messages/thing/product/config_requests_message.rb
@@ -128,10 +130,12 @@ files:
128
130
  - lib/dji_mqtt_connect/messages/thing/product/dock_osd_message.rb
129
131
  - lib/dji_mqtt_connect/messages/thing/product/drone_osd_message.rb
130
132
  - lib/dji_mqtt_connect/messages/thing/product/events_message.rb
133
+ - lib/dji_mqtt_connect/messages/thing/product/file_upload_callback_events_message.rb
131
134
  - lib/dji_mqtt_connect/messages/thing/product/hms_events_message.rb
132
135
  - lib/dji_mqtt_connect/messages/thing/product/osd_message.rb
133
136
  - lib/dji_mqtt_connect/messages/thing/product/remote_osd_message.rb
134
137
  - lib/dji_mqtt_connect/messages/thing/product/requests_message.rb
138
+ - lib/dji_mqtt_connect/messages/thing/product/status_code_events_message.rb
135
139
  - lib/dji_mqtt_connect/messages/thing/product/storage_config_get_requests_message.rb
136
140
  - lib/dji_mqtt_connect/messages/thing/product/storage_config_get_requests_reply_message.rb
137
141
  - lib/dji_mqtt_connect/mixins/latitude_conditional.rb