atualizacoes do sonar
This commit is contained in:
parent
c5dd908c8c
commit
89486293fe
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -3,24 +3,12 @@
|
||||||
"WorkspaceRootPath": "C:\\ZendionINC\\agrobot_base\\AgroBase\\",
|
"WorkspaceRootPath": "C:\\ZendionINC\\agrobot_base\\AgroBase\\",
|
||||||
"Documents": [
|
"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}",
|
"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\\mapasmodel.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}",
|
"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\\models\\operacoes\\operacaomapagpsmodel.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}"
|
||||||
},
|
|
||||||
{
|
|
||||||
"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}"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"DocumentGroupContainers": [
|
"DocumentGroupContainers": [
|
||||||
|
|
@ -30,68 +18,33 @@
|
||||||
"DocumentGroups": [
|
"DocumentGroups": [
|
||||||
{
|
{
|
||||||
"DockedWidth": 200,
|
"DockedWidth": 200,
|
||||||
"SelectedChildIndex": 3,
|
"SelectedChildIndex": 1,
|
||||||
"Children": [
|
"Children": [
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 1,
|
"DocumentIndex": 1,
|
||||||
"Title": "OperacaoMapaGPSModel.cs",
|
"Title": "frmPinout.cs",
|
||||||
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
|
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmPinout.cs",
|
||||||
"RelativeDocumentMoniker": "AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
|
"RelativeDocumentMoniker": "AgroBase\\Forms\\frmPinout.cs",
|
||||||
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
|
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmPinout.cs",
|
||||||
"RelativeToolTip": "AgroBase\\Models\\Operacoes\\OperacaoMapaGPSModel.cs",
|
"RelativeToolTip": "AgroBase\\Forms\\frmPinout.cs",
|
||||||
"ViewState": "AQIAAGACAAAAAAAAAAAnwHUCAAAmAAAA",
|
"ViewState": "AQIAACYAAAAAAAAAAAArwKkAAAAMAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2024-04-12T13:21:22.58Z"
|
"WhenOpened": "2024-04-16T10:54:37.079Z",
|
||||||
},
|
|
||||||
{
|
|
||||||
"$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",
|
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 4,
|
"DocumentIndex": 0,
|
||||||
"Title": "GPSService.cs",
|
"Title": "DirecionalModel.cs",
|
||||||
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\GPSService.cs",
|
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\DirecionalModel.cs",
|
||||||
"RelativeDocumentMoniker": "AgroBase\\Services\\GPSService.cs",
|
"RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\DirecionalModel.cs",
|
||||||
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\GPSService.cs",
|
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\DirecionalModel.cs",
|
||||||
"RelativeToolTip": "AgroBase\\Services\\GPSService.cs",
|
"RelativeToolTip": "AgroBase\\Models\\Modules\\DirecionalModel.cs",
|
||||||
"ViewState": "AQIAAKwAAAAAAAAAAAD4v+IAAAAIAAAA",
|
"ViewState": "AQIAABEAAAAAAAAAAAAAwBkAAAAJAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2024-04-11T21:39:24.948Z"
|
"WhenOpened": "2024-04-16T10:49:41.263Z",
|
||||||
|
"EditorCaption": ""
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -160,7 +160,7 @@ namespace AgroBase.Forms
|
||||||
chbMCP1.Checked = Pinout.ExpansorGPIO;
|
chbMCP1.Checked = Pinout.ExpansorGPIO;
|
||||||
txtMCP1.Text = Pinout.EnderecoExpansor;
|
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)
|
foreach (var Dispositivo in Dispositivos)
|
||||||
{
|
{
|
||||||
|
|
@ -171,10 +171,6 @@ namespace AgroBase.Forms
|
||||||
cmbs.AddRange(gpbMCP1.Controls.OfType<ComboBox>().ToList());
|
cmbs.AddRange(gpbMCP1.Controls.OfType<ComboBox>().ToList());
|
||||||
foreach (var cmb in cmbs)
|
foreach (var cmb in cmbs)
|
||||||
{
|
{
|
||||||
if (cmb.Name.Contains("A"))
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
cmb.SelectedIndexChanged -= Cmb_SelectedIndexChanged;
|
cmb.SelectedIndexChanged -= Cmb_SelectedIndexChanged;
|
||||||
cmb.SelectedIndexChanged += Cmb_SelectedIndexChanged;
|
cmb.SelectedIndexChanged += Cmb_SelectedIndexChanged;
|
||||||
cmb.Items.Clear();
|
cmb.Items.Clear();
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,8 @@
|
||||||
this.lblDistanciaOperacao = new System.Windows.Forms.Label();
|
this.lblDistanciaOperacao = new System.Windows.Forms.Label();
|
||||||
this.btnIniciarSimulacao = new System.Windows.Forms.Button();
|
this.btnIniciarSimulacao = new System.Windows.Forms.Button();
|
||||||
this.gpbSonar = new System.Windows.Forms.GroupBox();
|
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.btnAdicionarDeteccao = new System.Windows.Forms.Button();
|
||||||
this.lblAnguloFinal = new System.Windows.Forms.Label();
|
this.lblAnguloFinal = new System.Windows.Forms.Label();
|
||||||
this.txtAnguloFinal = new System.Windows.Forms.TextBox();
|
this.txtAnguloFinal = new System.Windows.Forms.TextBox();
|
||||||
|
|
@ -58,8 +60,6 @@
|
||||||
this.pnlOrientacaoTrajeto = new System.Windows.Forms.Panel();
|
this.pnlOrientacaoTrajeto = new System.Windows.Forms.Panel();
|
||||||
this.pnlSonar = new System.Windows.Forms.Panel();
|
this.pnlSonar = new System.Windows.Forms.Panel();
|
||||||
this.picSonar = new System.Windows.Forms.PictureBox();
|
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.pnlOpcoes.SuspendLayout();
|
||||||
this.gpbSonar.SuspendLayout();
|
this.gpbSonar.SuspendLayout();
|
||||||
this.gpbGPS.SuspendLayout();
|
this.gpbGPS.SuspendLayout();
|
||||||
|
|
@ -142,6 +142,26 @@
|
||||||
this.gpbSonar.TabStop = false;
|
this.gpbSonar.TabStop = false;
|
||||||
this.gpbSonar.Text = "Sonar";
|
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
|
// btnAdicionarDeteccao
|
||||||
//
|
//
|
||||||
this.btnAdicionarDeteccao.Location = new System.Drawing.Point(93, 79);
|
this.btnAdicionarDeteccao.Location = new System.Drawing.Point(93, 79);
|
||||||
|
|
@ -386,26 +406,6 @@
|
||||||
this.picSonar.TabIndex = 0;
|
this.picSonar.TabIndex = 0;
|
||||||
this.picSonar.TabStop = false;
|
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
|
// frmSimulacaoMapaGPS
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||||
|
|
@ -416,6 +416,7 @@
|
||||||
this.Controls.Add(this.pnlOpcoes);
|
this.Controls.Add(this.pnlOpcoes);
|
||||||
this.Name = "frmSimulacaoMapaGPS";
|
this.Name = "frmSimulacaoMapaGPS";
|
||||||
this.Text = "frmSimulacaoMapaGPS";
|
this.Text = "frmSimulacaoMapaGPS";
|
||||||
|
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmSimulacaoMapaGPS_FormClosing);
|
||||||
this.Load += new System.EventHandler(this.frmSimulacaoMapaGPS_Load);
|
this.Load += new System.EventHandler(this.frmSimulacaoMapaGPS_Load);
|
||||||
this.pnlOpcoes.ResumeLayout(false);
|
this.pnlOpcoes.ResumeLayout(false);
|
||||||
this.pnlOpcoes.PerformLayout();
|
this.pnlOpcoes.PerformLayout();
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,11 @@ namespace AgroBase.Forms
|
||||||
Variaveis.OperacaoEmAndamento.Sensoriamento.SonarFrontal = new SonarModel(picSonar);
|
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)
|
private void btnCarregar_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
Variaveis.OperacaoEmAndamento.Mapa.btnCarregar_Click((Control) sender, e);
|
Variaveis.OperacaoEmAndamento.Mapa.btnCarregar_Click((Control) sender, e);
|
||||||
|
|
@ -285,5 +290,7 @@ namespace AgroBase.Forms
|
||||||
ObjetoDetectado = !ObjetoDetectado;
|
ObjetoDetectado = !ObjetoDetectado;
|
||||||
btnAdicionarDeteccao.Text = ObjetoDetectado ? "Del" : "Add";
|
btnAdicionarDeteccao.Text = ObjetoDetectado ? "Del" : "Add";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -195,8 +195,6 @@ namespace AgroBase.Models
|
||||||
// Calcular os waypoints de desvio
|
// Calcular os waypoints de desvio
|
||||||
var waypointsDesvio = CalcularWaypointsDesvio(posicaoAtual, obstaculo, indiceInicioDesvio);
|
var waypointsDesvio = CalcularWaypointsDesvio(posicaoAtual, obstaculo, indiceInicioDesvio);
|
||||||
|
|
||||||
Console.WriteLine(obstaculo);
|
|
||||||
|
|
||||||
// Determinar o intervalo de waypoints a serem removidos
|
// Determinar o intervalo de waypoints a serem removidos
|
||||||
int indiceFinalDesvio = EncontrarIndiceFinalDesvio(TrajetoriaDinamica, waypointsDesvio.Last(), ((double)obstaculo.DistanciaMedia / 100) + ((double)obstaculo.DeslocamentoNecessarioDesvio * 2 / 100));
|
int indiceFinalDesvio = EncontrarIndiceFinalDesvio(TrajetoriaDinamica, waypointsDesvio.Last(), ((double)obstaculo.DistanciaMedia / 100) + ((double)obstaculo.DeslocamentoNecessarioDesvio * 2 / 100));
|
||||||
int quantidadeWaypointsRemover = indiceFinalDesvio - indiceInicioDesvio;
|
int quantidadeWaypointsRemover = indiceFinalDesvio - indiceInicioDesvio;
|
||||||
|
|
|
||||||
|
|
@ -24,8 +24,7 @@ namespace AgroBase.Models.Modules
|
||||||
public static PinoutDataModel Pinout { get; set; }
|
public static PinoutDataModel Pinout { get; set; }
|
||||||
public static List<FuncoesPinout> Funcoes { get; set; } = new List<FuncoesPinout>()
|
public static List<FuncoesPinout> Funcoes { get; set; } = new List<FuncoesPinout>()
|
||||||
{
|
{
|
||||||
FuncoesPinout.SDA,
|
FuncoesPinout.Geral,
|
||||||
FuncoesPinout.SCL
|
|
||||||
};
|
};
|
||||||
public List<DirSensoriamentoMotor> Motores { get; set; }
|
public List<DirSensoriamentoMotor> Motores { get; set; }
|
||||||
|
|
||||||
|
|
@ -134,7 +133,8 @@ namespace AgroBase.Models.Modules
|
||||||
_TaxaAmostragem.ToString("00000") + ";" + // 5 ~ 9
|
_TaxaAmostragem.ToString("00000") + ";" + // 5 ~ 9
|
||||||
(AA_Ref000 ? "1" : "0") + ";" + // 11
|
(AA_Ref000 ? "1" : "0") + ";" + // 11
|
||||||
(AA_Ref090 ? "1" : "0") + ";" + // 13
|
(AA_Ref090 ? "1" : "0") + ";" + // 13
|
||||||
(AA_Ref270 ? "1" : "0"); // 15
|
(AA_Ref270 ? "1" : "0") + ";" + // 15
|
||||||
|
PinoutModel.PinoProtocolo(Pinout, Funcoes); // 17 ~ 18
|
||||||
Config.Add(ProtocoloMOD);
|
Config.Add(ProtocoloMOD);
|
||||||
return Config;
|
return Config;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -212,7 +212,7 @@ namespace AgroBase.Models.Operacoes
|
||||||
Controle.BicosAtuados = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores;
|
Controle.BicosAtuados = Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CalcularAnguloInclinacao()
|
public void CalcularAnguloInclinacao(StatusCarroMapa statusCarroRua)
|
||||||
{
|
{
|
||||||
double erroOrientacao = 0.0;
|
double erroOrientacao = 0.0;
|
||||||
double anguloCarro = ReferencialRuaGPS.AnguloCarro;
|
double anguloCarro = ReferencialRuaGPS.AnguloCarro;
|
||||||
|
|
@ -236,8 +236,8 @@ namespace AgroBase.Models.Operacoes
|
||||||
double erroPosicaoLateral = anguloCamera;
|
double erroPosicaoLateral = anguloCamera;
|
||||||
|
|
||||||
// Combina os erros. Ajuste os pesos conforme necessário para o seu caso específico.
|
// Combina os erros. Ajuste os pesos conforme necessário para o seu caso específico.
|
||||||
double pesoOrientacao = 0.3;
|
double pesoOrientacao = statusCarroRua == StatusCarroMapa.Direcionando ? 0.95 : 0.3;
|
||||||
double pesoPosicaoLateral = 0.7;
|
double pesoPosicaoLateral = statusCarroRua == StatusCarroMapa.Direcionando ? 0.05 : 0.7;
|
||||||
double erroCombinado = (erroOrientacao * pesoOrientacao) + (erroPosicaoLateral * pesoPosicaoLateral);
|
double erroCombinado = (erroOrientacao * pesoOrientacao) + (erroPosicaoLateral * pesoPosicaoLateral);
|
||||||
|
|
||||||
var statusAtual = ReferencialRuaGPS.StatusAtual;
|
var statusAtual = ReferencialRuaGPS.StatusAtual;
|
||||||
|
|
@ -254,10 +254,10 @@ namespace AgroBase.Models.Operacoes
|
||||||
|
|
||||||
public void CalculaDadosMovimentacaoAutonoma()
|
public void CalculaDadosMovimentacaoAutonoma()
|
||||||
{
|
{
|
||||||
CalcularAnguloInclinacao();
|
|
||||||
|
|
||||||
var statusAtual = ReferencialRuaGPS.StatusAtual;
|
var statusAtual = ReferencialRuaGPS.StatusAtual;
|
||||||
|
|
||||||
|
CalcularAnguloInclinacao(statusAtual);
|
||||||
|
|
||||||
if (statusAtual == StatusCarroMapa.Parado)
|
if (statusAtual == StatusCarroMapa.Parado)
|
||||||
{
|
{
|
||||||
var BicosNaoAtuados = new List<AtuadorBicoModel>(Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores);
|
var BicosNaoAtuados = new List<AtuadorBicoModel>(Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores);
|
||||||
|
|
@ -268,7 +268,14 @@ namespace AgroBase.Models.Operacoes
|
||||||
}
|
}
|
||||||
else if (statusAtual == StatusCarroMapa.Direcionando)
|
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)
|
else if (statusAtual == StatusCarroMapa.EntrandoRua)
|
||||||
{
|
{
|
||||||
|
|
@ -300,7 +307,6 @@ namespace AgroBase.Models.Operacoes
|
||||||
Controle.RPM = 0;
|
Controle.RPM = 0;
|
||||||
CalcularManobra();
|
CalcularManobra();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void CalcularManobra()
|
public void CalcularManobra()
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
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
|
|
@ -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
Binary file not shown.
Binary file not shown.
|
|
@ -783,8 +783,6 @@ void ProcessarProtocolo(String Protocolo, F_Code _funcao) {
|
||||||
int prioridade = ((String)Protocolo[20] + (String)Protocolo[21]).toInt();
|
int prioridade = ((String)Protocolo[20] + (String)Protocolo[21]).toInt();
|
||||||
TiposBarramentos pinoB = (TiposBarramentos)((String)Protocolo[23]).toInt();
|
TiposBarramentos pinoB = (TiposBarramentos)((String)Protocolo[23]).toInt();
|
||||||
int pino = ((String)Protocolo[24] + (String)Protocolo[25]).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) {
|
switch (componente) {
|
||||||
case sFLX: {
|
case sFLX: {
|
||||||
|
|
@ -806,6 +804,9 @@ void ProcessarProtocolo(String Protocolo, F_Code _funcao) {
|
||||||
case sMAS: {
|
case sMAS: {
|
||||||
SensorMassa* _sensor = SMPorID(ID);
|
SensorMassa* _sensor = SMPorID(ID);
|
||||||
if (sensor_ativado) {
|
if (sensor_ativado) {
|
||||||
|
TiposBarramentos pino2B = (TiposBarramentos)((String)Protocolo[27]).toInt();
|
||||||
|
int pino2 = ((String)Protocolo[28] + (String)Protocolo[29]).toInt();
|
||||||
|
|
||||||
if (Conectar) {
|
if (Conectar) {
|
||||||
_sensor->_pinoDT = PinoModel(pino, pinoB, _INPUT, DIGITAL);
|
_sensor->_pinoDT = PinoModel(pino, pinoB, _INPUT, DIGITAL);
|
||||||
_sensor->_pinoSCK = PinoModel(pino2, pino2B, _INPUT, DIGITAL);
|
_sensor->_pinoSCK = PinoModel(pino2, pino2B, _INPUT, DIGITAL);
|
||||||
|
|
@ -823,9 +824,9 @@ void ProcessarProtocolo(String Protocolo, F_Code _funcao) {
|
||||||
case sPRS: {
|
case sPRS: {
|
||||||
SensorPressao* _sensor = SPPorID(ID);
|
SensorPressao* _sensor = SPPorID(ID);
|
||||||
if (sensor_ativado) {
|
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 Vmin = ((String)Protocolo[27] + (String)Protocolo[28] + (String)Protocolo[29] + (String)Protocolo[30] + (String)Protocolo[31] + (String)Protocolo[32]).toDouble();
|
||||||
double Vmax = ((String)Protocolo[38] + (String)Protocolo[39] + (String)Protocolo[40] + (String)Protocolo[41] + (String)Protocolo[42] + (String)Protocolo[43]).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[45] + (String)Protocolo[46] + (String)Protocolo[47] + (String)Protocolo[48] + (String)Protocolo[49] + (String)Protocolo[50]).toDouble();
|
double Pmax = ((String)Protocolo[41] + (String)Protocolo[42] + (String)Protocolo[43] + (String)Protocolo[44] + (String)Protocolo[45] + (String)Protocolo[46]).toDouble();
|
||||||
if (Conectar) {
|
if (Conectar) {
|
||||||
_sensor->_Vmin = Vmin;
|
_sensor->_Vmin = Vmin;
|
||||||
_sensor->_Vmax = Vmax;
|
_sensor->_Vmax = Vmax;
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ double _Margem = 0.5;
|
||||||
int dutyCycle = 512;
|
int dutyCycle = 512;
|
||||||
double _frequencia = 4000;
|
double _frequencia = 4000;
|
||||||
|
|
||||||
|
PinoModel _pinoGeral;
|
||||||
|
|
||||||
class Motor {
|
class Motor {
|
||||||
public:
|
public:
|
||||||
|
|
@ -463,7 +463,7 @@ Motor* MotorPorID(String ID) {
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
Serial.begin(_baudRate);
|
Serial.begin(_baudRate);
|
||||||
iniciarMCP(D_Code, 8, 18, 0x20, false);
|
//iniciarMCP(D_Code, 8, 18, 0x20, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|
@ -490,6 +490,13 @@ void ProcessarProtocolo(String Protocolo, F_Code _funcao) {
|
||||||
AA_Ref000 = (String)Protocolo[11] == "1";
|
AA_Ref000 = (String)Protocolo[11] == "1";
|
||||||
AA_Ref090 = (String)Protocolo[13] == "1";
|
AA_Ref090 = (String)Protocolo[13] == "1";
|
||||||
AA_Ref270 = (String)Protocolo[15] == "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));
|
vTaskDelay(pdMS_TO_TICKS(100));
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue