111 lines
4.1 KiB
C#
111 lines
4.1 KiB
C#
using OperationControl.Controls;
|
|
using OperationControl.Models;
|
|
using OperationControl.ViewModels.Views.Operacao.Monitoramento;
|
|
|
|
namespace OperationControl.Views.Operacao.Monitoramento
|
|
{
|
|
/// <summary>
|
|
/// Interaction logic for MonitoramentoView.xaml
|
|
/// </summary>
|
|
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
|
|
|
|
|
|
}
|
|
}
|