コード例 #1
0
        public static async Task UpdateDeviceData(Device device, Protocol.PT_RX.Packet packet)
        {
            device.Datapoint.LatestDataValues = packet;
            device.Datapoint.LastUpdate       = DateTime.Now;
            //string newData = CI.GetDataFromPacket(packet.MGW_RX_DATA, packet.MGW_RX_DATA_TYPE, "");
            foreach (Node node in device.Node)
            {
                switch (node.Type)
                {
                case "RSSI": { node.Value = packet.MGW_RX_RSSI.ToString(); break; }

                case "Battery": { node.Value = packet.MGW_RX_BATTERY.ToString(); break; }

                case "Dimmer": { node.Value = packet.MGW_RX_INFO_SHORT.ToString(); break; }

                default: { node.Value = CI.GetDataFromPacket(packet.MGW_RX_DATA, packet.MGW_RX_DATA_TYPE, ""); break; }
                }
                MyLogger.DoLog($"Updating data for {device.Name}'s {node.Name}: {node.Value}...", 4);
                await MQTT.SendMQTTMessageAsync($"{device.Name}/{node.PathName}/{node.PropertyList[0].PathName}", node.Value, true);
            }
        }