public MainWindow() { var heading = new MagneticMessageCompassValue(160); try { Apb = new APB("SN") // Electronic Positioning System, other/general { BOD = heading, Bearing = heading, DestinationWayPointId = 1, Heading = heading, SteerTurn = Turn.Left, XTE = 0, XteUnits = Units.NauticalMiles, }; InitializeComponent(); _repeatingSender = new RepeatingSender(new MessageSender("localhost", "serialout"), TimeSpan.FromSeconds(1)) { Message = Apb }; _repeatingSender.Start(); } catch (Exception x) { MessageBox.Show(x.ToString()); throw; } }
public AutopilotControl(MagneticContext magneticContext, MessageSender messageSender) { _magneticContext = magneticContext; _apb = new APB("SN"); _heading = new MagneticMessageCompassValue(0); EnabledCommand = new DelegateCommand(() => Enabled = !Enabled); RightCommand = new DelegateCommand(Right); LeftCommand = new DelegateCommand(Left); MagneticCommand = new DelegateCommand(() => HeadingMagnetic = true); TrueCommand = new DelegateCommand(() => HeadingMagnetic = false); SetToHeadingCommand = new DelegateCommand(() => CopyCurrentHeading = !CopyCurrentHeading); _periodicalMessageSender = new RepeatingSender(messageSender, TimeSpan.FromMilliseconds(500), OnBeforeAPBSend) { Message = _apb }; }
public void Apb() { var expected = new APB("SN") // Electronic Positioning System, other/general { SteerTurn = Turn.Left, BOD = new MagneticMessageCompassValue(131), DestinationWayPointId = 1, XTE = 68, XteUnits = Units.NauticalMiles, Bearing = new TrueMessageCompassValue(90), Heading = new MagneticMessageCompassValue(123), ArrivalCircular = Flag.Void, ArrivalPerpendicular = Flag.Active }; var actual = new APB("SN", "A,A,68.0000,L,N,V,A,131.0000,M,001,90.0000,T,123.0000,M".Split(',')); Assert.Equal(expected.BOD.Value, actual.BOD.Value); Assert.Equal(expected.BOD.IsMagnetic, actual.BOD.IsMagnetic); Assert.Equal(expected.ToString(), actual.ToString()); }