Sha256: b0de71220789b71d4c89aa5de8f696df386d60588c03309d26b854fe161703bd
Contents?: true
Size: 927 Bytes
Versions: 1
Compression:
Stored size: 927 Bytes
Contents
# frozen_string_literal: true module DjiMqttConnect module Thing::Product class OsdTopicRepository < TopicRepository OSD_TOPIC_REGEX = /\Athing\/product\/(?<device_identifier>.+)\/osd\z/ def listen! listen_to_topic("thing/product/+/osd") do |topic, raw_message| logger.debug(raw_message) matched_topic = OSD_TOPIC_REGEX.match(topic) raise Error, "Unknown topic: #{topic}" unless matched_topic device_identifier = matched_topic[:device_identifier] message = OsdMarshal.load(raw_message) logger.info("Received #{message} from #{device_identifier}") # Build event name and broadcast (i.e. ::RemoteOsdMessage => remote_osd_update) event_name = message.class.name.demodulize.sub(/Message\z/, "Update").underscore.to_sym broadcast(event_name, device_identifier, message) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dji_mqtt_connect-0.1.0 | lib/dji_mqtt_connect/topics/thing/product/osd.rb |