agrobot_base/AgroBase/OperationControl/Views/Operacao/Monitoramento/MonitoramentoView.xaml.cs

103 lines
3.5 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;
private 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 MAPA
private void MAP_MarkerClicked(object? sender, MapMarkerManager.MarkerClickedEventArgs e)
{
}
private void MAP_StreetMapClicked(object? sender, MapViewControl.StreetMapClickedEventArgs e)
{
}
#endregion
#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);
}
#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
}
}