void HandleMessage(MdvrMessageBase message, DeviceClient client) { var db = new LisconDbEntities(); client.Runtime.GpsTime = message.MessageTime; client.Runtime.Latitude = message.LocationAndStatus.Location.Latitude; client.Runtime.Longitude = message.LocationAndStatus.Location.Longitude; if (message is V101Message) { HandleV101Message((V101Message)message, client, db); } else if (message is V114Message) { HandleV114Message((V114Message)message, client, db); } else if (message is V201Message) { HandleV201Message((V201Message)message); } else if (message is V251Message) { HandleV251Message((V251Message)message); } DeviceRuntimeBL.Update(client.Runtime, db); ClientRuntimeUpdated?.Invoke(); }
void SendResponse(MdvrMessageBase message, params string[] responseArgs) { if (Clients.ContainsKey(message.DevIDNO) == false) { return; } Task.Run(() => { var client = Clients[message.DevIDNO]; var argList = CreateBaseCommandArgList(MdvrMessageTypes.C100, message.DevIDNO, message.MessageKey, message.MessageTime.ToString(MdvrMessageHelper.DateTimeStringFormat)); if (responseArgs != null) { for (int i = 0; i < responseArgs.Length; i++) { argList.Add(responseArgs[i]); } } SendMessage(client.EndPoint, argList); }); }
private void _messageReader_MessageReceived(MdvrMessageBase message) { if (message.MessageKey == MdvrMessageTypes.V102) { HandleV102Message((V102Message)message); } MessageReceived?.Invoke(this, message); }
private void Client_MessageReceived(object sender, MdvrMessageBase message) { if (message.MessageKey == MdvrMessageTypes.V102) { var client = sender as MediaClient; if (Clients.TryAdd(message.DevIDNO, client) == true) { ClientConnected?.Invoke(message.DevIDNO); } } else { throw new NotImplementedException(); } }