diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/83daec6e-96d2-4592-bfe0-b85e6371bb02.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/83daec6e-96d2-4592-bfe0-b85e6371bb02.vsidx new file mode 100644 index 000000000..afe02daa4 Binary files /dev/null and b/AgroBase/.vs/AgroBase/FileContentIndex/83daec6e-96d2-4592-bfe0-b85e6371bb02.vsidx differ diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/b7c87cda-7807-4dbe-96fc-c4a72b2386bd.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/84e6cd0d-294a-410c-85bb-a7b906b7f08c.vsidx similarity index 65% rename from AgroBase/.vs/AgroBase/FileContentIndex/b7c87cda-7807-4dbe-96fc-c4a72b2386bd.vsidx rename to AgroBase/.vs/AgroBase/FileContentIndex/84e6cd0d-294a-410c-85bb-a7b906b7f08c.vsidx index 923860a3c..d588752da 100644 Binary files a/AgroBase/.vs/AgroBase/FileContentIndex/b7c87cda-7807-4dbe-96fc-c4a72b2386bd.vsidx and b/AgroBase/.vs/AgroBase/FileContentIndex/84e6cd0d-294a-410c-85bb-a7b906b7f08c.vsidx differ diff --git a/AgroBase/.vs/AgroBase/FileContentIndex/cb22134b-8763-4bda-918b-01fa6f2ed94e.vsidx b/AgroBase/.vs/AgroBase/FileContentIndex/cb22134b-8763-4bda-918b-01fa6f2ed94e.vsidx deleted file mode 100644 index ca51a80ec..000000000 Binary files a/AgroBase/.vs/AgroBase/FileContentIndex/cb22134b-8763-4bda-918b-01fa6f2ed94e.vsidx and /dev/null differ diff --git a/AgroBase/.vs/AgroBase/v17/.suo b/AgroBase/.vs/AgroBase/v17/.suo index 6508326d8..0e21111bf 100644 Binary files a/AgroBase/.vs/AgroBase/v17/.suo and b/AgroBase/.vs/AgroBase/v17/.suo differ diff --git a/AgroBase/AgroBase/Models/Enums.cs b/AgroBase/AgroBase/Models/Enums.cs index 8e8a2fd2e..e6513a3df 100644 --- a/AgroBase/AgroBase/Models/Enums.cs +++ b/AgroBase/AgroBase/Models/Enums.cs @@ -42,7 +42,7 @@ public enum T_Code { - Vzo = 0, + Vzo = -1, Mov = 100, Dir = 101, Sen = 102, @@ -65,26 +65,26 @@ public enum F_Code { - Nda = 0, - ChkTx = 1, - ChkRx = 2, - CfgTx = 3, - CfgRx = 4, - TstTx = 5, - TstRx = 6, - CmdTx = 7, - CmdRx = 8, - ErrTx = 9, - ErrRx = 10, - MsgTx = 11, - MsgRx = 12, - ReqTx = 13, - ReqRx = 14, + Nda = -1, + ChkTx = 201, + ChkRx = 202, + CfgTx = 203, + CfgRx = 204, + TstTx = 205, + TstRx = 206, + CmdTx = 207, + CmdRx = 208, + ErrTx = 209, + ErrRx = 210, + MsgTx = 211, + MsgRx = 212, + ReqTx = 213, + ReqRx = 214, } public enum S_Code { - sVZO = 0, + sVZO = -1, sRPM = 1, sTST = 2, sCFG = 3, @@ -299,12 +299,6 @@ Corredores = 3 } - public enum INA219Corrente - { - C_3_2 = 1, - C_50 = 2, - C_100 = 3 - } } } diff --git a/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs b/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs index 6a94c950e..4c964bbf2 100644 --- a/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs +++ b/AgroBase/AgroBase/Models/Modules/AtuadorModel.cs @@ -197,7 +197,8 @@ namespace AgroBase.Models.Modules { get { - double _LeituraPressao = ((FirmwareSensorPressao)Sensores.FirstOrDefault(x => x.Componente == S_Code.sPRS)?.Leitura)?.Leitura ?? 0; + //double _LeituraPressao = ((FirmwareSensorPressao)Sensores.FirstOrDefault(x => x.Componente == S_Code.sPRS)?.Leitura)?.Leitura ?? 0; + double _LeituraPressao = 0; double tensao = FuncoesMatematicas.Map(_LeituraPressao, 0, 4095, 0, 3300) / 1000.0; double pressao = FuncoesMatematicas.Map(tensao, _PressaoVmin, _PressaoVmax, 0, _PressaoMax); @@ -458,16 +459,18 @@ namespace AgroBase.Models.Modules private byte[] ModConfig(bool Conectar) { - var pinos = PinoutModel.PinoProtocolo(Pinout, Funcoes, false); + //var pinos = PinoutModel.PinoProtocolo(Pinout, Funcoes, false); var config = new List { - (byte)S_Code.sMOD, + Variaveis.ID_Num_sMOD, + (byte)CanMessagePosicaoDados.Config1, + (byte)S_Code.sMOD, (byte)(Conectar ? 1 : 0), (byte)(_TaxaAmostragem / 10), (byte)(RequisitarDados ? 1 : 0), }; - config.AddRange(pinos); + //config.AddRange(pinos); return config.ToArray(); } @@ -748,8 +751,9 @@ namespace AgroBase.Models.Modules return new byte[] { - (byte)Componente, (byte)ID_Num, + (byte)CanMessagePosicaoDados.Config1, + (byte)Componente, (byte)(conectar ? 1 : 0), (byte)(AtuacaoNivelAlto ? 1 : 0), (byte)(pino?.Barramento ?? TiposBarramentos.CONTROLADOR), @@ -763,8 +767,8 @@ namespace AgroBase.Models.Modules F_Code.CmdTx, new byte[] { - (byte)Componente, (byte)ID_Num, + (byte)CanMessagePosicaoDados.Command1, (byte)(ComandoAtuar ? Estado.Ligado : Estado.Desligado) } ); @@ -902,8 +906,9 @@ namespace AgroBase.Models.Modules List config = new List() { - (byte)Componente, (byte)ID_Num, + (byte)CanMessagePosicaoDados.Config1, + (byte)Componente, (byte)(conectar ? 1 : 0), pressaoMax, }; @@ -921,8 +926,8 @@ namespace AgroBase.Models.Modules F_Code.CmdTx, new byte[] { - (byte)S_Code.sBMB, (byte)ID_Num, + (byte)CanMessagePosicaoDados.Command1, (byte)(ComandoAtuar ? Estado.Ligado : Estado.Desligado), (byte)(Variaveis.OperacaoEmAndamento.Controle.PressaoLinha) } @@ -1181,172 +1186,216 @@ namespace AgroBase.Models.Modules return _value; } + private S_Code DetectarComponenteDoID_Num(int ID_Num) + { + if (ID_Num == Variaveis.ID_Num_sMOD) return S_Code.sMOD; + + var Disp = Variaveis.OperacaoEmAndamento.DispAtu.Dados; + var sensor = Disp.Sensores.FirstOrDefault(x => x.ID_Num == ID_Num); + var bico = Disp.BicosPulverizadores.FirstOrDefault(x => x.ID_Num == ID_Num); + var bomba = Disp.BombasPressurizadoras.FirstOrDefault(x => x.ID_Num == ID_Num); + + return sensor?.Componente ?? bico?.Componente ?? bomba?.Componente ?? S_Code.sVZO; + } + + private void DefinirOuCriar(int CompID_Num, S_Code componente, bool Iniciado, List Parametros) + { + var Disp = Variaveis.OperacaoEmAndamento.DispAtu; + var item = Disp.Dados.DadosLeitura; + + switch (componente) + { + case S_Code.sFLX: + { + var sensor = Disp.Dados.Sensores.FirstOrDefault(x => x.ID_Num == CompID_Num); + var _sensor = item.SensoresFluxo.FirstOrDefault(x => x.ID == sensor.ID); + if (_sensor == null) + { + _sensor = new FirmwareSensorFluxo() + { + ID = sensor.ID, + Iniciado = Iniciado, + Vazao = -1, + }; + item.SensoresFluxo.Add(_sensor); + } + if (_sensor != null) + { + _sensor.Iniciado = Iniciado; + _sensor.Vazao = Parametros.Count > 0 ? Parametros[0] : -1; + } + break; + } + case S_Code.sPRS: + { + var sensor = Disp.Dados.Sensores.FirstOrDefault(x => x.ID_Num == CompID_Num); + var _sensor = item.SensoresPressao.FirstOrDefault(x => x.ID == sensor.ID); + if (_sensor == null) + { + _sensor = new FirmwareSensorPressao() + { + ID = sensor.ID, + Iniciado = Iniciado, + Pressao = -1, + }; + item.SensoresPressao.Add(_sensor); + } + if (_sensor != null) + { + _sensor.Iniciado = Iniciado; + _sensor.Pressao = Parametros.Count > 0 ? Parametros[0] : -1; + } + break; + } + case S_Code.sMAS: + { + var sensor = Disp.Dados.Sensores.FirstOrDefault(x => x.ID_Num == CompID_Num); + var _sensor = item.SensoresMassa.FirstOrDefault(x => x.ID == sensor.ID); + if (_sensor == null) + { + _sensor = new FirmwareSensorMassa() + { + ID = sensor.ID, + Iniciado = Iniciado, + Massa = -1, + }; + item.SensoresMassa.Add(_sensor); + } + if (_sensor != null) + { + _sensor.Iniciado = Iniciado; + _sensor.Massa = Parametros.Count > 0 ? Parametros[0] : -1; + } + break; + } + case S_Code.sBIC: + { + var sensor = Disp.Dados.BicosPulverizadores.FirstOrDefault(x => x.ID_Num == CompID_Num); + var _sensor = item.BicosPulverizadores.FirstOrDefault(x => x.ID == sensor.ID); + if (_sensor == null) + { + _sensor = new FirmwareRele() + { + ID = sensor.ID, + Iniciado = Iniciado, + Leitura = Estado.Desligado, + }; + item.BicosPulverizadores.Add(_sensor); + } + if (_sensor != null) + { + _sensor.Iniciado = Iniciado; + _sensor.Leitura = Parametros.Count > 0 ? Parametros[0] : Estado.Desligado; + } + break; + } + case S_Code.sBMB: + { + var sensor = Disp.Dados.BombasPressurizadoras.FirstOrDefault(x => x.ID_Num == CompID_Num); + var _sensor = item.BombasPressurizadoras.FirstOrDefault(x => x.ID == sensor.ID); + if (_sensor == null) + { + _sensor = new FirmwareBombaPressurizadora() + { + ID = sensor.ID, + Iniciado = Iniciado, + Estado = Estado.Desligado, + Potencia = -1, + Pressao = -1, + PressaoSP = -1, + }; + item.BombasPressurizadoras.Add(_sensor); + } + if (_sensor != null) + { + _sensor.Iniciado = Iniciado; + _sensor.Estado = Parametros.Count > 0 ? Parametros[0] : Estado.Desligado; + _sensor.Potencia = Parametros.Count > 1 ? Parametros[1] : -1; + _sensor.PressaoSP = Parametros.Count > 2 ? Parametros[2] : -1; + _sensor.Pressao = Parametros.Count > 3 ? Parametros[3] : -1; + } + break; + } + } + } public void ProcessarMensagem(CanMessage mensagem) { - F_Code func = (F_Code)mensagem.DataRx[0]; + byte ID_Num = mensagem.DataRx[0]; + CanMessagePosicaoDados posicao = (CanMessagePosicaoDados)mensagem.DataRx[1]; byte id = mensagem.Id; var data = mensagem.DataRx; var item = Variaveis.OperacaoEmAndamento.DispAtu.Dados.DadosLeitura; - switch (func) + S_Code componente = DetectarComponenteDoID_Num(ID_Num); + + Console.WriteLine($"[ATU] Componente={componente.ToString()}, ID_Num={ID_Num}, Data={FuncoesGlobais.ConverterComandoBytesParaTexto(data)}"); + + switch (posicao) { - case F_Code.ChkRx: - if (data != null && data.Length >= 4) + case CanMessagePosicaoDados.Status: { - T_Code tipoModulo = (T_Code)data[1]; - bool conectado = data[2] == 1; - int versao = data[3]; + if (componente == S_Code.sMOD) + { + T_Code tipoModulo = (T_Code)data[2]; + bool conectado = data[3] == 1; + int versao = data[4]; - Console.WriteLine($"[ATU] Resposta CHK recebida. Tipo={tipoModulo}, Conectado={conectado}, Versão={versao}"); + Console.WriteLine($"[ATU] Resposta {ID_Num} recebida. Tipo={tipoModulo}, Conectado={conectado}, Versão={versao}"); - item.Conectado = conectado; - item.Dispositivo = tipoModulo; - item.Versao = versao; + item.Conectado = conectado; + item.Dispositivo = tipoModulo; + item.Versao = versao; + } + else + { + bool Iniciado = data[2] == 1; + DefinirOuCriar(ID_Num, componente, Iniciado, new List()); + } + break; } - break; - default: + case CanMessagePosicaoDados.Dados1: { - S_Code componente = (S_Code)data[0]; - int CompID_Num = data[1]; - bool Iniciado = data[2] == 1; - - //Console.WriteLine($"[ATU] Componente={componente.ToString()}, ID_Num={CompID_Num}, Iniciado={Iniciado}, Data={FuncoesGlobais.ConverterComandoBytesParaTexto(data)}"); - switch (componente) { case S_Code.sBIC: { - var bico = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores.FirstOrDefault(x => x.ID_Num == CompID_Num); - var _bico = item.BicosPulverizadores.FirstOrDefault(x => x.ID == bico.ID); - if (_bico == null) - { - _bico = new FirmwareRele() - { - ID = bico.ID, - Iniciado = Iniciado, - Leitura = Estado.Desligado - }; - item.BicosPulverizadores.Add(_bico); - } - - Estado estado = (Estado)data[3]; - - if (_bico != null) - { - _bico.Iniciado = Iniciado; - _bico.Leitura = estado; - } + Estado estado = (Estado)data[2]; + DefinirOuCriar(ID_Num, componente, true, new List() { estado }); break; } case S_Code.sFLX: { - var sensor = Variaveis.OperacaoEmAndamento.DispAtu.Dados.Sensores.FirstOrDefault(x => x.ID_Num == CompID_Num); - var _sensor = item.SensoresFluxo.FirstOrDefault(x => x.ID == sensor.ID); - if (_sensor == null) - { - _sensor = new FirmwareSensorFluxo() - { - ID = sensor.ID, - Iniciado = Iniciado, - Vazao = -1, - }; - item.SensoresFluxo.Add(_sensor); - } - double vazao = ConverterByteParaDouble(data, 3); - - if (_sensor != null) - { - _sensor.Iniciado = Iniciado; - _sensor.Vazao = vazao; - } + double vazao = ConverterByteParaDouble(data, 2); + DefinirOuCriar(ID_Num, componente, true, new List() { vazao }); break; } case S_Code.sMAS: { - var sensor = Variaveis.OperacaoEmAndamento.DispAtu.Dados.Sensores.FirstOrDefault(x => x.ID_Num == CompID_Num); - var _sensor = item.SensoresMassa.FirstOrDefault(x => x.ID == sensor.ID); - if (_sensor == null) - { - _sensor = new FirmwareSensorMassa() - { - ID = sensor.ID, - Iniciado = Iniciado, - Massa = -1, - }; - item.SensoresMassa.Add(_sensor); - } - double massa = ConverterByteParaDouble(data, 3); - - if (_sensor != null) - { - _sensor.Iniciado = Iniciado; - _sensor.Massa = massa; - } + double massa = ConverterByteParaDouble(data, 2); + DefinirOuCriar(ID_Num, componente, true, new List() { massa }); break; } case S_Code.sPRS: { - var sensor = Variaveis.OperacaoEmAndamento.DispAtu.Dados.Sensores.FirstOrDefault(x => x.ID_Num == CompID_Num); - var _sensor = item.SensoresPressao.FirstOrDefault(x => x.ID == sensor.ID); - if (_sensor == null) - { - _sensor = new FirmwareSensorPressao() - { - ID = sensor.ID, - Iniciado = Iniciado, - Pressao = -1, - }; - item.SensoresPressao.Add(_sensor); - } - double pressao = ConverterByteParaDouble(data, 3); - - if (_sensor != null) - { - _sensor.Iniciado = Iniciado; - _sensor.Pressao = pressao; - } + double pressao = ConverterByteParaDouble(data, 2); + DefinirOuCriar(ID_Num, componente, true, new List() { pressao }); break; } case S_Code.sBMB: { - var bomba = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BombasPressurizadoras.FirstOrDefault(x => x.ID_Num == CompID_Num); - var _bomba = item.BombasPressurizadoras.FirstOrDefault(x => x.ID == bomba.ID); - if (_bomba == null) - { - _bomba = new FirmwareBombaPressurizadora() - { - ID = bomba.ID, - Iniciado = Iniciado, - Estado = Estado.Desligado, - Potencia = 0, - Pressao = -1, - PressaoSP = -1, - }; - item.BombasPressurizadoras.Add(_bomba); - } - - Estado estado = (Estado)data[3]; - int percentualPotencia = data[4]; - int pressaoSp = data[5]; - int pressaoAtual = data[6]; - - if (_bomba != null) - { - _bomba.Iniciado = Iniciado; - _bomba.Estado = estado; - _bomba.Potencia = percentualPotencia; - _bomba.PressaoSP = pressaoSp; - _bomba.Pressao = pressaoAtual; - } + Estado estado = (Estado)data[2]; + int percentualPotencia = data[3]; + int pressaoSp = data[4]; + int pressaoAtual = data[5]; + DefinirOuCriar(ID_Num, componente, true, new List() { estado, percentualPotencia, pressaoSp, pressaoAtual }); break; } - default: { - Console.WriteLine($"[ATU] Resposta {func.ToString()} recebida. Parametros nao mapeados: {FuncoesGlobais.ConverterComandoBytesParaTexto(data)}"); + Console.WriteLine($"[ATU] Resposta do {ID_Num} recebida. Parametros nao mapeados: {FuncoesGlobais.ConverterComandoBytesParaTexto(data)}"); break; } } diff --git a/AgroBase/AgroBase/Models/Modules/SensoriamentoModel.cs b/AgroBase/AgroBase/Models/Modules/SensoriamentoModel.cs index 88ea350e2..0c8527a3a 100644 --- a/AgroBase/AgroBase/Models/Modules/SensoriamentoModel.cs +++ b/AgroBase/AgroBase/Models/Modules/SensoriamentoModel.cs @@ -261,9 +261,9 @@ namespace AgroBase.Models.Modules new SensorParametroModel() { Descricao = "Corrente Máx", - Valor = ((int)INA219Corrente.C_3_2).ToString(), + Valor = (3.2).ToString(), QtdBytes = 1, - Escalar = false, + Escalar = true, Enviar = true }, } @@ -293,7 +293,7 @@ namespace AgroBase.Models.Modules new SensorParametroModel() { Descricao = "Corrente Máx", - Valor = ((int)INA219Corrente.C_3_2).ToString(), + Valor = (3.2).ToString(), QtdBytes = 1, Escalar = false, Enviar = true @@ -325,7 +325,7 @@ namespace AgroBase.Models.Modules new SensorParametroModel() { Descricao = "Corrente Máx", - Valor = ((int)INA219Corrente.C_50).ToString(), + Valor = (50).ToString(), QtdBytes = 1, Escalar = false, Enviar = true @@ -357,7 +357,7 @@ namespace AgroBase.Models.Modules new SensorParametroModel() { Descricao = "Corrente Máx", - Valor = ((int)INA219Corrente.C_100).ToString(), + Valor = (100).ToString(), QtdBytes = 1, Escalar = false, Enviar = true @@ -628,7 +628,7 @@ namespace AgroBase.Models.Modules { // Adicionar configuração do ProtocoloMOD var protocoloMOD = ModConfig(Conectar); - config.Add(protocoloMOD); + config.AddRange(protocoloMOD); } // Adicionar configurações dos Sinaleiros @@ -650,20 +650,28 @@ namespace AgroBase.Models.Modules return config; } - private byte[] ModConfig(bool Conectar) + private List ModConfig(bool Conectar) { var pinos = PinoutModel.PinoProtocolo(Pinout, Funcoes, false); - var config = new List + var config1 = new List { + Variaveis.ID_Num_sMOD, + (byte)CanMessagePosicaoDados.Config1, (byte)S_Code.sMOD, (byte)(Conectar ? 1 : 0), (byte)(_TaxaAmostragem / 10), (byte)(RequisitarDados ? 1 : 0), }; - config.AddRange(pinos); + var config2 = new List + { + Variaveis.ID_Num_sMOD, + (byte)CanMessagePosicaoDados.Config2, + (byte)S_Code.sMOD, + }; + config2.AddRange(pinos); - return config.ToArray(); + return new List { config1.ToArray(), config2.ToArray() }; } public List SensoresConfig(bool Conectar) @@ -979,8 +987,9 @@ namespace AgroBase.Models.Modules { List config = new List { - (byte)Componente, (byte)ID_Num, + (byte)CanMessagePosicaoDados.Config1, + (byte)Componente, (byte)(conectar ? 1 : 0), }; @@ -1070,8 +1079,9 @@ namespace AgroBase.Models.Modules var pino = pinout.Pinos.FirstOrDefault(p => p.ComponenteID == ID); List config = new List { - (byte)Componente, (byte)ID_Num, + (byte)CanMessagePosicaoDados.Config1, + (byte)Componente, (byte)(conectar ? 1 : 0), (byte)(pino?.Barramento ?? TiposBarramentos.CONTROLADOR), (byte)(pino?.Pino ?? PinoutUtils.PINO_INVALIDO) @@ -1084,8 +1094,8 @@ namespace AgroBase.Models.Modules { List frame = new List { - (byte)Componente, (byte)ID_Num, + (byte)CanMessagePosicaoDados.Command1, (byte)Comportamento.statusLED, (byte)Comportamento.QtdPiscadas, (byte)(Comportamento.TempoMs / 10), @@ -1146,8 +1156,9 @@ namespace AgroBase.Models.Modules var pino = pinout.Pinos.FirstOrDefault(p => p.ComponenteID == ID); List config = new List { - (byte)Componente, (byte)ID_Num, + (byte)CanMessagePosicaoDados.Config1, + (byte)Componente, (byte)(conectar ? 1 : 0), (byte)(AtuacaoNivelAlto ? 1 : 0), (byte)(pino?.Barramento ?? TiposBarramentos.CONTROLADOR), @@ -1163,8 +1174,8 @@ namespace AgroBase.Models.Modules F_Code.CmdTx, new byte[] { - (byte)Componente, (byte)ID_Num, + (byte)CanMessagePosicaoDados.Command1, (byte)StatusControle } ); @@ -1224,8 +1235,9 @@ namespace AgroBase.Models.Modules List config = new List { - (byte)Componente, (byte)ID_Num, + (byte)CanMessagePosicaoDados.Config1, + (byte)Componente, (byte)(conectar ? 1 : 0), (byte)(incremental ? 1 : 0), (byte)(pino?.Barramento ?? TiposBarramentos.CONTROLADOR), @@ -1241,8 +1253,8 @@ namespace AgroBase.Models.Modules F_Code.CmdTx, new byte[] { - (byte)Componente, (byte)ID_Num, + (byte)CanMessagePosicaoDados.Command1, (byte)_AnguloControle } ); @@ -1615,7 +1627,6 @@ namespace AgroBase.Models.Modules { public string ID { get; set; } public bool Iniciado { get; set; } - public double Leitura { get; set; } public double Pressao { get; set; } } @@ -1725,171 +1736,222 @@ namespace AgroBase.Models.Modules return _value; } + private S_Code DetectarComponenteDoID_Num(int ID_Num) + { + if (ID_Num == Variaveis.ID_Num_sMOD) return S_Code.sMOD; + + var Disp = Variaveis.OperacaoEmAndamento.DispSen.Dados; + var sensor = Disp.Sensores.FirstOrDefault(x => x.ID_Num == ID_Num); + var rele = Disp.Reles.FirstOrDefault(x => x.ID_Num == ID_Num); + var sinaleiro = Disp.Sinaleiros.FirstOrDefault(x => x.ID_Num == ID_Num); + var servo = Disp.Servos.FirstOrDefault(x => x.ID_Num == ID_Num); + + return sensor?.Componente ?? rele?.Componente ?? sinaleiro?.Componente ?? servo?.Componente ?? S_Code.sVZO; + } + + private void DefinirOuCriar(int CompID_Num, S_Code componente, bool Iniciado, List Parametros) + { + var Disp = Variaveis.OperacaoEmAndamento.DispSen; + var item = Disp.Dados.DadosLeitura; + + switch (componente) + { + case S_Code.sTMP: + { + var sensor = Disp.Dados.Sensores.FirstOrDefault(x => x.ID_Num == CompID_Num); + var _sensor = item.SensoresTemperatura.FirstOrDefault(x => x.ID == sensor.ID); + if (_sensor == null) + { + _sensor = new FirmwareSensorTemperatura() + { + ID = sensor.ID, + Iniciado = Iniciado, + Temperatura = -1, + }; + item.SensoresTemperatura.Add(_sensor); + } + if (_sensor != null) + { + _sensor.Iniciado = Iniciado; + _sensor.Temperatura = Parametros.Count > 0 ? Parametros[0] : -1; + } + break; + } + case S_Code.sCOR: + { + var sensor = Disp.Dados.Sensores.FirstOrDefault(x => x.ID_Num == CompID_Num); + var _sensor = item.SensoresCorrente.FirstOrDefault(x => x.ID == sensor.ID); + if (_sensor == null) + { + _sensor = new FirmwareSensorCorrente() + { + ID = sensor.ID, + Iniciado = Iniciado, + BusVoltage = -1, + Current = -1, + Power = -1, + ShuntVoltage = -1, + }; + item.SensoresCorrente.Add(_sensor); + } + if (_sensor != null) + { + _sensor.Iniciado = Iniciado; + _sensor.BusVoltage = Parametros.Count > 0 ? Parametros[0] : -1; + _sensor.Current = Parametros.Count > 1 ? Parametros[1] : -1; + _sensor.Power = Parametros.Count > 2 ? Parametros[2] : -1; + } + break; + } + case S_Code.sLED: + { + var sensor = Disp.Dados.Sinaleiros.FirstOrDefault(x => x.ID_Num == CompID_Num); + var _sensor = item.Sinaleiros.FirstOrDefault(x => x.ID == sensor.ID); + if (_sensor == null) + { + _sensor = new FirmwareSinaleiro() + { + ID = sensor.ID, + Iniciado = Iniciado, + Comando = StatusLED.Apagado, + Leitura = StatusLED.Apagado, + }; + item.Sinaleiros.Add(_sensor); + } + if (_sensor != null) + { + _sensor.Iniciado = Iniciado; + _sensor.Leitura = Parametros.Count > 0 ? Parametros[0] : StatusLED.Apagado; + _sensor.Comando = Parametros.Count > 1 ? Parametros[1] : StatusLED.Apagado; + } + break; + } + case S_Code.sRLE: + { + var sensor = Disp.Dados.Reles.FirstOrDefault(x => x.ID_Num == CompID_Num); + var _sensor = item.Reles.FirstOrDefault(x => x.ID == sensor.ID); + if (_sensor == null) + { + _sensor = new FirmwareRele() + { + ID = sensor.ID, + Iniciado = Iniciado, + Leitura = Estado.Desligado, + }; + item.Reles.Add(_sensor); + } + if (_sensor != null) + { + _sensor.Iniciado = Iniciado; + _sensor.Leitura = Parametros.Count > 0 ? Parametros[0] : Estado.Desligado; + } + break; + } + case S_Code.sFRO: + { + var sensor = Disp.Dados.Servos.FirstOrDefault(x => x.ID_Num == CompID_Num); + var _sensor = item.ServoFreios.FirstOrDefault(x => x.ID == sensor.ID); + if (_sensor == null) + { + _sensor = new FirmwareServoFreio() + { + ID = sensor.ID, + Iniciado = Iniciado, + Angulo = -1, + }; + item.ServoFreios.Add(_sensor); + } + if (_sensor != null) + { + _sensor.Iniciado = Iniciado; + _sensor.Angulo = Parametros.Count > 0 ? Parametros[0] : -1; + } + break; + } + } + } + public void ProcessarMensagem(CanMessage mensagem) { - F_Code func = (F_Code)mensagem.DataRx[0]; + byte ID_Num = mensagem.DataRx[0]; + CanMessagePosicaoDados posicao = (CanMessagePosicaoDados)mensagem.DataRx[1]; byte id = mensagem.Id; var data = mensagem.DataRx; var item = Variaveis.OperacaoEmAndamento.DispSen.Dados.DadosLeitura; - switch (func) + S_Code componente = DetectarComponenteDoID_Num(ID_Num); + + //Console.WriteLine($"[SEN] Componente={componente.ToString()}, ID_Num={CompID_Num}, Data={FuncoesGlobais.ConverterComandoBytesParaTexto(data)}"); + + switch (posicao) { - case F_Code.ChkRx: - if (data != null && data.Length >= 4) + case CanMessagePosicaoDados.Status: { - T_Code tipoModulo = (T_Code)data[1]; - bool conectado = data[2] == 1; - int versao = data[3]; + if (componente == S_Code.sMOD) + { + T_Code tipoModulo = (T_Code)data[2]; + bool conectado = data[3] == 1; + int versao = data[4]; - Console.WriteLine($"[SEN] Resposta {func.ToString()} recebida. Tipo={tipoModulo}, Conectado={conectado}, Versão={versao}"); + Console.WriteLine($"[SEN] Resposta {ID_Num} recebida. Tipo={tipoModulo}, Conectado={conectado}, Versão={versao}"); - item.Conectado = conectado; - item.Dispositivo = tipoModulo; - item.Versao = versao; + item.Conectado = conectado; + item.Dispositivo = tipoModulo; + item.Versao = versao; + } + else + { + bool Iniciado = data[2] == 1; + DefinirOuCriar(ID_Num, componente, Iniciado, new List()); + } + break; } - break; - default: + case CanMessagePosicaoDados.Dados1: { - S_Code componente = (S_Code)data[0]; - int CompID_Num = data[1]; - bool Iniciado = data[2] == 1; - - //Console.WriteLine($"[SEN] Componente={componente.ToString()}, ID_Num={CompID_Num}, Iniciado={Iniciado}"); - switch (componente) { case S_Code.sTMP: { - var sensor = Variaveis.OperacaoEmAndamento.DispSen.Dados.Sensores.FirstOrDefault(x => x.ID_Num == CompID_Num); - var _sensor = item.SensoresTemperatura.FirstOrDefault(x => x.ID == sensor.ID); - if (_sensor == null) - { - _sensor = new FirmwareSensorTemperatura() - { - ID = sensor.ID, - Iniciado = Iniciado, - Temperatura = -1, - }; - item.SensoresTemperatura.Add(_sensor); - } - double temperatura = ConverterByteParaDouble(data, 3); - - if (_sensor != null) - { - _sensor.Temperatura = temperatura; - } + double temperatura = ConverterByteParaDouble(data, 2); + DefinirOuCriar(ID_Num, componente, true, new List() { temperatura }); break; } case S_Code.sCOR: { - var sensor = Variaveis.OperacaoEmAndamento.DispSen.Dados.Sensores.FirstOrDefault(x => x.ID_Num == CompID_Num); - var _sensor = item.SensoresCorrente.FirstOrDefault(x => x.ID == sensor.ID); - if (_sensor == null) - { - _sensor = new FirmwareSensorCorrente() - { - ID = sensor.ID, - Iniciado = Iniciado, - BusVoltage = -1, - Current = -1, - Power = -1, - ShuntVoltage = -1, - }; - item.SensoresCorrente.Add(_sensor); - } - - double busVoltage = ConverterByteParaDouble(data, 3); - double current = ConverterByteParaDouble(data, 5); - //double power = ConverterByteParaDouble(data, 7); - - if (_sensor != null) - { - _sensor.BusVoltage = busVoltage; - _sensor.Current = current; - } + double busVoltage = ConverterByteParaDouble(data, 2); + double current = ConverterByteParaDouble(data, 4); + double power = ConverterByteParaDouble(data, 6); + DefinirOuCriar(ID_Num, componente, true, new List() { busVoltage, current, power }); break; } case S_Code.sLED: { - var sinaleiro = Variaveis.OperacaoEmAndamento.DispSen.Dados.Sinaleiros.FirstOrDefault(x => x.ID_Num == CompID_Num); - var _sensor = item.Sinaleiros.FirstOrDefault(x => x.ID == sinaleiro.ID); - if (_sensor == null) - { - _sensor = new FirmwareSinaleiro() - { - ID = sinaleiro.ID, - Iniciado = Iniciado, - Leitura = StatusLED.Apagado, - Comando = StatusLED.Apagado - }; - item.Sinaleiros.Add(_sensor); - } - - StatusLED statusLeitura = (StatusLED)data[3]; - StatusLED status = (StatusLED)data[4]; - - if (_sensor != null) - { - _sensor.Leitura = statusLeitura; - _sensor.Comando = status; - } + StatusLED statusLeitura = (StatusLED)data[2]; + StatusLED statusComando = (StatusLED)data[3]; + DefinirOuCriar(ID_Num, componente, true, new List() { statusLeitura, statusComando }); break; } case S_Code.sRLE: { - var rele = Variaveis.OperacaoEmAndamento.DispSen.Dados.Reles.FirstOrDefault(x => x.ID_Num == CompID_Num); - var _sensor = item.Reles.FirstOrDefault(x => x.ID == rele.ID); - if (_sensor == null) - { - _sensor = new FirmwareRele() - { - ID = rele.ID, - Iniciado = Iniciado, - Leitura = Estado.Desligado - }; - item.Reles.Add(_sensor); - } - - Estado estado = (Estado)data[3]; - - if (_sensor != null) - { - _sensor.Leitura = estado; - } + Estado estado = (Estado)data[2]; + DefinirOuCriar(ID_Num, componente, true, new List() { estado }); break; } case S_Code.sFRO: { - var servo = Variaveis.OperacaoEmAndamento.DispSen.Dados.Servos.FirstOrDefault(x => x.ID_Num == CompID_Num); - var _sensor = item.ServoFreios.FirstOrDefault(x => x.ID == servo.ID); - if (_sensor == null) - { - _sensor = new FirmwareServoFreio() - { - ID = servo.ID, - Iniciado = Iniciado, - Angulo = -1, - }; - item.ServoFreios.Add(_sensor); - } - - int angulo = data[3]; - - if (_sensor != null) - { - _sensor.Angulo = angulo; - } + int angulo = data[2]; + DefinirOuCriar(ID_Num, componente, true, new List() { angulo }); break; } default: - { - Console.WriteLine($"[SEN] Resposta {func.ToString()} recebida. Parametros nao mapeados: {FuncoesGlobais.ConverterComandoBytesParaTexto(data)}"); - break; - } + { + Console.WriteLine($"[SEN] Resposta de {ID_Num} recebida. Parametros nao mapeados: {FuncoesGlobais.ConverterComandoBytesParaTexto(data)}"); + break; + } } - + break; } } diff --git a/AgroBase/AgroBase/Models/Variaveis.cs b/AgroBase/AgroBase/Models/Variaveis.cs index b1a958226..c1dabcb80 100644 --- a/AgroBase/AgroBase/Models/Variaveis.cs +++ b/AgroBase/AgroBase/Models/Variaveis.cs @@ -67,6 +67,8 @@ namespace AgroBase.Models return CaminhoSistema.Contains("AgroMonitor"); } } + + public static byte ID_Num_sMOD { get; } = 0x00; } public static class VariaveisPortas diff --git a/AgroBase/AgroBase/Services/CANService.cs b/AgroBase/AgroBase/Services/CANService.cs index bfc69f4d2..ab6ad4a32 100644 --- a/AgroBase/AgroBase/Services/CANService.cs +++ b/AgroBase/AgroBase/Services/CANService.cs @@ -27,6 +27,26 @@ namespace AgroBase.Services public DateTime RespondidoEm { get; set; } } + public enum CanMessagePosicaoDados + { + Status = 0, + Dados1 = 1, + Dados2 = 2, + Dados3 = 3, + Dados4 = 4, + Dados5 = 5, + Config1 = 51, + Config2 = 52, + Config3 = 53, + Config4 = 54, + Config5 = 55, + Command1 = 101, + Command2 = 102, + Command3 = 103, + Command4 = 104, + Command5 = 105, + } + public interface ICanMessageHandler { void ProcessarMensagem(CanMessage mensagem); @@ -146,19 +166,12 @@ namespace AgroBase.Services data[i] = Convert.ToByte(frame.Substring(5 + i * 2, 2), 16); } - byte funcCode = data[0]; + byte funcCodeRx = data[0]; var mensagem = new CanMessage(); - List mensagensPorID = new List(); lock (Mensagens) { - mensagensPorID = Mensagens.Where(x => x.Id == id).ToList(); - } - - mensagem = mensagensPorID.OrderBy(x => x.EnviadoEm).FirstOrDefault(x => x.Id == id && x.funcCodeRx == funcCode && x.Enviado && !x.Respondido); - if (mensagem == null) - { - mensagem = mensagensPorID.OrderBy(x => x.EnviadoEm).FirstOrDefault(x => x.Id == id && x.Enviado && !x.Respondido); + mensagem = Mensagens.Where(x => x.Id == id).OrderBy(x => x.EnviadoEm).FirstOrDefault(x => x.Enviado && !x.Respondido && x.funcCodeRx == funcCodeRx); } if (mensagem == null) @@ -176,7 +189,7 @@ namespace AgroBase.Services } else { - Console.WriteLine($"[CAN] FuncCode não tratado: 0x{funcCode:X2}"); + Console.WriteLine($"[CAN] ID_Num não tratado: 0x{funcCodeRx:X2}"); } } catch (Exception ex) @@ -185,25 +198,28 @@ namespace AgroBase.Services } } - public static void AdicionarMensagemNaFila(T_Code Dispositivo, byte id, byte funcCodeTx, byte funcCodeRx, byte[] payload = null, bool get = true) + public static void AdicionarMensagemNaFila(T_Code Dispositivo, byte id, byte funcCode, byte[] payload = null, bool get = true, byte ID_Num = 0x00) { if (_PortaCAN?.IsOpen != true) return; // Monta o payload com funcCode + dados + CRC - var dados = new List { funcCodeTx }; + var dados = new List { funcCode }; if (payload != null) dados.AddRange(payload); - byte crc = CalcularChecksum(id, dados.ToArray()); - dados.Add(crc); + if (Dispositivo == T_Code.Mks) + { + byte crc = CalcularChecksum(id, dados.ToArray()); + dados.Add(crc); + } var novaMensagem = new CanMessage { Momento = DateTime.Now, Dispositivo = Dispositivo, + funcCodeTx = funcCode, Id = id, - funcCodeTx = funcCodeTx, - funcCodeRx = funcCodeRx, + funcCodeRx = ID_Num, DataTx = dados.ToArray(), ComResposta = get }; @@ -215,7 +231,8 @@ namespace AgroBase.Services var existente = Mensagens.FirstOrDefault(x => x.Id == novaMensagem.Id && - x.funcCodeTx == novaMensagem.funcCodeTx && + x.funcCodeTx == novaMensagem.funcCodeTx && + x.funcCodeRx == novaMensagem.funcCodeRx && x.ComResposta == novaMensagem.ComResposta && x.DataTx.SequenceEqual(novaMensagem.DataTx) && (!x.Enviado || (x.ComResposta && !x.Respondido)) // Está pendente @@ -316,7 +333,7 @@ namespace AgroBase.Services { _PortaCAN.Write(comando); - //Console.WriteLine($"[CAN] Frame enviado: {comando}"); + Console.WriteLine($"[CAN] Frame enviado: {comando}"); } } diff --git a/AgroBase/AgroBase/Services/DispositivosService.cs b/AgroBase/AgroBase/Services/DispositivosService.cs index e17803beb..acbe2f3ba 100644 --- a/AgroBase/AgroBase/Services/DispositivosService.cs +++ b/AgroBase/AgroBase/Services/DispositivosService.cs @@ -71,16 +71,11 @@ namespace AgroBase.Comum VariaveisOperacao.RegistrarLogDispositivo(Logs, Dispositivo, ".json", 100); } - public void AdicionarMensagemFila(F_Code funcao, byte[] dados = null, bool get = true, F_Code funcaoRx = F_Code.Nda) + public void AdicionarMensagemFila(F_Code funcao, byte[] dados = null, bool get = true, byte ID_Num = 0x00) { if ((int)funcao % 2 == 1) { - byte funcCodeRx = (byte)(((int)funcao) + 1); - if (funcaoRx != F_Code.Nda) - { - funcCodeRx = (byte)funcaoRx; - } - CanService.AdicionarMensagemNaFila(Dispositivo, _EnderecoCAN, (byte)funcao, funcCodeRx, dados, get); + CanService.AdicionarMensagemNaFila(Dispositivo, _EnderecoCAN, (byte)funcao, dados, get, ID_Num); } } @@ -405,12 +400,7 @@ namespace AgroBase.Comum var Config = Dados.ProtocoloConfiguracao(Conectar); foreach (var data in Config) { - F_Code funcCodeRx = F_Code.Nda; - if ((S_Code)data[0] == S_Code.sMOD) - { - funcCodeRx = F_Code.ChkRx; - } - AdicionarMensagemFila(F_Code.CfgTx, data, false, funcCodeRx); + AdicionarMensagemFila(F_Code.CfgTx, data, false); } } diff --git a/AgroBase/AgroBase/Services/IDispositivosService.cs b/AgroBase/AgroBase/Services/IDispositivosService.cs index c5a7de348..172127239 100644 --- a/AgroBase/AgroBase/Services/IDispositivosService.cs +++ b/AgroBase/AgroBase/Services/IDispositivosService.cs @@ -15,7 +15,7 @@ namespace AgroBase.Services Control InstanciarDispositivo(int index); void AtualizaIndex(int index); void SalvarParametros(DispositivoBaseModel dados); - void AdicionarMensagemFila(F_Code funcao, byte[] dados, bool get, F_Code funcaoRx); + void AdicionarMensagemFila(F_Code funcao, byte[] dados, bool get, byte ID_Num); void EnviarProtocolosConfiguracao(bool Conectar = true); void CarregarParametrosModulos(); } diff --git a/AgroBase/AgroBase/Services/MKS057DCanService.cs b/AgroBase/AgroBase/Services/MKS057DCanService.cs index a5207d42d..3955778ed 100644 --- a/AgroBase/AgroBase/Services/MKS057DCanService.cs +++ b/AgroBase/AgroBase/Services/MKS057DCanService.cs @@ -40,12 +40,6 @@ namespace AgroBase.Services } } - - public MKS057DCanService() - { - - } - public static async Task VerificaPortaMKS(SerialPort porta) { if (!CanService.IsConnected) @@ -157,7 +151,7 @@ namespace AgroBase.Services private static void EnviarComando(T_Code Dispositivo, byte id, byte funcCode, byte[] payload = null, bool get = true) { - CanService.AdicionarMensagemNaFila(Dispositivo, id, funcCode, funcCode, payload, get); + CanService.AdicionarMensagemNaFila(Dispositivo, id, funcCode, payload, get, funcCode); } public static void SetModoOperacao(byte id, byte modo) diff --git a/AgroBase/AgroBase/Services/SerialService.cs b/AgroBase/AgroBase/Services/SerialService.cs index 67a022288..4f071e1df 100644 --- a/AgroBase/AgroBase/Services/SerialService.cs +++ b/AgroBase/AgroBase/Services/SerialService.cs @@ -672,36 +672,47 @@ namespace AgroBase.Services AtualizarConsole("Dispositivo LRA encontrado"); return true; } + porta.Close(); return false; } private static async Task ProcurarDispositivoGPS(SerialPort Porta) { - Porta.Open(); - await Task.Delay(100); - AtualizarConsole($"{Porta.PortName} - Procurando dispositivo GPS"); - await Task.Delay(1000); - - string Recebido = ""; - - if (string.IsNullOrEmpty(Recebido)) + try { - //Recebido = Porta.ReadLine(); - byte[] buffer = LerDadosDaPortaSerial(Porta, 15); - Recebido = Encoding.ASCII.GetString(buffer); - } + Porta.Open(); + await Task.Delay(100); + AtualizarConsole($"{Porta.PortName} - Procurando dispositivo GPS"); + await Task.Delay(1000); - if ( - (Recebido.Contains("$GPTXT") || Recebido.Contains("$GPRMC") || Recebido.Contains("$GPGGA") || Recebido.Contains("$GPGLL")) || - (Recebido.Contains("$GNGGA") || Recebido.Contains("$GPVTG") || Recebido.Contains("$GPGSV") || Recebido.Contains("$GNTHS")) - ) + string Recebido = ""; + + if (string.IsNullOrEmpty(Recebido)) + { + //Recebido = Porta.ReadLine(); + byte[] buffer = LerDadosDaPortaSerial(Porta, 15); + Recebido = Encoding.ASCII.GetString(buffer); + } + + if ( + (Recebido.Contains("$GPTXT") || Recebido.Contains("$GPRMC") || Recebido.Contains("$GPGGA") || Recebido.Contains("$GPGLL")) || + (Recebido.Contains("$GNGGA") || Recebido.Contains("$GPVTG") || Recebido.Contains("$GPGSV") || Recebido.Contains("$GNTHS")) + ) + { + GPSService.AtualizarPortaCOM(Porta); + AtualizarConsole("Dispositivo GPS encontrado"); + return true; + } + return false; + } + catch (Exception ex) { - GPSService.AtualizarPortaCOM(Porta); - AtualizarConsole("Dispositivo GPS encontrado"); - return true; + return false; + } + finally + { + Porta.Close(); } - - return false; } public static byte[] VerificarRespostaPortasDesconhecidas(SerialPort Porta) diff --git a/AgroBase/AgroBase/bin/Debug/AgroBase.pdb b/AgroBase/AgroBase/bin/Debug/AgroBase.pdb index 2656ee338..954387cad 100644 Binary files a/AgroBase/AgroBase/bin/Debug/AgroBase.pdb and b/AgroBase/AgroBase/bin/Debug/AgroBase.pdb differ diff --git a/AgroBase/AgroBase/bin/Debug/Parametros/parametersMvd-2_0.par b/AgroBase/AgroBase/bin/Debug/Parametros/parametersMvd-2_0.par index 3f8092d61..b0f35798f 100644 --- a/AgroBase/AgroBase/bin/Debug/Parametros/parametersMvd-2_0.par +++ b/AgroBase/AgroBase/bin/Debug/Parametros/parametersMvd-2_0.par @@ -1 +1 @@ -{"tmrRegistrador":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Mvd","TimeTick":"00:00:00"},"tmrRegistradorMOV":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Mov","TimeTick":"00:00:00"},"tmrRegistradorDIR":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Dir","TimeTick":"00:00:00"},"Dispositivo":109,"_EnderecoCAN":0,"Conectado":false,"_TaxaAmostragem":1000,"DistanciaPercorridaOperacao":0.0,"TempoEmAtividade":0.0,"DistanciaPercorridaTotal":0.0,"DistanciaPercorridaParcial":0.0,"VelocidadeMedia":0.0,"DiametroRoda":0.365,"ReducaoMotorBLDC":5.0,"RPM_Max_MotorBLDC":500.0,"IP_Mov":"192.168.105.10","IP_Dir":"192.168.105.11","Modulos":[{"Modulo_ID":"ET","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x01","EnderecoByte":1,"Mod_ID":"ET","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":true,"AnguloInicial":10,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x01","EnderecoByte":1,"Mod_ID":"ET","Sentido_SP":0,"Angulo_SP":0.0,"FolgaMecanica":2.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":false,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-08T15:18:55.5193678-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"EF","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x03","EnderecoByte":3,"Mod_ID":"EF","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":true,"AnguloInicial":10,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x03","EnderecoByte":3,"Mod_ID":"EF","Sentido_SP":0,"Angulo_SP":0.0,"FolgaMecanica":5.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-08T15:20:46.7056658-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"DT","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x02","EnderecoByte":2,"Mod_ID":"DT","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":false,"AnguloInicial":170,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x02","EnderecoByte":2,"Mod_ID":"DT","Sentido_SP":0,"Angulo_SP":0.0,"FolgaMecanica":7.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":false,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-08T15:18:55.5193678-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"DF","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x04","EnderecoByte":4,"Mod_ID":"DF","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":false,"AnguloInicial":170,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x04","EnderecoByte":4,"Mod_ID":"DF","Sentido_SP":0,"Angulo_SP":0.0,"FolgaMecanica":5.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-08T15:20:46.7056658-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}}]} \ No newline at end of file +{"tmrRegistrador":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Mvd","TimeTick":"00:00:00"},"tmrRegistradorMOV":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Mov","TimeTick":"00:00:00"},"tmrRegistradorDIR":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":300,"StackTrace":"MovimentacaoUnificadaModel.IniciarRegistrador","Id":"tmrRegistrador_Dir","TimeTick":"00:00:00"},"Dispositivo":109,"_EnderecoCAN":0,"Conectado":false,"_TaxaAmostragem":1000,"DistanciaPercorridaOperacao":0.0,"TempoEmAtividade":0.0,"DistanciaPercorridaTotal":0.0,"DistanciaPercorridaParcial":0.0,"VelocidadeMedia":0.0,"DiametroRoda":0.365,"ReducaoMotorBLDC":5.0,"RPM_Max_MotorBLDC":500.0,"IP_Mov":"192.168.105.10","IP_Dir":"192.168.105.11","Modulos":[{"Modulo_ID":"ET","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x01","EnderecoByte":1,"Mod_ID":"ET","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":true,"AnguloInicial":10,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x01","EnderecoByte":1,"Mod_ID":"ET","Sentido_SP":0,"Angulo_SP":0.0,"FolgaMecanica":2.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":false,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-08T15:18:55.5193678-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"EF","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x03","EnderecoByte":3,"Mod_ID":"EF","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":true,"AnguloInicial":10,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x03","EnderecoByte":3,"Mod_ID":"EF","Sentido_SP":0,"Angulo_SP":0.0,"FolgaMecanica":5.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-08T15:20:46.7056658-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"DT","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x02","EnderecoByte":2,"Mod_ID":"DT","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":false,"AnguloInicial":170,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x02","EnderecoByte":2,"Mod_ID":"DT","Sentido_SP":0,"Angulo_SP":0.0,"FolgaMecanica":7.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":false,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-08T15:18:55.5193678-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}},{"Modulo_ID":"DF","Disponivel":false,"RequisitarDados":false,"Conectado":false,"MovMotor":{"ID":"Mov","Endereco":"0x04","EnderecoByte":4,"Mod_ID":"DF","LeituraLigado":true,"ComandoLigado":false,"CodigoAlarme":0,"AlarmeMotor":false,"RPM_SP":0,"RPM_SP_Controle":0,"RPM_SP_Leitura":0,"Sentido_SP":0,"NumeroPolos":10,"Rampa":0,"CorrenteTorqueMaximo":40,"OffsetLeitura":1.0,"AlarmeComando":false,"RPM_Roda":0.0,"Sentido":0,"Temperatura":0.0,"TemperaturaDriver":0.0,"Tensao":0.0,"Corrente_Barramento":0.0,"Corrente_Motor":0.0,"Potencia":0.0,"CicloTrabalho":0.0,"RPM_Motor":0.0,"VelocidadeInstantanea":0.0,"Comandar":true,"AlarmeSensores":false,"Inicializado":false,"Leitura":null,"CompensacaoNecessaria":false,"ConfigSentidos":{"RodasDianteiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RodasTraseiras":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoArco":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0},"RotacionarNoEixo":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoLateral":{"Frente":2,"Tras":1,"Esquerda":0,"Direita":0,"Parado":0},"Diagnostico":{"Frente":1,"Tras":2,"Esquerda":0,"Direita":0,"Parado":0}},"Funcoes":[12,14,9,5,10],"LogGrafico":[],"Alarmes":[{"Tipo":411,"Valor":-1.0,"Minimo":true,"Maximo":false,"ParaMinimo":false,"ParaMaximo":false}],"ConfigFreio":{"Incremental":false,"AnguloInicial":170,"Leitura":false,"Controle":false}},"DirMotor":{"ID":"Dir","Endereco":"0x04","EnderecoByte":4,"Mod_ID":"DF","Sentido_SP":0,"Angulo_SP":0.0,"FolgaMecanica":5.0,"Velocidade_Max":600.0,"Velocidade":240,"Sentido":0,"SentidoReal":2,"Angulo":0.0,"RPM":0.0,"IN1_Atuado":false,"IN2_Atuado":false,"Comandar":true,"Inicializado":false,"Leitura":null,"UltimaDirecao":0,"UltimoComandoEnviado":"2025-04-08T15:20:46.7056658-03:00","RetornandoAzero":false,"EmMovimento":false,"AtingiuAnguloSP":true,"ConfigSentidos":{"RodasDianteiras":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RodasTraseiras":{"Frente":0,"Tras":0,"Esquerda":0,"Direita":0,"Parado":0},"MovimentoDiagonal":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"MovimentoArco":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"RotacionarNoEixo":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":1,"Parado":0},"MovimentoLateral":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"Diagnostico":{"Frente":2,"Tras":1,"Esquerda":1,"Direita":2,"Parado":0}},"Funcoes":[13,9,14,41]}}]} \ No newline at end of file diff --git a/AgroBase/AgroBase/bin/Debug/Parametros/parametersSen-1_2.par b/AgroBase/AgroBase/bin/Debug/Parametros/parametersSen-1_2.par index 8cba6dcfa..7826c3dfc 100644 --- a/AgroBase/AgroBase/bin/Debug/Parametros/parametersSen-1_2.par +++ b/AgroBase/AgroBase/bin/Debug/Parametros/parametersSen-1_2.par @@ -1 +1 @@ -{"tmrRegistrador":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"SensoriamentoModel.IniciarRegistrador","Id":"tmrRegistrador_Sen","TimeTick":"00:00:00"},"Dispositivo":102,"Modulo_ID":"Sen","_EnderecoCAN":17,"_TaxaAmostragem":1000,"RequisitarDados":true,"Conectado":false,"Sensores":[{"LogGrafico":[],"ID":"TMVET","ID_Num":1,"Descricao":"Temperatura Motor Esquerdo Trás","Componente":4,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[12],"Parametros":[{"Descricao":"Offset","Valor":"0","QtdBytes":2,"Escalar":false,"Enviar":false}],"UnidadeMedida":"ºC","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"TMVEF","ID_Num":2,"Descricao":"Temperatura Motor Esquerdo Frente","Componente":4,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[12],"Parametros":[{"Descricao":"Offset","Valor":"0","QtdBytes":2,"Escalar":false,"Enviar":false}],"UnidadeMedida":"ºC","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"TMVDT","ID_Num":3,"Descricao":"Temperatura Motor Direito Trás","Componente":4,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[12],"Parametros":[{"Descricao":"Offset","Valor":"0","QtdBytes":2,"Escalar":false,"Enviar":false}],"UnidadeMedida":"ºC","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"TMVDF","ID_Num":4,"Descricao":"Temperatura Motor Direito Frente","Componente":4,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[12],"Parametros":[{"Descricao":"Offset","Valor":"0","QtdBytes":2,"Escalar":false,"Enviar":false}],"UnidadeMedida":"ºC","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"TBAT","ID_Num":5,"Descricao":"Temperatura da bateria","Componente":4,"Aferir":false,"Leitura":null,"Inicializado":false,"Funcoes":[12],"Parametros":[{"Descricao":"Offset","Valor":"0","QtdBytes":2,"Escalar":false,"Enviar":false}],"UnidadeMedida":"ºC","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"AB3V","ID_Num":11,"Descricao":"Corrente no Barramento 3V","Componente":6,"Aferir":false,"Leitura":null,"Inicializado":false,"Funcoes":[27],"Parametros":[{"Descricao":"Endereço I2C","Valor":"0x45","QtdBytes":1,"Escalar":false,"Enviar":true},{"Descricao":"Corrente Máx","Valor":"1","QtdBytes":1,"Escalar":false,"Enviar":true}],"UnidadeMedida":"mA","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"AB5V","ID_Num":12,"Descricao":"Corrente no Barramento 5V","Componente":6,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[27],"Parametros":[{"Descricao":"Endereço I2C","Valor":"0x41","QtdBytes":1,"Escalar":false,"Enviar":true},{"Descricao":"Corrente Máx","Valor":"1","QtdBytes":1,"Escalar":false,"Enviar":true}],"UnidadeMedida":"mA","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"AB7V2","ID_Num":13,"Descricao":"Corrente no Barramento 7,2V","Componente":6,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[27],"Parametros":[{"Descricao":"Endereço I2C","Valor":"0x44","QtdBytes":1,"Escalar":false,"Enviar":true},{"Descricao":"Corrente Máx","Valor":"2","QtdBytes":1,"Escalar":false,"Enviar":true}],"UnidadeMedida":"mA","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"AB12V","ID_Num":14,"Descricao":"Corrente no Barramento 12V","Componente":6,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[27],"Parametros":[{"Descricao":"Endereço I2C","Valor":"0x40","QtdBytes":1,"Escalar":false,"Enviar":true},{"Descricao":"Corrente Máx","Valor":"3","QtdBytes":1,"Escalar":false,"Enviar":true}],"UnidadeMedida":"mA","LimiteMaximo":0.0,"LimiteMinimo":0.0}],"Sinaleiros":[{"ID":"LEDMN","ID_Num":21,"Descricao":"Sinaleiro indicação de modo Manual ativo","Componente":15,"Funcoes":[38],"Comportamento":{"statusLED":1,"QtdPiscadas":1,"TempoMs":1000,"PausaMs":1000},"Leitura":null,"Inicializado":false,"LeituraComando":0,"LeituraStatus":0},{"ID":"LEDAT","ID_Num":22,"Descricao":"Sinaleiro indicação de modo Automático ativo","Componente":15,"Funcoes":[38],"Comportamento":{"statusLED":0,"QtdPiscadas":1,"TempoMs":1000,"PausaMs":1000},"Leitura":null,"Inicializado":false,"LeituraComando":0,"LeituraStatus":0},{"ID":"LEDOP","ID_Num":23,"Descricao":"Sinaleiro indicação do status da operação ativa","Componente":15,"Funcoes":[38],"Comportamento":{"statusLED":2,"QtdPiscadas":2,"TempoMs":500,"PausaMs":2000},"Leitura":null,"Inicializado":false,"LeituraComando":0,"LeituraStatus":0}],"Reles":[{"ID":"RLLRA","ID_Num":31,"Descricao":"Relé modo operação LoRa","Componente":21,"Funcoes":[26],"ControleExterno":false,"Controlar":true,"AtuacaoNivelAlto":true,"StatusControle":0,"Leitura":null,"Inicializado":false,"LeituraEstado":0}],"Servos":[{"ID":"FRO_ET","ID_Num":41,"Descricao":"Freio Motor ET","Componente":22,"Funcoes":[45],"Controlar":true,"_AnguloControle":0,"Leitura":null,"Inicializado":false,"LeituraAngulo":0.0},{"ID":"FRO_EF","ID_Num":42,"Descricao":"Freio Motor EF","Componente":22,"Funcoes":[45],"Controlar":false,"_AnguloControle":0,"Leitura":null,"Inicializado":false,"LeituraAngulo":0.0},{"ID":"FRO_DT","ID_Num":43,"Descricao":"Freio Motor DT","Componente":22,"Funcoes":[45],"Controlar":true,"_AnguloControle":0,"Leitura":null,"Inicializado":false,"LeituraAngulo":0.0},{"ID":"FRO_DF","ID_Num":44,"Descricao":"Freio Motor DF","Componente":22,"Funcoes":[45],"Controlar":false,"_AnguloControle":0,"Leitura":null,"Inicializado":false,"LeituraAngulo":0.0}],"CameraID_Caminho":"","CameraID_Solo":[""],"ConfiguracaoSensorUltrassom":{"Configuracao":0,"Sensores":[{"ID":1,"Posicao":0,"LimiteMinimo":false,"LimiteMinimoVal":0.0,"MargemMinimo":0.0,"LimiteMaximo":false,"LimiteMaximoVal":0.0,"MargemMaximo":0.0,"Desvio":false,"Parada":false,"DistanciaIdeal":0.0,"EmUso":false,"LeituraCm":0.0,"SensorAtuado":false},{"ID":2,"Posicao":0,"LimiteMinimo":false,"LimiteMinimoVal":0.0,"MargemMinimo":0.0,"LimiteMaximo":false,"LimiteMaximoVal":0.0,"MargemMaximo":0.0,"Desvio":false,"Parada":false,"DistanciaIdeal":0.0,"EmUso":false,"LeituraCm":0.0,"SensorAtuado":false},{"ID":3,"Posicao":0,"LimiteMinimo":false,"LimiteMinimoVal":0.0,"MargemMinimo":0.0,"LimiteMaximo":false,"LimiteMaximoVal":0.0,"MargemMaximo":0.0,"Desvio":false,"Parada":false,"DistanciaIdeal":0.0,"EmUso":false,"LeituraCm":0.0,"SensorAtuado":false},{"ID":4,"Posicao":0,"LimiteMinimo":false,"LimiteMinimoVal":0.0,"MargemMinimo":0.0,"LimiteMaximo":false,"LimiteMaximoVal":0.0,"MargemMaximo":0.0,"Desvio":false,"Parada":false,"DistanciaIdeal":0.0,"EmUso":false,"LeituraCm":0.0,"SensorAtuado":false}],"_paradaFrontal":false,"_paradaTraseira":false,"_paradaEsquerda":false,"_paradaDireita":false,"DesvioNecessario":false,"ParadaNecessaria":false,"DirecoesObstaculos":[],"DirecaoDesvio":1},"BateriaCargaConsumida":0.0,"DadosLeitura":{"Momento":"0001-01-01T00:00:00","Conectado":false,"Dispositivo":0,"Versao":0,"Mod_ID":null,"QualidadeWifi":0,"LatenciaLoop":0,"SensoresTemperatura":[],"SensoresCorrente":[],"Sinaleiros":[],"Reles":[],"ServoFreios":[],"SensoresPotenciometro":[],"UltimoComandoRespondido":"0001-01-01T00:00:00"},"LoRaParametrosBase":{"UltimaLeitura":"0001-01-01T00:00:00","PortaCOM":"","baudRate":96,"airRate":2,"baudAndAirRate":98,"parity":0,"packetSize":0,"power":0,"packetSizeAndPower":0,"tranMode":64,"worCycle":7,"tranModeAndWorCycle":71,"channelRssi":0,"lbt":0,"packetRssi":0,"address":1,"channel":23,"key":0}} \ No newline at end of file +{"tmrRegistrador":{"_uiControl":null,"State":2,"IsRunning":false,"IsStopped":true,"IsCreated":false,"Interval":1000,"StackTrace":"SensoriamentoModel.IniciarRegistrador","Id":"tmrRegistrador_Sen","TimeTick":"00:00:00"},"Dispositivo":102,"Modulo_ID":"Sen","_EnderecoCAN":17,"_TaxaAmostragem":1000,"RequisitarDados":true,"Conectado":false,"Sensores":[{"LogGrafico":[],"ID":"TMVET","ID_Num":1,"Descricao":"Temperatura Motor Esquerdo Trás","Componente":4,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[12],"Parametros":[{"Descricao":"Offset","Valor":"0","QtdBytes":2,"Escalar":false,"Enviar":false}],"UnidadeMedida":"ºC","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"TMVEF","ID_Num":2,"Descricao":"Temperatura Motor Esquerdo Frente","Componente":4,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[12],"Parametros":[{"Descricao":"Offset","Valor":"0","QtdBytes":2,"Escalar":false,"Enviar":false}],"UnidadeMedida":"ºC","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"TMVDT","ID_Num":3,"Descricao":"Temperatura Motor Direito Trás","Componente":4,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[12],"Parametros":[{"Descricao":"Offset","Valor":"0","QtdBytes":2,"Escalar":false,"Enviar":false}],"UnidadeMedida":"ºC","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"TMVDF","ID_Num":4,"Descricao":"Temperatura Motor Direito Frente","Componente":4,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[12],"Parametros":[{"Descricao":"Offset","Valor":"0","QtdBytes":2,"Escalar":false,"Enviar":false}],"UnidadeMedida":"ºC","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"TBAT","ID_Num":5,"Descricao":"Temperatura da bateria","Componente":4,"Aferir":false,"Leitura":null,"Inicializado":false,"Funcoes":[12],"Parametros":[{"Descricao":"Offset","Valor":"0","QtdBytes":2,"Escalar":false,"Enviar":false}],"UnidadeMedida":"ºC","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"AB3V","ID_Num":11,"Descricao":"Corrente no Barramento 3V","Componente":6,"Aferir":false,"Leitura":null,"Inicializado":false,"Funcoes":[27],"Parametros":[{"Descricao":"Endereço I2C","Valor":"0x45","QtdBytes":1,"Escalar":false,"Enviar":true},{"Descricao":"Corrente Máx","Valor":"3.2","QtdBytes":1,"Escalar":false,"Enviar":true}],"UnidadeMedida":"mA","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"AB5V","ID_Num":12,"Descricao":"Corrente no Barramento 5V","Componente":6,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[27],"Parametros":[{"Descricao":"Endereço I2C","Valor":"0x41","QtdBytes":1,"Escalar":false,"Enviar":true},{"Descricao":"Corrente Máx","Valor":"3.2","QtdBytes":1,"Escalar":false,"Enviar":true}],"UnidadeMedida":"mA","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"AB7V2","ID_Num":13,"Descricao":"Corrente no Barramento 7,2V","Componente":6,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[27],"Parametros":[{"Descricao":"Endereço I2C","Valor":"0x44","QtdBytes":1,"Escalar":false,"Enviar":true},{"Descricao":"Corrente Máx","Valor":"50","QtdBytes":1,"Escalar":false,"Enviar":true}],"UnidadeMedida":"mA","LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"AB12V","ID_Num":14,"Descricao":"Corrente no Barramento 12V","Componente":6,"Aferir":true,"Leitura":null,"Inicializado":false,"Funcoes":[27],"Parametros":[{"Descricao":"Endereço I2C","Valor":"0x40","QtdBytes":1,"Escalar":false,"Enviar":true},{"Descricao":"Corrente Máx","Valor":"100","QtdBytes":1,"Escalar":false,"Enviar":true}],"UnidadeMedida":"mA","LimiteMaximo":0.0,"LimiteMinimo":0.0}],"Sinaleiros":[{"ID":"LEDMN","ID_Num":21,"Descricao":"Sinaleiro indicação de modo Manual ativo","Componente":15,"Funcoes":[38],"Comportamento":{"statusLED":1,"QtdPiscadas":1,"TempoMs":1000,"PausaMs":1000},"Leitura":null,"Inicializado":false,"LeituraComando":0,"LeituraStatus":0},{"ID":"LEDAT","ID_Num":22,"Descricao":"Sinaleiro indicação de modo Automático ativo","Componente":15,"Funcoes":[38],"Comportamento":{"statusLED":0,"QtdPiscadas":1,"TempoMs":1000,"PausaMs":1000},"Leitura":null,"Inicializado":false,"LeituraComando":0,"LeituraStatus":0},{"ID":"LEDOP","ID_Num":23,"Descricao":"Sinaleiro indicação do status da operação ativa","Componente":15,"Funcoes":[38],"Comportamento":{"statusLED":2,"QtdPiscadas":2,"TempoMs":500,"PausaMs":2000},"Leitura":null,"Inicializado":false,"LeituraComando":0,"LeituraStatus":0}],"Reles":[{"ID":"RLLRA","ID_Num":31,"Descricao":"Relé modo operação LoRa","Componente":21,"Funcoes":[26],"ControleExterno":false,"Controlar":true,"AtuacaoNivelAlto":true,"StatusControle":0,"Leitura":null,"Inicializado":false,"LeituraEstado":0}],"Servos":[{"ID":"FRO_ET","ID_Num":41,"Descricao":"Freio Motor ET","Componente":22,"Funcoes":[45],"Controlar":true,"_AnguloControle":0,"Leitura":null,"Inicializado":false,"LeituraAngulo":0.0},{"ID":"FRO_EF","ID_Num":42,"Descricao":"Freio Motor EF","Componente":22,"Funcoes":[45],"Controlar":false,"_AnguloControle":0,"Leitura":null,"Inicializado":false,"LeituraAngulo":0.0},{"ID":"FRO_DT","ID_Num":43,"Descricao":"Freio Motor DT","Componente":22,"Funcoes":[45],"Controlar":true,"_AnguloControle":0,"Leitura":null,"Inicializado":false,"LeituraAngulo":0.0},{"ID":"FRO_DF","ID_Num":44,"Descricao":"Freio Motor DF","Componente":22,"Funcoes":[45],"Controlar":false,"_AnguloControle":0,"Leitura":null,"Inicializado":false,"LeituraAngulo":0.0}],"CameraID_Caminho":"","CameraID_Solo":[""],"ConfiguracaoSensorUltrassom":{"Configuracao":0,"Sensores":[{"ID":1,"Posicao":0,"LimiteMinimo":false,"LimiteMinimoVal":0.0,"MargemMinimo":0.0,"LimiteMaximo":false,"LimiteMaximoVal":0.0,"MargemMaximo":0.0,"Desvio":false,"Parada":false,"DistanciaIdeal":0.0,"EmUso":false,"LeituraCm":0.0,"SensorAtuado":false},{"ID":2,"Posicao":0,"LimiteMinimo":false,"LimiteMinimoVal":0.0,"MargemMinimo":0.0,"LimiteMaximo":false,"LimiteMaximoVal":0.0,"MargemMaximo":0.0,"Desvio":false,"Parada":false,"DistanciaIdeal":0.0,"EmUso":false,"LeituraCm":0.0,"SensorAtuado":false},{"ID":3,"Posicao":0,"LimiteMinimo":false,"LimiteMinimoVal":0.0,"MargemMinimo":0.0,"LimiteMaximo":false,"LimiteMaximoVal":0.0,"MargemMaximo":0.0,"Desvio":false,"Parada":false,"DistanciaIdeal":0.0,"EmUso":false,"LeituraCm":0.0,"SensorAtuado":false},{"ID":4,"Posicao":0,"LimiteMinimo":false,"LimiteMinimoVal":0.0,"MargemMinimo":0.0,"LimiteMaximo":false,"LimiteMaximoVal":0.0,"MargemMaximo":0.0,"Desvio":false,"Parada":false,"DistanciaIdeal":0.0,"EmUso":false,"LeituraCm":0.0,"SensorAtuado":false}],"_paradaFrontal":false,"_paradaTraseira":false,"_paradaEsquerda":false,"_paradaDireita":false,"DesvioNecessario":false,"ParadaNecessaria":false,"DirecoesObstaculos":[],"DirecaoDesvio":1},"BateriaCargaConsumida":0.0,"DadosLeitura":{"Momento":"0001-01-01T00:00:00","Conectado":false,"Dispositivo":0,"Versao":0,"Mod_ID":null,"QualidadeWifi":0,"LatenciaLoop":0,"SensoresTemperatura":[],"SensoresCorrente":[],"Sinaleiros":[],"Reles":[],"ServoFreios":[],"SensoresPotenciometro":[],"UltimoComandoRespondido":"0001-01-01T00:00:00"},"LoRaParametrosBase":{"UltimaLeitura":"0001-01-01T00:00:00","PortaCOM":"","baudRate":96,"airRate":2,"baudAndAirRate":98,"parity":0,"packetSize":0,"power":0,"packetSizeAndPower":0,"tranMode":64,"worCycle":7,"tranModeAndWorCycle":71,"channelRssi":0,"lbt":0,"packetRssi":0,"address":1,"channel":23,"key":0}} \ No newline at end of file diff --git a/AgroBase/AgroBase/bin/Debug/Python/Output/mapa_gps.html b/AgroBase/AgroBase/bin/Debug/Python/Output/mapa_gps.html index 406ed75ac..642553e9e 100644 --- a/AgroBase/AgroBase/bin/Debug/Python/Output/mapa_gps.html +++ b/AgroBase/AgroBase/bin/Debug/Python/Output/mapa_gps.html @@ -25,7 +25,7 @@