private void _edgeAgent_MessageReceived(object sender, MessageReceivedEventArgs e) { switch (e.Type) { case MessageType.WriteValue: WriteValueCommand wvcMsg = (WriteValueCommand)e.Message; foreach (var device in wvcMsg.DeviceList) { foreach (var tag in device.TagList) { if (tag.Value.GetType() == typeof(JObject)) { //Array Tag JObject arrayTag = JObject.Parse(tag.Value.ToString()); string index = arrayTag.First.Path; var value = arrayTag.First.First; Console.WriteLine("TagName: {0}, Index: {1}, Value: {2}", tag.Name, index, value.ToString()); } else { //Non-Array Tag Console.WriteLine("TagName: {0}, Value: {1}", tag.Name, tag.Value.ToString()); } } } break; /*case MessageType.WriteConfig: * break;*/ case MessageType.TimeSync: // when received this message TimeSyncCommand tscMsg = (TimeSyncCommand)e.Message; Console.WriteLine("UTC Time: {0}", tscMsg.UTCTime.ToString()); break; case MessageType.ConfigAck: ConfigAck cfgAckMsg = (ConfigAck)e.Message; MessageBox.Show(string.Format("Upload Config Result: {0}", cfgAckMsg.Result.ToString())); break; } }
public TimeSyncInstruction(TimeSyncCommand command, byte parameter) : base(command, parameter) { }
/* * private bool _sendData(EdgeData data) * { * try * { * return true; * } * catch (Exception ex) * { * //_logger.Error( ex.ToString() ); * return false; * } * } * * private bool _sendDeviceStatus(EdgeDeviceStatus deviceStatus) * { * try * { * return true; * } * catch (Exception ex) * { * //_logger.Error( ex.ToString() ); * return false; * } * } */ private void mqttClient_MessageReceived(object sender, MqttApplicationMessageReceivedEventArgs e) { try { if (MessageReceived == null) { return; } string payload = Encoding.UTF8.GetString(e.ApplicationMessage.Payload); //_logger.Info( "Recieved Message: {0}", payload ); JObject jObj = JObject.Parse(payload); if (jObj == null || jObj["d"] == null) { return; } dynamic obj = jObj as dynamic; if (jObj["d"]["Cmd"] != null) { switch ((string)obj.d.Cmd) { case "WV": WriteValueCommand wvcMsg = new WriteValueCommand(); foreach (JProperty devObj in obj.d.Val) { WriteValueCommand.Device device = new WriteValueCommand.Device(); device.Id = devObj.Name; int iArryaTag = 0; foreach (JProperty tagObj in devObj.Value) { WriteValueCommand.Tag tag = new WriteValueCommand.Tag(); tag.Name = tagObj.Name; tag.Value = tagObj.Value; device.TagList.Add(tag); iArryaTag++; } if (iArryaTag == 0) //not array type { WriteValueCommand.Tag tag = new WriteValueCommand.Tag(); tag.Name = devObj.Name; tag.Value = devObj.Value; device.TagList.Add(tag); } wvcMsg.DeviceList.Add(device); } //message = JsonConvert.DeserializeObject<WriteValueCommandMessage>( payload ); MessageReceived(sender, new MessageReceivedEventArgs(MessageType.WriteValue, wvcMsg)); break; case "WC": //MessageReceived( sender, new MessageReceivedEventArgs( MessageType.WriteConfig, message ) ); break; case "TSyn": TimeSyncCommand tscMsg = new TimeSyncCommand(); DateTime miniDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0); tscMsg.UTCTime = miniDateTime.AddSeconds(obj.d.UTC.Value); MessageReceived(sender, new MessageReceivedEventArgs(MessageType.TimeSync, tscMsg)); break; case "DOn": DataOnCommand donMsg = new DataOnCommand(); MessageReceived(sender, new MessageReceivedEventArgs(MessageType.DataOn, donMsg)); break; } } else if (jObj["d"]["Cfg"] != null) { ConfigAck ackMsg = new ConfigAck(); ackMsg.Result = Convert.ToBoolean(obj.d.Cfg.Value); MessageReceived(this, new MessageReceivedEventArgs(MessageType.ConfigAck, ackMsg)); } else if (jObj["d"]["Con"] != null) { WAKernelRun = true; //ConnectAck ackMsg = new ConnectAck(); //ackMsg.Result = Convert.ToBoolean(obj.d.Con.Value); //MessageReceived(this, new MessageReceivedEventArgs(MessageType.ConnectAck, ackMsg)); } else if (jObj["d"]["DsC"] != null) { WAKernelRun = false; } } catch (Exception ex) { //_logger.Error( ex.ToString() ); Console.WriteLine(ex.ToString()); } }