atualizacoes do sonar

This commit is contained in:
Diego Freitas 2024-04-16 10:16:07 -03:00
parent c5dd908c8c
commit 89486293fe
30 changed files with 109 additions and 137 deletions

Binary file not shown.

View File

@ -3,24 +3,12 @@
"WorkspaceRootPath": "C:\\ZendionINC\\agrobot_base\\AgroBase\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\models\\mapasmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\mapasmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\models\\modules\\direcionalmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\modules\\direcionalmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\models\\operacoes\\operacaomapagpsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\operacoes\\operacaomapagpsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\models\\sonarmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\sonarmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\models\\modules\\sensoriamentomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\modules\\sensoriamentomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\services\\gpsservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\services\\gpsservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\forms\\frmpinout.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\frmpinout.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
"DocumentGroupContainers": [
@ -30,68 +18,33 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 3,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "OperacaoMapaGPSModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
"ViewState": "AQIAAGACAAAAAAAAAAAnwHUCAAAmAAAA",
"Title": "frmPinout.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmPinout.cs",
"RelativeDocumentMoniker": "AgroBase\\Forms\\frmPinout.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmPinout.cs",
"RelativeToolTip": "AgroBase\\Forms\\frmPinout.cs",
"ViewState": "AQIAACYAAAAAAAAAAAArwKkAAAAMAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-04-12T13:21:22.58Z"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "SensoriamentoModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\SensoriamentoModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\SensoriamentoModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\SensoriamentoModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Modules\\SensoriamentoModel.cs",
"ViewState": "AQIAAPcBAAAAAAAAAAArwCICAAArAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-04-12T11:06:00.27Z"
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "SonarModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\SonarModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\SonarModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\SonarModel.cs",
"RelativeToolTip": "AgroBase\\Models\\SonarModel.cs",
"ViewState": "AQIAADkAAAAAAAAAAAAvwFMAAAAMAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-04-11T23:46:37.051Z"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "MapasModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\MapasModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\MapasModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\MapasModel.cs",
"RelativeToolTip": "AgroBase\\Models\\MapasModel.cs",
"ViewState": "AQIAAJAAAAAAAAAAAAAEwKwAAAAsAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-04-11T21:39:31.046Z",
"WhenOpened": "2024-04-16T10:54:37.079Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "GPSService.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\GPSService.cs",
"RelativeDocumentMoniker": "AgroBase\\Services\\GPSService.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\GPSService.cs",
"RelativeToolTip": "AgroBase\\Services\\GPSService.cs",
"ViewState": "AQIAAKwAAAAAAAAAAAD4v+IAAAAIAAAA",
"DocumentIndex": 0,
"Title": "DirecionalModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\DirecionalModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\DirecionalModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\DirecionalModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Modules\\DirecionalModel.cs",
"ViewState": "AQIAABEAAAAAAAAAAAAAwBkAAAAJAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-04-11T21:39:24.948Z"
"WhenOpened": "2024-04-16T10:49:41.263Z",
"EditorCaption": ""
}
]
}

View File

@ -160,7 +160,7 @@ namespace AgroBase.Forms
chbMCP1.Checked = Pinout.ExpansorGPIO;
txtMCP1.Text = Pinout.EnderecoExpansor;
//Funcoes.ForEach(x => Pinos.Add(Enum.GetName(typeof(FuncoesPinout), x)));
Funcoes.ForEach(x => Pinos.Add(Enum.GetName(typeof(FuncoesPinout), x)));
foreach (var Dispositivo in Dispositivos)
{
@ -171,10 +171,6 @@ namespace AgroBase.Forms
cmbs.AddRange(gpbMCP1.Controls.OfType<ComboBox>().ToList());
foreach (var cmb in cmbs)
{
if (cmb.Name.Contains("A"))
{
}
cmb.SelectedIndexChanged -= Cmb_SelectedIndexChanged;
cmb.SelectedIndexChanged += Cmb_SelectedIndexChanged;
cmb.Items.Clear();

View File

@ -34,6 +34,8 @@
this.lblDistanciaOperacao = new System.Windows.Forms.Label();
this.btnIniciarSimulacao = new System.Windows.Forms.Button();
this.gpbSonar = new System.Windows.Forms.GroupBox();
this.chbMoverObstaculo = new System.Windows.Forms.CheckBox();
this.chbSonarVirando = new System.Windows.Forms.CheckBox();
this.btnAdicionarDeteccao = new System.Windows.Forms.Button();
this.lblAnguloFinal = new System.Windows.Forms.Label();
this.txtAnguloFinal = new System.Windows.Forms.TextBox();
@ -58,8 +60,6 @@
this.pnlOrientacaoTrajeto = new System.Windows.Forms.Panel();
this.pnlSonar = new System.Windows.Forms.Panel();
this.picSonar = new System.Windows.Forms.PictureBox();
this.chbSonarVirando = new System.Windows.Forms.CheckBox();
this.chbMoverObstaculo = new System.Windows.Forms.CheckBox();
this.pnlOpcoes.SuspendLayout();
this.gpbSonar.SuspendLayout();
this.gpbGPS.SuspendLayout();
@ -142,6 +142,26 @@
this.gpbSonar.TabStop = false;
this.gpbSonar.Text = "Sonar";
//
// chbMoverObstaculo
//
this.chbMoverObstaculo.AutoSize = true;
this.chbMoverObstaculo.Location = new System.Drawing.Point(165, 43);
this.chbMoverObstaculo.Name = "chbMoverObstaculo";
this.chbMoverObstaculo.Size = new System.Drawing.Size(129, 20);
this.chbMoverObstaculo.TabIndex = 29;
this.chbMoverObstaculo.Text = "Mover obstáculo";
this.chbMoverObstaculo.UseVisualStyleBackColor = true;
//
// chbSonarVirando
//
this.chbSonarVirando.AutoSize = true;
this.chbSonarVirando.Location = new System.Drawing.Point(165, 84);
this.chbSonarVirando.Name = "chbSonarVirando";
this.chbSonarVirando.Size = new System.Drawing.Size(117, 20);
this.chbSonarVirando.TabIndex = 28;
this.chbSonarVirando.Text = "Sonar atuando";
this.chbSonarVirando.UseVisualStyleBackColor = true;
//
// btnAdicionarDeteccao
//
this.btnAdicionarDeteccao.Location = new System.Drawing.Point(93, 79);
@ -386,26 +406,6 @@
this.picSonar.TabIndex = 0;
this.picSonar.TabStop = false;
//
// chbSonarVirando
//
this.chbSonarVirando.AutoSize = true;
this.chbSonarVirando.Location = new System.Drawing.Point(165, 84);
this.chbSonarVirando.Name = "chbSonarVirando";
this.chbSonarVirando.Size = new System.Drawing.Size(117, 20);
this.chbSonarVirando.TabIndex = 28;
this.chbSonarVirando.Text = "Sonar atuando";
this.chbSonarVirando.UseVisualStyleBackColor = true;
//
// chbMoverObstaculo
//
this.chbMoverObstaculo.AutoSize = true;
this.chbMoverObstaculo.Location = new System.Drawing.Point(165, 43);
this.chbMoverObstaculo.Name = "chbMoverObstaculo";
this.chbMoverObstaculo.Size = new System.Drawing.Size(129, 20);
this.chbMoverObstaculo.TabIndex = 29;
this.chbMoverObstaculo.Text = "Mover obstáculo";
this.chbMoverObstaculo.UseVisualStyleBackColor = true;
//
// frmSimulacaoMapaGPS
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
@ -416,6 +416,7 @@
this.Controls.Add(this.pnlOpcoes);
this.Name = "frmSimulacaoMapaGPS";
this.Text = "frmSimulacaoMapaGPS";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmSimulacaoMapaGPS_FormClosing);
this.Load += new System.EventHandler(this.frmSimulacaoMapaGPS_Load);
this.pnlOpcoes.ResumeLayout(false);
this.pnlOpcoes.PerformLayout();

View File

@ -71,6 +71,11 @@ namespace AgroBase.Forms
Variaveis.OperacaoEmAndamento.Sensoriamento.SonarFrontal = new SonarModel(picSonar);
}
private void frmSimulacaoMapaGPS_FormClosing(object sender, FormClosingEventArgs e)
{
tmrSonar.Stop();
}
private void btnCarregar_Click(object sender, EventArgs e)
{
Variaveis.OperacaoEmAndamento.Mapa.btnCarregar_Click((Control) sender, e);
@ -285,5 +290,7 @@ namespace AgroBase.Forms
ObjetoDetectado = !ObjetoDetectado;
btnAdicionarDeteccao.Text = ObjetoDetectado ? "Del" : "Add";
}
}
}

View File

@ -195,8 +195,6 @@ namespace AgroBase.Models
// Calcular os waypoints de desvio
var waypointsDesvio = CalcularWaypointsDesvio(posicaoAtual, obstaculo, indiceInicioDesvio);
Console.WriteLine(obstaculo);
// Determinar o intervalo de waypoints a serem removidos
int indiceFinalDesvio = EncontrarIndiceFinalDesvio(TrajetoriaDinamica, waypointsDesvio.Last(), ((double)obstaculo.DistanciaMedia / 100) + ((double)obstaculo.DeslocamentoNecessarioDesvio * 2 / 100));
int quantidadeWaypointsRemover = indiceFinalDesvio - indiceInicioDesvio;

View File

@ -23,9 +23,8 @@ namespace AgroBase.Models.Modules
public static int LogsManter { get; set; } = 60;
public static PinoutDataModel Pinout { get; set; }
public static List<FuncoesPinout> Funcoes { get; set; } = new List<FuncoesPinout>()
{
FuncoesPinout.SDA,
FuncoesPinout.SCL
{
FuncoesPinout.Geral,
};
public List<DirSensoriamentoMotor> Motores { get; set; }
@ -134,7 +133,8 @@ namespace AgroBase.Models.Modules
_TaxaAmostragem.ToString("00000") + ";" + // 5 ~ 9
(AA_Ref000 ? "1" : "0") + ";" + // 11
(AA_Ref090 ? "1" : "0") + ";" + // 13
(AA_Ref270 ? "1" : "0"); // 15
(AA_Ref270 ? "1" : "0") + ";" + // 15
PinoutModel.PinoProtocolo(Pinout, Funcoes); // 17 ~ 18
Config.Add(ProtocoloMOD);
return Config;
}

View File

@ -212,7 +212,7 @@ namespace AgroBase.Models.Operacoes
Controle.BicosAtuados = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores;
}
public void CalcularAnguloInclinacao()
public void CalcularAnguloInclinacao(StatusCarroMapa statusCarroRua)
{
double erroOrientacao = 0.0;
double anguloCarro = ReferencialRuaGPS.AnguloCarro;
@ -236,8 +236,8 @@ namespace AgroBase.Models.Operacoes
double erroPosicaoLateral = anguloCamera;
// Combina os erros. Ajuste os pesos conforme necessário para o seu caso específico.
double pesoOrientacao = 0.3;
double pesoPosicaoLateral = 0.7;
double pesoOrientacao = statusCarroRua == StatusCarroMapa.Direcionando ? 0.95 : 0.3;
double pesoPosicaoLateral = statusCarroRua == StatusCarroMapa.Direcionando ? 0.05 : 0.7;
double erroCombinado = (erroOrientacao * pesoOrientacao) + (erroPosicaoLateral * pesoPosicaoLateral);
var statusAtual = ReferencialRuaGPS.StatusAtual;
@ -254,10 +254,10 @@ namespace AgroBase.Models.Operacoes
public void CalculaDadosMovimentacaoAutonoma()
{
CalcularAnguloInclinacao();
var statusAtual = ReferencialRuaGPS.StatusAtual;
CalcularAnguloInclinacao(statusAtual);
if (statusAtual == StatusCarroMapa.Parado)
{
var BicosNaoAtuados = new List<AtuadorBicoModel>(Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores);
@ -268,7 +268,14 @@ namespace AgroBase.Models.Operacoes
}
else if (statusAtual == StatusCarroMapa.Direcionando)
{
Controle.RPM = Controle.RPM_Max;
if (Variaveis.OperacaoEmAndamento.Sensoriamento.SonarFrontal.DesvioNecessario)
{
Controle.RPM = Controle.RPM_Min;
}
else
{
Controle.RPM = Controle.RPM_Max;
}
}
else if (statusAtual == StatusCarroMapa.EntrandoRua)
{
@ -300,7 +307,6 @@ namespace AgroBase.Models.Operacoes
Controle.RPM = 0;
CalcularManobra();
}
}
public void CalcularManobra()

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"Conectado":false,"QuantidadeBicos":4,"DensidadeHerbicida":1.05,"CapacidadeReservatorio":30.0,"AtuacaoNivelAlto":true,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":7.087499508697463},{"ID":"B02","Posicao":2,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":16.642426432560772},{"ID":"B03","Posicao":3,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":18.103588945512129},{"ID":"B04","Posicao":4,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":18.437319738098896},{"ID":"B05","Posicao":5,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B06","Posicao":6,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B07","Posicao":7,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B08","Posicao":8,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B09","Posicao":9,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B10","Posicao":10,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0}],"BombaPressurizadora":{"ID":"BOMBA","BombaAtuada":false,"Ligado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[14,35,36,37,5],"PressaoSP":85.0,"Pressao":0.06,"Potencia":0.0},"Sensores":[{"LogGrafico":[],"ID":"FLXLN","Prioridade":23,"Descricao":"Fluxo na linha principal","Componente":198,"Aferir":true,"DelayAmostragem":300,"Inicializado":false,"Testando":false,"Funcoes":[25],"Parametros":[],"UnidadeMedida":"mL/s","Leituras":[0.0,0.0],"ValorMinimo":0.0,"ValorMaximo":25222.0,"LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"MASRS","Prioridade":3,"Descricao":"Massa do reservatório de herbicida","Componente":532,"Aferir":true,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[22,23],"Parametros":[],"UnidadeMedida":"Kg","Leituras":[1124810.37],"ValorMinimo":-1.281631101976581E+32,"ValorMaximo":2.8836731440342142E+24,"LimiteMaximo":50.0,"LimiteMinimo":5.0},{"LogGrafico":[],"ID":"PRSLN","Prioridade":3,"Descricao":"Pressão na linha principal","Componente":333,"Aferir":true,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[24],"Parametros":[["Vmin","000.00"],["Vmax","004.50"],["Pmax","174.04"]],"UnidadeMedida":"psi","Leituras":[0.06],"ValorMinimo":0.0,"ValorMaximo":127.63,"LimiteMaximo":120.0,"LimiteMinimo":60.0}],"PercentualInicioPulverizacao":0.3,"ScriptDeteccaoErvas":"green-detector.py","_MassaRef":0.8,"_MassaLeituraRef":40876.37,"_MassaLeituraExtra":1895800.0,"_MassaLeitura":1124810.37,"MassaReservatorio":15.089199554657128,"VolumeReservatorio":14.370666242530598,"PercentualReservatorio":47.902220808435324,"VolumeVazaoAferido":102.0,"_FluxoMlRef":102.0,"_FluxoPulsoRef":80.0,"_LeituraPulsos":0,"_LeituraPeriodo":0,"VazaoFluxoMLpS":0.0,"VolumeVazaoML":362.66307215324855,"_PressaoVmin":0.0,"_PressaoVmax":4.5,"_PressaoMax":174.045,"_LeituraPressao":857.0,"PressaoLinha":0.06,"PressaoLinhaCalc":26.71098437118437}
{"Conectado":false,"QuantidadeBicos":4,"DensidadeHerbicida":1.05,"CapacidadeReservatorio":30.0,"AtuacaoNivelAlto":true,"BicosPulverizadores":[{"ID":"B01","Posicao":1,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":34.42987713140743},{"ID":"B02","Posicao":2,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":14.876485059544191},{"ID":"B03","Posicao":3,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":18.103588945512129},{"ID":"B04","Posicao":4,"Atuado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":18.437319738098896},{"ID":"B05","Posicao":5,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B06","Posicao":6,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B07","Posicao":7,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B08","Posicao":8,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B09","Posicao":9,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0},{"ID":"B10","Posicao":10,"Atuado":false,"Comandar":false,"Inicializado":false,"Testando":false,"Funcoes":[21],"StatusBico":false,"MediaNivelFluxo":0.0}],"BombaPressurizadora":{"ID":"BOMBA","BombaAtuada":false,"Ligado":false,"Comandar":true,"Inicializado":false,"Testando":false,"Funcoes":[14,35,36,37,5],"PressaoSP":85.0,"Pressao":82.01,"Potencia":0.0},"Sensores":[{"LogGrafico":[],"ID":"FLXLN","Prioridade":23,"Descricao":"Fluxo na linha principal","Componente":198,"Aferir":true,"DelayAmostragem":300,"Inicializado":false,"Testando":false,"Funcoes":[25],"Parametros":[],"UnidadeMedida":"mL/s","Leituras":[0.0,0.0],"ValorMinimo":0.0,"ValorMaximo":25222.0,"LimiteMaximo":0.0,"LimiteMinimo":0.0},{"LogGrafico":[],"ID":"MASRS","Prioridade":3,"Descricao":"Massa do reservatório de herbicida","Componente":532,"Aferir":true,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[22,23],"Parametros":[],"UnidadeMedida":"Kg","Leituras":[1117263.12],"ValorMinimo":-1.281631101976581E+32,"ValorMaximo":2.8836731440342142E+24,"LimiteMaximo":50.0,"LimiteMinimo":5.0},{"LogGrafico":[],"ID":"PRSLN","Prioridade":3,"Descricao":"Pressão na linha principal","Componente":333,"Aferir":true,"DelayAmostragem":1000,"Inicializado":false,"Testando":false,"Funcoes":[24],"Parametros":[["Vmin","000.00"],["Vmax","004.50"],["Pmax","174.04"]],"UnidadeMedida":"psi","Leituras":[82.01],"ValorMinimo":0.0,"ValorMaximo":127.63,"LimiteMaximo":120.0,"LimiteMinimo":60.0}],"PercentualInicioPulverizacao":0.3,"ScriptDeteccaoErvas":"green-detector.py","_MassaRef":0.8,"_MassaLeituraRef":40876.37,"_MassaLeituraExtra":1895800.0,"_MassaLeitura":1117263.12,"MassaReservatorio":15.236908365395459,"VolumeReservatorio":14.511341300376627,"PercentualReservatorio":48.371137667922085,"VolumeVazaoAferido":102.0,"_FluxoMlRef":102.0,"_FluxoPulsoRef":80.0,"_LeituraPulsos":0,"_LeituraPeriodo":0,"VazaoFluxoMLpS":0.0,"VolumeVazaoML":4886.8707027305372,"_PressaoVmin":0.0,"_PressaoVmax":4.5,"_PressaoMax":174.045,"_LeituraPressao":2631.0,"PressaoLinha":82.01,"PressaoLinhaCalc":82.0030336996337}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -783,8 +783,6 @@ void ProcessarProtocolo(String Protocolo, F_Code _funcao) {
int prioridade = ((String)Protocolo[20] + (String)Protocolo[21]).toInt();
TiposBarramentos pinoB = (TiposBarramentos)((String)Protocolo[23]).toInt();
int pino = ((String)Protocolo[24] + (String)Protocolo[25]).toInt();
TiposBarramentos pino2B = (TiposBarramentos)((String)Protocolo[27]).toInt();
int pino2 = ((String)Protocolo[28] + (String)Protocolo[29]).toInt();
switch (componente) {
case sFLX: {
@ -806,6 +804,9 @@ void ProcessarProtocolo(String Protocolo, F_Code _funcao) {
case sMAS: {
SensorMassa* _sensor = SMPorID(ID);
if (sensor_ativado) {
TiposBarramentos pino2B = (TiposBarramentos)((String)Protocolo[27]).toInt();
int pino2 = ((String)Protocolo[28] + (String)Protocolo[29]).toInt();
if (Conectar) {
_sensor->_pinoDT = PinoModel(pino, pinoB, _INPUT, DIGITAL);
_sensor->_pinoSCK = PinoModel(pino2, pino2B, _INPUT, DIGITAL);
@ -823,9 +824,9 @@ void ProcessarProtocolo(String Protocolo, F_Code _funcao) {
case sPRS: {
SensorPressao* _sensor = SPPorID(ID);
if (sensor_ativado) {
double Vmin = ((String)Protocolo[31] + (String)Protocolo[32] + (String)Protocolo[33] + (String)Protocolo[34] + (String)Protocolo[35] + (String)Protocolo[36]).toDouble();
double Vmax = ((String)Protocolo[38] + (String)Protocolo[39] + (String)Protocolo[40] + (String)Protocolo[41] + (String)Protocolo[42] + (String)Protocolo[43]).toDouble();
double Pmax = ((String)Protocolo[45] + (String)Protocolo[46] + (String)Protocolo[47] + (String)Protocolo[48] + (String)Protocolo[49] + (String)Protocolo[50]).toDouble();
double Vmin = ((String)Protocolo[27] + (String)Protocolo[28] + (String)Protocolo[29] + (String)Protocolo[30] + (String)Protocolo[31] + (String)Protocolo[32]).toDouble();
double Vmax = ((String)Protocolo[34] + (String)Protocolo[35] + (String)Protocolo[36] + (String)Protocolo[37] + (String)Protocolo[38] + (String)Protocolo[39]).toDouble();
double Pmax = ((String)Protocolo[41] + (String)Protocolo[42] + (String)Protocolo[43] + (String)Protocolo[44] + (String)Protocolo[45] + (String)Protocolo[46]).toDouble();
if (Conectar) {
_sensor->_Vmin = Vmin;
_sensor->_Vmax = Vmax;

View File

@ -24,7 +24,7 @@ double _Margem = 0.5;
int dutyCycle = 512;
double _frequencia = 4000;
PinoModel _pinoGeral;
class Motor {
public:
@ -463,7 +463,7 @@ Motor* MotorPorID(String ID) {
void setup() {
Serial.begin(_baudRate);
iniciarMCP(D_Code, 8, 18, 0x20, false);
//iniciarMCP(D_Code, 8, 18, 0x20, false);
}
void loop() {
@ -490,6 +490,13 @@ void ProcessarProtocolo(String Protocolo, F_Code _funcao) {
AA_Ref000 = (String)Protocolo[11] == "1";
AA_Ref090 = (String)Protocolo[13] == "1";
AA_Ref270 = (String)Protocolo[15] == "1";
TiposBarramentos _barramento = (TiposBarramentos)((String)Protocolo[17]).toInt();
int _num = ((String)Protocolo[18] + (String)Protocolo[19]).toInt();
_pinoGeral = PinoModel(_num, _barramento, _OUTPUT);
if (_pinoGeral.Definido()) {
_pinoGeral.set(true);
}
vTaskDelay(pdMS_TO_TICKS(100));