public AutonomyViewModel(ModelContainer ModelContainer) { modelContainer = ModelContainer; LoggerViewModel = new LoggerViewModel(modelContainer.logger); CameraViewModel = new CameraStreamViewModel(); DetectionListViewModel = new DetectionListViewModel(modelContainer); StartAutonomyCommand = new RelayCommand(StartAutonomyAction, Allow); StopAutonomyCommand = new RelayCommand(StopAutonomyAction, Allow); modelContainer.dataContainer.Position.newDataCallback += (float x, float y, float z) => { RaisePropertyChanged("posX"); RaisePropertyChanged("posY"); RaisePropertyChanged("posZ"); }; modelContainer.dataContainer.Velocity.newNormCallback += (float x) => RaisePropertyChanged("Velocity"); modelContainer.dataContainer.Acceleration.newNormCallback += (float x) => RaisePropertyChanged("Acceleration"); modelContainer.modelStatus.taskManagerStatus.NewData += () => RaisePropertyChanged("TaskManagerStatus"); modelContainer.modelStatus.networkStatus.ConnectedToJetsonCallback += (bool val) => JetsonConnected = val; modelContainer.modelStatus.AutonomyStatusCallback += (bool val) => AutonomyStatus = val; modelContainer.dataContainer.Attitude.newDataCallback += (float x, float y, float z) => { Roll = x; Pitch = y; Heading = z; }; modelContainer.dataContainer.motorsData.newDataCallback += () => { RaisePropertyChanged("MotorsData"); }; }
public ControlViewModel(ModelContainer modelContainer) { Position = new MovementInfoClass(); this.modelContainer = modelContainer; CameraViewModel = new CameraStreamViewModel(); HUDViewModel = new HUDViewModel(); DetectionListViewModel = new DetectionListViewModel(modelContainer); DetectionDrawerViewModel = new DetectionDrawerViewModel(modelContainer); ModeChangedCommand = new RelayCommand(ModeChangedAction, CanArmAction); ArmCommand = new RelayCommand(ArmAction, CanArmAction); DisarmCommand = new RelayCommand(DisarmAction, CanDisarmAction); DetectionBtnClickedCommand = new RelayCommand(DetectionBtnClickedAction, (object p) => { return(true); }); modelContainer.modelStatus.ArmCallback += (bool value) => { Armed = value; }; modelContainer.modelStatus.networkStatus.ConnectedToJetsonCallback += (bool value) => { JetsonConnected = value; }; modelContainer.modelStatus.networkStatus.CameraStreamConnectedCallback += CameraStreamStatusChangedCallback; modelContainer.modelStatus.DetectorStatusCallback += (bool val) => { DetectionState = val; }; }