ajustado pinout do sensoriamento e encodedr magnetico
This commit is contained in:
parent
5de9ae8ffd
commit
baec91d453
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,8 @@
|
|||
"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\\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\\forms\\frmsimulacaomapagps.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\frmsimulacaomapagps.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\\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\\forms\\frmsimulacaomapagps.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
|
||||
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\frmsimulacaomapagps.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form"
|
||||
},
|
||||
{
|
||||
"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": [
|
||||
|
|
@ -35,65 +19,14 @@
|
|||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"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": "AQIAAAEBAAAAAAAAAAAuwBwBAABuAAAA",
|
||||
"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": "AQIAALcAAAAAAAAAAAAYwB8BAAAMAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-05-06T19:42:55.483Z",
|
||||
"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": "AQIAAMAAAAAAAAAAAAAAANgAAAA0AAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-05-05T13:17:27.166Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "frmSimulacaoMapaGPS.cs",
|
||||
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmSimulacaoMapaGPS.cs",
|
||||
"RelativeDocumentMoniker": "AgroBase\\Forms\\frmSimulacaoMapaGPS.cs",
|
||||
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmSimulacaoMapaGPS.cs",
|
||||
"RelativeToolTip": "AgroBase\\Forms\\frmSimulacaoMapaGPS.cs",
|
||||
"ViewState": "AQIAALMAAAAAAAAAAIAywDkBAAAMAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-05-03T22:41:17.732Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"Title": "frmSimulacaoMapaGPS.cs [Design]",
|
||||
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmSimulacaoMapaGPS.cs",
|
||||
"RelativeDocumentMoniker": "AgroBase\\Forms\\frmSimulacaoMapaGPS.cs",
|
||||
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmSimulacaoMapaGPS.cs [Design]",
|
||||
"RelativeToolTip": "AgroBase\\Forms\\frmSimulacaoMapaGPS.cs [Design]",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-05-03T22:39:04.958Z",
|
||||
"EditorCaption": " [Design]"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"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": "AQIAADgAAAAAAAAAAIAywMYAAAAMAAAA",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2024-05-06T16:37:41.166Z",
|
||||
"WhenOpened": "2024-05-10T11:31:13.293Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ namespace AgroBase.Forms
|
|||
{
|
||||
this.pnlMapa = new System.Windows.Forms.Panel();
|
||||
this.pnlBotoes = new System.Windows.Forms.Panel();
|
||||
this.btnCalcular = new System.Windows.Forms.Button();
|
||||
this.btnCalcularPontos = new System.Windows.Forms.Button();
|
||||
this.lblMapa = new System.Windows.Forms.Label();
|
||||
this.btnCarregar = new System.Windows.Forms.Button();
|
||||
this.pnlBotoes.SuspendLayout();
|
||||
|
|
@ -41,40 +43,63 @@ namespace AgroBase.Forms
|
|||
this.pnlMapa.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||
| System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.pnlMapa.Location = new System.Drawing.Point(9, 10);
|
||||
this.pnlMapa.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.pnlMapa.Location = new System.Drawing.Point(12, 12);
|
||||
this.pnlMapa.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.pnlMapa.Name = "pnlMapa";
|
||||
this.pnlMapa.Size = new System.Drawing.Size(772, 464);
|
||||
this.pnlMapa.Size = new System.Drawing.Size(1029, 571);
|
||||
this.pnlMapa.TabIndex = 1;
|
||||
//
|
||||
// pnlBotoes
|
||||
//
|
||||
this.pnlBotoes.Controls.Add(this.btnCalcular);
|
||||
this.pnlBotoes.Controls.Add(this.btnCalcularPontos);
|
||||
this.pnlBotoes.Controls.Add(this.lblMapa);
|
||||
this.pnlBotoes.Controls.Add(this.btnCarregar);
|
||||
this.pnlBotoes.Dock = System.Windows.Forms.DockStyle.Bottom;
|
||||
this.pnlBotoes.Location = new System.Drawing.Point(0, 479);
|
||||
this.pnlBotoes.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.pnlBotoes.Location = new System.Drawing.Point(0, 589);
|
||||
this.pnlBotoes.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.pnlBotoes.Name = "pnlBotoes";
|
||||
this.pnlBotoes.Size = new System.Drawing.Size(790, 46);
|
||||
this.pnlBotoes.Size = new System.Drawing.Size(1053, 57);
|
||||
this.pnlBotoes.TabIndex = 2;
|
||||
//
|
||||
// btnCalcular
|
||||
//
|
||||
this.btnCalcular.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCalcular.Location = new System.Drawing.Point(697, 14);
|
||||
this.btnCalcular.Name = "btnCalcular";
|
||||
this.btnCalcular.Size = new System.Drawing.Size(158, 32);
|
||||
this.btnCalcular.TabIndex = 3;
|
||||
this.btnCalcular.Text = "Calcular Trecho";
|
||||
this.btnCalcular.UseVisualStyleBackColor = true;
|
||||
this.btnCalcular.Click += new System.EventHandler(this.btnCalcular_Click);
|
||||
//
|
||||
// btnCalcularPontos
|
||||
//
|
||||
this.btnCalcularPontos.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCalcularPontos.Location = new System.Drawing.Point(533, 14);
|
||||
this.btnCalcularPontos.Name = "btnCalcularPontos";
|
||||
this.btnCalcularPontos.Size = new System.Drawing.Size(158, 32);
|
||||
this.btnCalcularPontos.TabIndex = 2;
|
||||
this.btnCalcularPontos.Text = "Registrar Ponto";
|
||||
this.btnCalcularPontos.UseVisualStyleBackColor = true;
|
||||
this.btnCalcularPontos.Click += new System.EventHandler(this.btnCalcularPontos_Click);
|
||||
//
|
||||
// lblMapa
|
||||
//
|
||||
this.lblMapa.AutoSize = true;
|
||||
this.lblMapa.Location = new System.Drawing.Point(9, 17);
|
||||
this.lblMapa.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
||||
this.lblMapa.Location = new System.Drawing.Point(12, 21);
|
||||
this.lblMapa.Name = "lblMapa";
|
||||
this.lblMapa.Size = new System.Drawing.Size(91, 13);
|
||||
this.lblMapa.Size = new System.Drawing.Size(114, 16);
|
||||
this.lblMapa.TabIndex = 1;
|
||||
this.lblMapa.Text = "Mapa carregado: ";
|
||||
//
|
||||
// btnCarregar
|
||||
//
|
||||
this.btnCarregar.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.btnCarregar.Location = new System.Drawing.Point(684, 11);
|
||||
this.btnCarregar.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.btnCarregar.Location = new System.Drawing.Point(912, 14);
|
||||
this.btnCarregar.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.btnCarregar.Name = "btnCarregar";
|
||||
this.btnCarregar.Size = new System.Drawing.Size(98, 26);
|
||||
this.btnCarregar.Size = new System.Drawing.Size(131, 32);
|
||||
this.btnCarregar.TabIndex = 0;
|
||||
this.btnCarregar.Text = "Carregar mapa";
|
||||
this.btnCarregar.UseVisualStyleBackColor = true;
|
||||
|
|
@ -82,12 +107,12 @@ namespace AgroBase.Forms
|
|||
//
|
||||
// frmMapa
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(790, 525);
|
||||
this.ClientSize = new System.Drawing.Size(1053, 646);
|
||||
this.Controls.Add(this.pnlBotoes);
|
||||
this.Controls.Add(this.pnlMapa);
|
||||
this.Margin = new System.Windows.Forms.Padding(2);
|
||||
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
|
||||
this.Name = "frmMapa";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Mapas";
|
||||
|
|
@ -104,5 +129,7 @@ namespace AgroBase.Forms
|
|||
private System.Windows.Forms.Panel pnlBotoes;
|
||||
private System.Windows.Forms.Label lblMapa;
|
||||
private System.Windows.Forms.Button btnCarregar;
|
||||
private System.Windows.Forms.Button btnCalcularPontos;
|
||||
private System.Windows.Forms.Button btnCalcular;
|
||||
}
|
||||
}
|
||||
|
|
@ -21,6 +21,8 @@ namespace AgroBase.Forms
|
|||
{
|
||||
private MapasModel Mapa;
|
||||
|
||||
List<GPSModel> Pontos = new List<GPSModel>();
|
||||
|
||||
public frmMapa()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
|
@ -40,5 +42,25 @@ namespace AgroBase.Forms
|
|||
Mapa.btnCarregar_Click(sender, e);
|
||||
}
|
||||
|
||||
private void btnCalcularPontos_Click(object sender, EventArgs e)
|
||||
{
|
||||
GPSModel P1 = new GPSModel()
|
||||
{
|
||||
Latitude = GPSService.UltimaLeitura.Latitude,
|
||||
Longitude = GPSService.UltimaLeitura.Longitude,
|
||||
DataHora = DateTime.Now,
|
||||
};
|
||||
Pontos.Add(P1);
|
||||
MessageBox.Show("Ponto " + Pontos.Count() + " Registrado!");
|
||||
}
|
||||
|
||||
private void btnCalcular_Click(object sender, EventArgs e)
|
||||
{
|
||||
double distancia = GPSService.DistanciaDoTrecho(Pontos);
|
||||
double orientacao = GPSService.CalcularOrientacao(Pontos[0], Pontos[Pontos.Count() - 1]);
|
||||
MessageBox.Show("Distancia: " + distancia.ToString("0.00") + ", Orientacao: " + orientacao.ToString("0.00"));
|
||||
|
||||
Pontos = new List<GPSModel>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -227,7 +227,7 @@ namespace AgroBase.Forms
|
|||
Pinout.ExpansorGPIO = chbMCP1.Checked;
|
||||
Pinout.EnderecoExpansor = txtMCP1.Text;
|
||||
|
||||
PinoutModel.SalvarPinout(Pinout, "pinout" + Enum.GetName(typeof(T_Code), TipoDisp) + ".pin");
|
||||
PinoutModel.SalvarPinout(Pinout, Variaveis.CaminhoParametros + "pinout" + Enum.GetName(typeof(T_Code), TipoDisp) + ".pin");
|
||||
|
||||
switch (TipoDisp)
|
||||
{
|
||||
|
|
@ -289,6 +289,7 @@ namespace AgroBase.Forms
|
|||
foreach (var cmb in cmbs)
|
||||
{
|
||||
cmb.Visible = Pinout.Pinos.Any(x => x.Descricao == cmb.Name.Replace("cmb", ""));
|
||||
cmb.Enabled = cmb.Visible ? Pinout.Pinos.First(x => x.Descricao == cmb.Name.Replace("cmb", "")).Habilitado : false;
|
||||
}
|
||||
|
||||
cbTipo.SelectedIndex = (int)TipoControlador;
|
||||
|
|
|
|||
|
|
@ -59,11 +59,12 @@ namespace AgroBase.Models.Modules
|
|||
FuncoesPinout.PUL,
|
||||
FuncoesPinout.DIR,
|
||||
FuncoesPinout.ENA,
|
||||
FuncoesPinout.EncoderA,
|
||||
/*FuncoesPinout.EncoderA,
|
||||
FuncoesPinout.EncoderB,
|
||||
FuncoesPinout.REF000,
|
||||
FuncoesPinout.REF090,
|
||||
FuncoesPinout.REF270,
|
||||
FuncoesPinout.REF270,*/
|
||||
FuncoesPinout.EncoderAbsoluto
|
||||
}
|
||||
},
|
||||
new DirSensoriamentoMotor() {
|
||||
|
|
@ -80,11 +81,12 @@ namespace AgroBase.Models.Modules
|
|||
FuncoesPinout.PUL,
|
||||
FuncoesPinout.DIR,
|
||||
FuncoesPinout.ENA,
|
||||
FuncoesPinout.EncoderA,
|
||||
/*FuncoesPinout.EncoderA,
|
||||
FuncoesPinout.EncoderB,
|
||||
FuncoesPinout.REF000,
|
||||
FuncoesPinout.REF090,
|
||||
FuncoesPinout.REF270,
|
||||
FuncoesPinout.REF270,*/
|
||||
FuncoesPinout.EncoderAbsoluto
|
||||
}
|
||||
},
|
||||
new DirSensoriamentoMotor() {
|
||||
|
|
@ -101,11 +103,12 @@ namespace AgroBase.Models.Modules
|
|||
FuncoesPinout.PUL,
|
||||
FuncoesPinout.DIR,
|
||||
FuncoesPinout.ENA,
|
||||
FuncoesPinout.EncoderA,
|
||||
/*FuncoesPinout.EncoderA,
|
||||
FuncoesPinout.EncoderB,
|
||||
FuncoesPinout.REF000,
|
||||
FuncoesPinout.REF090,
|
||||
FuncoesPinout.REF270,
|
||||
FuncoesPinout.REF270,*/
|
||||
FuncoesPinout.EncoderAbsoluto
|
||||
}
|
||||
},
|
||||
new DirSensoriamentoMotor() {
|
||||
|
|
@ -122,11 +125,12 @@ namespace AgroBase.Models.Modules
|
|||
FuncoesPinout.PUL,
|
||||
FuncoesPinout.DIR,
|
||||
FuncoesPinout.ENA,
|
||||
FuncoesPinout.EncoderA,
|
||||
/*FuncoesPinout.EncoderA,
|
||||
FuncoesPinout.EncoderB,
|
||||
FuncoesPinout.REF000,
|
||||
FuncoesPinout.REF090,
|
||||
FuncoesPinout.REF270,
|
||||
FuncoesPinout.REF270,*/
|
||||
FuncoesPinout.EncoderAbsoluto
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -137,15 +141,15 @@ namespace AgroBase.Models.Modules
|
|||
public List<string> ProtocoloConfiguracao(bool Conectar)
|
||||
{
|
||||
List<string> Config = Motores.Select(x => x.ProtocoloConfiguracaoMotor(Conectar)).ToList();
|
||||
string ProtocoloMOD =
|
||||
string ProtocoloMOD =
|
||||
((int)F_Code.Cfg).ToString() + SerialService.SplitMessage +
|
||||
"MD" + SerialService.SplitParams +
|
||||
"MD" + SerialService.SplitParams +
|
||||
(Conectar ? "1" : "0") + SerialService.SplitParams +
|
||||
_TaxaAmostragem.ToString("00000") + SerialService.SplitParams +
|
||||
(AA_Ref000 ? "1" : "0") + SerialService.SplitParams +
|
||||
(AA_Ref090 ? "1" : "0") + SerialService.SplitParams +
|
||||
(AA_Ref270 ? "1" : "0") + SerialService.SplitParams +
|
||||
PinoutModel.PinoProtocolo(Pinout, Funcoes);
|
||||
_TaxaAmostragem.ToString("00000"); // + SerialService.SplitParams +
|
||||
//(AA_Ref000 ? "1" : "0") + SerialService.SplitParams +
|
||||
//(AA_Ref090 ? "1" : "0") + SerialService.SplitParams +
|
||||
//(AA_Ref270 ? "1" : "0") + SerialService.SplitParams +
|
||||
//PinoutModel.PinoProtocolo(Pinout, Funcoes);
|
||||
Config.Add(ProtocoloMOD);
|
||||
return Config;
|
||||
}
|
||||
|
|
@ -181,12 +185,15 @@ namespace AgroBase.Models.Modules
|
|||
int _angulo = 0;
|
||||
int.TryParse(Dados[3].ToString(), out _angulo);
|
||||
Motor.Angulo = _angulo;
|
||||
Motor.Ref000 = Dados[4] == "1";
|
||||
/*Motor.Ref000 = Dados[4] == "1";
|
||||
Motor.Ref090 = Dados[5] == "1";
|
||||
Motor.Ref270 = Dados[6] == "1";
|
||||
|
||||
bool r1 = Dados[7] == "1";
|
||||
bool r2 = Dados[8] == "1";
|
||||
bool r2 = Dados[8] == "1";*/
|
||||
|
||||
bool r1 = Dados[4] == "1";
|
||||
bool r2 = Dados[5] == "1";
|
||||
|
||||
Motor.Referenciando = r1;
|
||||
Motor.Referenciado = r2;
|
||||
|
|
|
|||
|
|
@ -357,6 +357,7 @@ namespace AgroBase.Models.Modules
|
|||
Sinaleiro,
|
||||
ServoX,
|
||||
ServoY,
|
||||
EncoderAbsoluto
|
||||
}
|
||||
|
||||
public static class PinoutUtils
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ namespace AgroBase.Models
|
|||
public static string CaminhoLogsDispositivos { get; } = "Logs/";
|
||||
public static string CaminhoOperacoes { get; } = "Operacoes/";
|
||||
public static string CaminhoMapasConvertidos { get; } = "Mapas/";
|
||||
public static string CaminhoParametros { get; } = "Parametros/";
|
||||
public static List<IDispositivosService> DispositivosConectados { get; set; } = new List<IDispositivosService>();
|
||||
public static OperacaoModel OperacaoEmAndamento { get; set; } = new OperacaoModel(ModoOperacao.Manual);
|
||||
public static MqttService MqttService { get; set; } = new MqttService("localhost", 1883);
|
||||
|
|
|
|||
|
|
@ -226,27 +226,27 @@ namespace AgroBase.Comum
|
|||
frmConfig = new frmMovConfig();
|
||||
Dados.IniciarRegistrador();
|
||||
|
||||
MovimentacaoModel.Pinout = PinoutModel.CarregarPinout("pinout" + Enum.GetName(typeof(T_Code), Dispositivo) + ".pin");
|
||||
MovimentacaoModel.Pinout = PinoutModel.CarregarPinout(Variaveis.CaminhoParametros + "pinout" + Enum.GetName(typeof(T_Code), Dispositivo) + ".pin");
|
||||
break;
|
||||
case T_Code.Dir:
|
||||
Dados = CarregarParametros(DirecionalModel.CarregarParametrosIniciais());
|
||||
frmPlot = new frmDirPlot();
|
||||
frmConfig = new frmDirConfig();
|
||||
|
||||
DirecionalModel.Pinout = PinoutModel.CarregarPinout("pinout" + Enum.GetName(typeof(T_Code), Dispositivo) + ".pin");
|
||||
DirecionalModel.Pinout = PinoutModel.CarregarPinout(Variaveis.CaminhoParametros + "pinout" + Enum.GetName(typeof(T_Code), Dispositivo) + ".pin");
|
||||
break;
|
||||
case T_Code.Sen:
|
||||
Dados = CarregarParametros(SensoriamentoModel.CarregarParametrosIniciais());
|
||||
frmConfig = new frmSenConfig();
|
||||
((frmSenConfig)frmConfig).Dispositivo = T_Code.Sen;
|
||||
|
||||
SensoriamentoModel.Pinout = PinoutModel.CarregarPinout("pinout" + Enum.GetName(typeof(T_Code), Dispositivo) + ".pin");
|
||||
SensoriamentoModel.Pinout = PinoutModel.CarregarPinout(Variaveis.CaminhoParametros + "pinout" + Enum.GetName(typeof(T_Code), Dispositivo) + ".pin");
|
||||
break;
|
||||
case T_Code.Atu:
|
||||
Dados = CarregarParametros(AtuadorModel.CarregarParametrosIniciais());
|
||||
frmConfig = new frmAtuConfig();
|
||||
|
||||
AtuadorModel.Pinout = PinoutModel.CarregarPinout("pinout" + Enum.GetName(typeof(T_Code), Dispositivo) + ".pin");
|
||||
AtuadorModel.Pinout = PinoutModel.CarregarPinout(Variaveis.CaminhoParametros + "pinout" + Enum.GetName(typeof(T_Code), Dispositivo) + ".pin");
|
||||
break;
|
||||
default:
|
||||
Dados = default(T);
|
||||
|
|
@ -878,7 +878,7 @@ namespace AgroBase.Comum
|
|||
|
||||
public T CarregarParametros(object empty)
|
||||
{
|
||||
string nomeArquivo = "parameters" + Enum.GetName(typeof(T_Code), Dispositivo) + ".par";
|
||||
string nomeArquivo = Variaveis.CaminhoParametros + "parameters" + Enum.GetName(typeof(T_Code), Dispositivo) + ".par";
|
||||
if (!File.Exists(nomeArquivo))
|
||||
{
|
||||
var newConfig = empty;
|
||||
|
|
@ -891,7 +891,7 @@ namespace AgroBase.Comum
|
|||
|
||||
public void SalvarParametros(DispositivoBaseModel newConfig)
|
||||
{
|
||||
File.WriteAllText("parameters" + Enum.GetName(typeof(T_Code), Dispositivo) + ".par", JsonConvert.SerializeObject(newConfig));
|
||||
File.WriteAllText(Variaveis.CaminhoParametros + "parameters" + Enum.GetName(typeof(T_Code), Dispositivo) + ".par", JsonConvert.SerializeObject(newConfig));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[{"Momento":"2024-05-07T10:02:45.703269-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":70.198321038788436,"AnguloCarroBussola":0.0,"AnguloCarro":70.198321038788436,"SonarFrontal":null},{"Momento":"2024-05-07T10:02:50.6463898-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[0.96761566228770768],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":137.20698509575618,"AnguloCarroBussola":0.0,"AnguloCarro":137.20698509575618,"SonarFrontal":null},{"Momento":"2024-05-07T10:02:55.7457575-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[2.6799472775081847],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":221.57973754411964,"AnguloCarroBussola":0.0,"AnguloCarro":221.57973754411964,"SonarFrontal":null},{"Momento":"2024-05-07T10:03:00.7233267-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[7.139992887194702],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":226.02195642068034,"AnguloCarroBussola":0.0,"AnguloCarro":226.02195642068034,"SonarFrontal":null},{"Momento":"2024-05-07T10:03:04.5337717-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":0.0,"BateriaConsumida":0.0,"DistanciaPercorrida":[9.1534782519544127],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":269.99999983127896,"AnguloCarroBussola":0.0,"AnguloCarro":269.99999983127896,"SonarFrontal":null}]
|
||||
|
|
@ -0,0 +1 @@
|
|||
[{"Latitude":-22.2131595,"Longitude":-47.38154766666667,"DataHora":"2024-05-07T10:02:26","Altitude":619.0,"Velocidade":0.16853200000000002,"NumeroSatelites":6,"PrecisaoHorizontal":1.44,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213163,"Longitude":-47.381549833333331,"DataHora":"2024-05-07T10:02:27","Altitude":619.3,"Velocidade":0.192608,"NumeroSatelites":6,"PrecisaoHorizontal":1.44,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213166166666667,"Longitude":-47.3815515,"DataHora":"2024-05-07T10:02:28","Altitude":619.9,"Velocidade":0.272244,"NumeroSatelites":6,"PrecisaoHorizontal":1.44,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213167,"Longitude":-47.381550666666669,"DataHora":"2024-05-07T10:02:29","Altitude":620.3,"Velocidade":0.387068,"NumeroSatelites":6,"PrecisaoHorizontal":1.44,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213166,"Longitude":-47.381548833333333,"DataHora":"2024-05-07T10:02:30","Altitude":620.6,"Velocidade":0.70931600000000006,"NumeroSatelites":6,"PrecisaoHorizontal":1.44,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213167833333333,"Longitude":-47.381551,"DataHora":"2024-05-07T10:02:31","Altitude":620.6,"Velocidade":0.49818800000000008,"NumeroSatelites":7,"PrecisaoHorizontal":1.29,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213175833333334,"Longitude":-47.381558666666663,"DataHora":"2024-05-07T10:02:32","Altitude":621.8,"Velocidade":0.533376,"NumeroSatelites":8,"PrecisaoHorizontal":1.11,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213184833333333,"Longitude":-47.381569666666664,"DataHora":"2024-05-07T10:02:33","Altitude":623.4,"Velocidade":0.692648,"NumeroSatelites":7,"PrecisaoHorizontal":1.11,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213190833333332,"Longitude":-47.381578833333336,"DataHora":"2024-05-07T10:02:34","Altitude":625.9,"Velocidade":1.113052,"NumeroSatelites":6,"PrecisaoHorizontal":3.03,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213202,"Longitude":-47.381591333333333,"DataHora":"2024-05-07T10:02:35","Altitude":628.7,"Velocidade":1.011192,"NumeroSatelites":5,"PrecisaoHorizontal":3.56,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213212833333333,"Longitude":-47.381605,"DataHora":"2024-05-07T10:02:36","Altitude":631.2,"Velocidade":1.5279,"NumeroSatelites":5,"PrecisaoHorizontal":3.56,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213213,"Longitude":-47.381605333333333,"DataHora":"2024-05-07T10:02:37","Altitude":631.1,"Velocidade":1.153796,"NumeroSatelites":4,"PrecisaoHorizontal":4.79,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213213,"Longitude":-47.3816065,"DataHora":"2024-05-07T10:02:38","Altitude":631.2,"Velocidade":0.80191600000000007,"NumeroSatelites":4,"PrecisaoHorizontal":4.78,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0}]
|
||||
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
|
|
@ -0,0 +1 @@
|
|||
{"Conectado":false,"AA_Ref000":false,"AA_Ref090":false,"AA_Ref270":false,"Motores":[{"Canal":0,"ID":"ET","Descricao":"Esquerdo Trás","Comandar":true,"Inicializado":false,"Sentido_SP":0,"Sentido":0,"Angulo_SP":0.0,"Angulo":0.0,"Angulo_Offset":0.0,"Velocidade":50,"Ref000":false,"Ref090":false,"Ref180":false,"Ref270":false,"Referenciando":false,"Referenciado":false,"Controlar":true,"Estabilizar":false,"Referenciar":false,"Livre":false,"ConfigSentidos":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"Testando":false,"LogTestes":[],"LogGrafico":[],"Funcoes":[13,9,14,41]},{"Canal":1,"ID":"EF","Descricao":"Esquerdo Frente","Comandar":true,"Inicializado":false,"Sentido_SP":0,"Sentido":0,"Angulo_SP":0.0,"Angulo":0.0,"Angulo_Offset":0.0,"Velocidade":50,"Ref000":false,"Ref090":false,"Ref180":false,"Ref270":false,"Referenciando":false,"Referenciado":false,"Controlar":true,"Estabilizar":true,"Referenciar":false,"Livre":false,"ConfigSentidos":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"Testando":false,"LogTestes":[],"LogGrafico":[],"Funcoes":[13,9,14,41]},{"Canal":2,"ID":"DT","Descricao":"Direito Trás","Comandar":true,"Inicializado":false,"Sentido_SP":0,"Sentido":0,"Angulo_SP":0.0,"Angulo":0.0,"Angulo_Offset":0.0,"Velocidade":50,"Ref000":false,"Ref090":false,"Ref180":false,"Ref270":false,"Referenciando":false,"Referenciado":false,"Controlar":true,"Estabilizar":true,"Referenciar":false,"Livre":false,"ConfigSentidos":{"Frente":0,"Tras":0,"Esquerda":2,"Direita":1,"Parado":0},"Testando":false,"LogTestes":[],"LogGrafico":[],"Funcoes":[13,9,14,41]},{"Canal":3,"ID":"DF","Descricao":"Direito Frente","Comandar":true,"Inicializado":false,"Sentido_SP":0,"Sentido":0,"Angulo_SP":0.0,"Angulo":0.0,"Angulo_Offset":0.0,"Velocidade":50,"Ref000":false,"Ref090":false,"Ref180":false,"Ref270":false,"Referenciando":false,"Referenciado":false,"Controlar":true,"Estabilizar":true,"Referenciar":false,"Livre":false,"ConfigSentidos":{"Frente":0,"Tras":0,"Esquerda":1,"Direita":2,"Parado":0},"Testando":false,"LogTestes":[],"LogGrafico":[],"Funcoes":[13,9,14,41]}]}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
{"ExpansorGPIO":false,"EnderecoExpansor":"","Pinos":[{"Controlador":1,"Barramento":0,"Pino":99,"Descricao":"1","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":98,"Descricao":"2","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":36,"Descricao":"3","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":39,"Descricao":"4","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":34,"Descricao":"5","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":35,"Descricao":"6","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":32,"Descricao":"7","Funcao":12,"Habilitado":true,"ComponenteID":"TMVET"},{"Controlador":1,"Barramento":0,"Pino":33,"Descricao":"8","Funcao":12,"Habilitado":true,"ComponenteID":"TMVEF"},{"Controlador":1,"Barramento":0,"Pino":25,"Descricao":"9","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDT"},{"Controlador":1,"Barramento":0,"Pino":26,"Descricao":"10","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDF"},{"Controlador":1,"Barramento":0,"Pino":27,"Descricao":"11","Funcao":38,"Habilitado":true,"ComponenteID":"LEDMN"},{"Controlador":1,"Barramento":0,"Pino":14,"Descricao":"12","Funcao":38,"Habilitado":true,"ComponenteID":"LEDAT"},{"Controlador":1,"Barramento":0,"Pino":12,"Descricao":"13","Funcao":38,"Habilitado":true,"ComponenteID":"LEDOP"},{"Controlador":1,"Barramento":0,"Pino":97,"Descricao":"14","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":13,"Descricao":"15","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":9,"Descricao":"16","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":10,"Descricao":"17","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":11,"Descricao":"18","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":96,"Descricao":"19","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":6,"Descricao":"26","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":7,"Descricao":"27","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":8,"Descricao":"28","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":15,"Descricao":"29","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":2,"Descricao":"30","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":0,"Descricao":"31","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":4,"Descricao":"32","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":16,"Descricao":"33","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":17,"Descricao":"34","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":5,"Descricao":"35","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":18,"Descricao":"36","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":19,"Descricao":"37","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":95,"Descricao":"38","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":21,"Descricao":"39","Funcao":33,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":3,"Descricao":"40","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":1,"Descricao":"41","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":22,"Descricao":"42","Funcao":34,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":23,"Descricao":"43","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":94,"Descricao":"44","Funcao":0,"Habilitado":false,"ComponenteID":""}]}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -25,7 +25,7 @@
|
|||
<meta name="viewport" content="width=device-width,
|
||||
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<style>
|
||||
#map_6227825fcfe3138a1083ba65f3196abb {
|
||||
#map_485de4fe4992e7b597d3f52d56de1299 {
|
||||
position: relative;
|
||||
width: 100.0%;
|
||||
height: 100.0%;
|
||||
|
|
@ -39,14 +39,14 @@
|
|||
<body>
|
||||
|
||||
|
||||
<div class="folium-map" id="map_6227825fcfe3138a1083ba65f3196abb" ></div>
|
||||
<div class="folium-map" id="map_485de4fe4992e7b597d3f52d56de1299" ></div>
|
||||
|
||||
</body>
|
||||
<script>
|
||||
|
||||
|
||||
var map_6227825fcfe3138a1083ba65f3196abb = L.map(
|
||||
"map_6227825fcfe3138a1083ba65f3196abb",
|
||||
var map_485de4fe4992e7b597d3f52d56de1299 = L.map(
|
||||
"map_485de4fe4992e7b597d3f52d56de1299",
|
||||
{
|
||||
center: [0.0, 0.0],
|
||||
crs: L.CRS.EPSG3857,
|
||||
|
|
@ -59,15 +59,6 @@
|
|||
|
||||
|
||||
|
||||
|
||||
var tile_layer_8562fa9f4e23ecf0bdee06bb23fe1d3f = L.tileLayer(
|
||||
"https://tile.openstreetmap.org/{z}/{x}/{y}.png",
|
||||
{"attribution": "\u0026copy; \u003ca href=\"https://www.openstreetmap.org/copyright\"\u003eOpenStreetMap\u003c/a\u003e contributors", "detectRetina": false, "maxNativeZoom": 19, "maxZoom": 19, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}
|
||||
);
|
||||
|
||||
|
||||
tile_layer_8562fa9f4e23ecf0bdee06bb23fe1d3f.addTo(map_6227825fcfe3138a1083ba65f3196abb);
|
||||
|
||||
</script>
|
||||
|
||||
<script>
|
||||
|
|
@ -87,7 +78,7 @@
|
|||
}
|
||||
trajeto_json_add({"features": []});
|
||||
|
||||
trajeto_json.addTo(map_6227825fcfe3138a1083ba65f3196abb);
|
||||
trajeto_json.addTo(map_485de4fe4992e7b597d3f52d56de1299);
|
||||
|
||||
function adicionarGeometria(novaGeometria) {
|
||||
trajeto_json.addData(novaGeometria);
|
||||
|
|
@ -145,7 +136,7 @@
|
|||
|
||||
var marcadorDinamico = L.marker([0, 0], {
|
||||
icon: customIcon
|
||||
}).addTo(map_6227825fcfe3138a1083ba65f3196abb);
|
||||
}).addTo(map_485de4fe4992e7b597d3f52d56de1299);
|
||||
|
||||
// Conectar ao broker MQTT
|
||||
const client = mqtt.connect('ws://localhost:9001'); // Use wss para conexão segura
|
||||
|
|
@ -184,7 +175,7 @@
|
|||
marcadorDinamico.setRotationAngle(angulo);
|
||||
|
||||
adicionarCoordenada("Tj", [novaLongitude, novaLatitude]);
|
||||
map_6227825fcfe3138a1083ba65f3196abb.setView(novaPosicao, map_6227825fcfe3138a1083ba65f3196abb.getZoom());
|
||||
map_485de4fe4992e7b597d3f52d56de1299.setView(novaPosicao, map_485de4fe4992e7b597d3f52d56de1299.getZoom());
|
||||
});
|
||||
|
||||
function calcularOrientacao(P1latitude, P1longitude, P2latitude, P2longitude) {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1 +0,0 @@
|
|||
{"ExpansorGPIO":false,"EnderecoExpansor":"","Pinos":[{"Controlador":0,"Barramento":0,"Pino":99,"Descricao":"1","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":98,"Descricao":"2","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":97,"Descricao":"3","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":4,"Descricao":"4","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDT"},{"Controlador":0,"Barramento":0,"Pino":5,"Descricao":"5","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDF"},{"Controlador":0,"Barramento":0,"Pino":6,"Descricao":"6","Funcao":12,"Habilitado":true,"ComponenteID":"TMVEF"},{"Controlador":0,"Barramento":0,"Pino":7,"Descricao":"7","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":15,"Descricao":"8","Funcao":12,"Habilitado":true,"ComponenteID":"TMVET"},{"Controlador":0,"Barramento":0,"Pino":16,"Descricao":"9","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":17,"Descricao":"10","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":18,"Descricao":"11","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":8,"Descricao":"12","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":3,"Descricao":"13","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":46,"Descricao":"14","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":9,"Descricao":"15","Funcao":38,"Habilitado":true,"ComponenteID":"LEDOP"},{"Controlador":0,"Barramento":0,"Pino":10,"Descricao":"16","Funcao":38,"Habilitado":true,"ComponenteID":"LEDAT"},{"Controlador":0,"Barramento":0,"Pino":11,"Descricao":"17","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":12,"Descricao":"18","Funcao":38,"Habilitado":true,"ComponenteID":"LEDMN"},{"Controlador":0,"Barramento":0,"Pino":13,"Descricao":"19","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":14,"Descricao":"20","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":96,"Descricao":"21","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":95,"Descricao":"22","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":94,"Descricao":"23","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":93,"Descricao":"24","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":19,"Descricao":"25","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":20,"Descricao":"26","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":21,"Descricao":"27","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":47,"Descricao":"28","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":48,"Descricao":"29","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":45,"Descricao":"30","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":0,"Descricao":"31","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":35,"Descricao":"32","Funcao":40,"Habilitado":true,"ComponenteID":"SNR_F"},{"Controlador":0,"Barramento":0,"Pino":36,"Descricao":"33","Funcao":39,"Habilitado":true,"ComponenteID":"SNR_F"},{"Controlador":0,"Barramento":0,"Pino":37,"Descricao":"34","Funcao":30,"Habilitado":true,"ComponenteID":"SNR_F"},{"Controlador":0,"Barramento":0,"Pino":38,"Descricao":"35","Funcao":31,"Habilitado":true,"ComponenteID":"SNR_F"},{"Controlador":0,"Barramento":0,"Pino":39,"Descricao":"36","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":40,"Descricao":"37","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":41,"Descricao":"38","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":42,"Descricao":"39","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":2,"Descricao":"40","Funcao":34,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":1,"Descricao":"41","Funcao":33,"Habilitado":true,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":44,"Descricao":"42","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":43,"Descricao":"43","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":0,"Barramento":0,"Pino":92,"Descricao":"44","Funcao":0,"Habilitado":false,"ComponenteID":""}]}
|
||||
Binary file not shown.
|
|
@ -441,4 +441,4 @@ C:\ZendionINC\agrobot_base\AgroBase\AgroBase\bin\Debug\Python\Models\deeplabv3pl
|
|||
C:\ZendionINC\agrobot_base\AgroBase\AgroBase\bin\Debug\AgroBase.exe.config
|
||||
C:\ZendionINC\agrobot_base\AgroBase\AgroBase\bin\Debug\AgroBase.exe
|
||||
C:\ZendionINC\agrobot_base\AgroBase\AgroBase\bin\Debug\AgroBase.pdb
|
||||
C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.csproj.CopyComplete
|
||||
C:\ZendionINC\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.csproj.Up2Date
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -345,13 +345,13 @@ class Motor {
|
|||
}
|
||||
|
||||
if (_pinoRef000.Definido()) {
|
||||
Ag0 = _Ag0;
|
||||
Ag0 = _Ag0;
|
||||
}
|
||||
if (_pinoRef090.Definido()) {
|
||||
Ag90 = _Ag90;
|
||||
Ag90 = _Ag90;
|
||||
}
|
||||
if (_pinoRef270.Definido()) {
|
||||
Ag270 = _Ag270;
|
||||
Ag270 = _Ag270;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,362 @@
|
|||
// Dispositivo: Direcional
|
||||
// Versão Firmware: 8
|
||||
// Ultima atualização: 09/05/2024
|
||||
// Atualização: Inclusão do encoder magnético de posição absoluta
|
||||
|
||||
#include "C:\ZendionInc\agrobot_base\Firmware\Modulos\SerialService.h"
|
||||
#include "C:\ZendionInc\agrobot_base\Firmware\Modulos\Pinout.h"
|
||||
#define D_Code Dir
|
||||
#define VERSION 8
|
||||
|
||||
#define _pinoLED RGB_BUILTIN
|
||||
|
||||
long _baudRate = 115200;
|
||||
|
||||
bool Conectado = false;
|
||||
|
||||
int _TaxaAmostragem;
|
||||
int FrequenciaMaxima = 10000;
|
||||
double _Margem = 0.5;
|
||||
|
||||
int dutyCycle = 512;
|
||||
double _frequencia = 4000;
|
||||
|
||||
PinoModel _pinoGeral;
|
||||
|
||||
class Motor {
|
||||
public:
|
||||
// Construtor
|
||||
Motor(String desc) {
|
||||
_ID = desc;
|
||||
}
|
||||
|
||||
// Definições
|
||||
String _ID;
|
||||
int _canal;
|
||||
PinoModel _pinoENA;
|
||||
PinoModel _pinoDIR;
|
||||
PinoModel _pinoPUL;
|
||||
PinoModel _pinoEncoder;
|
||||
|
||||
bool Iniciado = false;
|
||||
bool Testando = false;
|
||||
bool Referenciando = false;
|
||||
|
||||
// Consumo
|
||||
double _Angulo;
|
||||
Sentido _Sentido;
|
||||
|
||||
// Entrada de dados
|
||||
double _Angulo_SP;
|
||||
double _Angulo_Offset = 0;
|
||||
Sentido _Sentido_SP = Parado;
|
||||
bool _MotorLigado = false;
|
||||
bool _Estabilizar = true;
|
||||
bool _Referenciar = true;
|
||||
|
||||
bool Referenciado = false;
|
||||
int RefMax = 90;
|
||||
int RefMin = -90;
|
||||
|
||||
|
||||
void Inicializar() {
|
||||
if (Iniciado) {
|
||||
EnviarDadosSerial(_ID + " ja inicializado");
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (_pinoPUL.Definido()) {
|
||||
AtualizarPWM();
|
||||
}
|
||||
_pinoENA.Conectar(true);
|
||||
_pinoDIR.Conectar(false);
|
||||
_pinoEncoder.Conectar();
|
||||
|
||||
xTaskCreatePinnedToCore(&Motor::RampaTaskWrapper, "RampaTask", 5000, this, 20 - _canal, &RampaTaskHandle, tskNO_AFFINITY);
|
||||
|
||||
ResetRef(_Referenciar);
|
||||
|
||||
EnviarDadosSerial(_ID + " Iniciado");
|
||||
|
||||
Iniciado = true;
|
||||
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0"));
|
||||
}
|
||||
|
||||
void ResetRef(bool _Ref) {
|
||||
_Sentido_SP = Parado;
|
||||
_Sentido = Parado;
|
||||
Referenciado = !_Ref;
|
||||
Referenciando = _Ref;
|
||||
_MotorLigado = _Ref;
|
||||
}
|
||||
|
||||
void AtualizarPWM() {
|
||||
ledcSetup(_canal, _frequencia, 10);
|
||||
ledcAttachPin(_pinoPUL.num, _canal);
|
||||
ledcWrite(_canal, dutyCycle);
|
||||
}
|
||||
|
||||
void Desligar() {
|
||||
if (!Iniciado) {
|
||||
EnviarDadosSerial(_ID + " nao esta inicializado");
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0"));
|
||||
return;
|
||||
}
|
||||
|
||||
// Parar a execução das tarefas
|
||||
vTaskDelete(RampaTaskHandle);
|
||||
|
||||
// Redefinir as configurações para os valores iniciais
|
||||
_pinoENA.Desconectar();
|
||||
_pinoDIR.Desconectar();
|
||||
_pinoPUL.Desconectar();
|
||||
_pinoEncoder.Desconectar();
|
||||
|
||||
|
||||
EnviarDadosSerial(_ID + " Desligado");
|
||||
|
||||
Iniciado = false;
|
||||
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0"));
|
||||
}
|
||||
|
||||
void Testar() {
|
||||
Testando = true;
|
||||
|
||||
Testando = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
TaskHandle_t RampaTaskHandle = NULL;
|
||||
static void RampaTaskWrapper(void *pvParameters) {
|
||||
Motor *motor = static_cast<Motor*>(pvParameters);
|
||||
motor->RampaTask();
|
||||
}
|
||||
|
||||
void RampaTask() {
|
||||
unsigned long previousMillisRampa = millis();
|
||||
|
||||
while (true) { // Loop infinito mais claro
|
||||
// Verifica a conexão antes de prosseguir
|
||||
if (!Conectado) {
|
||||
// Espera por 1 segundo para reduzir o uso da CPU se não estiver conectado
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
continue; // Pula para a próxima iteração do loop
|
||||
}
|
||||
|
||||
// Executa as funções de controle e monitoramento do motor
|
||||
AferirPosicao();
|
||||
if (Referenciando) {
|
||||
ReferenciarMotor();
|
||||
} else {
|
||||
VerificarAnguloSP();
|
||||
}
|
||||
Atualizar();
|
||||
|
||||
// Envia dados via serial em intervalos definidos por _TaxaAmostragem
|
||||
if (millis() - previousMillisRampa >= _TaxaAmostragem) {
|
||||
previousMillisRampa = millis(); // Atualiza o tempo para o próximo envio
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sENC, _ID, MontarDadosProtocoloEncoderAbsoluto(_Sentido, _Angulo, Referenciando, Referenciado)));
|
||||
}
|
||||
|
||||
// Libera a CPU para outras tarefas por um curto período
|
||||
vTaskDelay(1 / portTICK_PERIOD_MS); // Torna o delay mais explícito e ajustado ao tick do sistema
|
||||
}
|
||||
}
|
||||
|
||||
void Atualizar() {
|
||||
_pinoENA.set(!_MotorLigado);
|
||||
_pinoDIR.set(_Sentido_SP != Horario);
|
||||
}
|
||||
|
||||
void AferirPosicao() {
|
||||
if (_pinoEncoder.Definido()) {
|
||||
// Lê o valor analógico do pino conectado à saída analógica do AS5600
|
||||
int sensorValue = _pinoEncoder.get();
|
||||
|
||||
// Converte a leitura para ângulo (0V a 3.3V corresponde a 0 a 360 graus)
|
||||
double _angulo = (sensorValue / 4095.0) * 360.0;
|
||||
|
||||
// Ajusta o ângulo com o offset
|
||||
double angulo_com_offset = _angulo - _Angulo_Offset; // Considerando que o offset pode ser positivo ou negativo
|
||||
|
||||
// Normaliza o ângulo para o intervalo de -180 a 180 graus
|
||||
while (angulo_com_offset > 180) angulo_com_offset -= 360;
|
||||
while (angulo_com_offset < -180) angulo_com_offset += 360;
|
||||
|
||||
_Angulo = angulo_com_offset;
|
||||
}
|
||||
}
|
||||
|
||||
void VerificarAnguloSP() {
|
||||
if (_MotorLigado) {
|
||||
if (_Angulo_SP > -1) {
|
||||
if (_Sentido_SP == Horario && _Angulo >= _Angulo_SP) {
|
||||
_MotorLigado = false;
|
||||
}
|
||||
else if (_Sentido_SP == Antihorario && _Angulo <= (_Angulo_SP * -1)) {
|
||||
_MotorLigado = false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (Referenciado && (_Sentido_SP == Horario && _Angulo >= RefMax)) {
|
||||
_MotorLigado = false;
|
||||
}
|
||||
else if (Referenciado && (_Sentido_SP == Antihorario && _Angulo <= RefMin)) {
|
||||
_MotorLigado = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (_Estabilizar && _Sentido_SP == Parado && _Angulo != _Angulo_SP) {
|
||||
_Sentido_SP = _Angulo > _Angulo_SP ? Antihorario : Horario;
|
||||
_MotorLigado = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ReferenciarMotor() {
|
||||
_Angulo_SP = 0;
|
||||
Referenciado = false;
|
||||
|
||||
if (Referenciando && (_Angulo >= -_Margem && _Angulo <= _Margem)) {
|
||||
Referenciando = false;
|
||||
Referenciado = true;
|
||||
_MotorLigado = false;
|
||||
}
|
||||
else {
|
||||
_Sentido_SP = (_Angulo < 0) ? Horario : Antihorario;
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
Motor M1("ET");
|
||||
Motor M2("EF");
|
||||
Motor M3("DT");
|
||||
Motor M4("DF");
|
||||
|
||||
Motor* MotorPorID(String ID) {
|
||||
Motor* _motor =
|
||||
ID == "ET" ? &M1 :
|
||||
ID == "EF" ? &M2 :
|
||||
ID == "DT" ? &M3 :
|
||||
ID == "DF" ? &M4 :
|
||||
nullptr;
|
||||
return _motor;
|
||||
}
|
||||
|
||||
void setup() {
|
||||
Serial.begin(_baudRate);
|
||||
//iniciarMCP(D_Code, 8, 18, 0x20, false);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
std::vector<ProtocoloSerial> protocolos = LerBufferSerialFila();
|
||||
|
||||
for (int i = 0; i < protocolos.size(); i++) {
|
||||
ProcessarProtocolo(protocolos[i].protocolo, protocolos[i].funcao, protocolos[i].idMensagem);
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessarProtocolo(String Protocolo, F_Code _funcao, int idMensagem) {
|
||||
|
||||
if (_funcao == Chk) {
|
||||
EnviarDadosSerial(MontarProtocoloVerificacao(D_Code, VERSION));
|
||||
}
|
||||
else if (_funcao == Cfg) {
|
||||
std::vector<String> Partes = SplitString(Protocolo, (char*)",");
|
||||
String ID = Partes[0];
|
||||
bool Conectar = Partes[1] == "1";
|
||||
if (ID == "MD") {
|
||||
_TaxaAmostragem = Partes[2].toInt();
|
||||
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sCFG, "MD", Conectar ? "1" : "0"));
|
||||
vTaskDelay(pdMS_TO_TICKS(100));
|
||||
Conectado = Conectar;
|
||||
}
|
||||
else {
|
||||
Motor* _motor = MotorPorID(ID);
|
||||
|
||||
int canal = Partes[2].toInt();
|
||||
bool motor_ativado = Partes[3] == "1";
|
||||
bool estabilizar = Partes[4] == "1";
|
||||
bool referenciar = Partes[5] == "1";
|
||||
int _offset = Partes[6].toInt();
|
||||
TiposBarramentos pulB = (TiposBarramentos)Partes[7].toInt();
|
||||
int pul = Partes[8].toInt();
|
||||
TiposBarramentos dirB = (TiposBarramentos)Partes[9].toInt();
|
||||
int dir = Partes[10].toInt();
|
||||
TiposBarramentos enaB = (TiposBarramentos)Partes[11].toInt();
|
||||
int ena = Partes[12].toInt();
|
||||
TiposBarramentos encB = (TiposBarramentos)Partes[13].toInt();
|
||||
int encoder = Partes[14].toInt();
|
||||
|
||||
if (motor_ativado) {
|
||||
if (Conectar) {
|
||||
_motor->_canal = canal;
|
||||
_motor->_Estabilizar = estabilizar;
|
||||
_motor->_Referenciar = referenciar;
|
||||
_motor->_Angulo_Offset = _offset;
|
||||
_motor->_pinoPUL = PinoModel(pul, pulB, _PWM);
|
||||
_motor->_pinoDIR = PinoModel(dir, dirB, _OUTPUT);
|
||||
_motor->_pinoENA = PinoModel(ena, enaB, _OUTPUT);
|
||||
_motor->_pinoEncoder = PinoModel(encoder, encB, _INPUT, ANALOGICO);
|
||||
_motor->Inicializar();
|
||||
}
|
||||
else {
|
||||
_motor->Desligar();
|
||||
}
|
||||
vTaskDelay(500);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (_funcao == Cmd) {
|
||||
std::vector<String> Partes = SplitString(Protocolo, (char*)",");
|
||||
String ID = Partes[0];
|
||||
|
||||
Motor* _motor = MotorPorID(ID);
|
||||
|
||||
Sentido sentido = (Sentido)Partes[1].toInt();
|
||||
int angulo = Partes[2].toInt();
|
||||
int porcentagem = Partes[3].toInt();
|
||||
double frequencia = (porcentagem / 100.0) * FrequenciaMaxima;
|
||||
bool referenciar = Partes[4] == "1";
|
||||
int _offset = Partes[5].toInt();
|
||||
|
||||
_frequencia = frequencia;
|
||||
|
||||
_motor->_Sentido_SP = sentido;
|
||||
_motor->_Angulo_SP = angulo;
|
||||
_motor->_Angulo_Offset = _offset;
|
||||
|
||||
_motor->AtualizarPWM();
|
||||
|
||||
if (referenciar) {
|
||||
_motor->ResetRef(referenciar);
|
||||
}
|
||||
else {
|
||||
_motor->_MotorLigado = sentido != Parado;
|
||||
}
|
||||
}
|
||||
else if (_funcao == Tst) {
|
||||
std::vector<String> Partes = SplitString(Protocolo, (char*)",");
|
||||
String ID = Partes[0];
|
||||
|
||||
Motor* _motor = MotorPorID(ID);
|
||||
|
||||
bool EmTeste = _motor->Testando;
|
||||
if (!EmTeste) {
|
||||
_motor->Testar();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
EnviarDadosSerial(MontarProtocoloMensagemRecebida(idMensagem));
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
|
||||
]
|
||||
}
|
||||
|
|
@ -178,6 +178,15 @@ String MontarDadosProtocoloEncoder(Sentido sentido, int angulo, bool ref0, bool
|
|||
return Protocolo;
|
||||
}
|
||||
|
||||
String MontarDadosProtocoloEncoderAbsoluto(Sentido sentido, int angulo, bool referenciando, bool referenciado) {
|
||||
String Protocolo =
|
||||
(String)sentido + ";" +
|
||||
(String)angulo + ";" +
|
||||
(referenciando ? "1" : "0") + ";" +
|
||||
(referenciado ? "1" : "0");
|
||||
return Protocolo;
|
||||
}
|
||||
|
||||
String MontarDadosProtocoloBicoPulverizador(bool statusBico) {
|
||||
String Protocolo =
|
||||
String(statusBico ? "1" : "0");
|
||||
|
|
|
|||
|
|
@ -26,8 +26,8 @@ bool Conectado = false;
|
|||
int _TaxaAmostragem;
|
||||
int FrequenciaMaxima = 10000;
|
||||
|
||||
int _pinoSDA = 1;
|
||||
int _pinoSCL = 2;
|
||||
int _pinoSDA = 21;
|
||||
int _pinoSCL = 22;
|
||||
|
||||
|
||||
class SensorTemperatura {
|
||||
|
|
|
|||
Loading…
Reference in New Issue