154 lines
5.8 KiB
C#
154 lines
5.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Globalization;
|
|
using static AgroBase.Models.Enums;
|
|
|
|
namespace AgroBase.Models.Operadores
|
|
{
|
|
public class ManagerWorkerModel
|
|
{
|
|
public bool Iniciado { get; set; }
|
|
public DateTime IniciadoEm { get; set; }
|
|
public bool Pronto { get; set; }
|
|
public DateTime ProntoEm { get; set; }
|
|
public DateTime UltimaMensagem { get; set; }
|
|
//public WorkerMessageModel<ManagerWorkerMessageResponseModel> Leitura { get; set; }
|
|
|
|
public ManagerWorkerModel Clone()
|
|
{
|
|
return new ManagerWorkerModel()
|
|
{
|
|
Iniciado = Iniciado,
|
|
IniciadoEm = IniciadoEm,
|
|
Pronto = Pronto,
|
|
ProntoEm = ProntoEm,
|
|
//Leitura = Leitura.Clone()
|
|
};
|
|
}
|
|
|
|
public void ReiniciarEstado()
|
|
{
|
|
Iniciado = false;
|
|
IniciadoEm = DateTime.MinValue;
|
|
Pronto = false;
|
|
ProntoEm = DateTime.MinValue;
|
|
//Leitura = new WorkerMessageModel<ManagerWorkerMessageResponseModel>();
|
|
}
|
|
}
|
|
|
|
public class ManagerWorkerMessageResponseModel
|
|
{
|
|
public bool configurado { get; set; }
|
|
public long tempo_aguardando { get; set; }
|
|
public StatusOperacao status_operacao { get; set; }
|
|
public bool operacao_liberada { get; set; }
|
|
public ManagerWorkerMessageResponseComandoModel comando { get; set; }
|
|
public List<ManagerWorkerMessageResponseModulosPendentesModel> status_modulos { get; set; }
|
|
}
|
|
|
|
public class ManagerWorkerMessageResponseComandoModel
|
|
{
|
|
public double percentual_velocidade { get; set; }
|
|
public bool em_freio { get; set; }
|
|
public double angulo { get; set; }
|
|
public TipoMovimentoDirecional tipo_movimento { get; set; }
|
|
public List<double[]> simulacao { get; set; }
|
|
public int heartbeat { get; set; }
|
|
public double latencia { get; set; }
|
|
public double erro_lateral { get; set; }
|
|
public Dictionary<string, ManagerWorkerMessageResponseDebugCustoModel> debug_custo { get; set; }
|
|
}
|
|
|
|
public class ManagerWorkerMessageResponseDebugCustoModel
|
|
{
|
|
public double angulo { get; set; }
|
|
public TipoMovimentoDirecional tipo { get; set; }
|
|
public double omega { get; set; }
|
|
public double x_sim { get; set; }
|
|
public double y_sim { get; set; }
|
|
public double theta_sim { get; set; }
|
|
public double x_alvo { get; set; }
|
|
public double y_alvo { get; set; }
|
|
public double peso_posicao { get; set; }
|
|
public double peso_orientacao { get; set; }
|
|
public double peso_suavizacao { get; set; }
|
|
public double peso_re { get; set; }
|
|
public double peso_ideal { get; set; }
|
|
public double peso_lateral { get; set; }
|
|
public Dictionary<TipoMovimentoDirecional, double> peso_tipo_movimento { get; set; }
|
|
public double erro_posicao { get; set; }
|
|
public double erro_posicao_n { get; set; }
|
|
public double erro_orientacao { get; set; }
|
|
public double erro_orientacao_n { get; set; }
|
|
public double erro_suavizacao { get; set; }
|
|
public double erro_re { get; set; }
|
|
public double erro_lateral { get; set; }
|
|
public double erro_lateral_n { get; set; }
|
|
public double custo_posicao { get; set; }
|
|
public double custo_orientacao { get; set; }
|
|
public double custo_suavizacao { get; set; }
|
|
public double custo_tipo_movimento { get; set; }
|
|
public double custo_re { get; set; }
|
|
public double custo_lateral { get; set; }
|
|
public double custo_lateral_d { get; set; }
|
|
public double custo_flip { get; set; }
|
|
public double custo_visual_worker { get; set; }
|
|
public double custo_map { get; set; }
|
|
public double custo_total { get; set; }
|
|
public bool melhor { get; set; }
|
|
}
|
|
|
|
public class CandMpcKey
|
|
{
|
|
public TipoMovimentoDirecional Tipo { get; set; }
|
|
public double AngDeg { get; set; }
|
|
|
|
public static CandMpcKey ParseKey(string k)
|
|
{
|
|
var partes = k.Split('_');
|
|
TipoMovimentoDirecional tipo = (TipoMovimentoDirecional)(Convert.ToInt32(partes[0]));
|
|
double ang = (Convert.ToDouble(partes[1].Replace(".", ",")));
|
|
return new CandMpcKey() { Tipo = tipo, AngDeg = ang };
|
|
}
|
|
}
|
|
|
|
public class ManagerWorkerMessageResponseModulosPendentesModel
|
|
{
|
|
public T_Code modulo { get; set; }
|
|
public StatusModulo status { get; set; }
|
|
public bool conectado { get; set; }
|
|
public double saude { get; set; }
|
|
public List<string> motivos { get; set; }
|
|
public List<ManagerWorkerMessageResponseModulosPendentesSaudeModel> saude_individual { get; set; }
|
|
public List<ManagerWorkerMessageResponseModulosPendentesSaudeCondicoesModel> condicoes_operacionais { get; set; }
|
|
}
|
|
|
|
public class ManagerWorkerMessageResponseModulosPendentesSaudeModel
|
|
{
|
|
public string id { get; set; }
|
|
public string label { get; set; }
|
|
public StatusModulo status { get; set; }
|
|
public double saude { get; set; }
|
|
public List<string> motivos { get; set; }
|
|
public List<ManagerWorkerMessageResponseModulosPendentesSaudeCondicoesModel> condicoes_operacionais { get; set; }
|
|
public bool em_uso { get; set; }
|
|
}
|
|
|
|
public class ManagerWorkerMessageResponseModulosPendentesSaudeCondicoesModel
|
|
{
|
|
public double valor { get; set; }
|
|
public double severidade { get; set; }
|
|
public string descricao { get; set; }
|
|
}
|
|
|
|
public enum ManagerWorkerCommandType
|
|
{
|
|
ScriptCarregado = 1,
|
|
IniciarMPC = 2,
|
|
AtualizarDadosControle = 3,
|
|
EnviarDadosControle = 4,
|
|
FinalizarOperacao = 5,
|
|
}
|
|
|
|
}
|