private void onReceivedData(HittData data) { lock (_tracksData) { var target = new VTSHittTarget(data.Id); target.MMSI = data.MMSI; target.Update(data.Lon, data.Lat, data.SOG, data.COG, DateTime.Now); target.Name = data.Name; target.ReceiverTime = data.Time; _tracksData.UpdateDynamicEvent(target); } }
protected override void onRecv(byte[] pb, int len) { Target[] msgs = _parser.Parse(pb, 0, len); foreach (Target msg in msgs) { HittData data = new HittData(); data.Id = msg.Id.ToString(); data.Src = string.Empty; data.SourceId = msg.SourceId; data.COG = msg.COG; data.SOG = msg.SOG; data.Lost = msg.Lost; data.RateOfTurn = msg.RateOfTurn; data.Orientation = msg.Orientation; data.Length = msg.Length; data.Breadth = msg.Breadth; data.Altitude = msg.Altitude; if (msg.NavStatus > 9 && msg.NavStatus < 15) { data.NavStatus = HittData.NavStatuses.ReservedForFutureUse; } else { data.NavStatus = (HittData.NavStatuses)msg.NavStatus; } data.UpdSensorType = (HittData.UpdSensor)msg.UpdSensorType; data.ATONOffPos = msg.ATONOffPos; data.Shape = new GeoPointShape(msg.Long, msg.Lat); data.StaticId = msg.StaticId; data.SourceName = msg.SourceName; data.Source = (HittData.SourceTypes)msg.Source; data.Callsign = msg.Callsign; data.ShipName = msg.ShipName; data.ObjectType = (HittData.ObjectTypes)msg.ObjectType; data.ShipType = (HittData.ShipTypes)msg.ShipType; data.MMSI = msg.MMSI; data.IMO = msg.IMO; data.ATONType = (HittData.ATONTypes)msg.ATONType; data.ATONName = msg.ATONName; data.AntPosDistFromFront = msg.AntPosDistFromFront; data.AntPosDistFromLeft = msg.AntPosDistFromFront; data.NatLangShipName = msg.NatLangShipName; data.PortOfRegistry = msg.PortOfRegistry; data.CountryFlag = msg.CountryFlag; data.MaxAirDraught = msg.MaxAirDraught; data.MaxDraught = msg.MaxDraught; data.DeepWaterVesselind = msg.DeepWaterVesselind; data.VoyageId = msg.VoyageId; data.CargoType = (HittData.CargoTypes)msg.CargoType; data.Destination = msg.Destination; data.ETA = msg.ETA; data.ATA = msg.ATA; data.AirDraught = msg.AirDraught; data.Draught = msg.Draught; data.Time = DateTime.Now; if (data.MMSI != 0) { data.Id = "MMSI:" + data.MMSI.ToString(); } if (OnReceivedData != null) { OnReceivedData(data); } //Framework.DistributeData(this, data); //DynamicObjMgr.Realtime.HandleData(data); //Framework.BroadcastByRegion(new NetCmd(FrameworkNetCmdType.SC_Realtime_String, data.Format()), data.Shape); //StorageService service = Framework.GetService("Storage") as StorageService; //if (service != null) //{ // service.SaveRealtime(data); // service.SaveHistory(data); //} } }