Пример #1
0
        /// <inheritdoc cref="SensorBase.ProcessMessage(MqttMessage)"/>
        public new void ProcessMessage(MqttMessage mqttMessage)
        {
            Log.Info($"[ProcessMessage] Processing topic [{mqttMessage.GetRawTopic()}]: {mqttMessage.message}");

            var topic = mqttMessage.GetTopicWithoutDeviceId();

            // If we receive a message for our unload topic, call sensorHost.Dispose to start the process
            if (mqttMessage.GetTopicWithoutDeviceId() == "example3/unload_example_script" && mqttMessage.message == "unload")
            {
                Log.Info("Disposing of myself in 5 seconds..");
                System.Threading.Thread.Sleep(5000);
                sensorHost.Dispose();
            }
        }
Пример #2
0
        public new void ProcessMessage(MqttMessage mqttMessage)
        {
            Log.Debug($"[{GetSensorIdentifier()}] Processing topic [{mqttMessage.GetRawTopic()}]");

            if (mqttMessage.GetTopicWithoutDeviceId() == "uptime/get")
            {
                Log.Info("Received uptime request");
                if (!sensorHost.Publish(new MqttMessageBuilder().PublishMessage.AddDeviceIdToTopic.AddTopic("/uptime/current").SetMessage(GetUpTime().TotalMilliseconds.ToString()).DoNotRetain.Build()))
                {
                    Log.Info("Failed to publish to /example1/status");
                }
            }
            else if (mqttMessage.GetTopicWithoutDeviceId() == "uptime/current")
            {
                //Log.Info("Received uptime message: " + mqttMessage.message + "ms");
                Log.Info("Uptime received: " + HumanReadableTimeSpan(double.Parse(mqttMessage.message)));
            }
        }
Пример #3
0
        public new void ProcessMessage(MqttMessage mqttMessage)
        {
            var topic = mqttMessage.GetTopicWithoutDeviceId().Split('/');

            if (topic == null || topic.Length <= 3)
            {
                return;
            }
            var t = string.Join('/', topic[0..2]);
Пример #4
0
        private static void Client_MessageReceivedString(MqttMessage mqttMessage)
        {
            Boolean isAscii = mqttMessage.GetRawMessage().All(b => b >= 32 && b <= 127);

            if (!isAscii & (mqttMessage.GetRawMessage() != null || mqttMessage.GetRawMessage().Length != 0))
            {
                Log.Verbose($"Message received for [{mqttMessage.GetTopicWithoutDeviceId()}]: RAW Bytes: {mqttMessage.rawMessage.Length}");
            }
            else
            {
                Log.Verbose($"Message received for [{mqttMessage.GetTopicWithoutDeviceId()}]: {mqttMessage.message}");
            }
            if (sensorManager == null)
            {
                Log.Verbose($"SensorManager not initialized yet, adding to overflow..");
                overflow.Add(mqttMessage);
            }
            else
            {
                sensorManager.ProcessMessage(mqttMessage);
            }
        }
Пример #5
0
        public new void ProcessMessage(MqttMessage mqttMessage)
        {
            Log.Info($"[ProcessMessage] Processing topic [{mqttMessage.GetRawTopic()}]: {mqttMessage.message}");

            var topic = mqttMessage.GetTopicWithoutDeviceId().Split('/');

            if (topic == null || topic.Length <= 1)
            {
                return;
            }

            if (topic[0] == "computer")
            {
                HandleCommand(topic, mqttMessage.message);
            }
            else
            {
                Log.Info($"[ProcessMessage] Unknown topic [{mqttMessage.GetRawTopic()}]");
            }
        }