dji_mqtt_connect 0.1.19.2 → 0.1.20.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/dji_mqtt_connect/marshals/thing/product/events_marshal.rb +2 -5
- data/lib/dji_mqtt_connect/messages/thing/product/events/airsense_warning.rb +35 -0
- data/lib/dji_mqtt_connect/messages/thing/product/events_reply_message.rb +1 -0
- data/lib/dji_mqtt_connect/version.rb +1 -1
- data/lib/dji_mqtt_connect.rb +1 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20c0a46731aaabdaedbb0c44ccf73c73a568440762a2a5b09f9ec23a241bef04
|
4
|
+
data.tar.gz: b7e616d46c8e4701fd28b5a68089e7610fde5a770cf8c01d17144d331d0be3b8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40f586f623c7c269b3de4b54265b4efb1a2145f64462b974c3f4b01d9f775f5772c715a7cfff1970a63e8124179619245ce88cf1d282134f7b329857e874a6cc
|
7
|
+
data.tar.gz: 9716ab8742e0e598863e7272ab2c612c00ccf895e8e7d62ecb0aff45f31c1cfef5061c053140120e7fd310406f7a0e691a6024dd58e76a36739331905959b259
|
data/Gemfile.lock
CHANGED
@@ -20,7 +20,7 @@ module DjiMqttConnect
|
|
20
20
|
copy_keys "data" => "_data"
|
21
21
|
|
22
22
|
# Fix the legacy hms message
|
23
|
-
guard ->(message) { message.dig("data", "method") == "hms" } do
|
23
|
+
guard ->(message) { message["method"].blank? && message.dig("data", "method") == "hms" } do
|
24
24
|
map_value "data" do
|
25
25
|
reject_keys ["event"]
|
26
26
|
|
@@ -47,7 +47,7 @@ module DjiMqttConnect
|
|
47
47
|
end
|
48
48
|
|
49
49
|
# Fix the legacy status code message
|
50
|
-
guard ->(message) { message.dig("data", "method") == "status_code" } do
|
50
|
+
guard ->(message) { message["method"].blank? && message.dig("data", "method") == "status_code" } do
|
51
51
|
map_value "data" do
|
52
52
|
unwrap "output", ["codes"]
|
53
53
|
end
|
@@ -75,9 +75,6 @@ module DjiMqttConnect
|
|
75
75
|
raise ParseError.new(e, "Unable to parse message as JSON")
|
76
76
|
rescue Dry::Struct::Error => e
|
77
77
|
raise ParseError.new(e, "Unexpected #{message_class} payload")
|
78
|
-
rescue TypeError => e
|
79
|
-
# FIXME: airsense messages have data as an array, this breaks a lot of code...
|
80
|
-
raise ParseError.new(e, "Unable to parse message")
|
81
78
|
end
|
82
79
|
|
83
80
|
private
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module DjiMqttConnect
|
4
|
+
module Thing::Product
|
5
|
+
class AirsenseWarningEventsMessage < EventsMessage
|
6
|
+
attribute :_method, Types::String.enum("airsense_warning")
|
7
|
+
attribute :_data, Types::Array
|
8
|
+
|
9
|
+
attribute :data, Types::Array do
|
10
|
+
attribute :icao, Types::String
|
11
|
+
|
12
|
+
# {"0":"No danger","1":"Level one","2":"Level two","3":"Level three","4":"Level four"}
|
13
|
+
attribute :warning_level, Types::Integer.enum(0, 1, 2, 3, 4)
|
14
|
+
|
15
|
+
attribute :latitude, Types::Latitude
|
16
|
+
|
17
|
+
attribute :longitude, Types::Longitude
|
18
|
+
|
19
|
+
attribute :altitude, Types::Integer
|
20
|
+
|
21
|
+
# {"0":"Ellipsoid height","1":"altitude"}
|
22
|
+
attribute :altitude_type, Types::Integer.enum(0, 1)
|
23
|
+
|
24
|
+
attribute :distance, Types::Integer
|
25
|
+
|
26
|
+
attribute :heading, Types::JSON::Decimal
|
27
|
+
|
28
|
+
attribute :relative_altitude, Types::Integer
|
29
|
+
|
30
|
+
# {"0":"Relative height unchanged","1":"Relative height increase","2":"Relative height decrease"}
|
31
|
+
attribute :vert_trend, Types::Integer.enum(0, 1, 2)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/dji_mqtt_connect.rb
CHANGED
@@ -34,6 +34,7 @@ module DjiMqttConnect
|
|
34
34
|
module Thing
|
35
35
|
module Product
|
36
36
|
# Messages
|
37
|
+
autoload :AirsenseWarningEventsMessage, "dji_mqtt_connect/messages/thing/product/events/airsense_warning"
|
37
38
|
autoload :CoverCloseEventsMessage, "dji_mqtt_connect/messages/thing/product/events/cover_close"
|
38
39
|
autoload :CoverOpenEventsMessage, "dji_mqtt_connect/messages/thing/product/events/cover_open"
|
39
40
|
autoload :DeviceLogEventsMessage, "dji_mqtt_connect/messages/thing/product/events/device_log"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dji_mqtt_connect
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.20.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sphere Drones
|
@@ -127,6 +127,7 @@ files:
|
|
127
127
|
- lib/dji_mqtt_connect/messages/sys/product/status/update_topo.rb
|
128
128
|
- lib/dji_mqtt_connect/messages/sys/product/status_message.rb
|
129
129
|
- lib/dji_mqtt_connect/messages/sys/product/status_reply/update_topo.rb
|
130
|
+
- lib/dji_mqtt_connect/messages/thing/product/events/airsense_warning.rb
|
130
131
|
- lib/dji_mqtt_connect/messages/thing/product/events/cover_close.rb
|
131
132
|
- lib/dji_mqtt_connect/messages/thing/product/events/cover_open.rb
|
132
133
|
- lib/dji_mqtt_connect/messages/thing/product/events/device_exit_homing_notify.rb
|