using OperationControl.Controls; using OperationControl.Models; using OperationControl.ViewModels.Views.Operacao.Monitoramento; namespace OperationControl.Views.Operacao.Monitoramento { /// /// Interaction logic for MonitoramentoView.xaml /// public partial class MonitoramentoView : System.Windows.Controls.UserControl { public MonitoramentoViewModel _vm; private TcpVideoReceiver videoFront; public TcpVideoReceiver videoWeed; public PulverizadorIndicator Pulverizador => areaPulverizador; public HeadingIndicator Heading => areaHeading; public AttitudeIndicator Attitude => areaAttitude; public MonitoramentoView() { InitializeComponent(); _vm = new MonitoramentoViewModel(); DataContext = _vm; videoFront = new TcpVideoReceiver(5000, imgVideoFront); videoWeed = new TcpVideoReceiver(5002, imgVideoWeed); _vm.CameraFrontalFrameTipoAlterado += _vm_CameraFrontalFrameTipoAlterado; _vm.CameraErvasFrameTipoAlterado += _vm_CameraErvasFrameTipoAlterado; } #region CAMERA FRONTAL private void _vm_CameraFrontalFrameTipoAlterado(AgroBase.Models.Enums.TipoFrameCamera tipo) { if (!IsLoaded) return; if (VariaveisControleOperacao.SelectedRoverId == VariaveisControleOperacao.BaseMarkerID) return; PararStreamCameraFrontal(); IniciarStreamCameraFrontal(); } public void IniciarStreamCameraFrontal() { videoFront.Iniciar(); var tipo = _vm.CameraFrontalFrameTipoSelecionado?.Valor ?? AgroBase.Models.Enums.TipoFrameCamera.Rgb; VariaveisControleOperacao.EnviarComandoTransmissaoVideo(AgroBase.Models.Enums.T_Code.Snr, true, tipo); } public void PararStreamCameraFrontal(bool finalizar = false) { videoFront.Parar(); var tipo = _vm.CameraFrontalFrameTipoSelecionado?.Valor ?? AgroBase.Models.Enums.TipoFrameCamera.Rgb; VariaveisControleOperacao.EnviarComandoTransmissaoVideo(AgroBase.Models.Enums.T_Code.Snr, false, tipo); } private void AtualizarLeverArm(double valorCm) { double la_frontal = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Gnss?.LeverArmFrontal ?? 0; double la_lateral = VariaveisControleOperacao.RoverEmFoco?.DadosLeitura?.Gnss?.LeverArmLateral ?? 0; double novo = la_lateral + valorCm; VariaveisControleOperacao.EnviarComandoLeverArm(lateral: novo, frontal: la_frontal); lblLeverArmLateral.Text = $"Lever Arm Lateral: {novo} cm"; } private void btnLeverArmEsquerda_Click(object sender, System.Windows.RoutedEventArgs e) { AtualizarLeverArm(+5); } private void btnLeverArmDireita_Click(object sender, System.Windows.RoutedEventArgs e) { AtualizarLeverArm(-5); } #endregion #region CAMERA ERVAS private void _vm_CameraErvasFrameTipoAlterado(AgroBase.Models.Enums.TipoFrameCamera tipo) { if (!IsLoaded) return; if (VariaveisControleOperacao.SelectedRoverId == VariaveisControleOperacao.BaseMarkerID) return; PararStreamCameraErvas(); IniciarStreamCameraErvas(); } public void IniciarStreamCameraErvas() { videoWeed.Iniciar(); var tipo = _vm.CameraErvasFrameTipoSelecionado?.Valor ?? AgroBase.Models.Enums.TipoFrameCamera.Rgb; VariaveisControleOperacao.EnviarComandoTransmissaoVideo(AgroBase.Models.Enums.T_Code.Cam, true, tipo); } public void PararStreamCameraErvas(bool finalizar = false) { videoWeed.Parar(); var tipo = _vm.CameraErvasFrameTipoSelecionado?.Valor ?? AgroBase.Models.Enums.TipoFrameCamera.Rgb; VariaveisControleOperacao.EnviarComandoTransmissaoVideo(AgroBase.Models.Enums.T_Code.Cam, false, tipo); } #endregion } }