private void ConnectNewCycleDataSubject(string type, string source) //链接新数据源 { _cycleDataSubject = GetCycleDataSubject(type); //获取新的周期数据对象 _cycleDataMatrix.Clear(); _cycleDataSubject.RegisterObserver(_cycleDataMatrix); TargetManagerFactory.CreateTrackManager().InitializeSectors(); //删除所有目标 _cycleDataSubject.RegisterObserver(_antennaManager); _cycleDataSubject.RebindSource(source); //绑定数据源 }
private static void ProcessRemoteTargetManagerUdpData(byte[] data) { byte head = data[1]; int sectorNum = data[3]; int targetCount = DistanceCell.MakeInt(data, 4, 2); if (head == 0xb1) { List <TargetDot> ls = GetTargetDotsFromSerialData(data, targetCount, sectorNum); TargetManagerFactory.CreateTrackManager().TargetDotDataReceivedFromRemoteTargetManager(sectorNum, ls); } if (head == 0xb2) { List <TargetTrack> ls = GetTargetTracksFromSerialData(data, targetCount, sectorNum); TargetManagerFactory.CreateTrackManager().TargetTrackDataReceivedFromRemoteTargetManager(sectorNum, ls); } }
public void NotifyLeaveAngleArea(AngleArea area) => AntennaLeaveSectionSweepAngleArea();//天线扫过了扇扫区域,需要翻转天线 private void AntennaLeaveSectionSweepAngleArea() { _rotateController.ReverseSweepDirection(); TargetManagerFactory.CreateTrackManager().DeleteOutRangedTargets(_sweepSection); }