2026-03-11 20:11:17 +00:00
|
|
|
|
using OperationControl.Controls;
|
|
|
|
|
|
using OperationControl.Models;
|
|
|
|
|
|
using OperationControl.ViewModels.Views.Operacao.Monitoramento;
|
|
|
|
|
|
|
|
|
|
|
|
namespace OperationControl.Views.Operacao
|
|
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// Interaction logic for MonitoramentoView.xaml
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public partial class MonitoramentoView : System.Windows.Controls.UserControl
|
|
|
|
|
|
{
|
|
|
|
|
|
public MonitoramentoViewModel _vm;
|
|
|
|
|
|
|
|
|
|
|
|
private TcpVideoReceiver videoFront;
|
|
|
|
|
|
private TcpVideoReceiver videoWeed;
|
2026-03-12 01:00:21 +00:00
|
|
|
|
public PulverizadorIndicator Pulverizador => areaPulverizador;
|
2026-03-11 20:11:17 +00:00
|
|
|
|
|
|
|
|
|
|
public MonitoramentoView()
|
|
|
|
|
|
{
|
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
|
_vm = new MonitoramentoViewModel();
|
|
|
|
|
|
DataContext = _vm;
|
|
|
|
|
|
|
|
|
|
|
|
videoFront = new TcpVideoReceiver(5000, imgVideoFront);
|
|
|
|
|
|
videoWeed = new TcpVideoReceiver(5002, imgVideoWeed);
|
|
|
|
|
|
|
2026-03-12 14:00:43 +00:00
|
|
|
|
_vm.CameraFrontalFrameTipoAlterado += _vm_CameraFrontalFrameTipoAlterado;
|
|
|
|
|
|
_vm.CameraErvasFrameTipoAlterado += _vm_CameraErvasFrameTipoAlterado;
|
2026-03-11 20:11:17 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#region MAPA
|
|
|
|
|
|
|
|
|
|
|
|
private void MAP_MarkerClicked(object? sender, MapMarkerManager.MarkerClickedEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void MAP_StreetMapClicked(object? sender, MapViewControl.StreetMapClickedEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region CAMERA FRONTAL
|
|
|
|
|
|
|
2026-03-12 14:00:43 +00:00
|
|
|
|
private void _vm_CameraFrontalFrameTipoAlterado(AgroBase.Models.Enums.TipoFrameCamera tipo)
|
2026-03-11 20:11:17 +00:00
|
|
|
|
{
|
2026-03-12 14:00:43 +00:00
|
|
|
|
if (!IsLoaded) return;
|
2026-03-11 20:11:17 +00:00
|
|
|
|
if (VariaveisControleOperacao.SelectedRoverId == VariaveisControleOperacao.BaseMarkerID) return;
|
2026-03-12 14:00:43 +00:00
|
|
|
|
|
2026-03-11 20:11:17 +00:00
|
|
|
|
PararStreamCameraFrontal();
|
|
|
|
|
|
IniciarStreamCameraFrontal();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void IniciarStreamCameraFrontal()
|
|
|
|
|
|
{
|
|
|
|
|
|
videoFront.Iniciar();
|
2026-03-12 14:00:43 +00:00
|
|
|
|
var tipo = _vm.CameraFrontalFrameTipoSelecionado?.Valor ?? AgroBase.Models.Enums.TipoFrameCamera.Rgb;
|
|
|
|
|
|
VariaveisControleOperacao.EnviarComandoTransmissaoVideo(AgroBase.Models.Enums.T_Code.Snr, true, tipo);
|
|
|
|
|
|
//_vm.CameraFrontalSemSinal = false;
|
2026-03-11 20:11:17 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void PararStreamCameraFrontal(bool finalizar = false)
|
|
|
|
|
|
{
|
|
|
|
|
|
videoFront.Parar();
|
2026-03-12 14:00:43 +00:00
|
|
|
|
var tipo = _vm.CameraFrontalFrameTipoSelecionado?.Valor ?? AgroBase.Models.Enums.TipoFrameCamera.Rgb;
|
|
|
|
|
|
VariaveisControleOperacao.EnviarComandoTransmissaoVideo(AgroBase.Models.Enums.T_Code.Snr, false, tipo);
|
|
|
|
|
|
//_vm.CameraFrontalSemSinal = true;
|
2026-03-11 20:11:17 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
#region CAMERA ERVAS
|
|
|
|
|
|
|
2026-03-12 14:00:43 +00:00
|
|
|
|
private void _vm_CameraErvasFrameTipoAlterado(AgroBase.Models.Enums.TipoFrameCamera tipo)
|
2026-03-11 20:11:17 +00:00
|
|
|
|
{
|
2026-03-12 14:00:43 +00:00
|
|
|
|
if (!IsLoaded) return;
|
2026-03-11 20:11:17 +00:00
|
|
|
|
if (VariaveisControleOperacao.SelectedRoverId == VariaveisControleOperacao.BaseMarkerID) return;
|
2026-03-12 14:00:43 +00:00
|
|
|
|
|
2026-03-11 20:11:17 +00:00
|
|
|
|
PararStreamCameraErvas();
|
|
|
|
|
|
IniciarStreamCameraErvas();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void IniciarStreamCameraErvas()
|
|
|
|
|
|
{
|
|
|
|
|
|
videoWeed.Iniciar();
|
2026-03-12 14:00:43 +00:00
|
|
|
|
var tipo = _vm.CameraErvasFrameTipoSelecionado?.Valor ?? AgroBase.Models.Enums.TipoFrameCamera.Rgb;
|
|
|
|
|
|
VariaveisControleOperacao.EnviarComandoTransmissaoVideo(AgroBase.Models.Enums.T_Code.Cam, true, tipo);
|
|
|
|
|
|
//_vm.CameraErvasSemSinal = false;
|
2026-03-11 20:11:17 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void PararStreamCameraErvas(bool finalizar = false)
|
|
|
|
|
|
{
|
|
|
|
|
|
videoWeed.Parar();
|
2026-03-12 14:00:43 +00:00
|
|
|
|
var tipo = _vm.CameraErvasFrameTipoSelecionado?.Valor ?? AgroBase.Models.Enums.TipoFrameCamera.Rgb;
|
|
|
|
|
|
VariaveisControleOperacao.EnviarComandoTransmissaoVideo(AgroBase.Models.Enums.T_Code.Cam, false, tipo);
|
|
|
|
|
|
//_vm.CameraErvasSemSinal = true;
|
2026-03-11 20:11:17 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|