controle do motor atraves do modulo MOV

This commit is contained in:
Diego Freitas 2024-06-06 07:32:10 -03:00
parent e56deab0ed
commit 562d6b724a
34 changed files with 890 additions and 628 deletions

Binary file not shown.

View File

@ -2,28 +2,52 @@
"Version": 1,
"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\\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\\modules\\movimentacaomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\modules\\movimentacaomodel.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\\frmprincipal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\frmprincipal.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\\movimentacao\\frmmovconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\movimentacao\\frmmovconfig.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\\dispositivosservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\services\\dispositivosservice.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\\pinoutmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\modules\\pinoutmodel.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\\serialservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\services\\serialservice.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\\frmacompanhamento.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}|Form",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\frmacompanhamento.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\\forms\\frmacompanhamento.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\\frmacompanhamento.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\forms\\frmacompanhamento.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\\variaveis.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\\variaveis.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\variaveis.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\\movimentacaomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\modules\\movimentacaomodel.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}",
"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\\wt901cservice.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\\wt901cservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\services\\wt901cservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}
],
@ -34,24 +58,101 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 1,
"SelectedChildIndex": 2,
"Children": [
{
"$type": "Document",
"DocumentIndex": 1,
"DocumentIndex": 2,
"Title": "frmPrincipal.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmPrincipal.cs",
"RelativeDocumentMoniker": "AgroBase\\Forms\\frmPrincipal.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmPrincipal.cs",
"RelativeToolTip": "AgroBase\\Forms\\frmPrincipal.cs",
"ViewState": "AQIAAOkAAAAAAAAAAIA9wAsBAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-06-05T13:56:57.085Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "frmMovConfig.cs [Design]",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\Movimentacao\\frmMovConfig.cs",
"RelativeDocumentMoniker": "AgroBase\\Forms\\Movimentacao\\frmMovConfig.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\Movimentacao\\frmMovConfig.cs [Design]",
"RelativeToolTip": "AgroBase\\Forms\\Movimentacao\\frmMovConfig.cs [Design]",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-06-05T17:08:27.297Z",
"EditorCaption": " [Design]"
},
{
"$type": "Document",
"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": "AQIAAAgAAAAAAAAAAIAwwKoAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-06-05T12:25:23.841Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "DispositivosService.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\DispositivosService.cs",
"RelativeDocumentMoniker": "AgroBase\\Services\\DispositivosService.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\DispositivosService.cs",
"RelativeToolTip": "AgroBase\\Services\\DispositivosService.cs",
"ViewState": "AQIAAMQCAAAAAAAAAIA9wN8CAAAfAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-06-05T12:11:58.639Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "PinoutModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\PinoutModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\PinoutModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\PinoutModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Modules\\PinoutModel.cs",
"ViewState": "AQIAABUAAAAAAAAAAAA4wIAAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-06-05T11:57:33.236Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 6,
"Title": "SerialService.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\SerialService.cs",
"RelativeDocumentMoniker": "AgroBase\\Services\\SerialService.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\SerialService.cs",
"RelativeToolTip": "AgroBase\\Services\\SerialService.cs",
"ViewState": "AQIAAAcAAAAAAAAAAAASwDkAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-06-05T11:19:50.984Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 8,
"Title": "frmAcompanhamento.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmAcompanhamento.cs",
"RelativeDocumentMoniker": "AgroBase\\Forms\\frmAcompanhamento.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmAcompanhamento.cs",
"RelativeToolTip": "AgroBase\\Forms\\frmAcompanhamento.cs",
"ViewState": "AQIAAF4AAAAAAAAAAAAswHQAAAAUAAAA",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAHQAAAAUAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-06-04T13:26:58.628Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"DocumentIndex": 7,
"Title": "frmAcompanhamento.cs [Design]",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Forms\\frmAcompanhamento.cs",
"RelativeDocumentMoniker": "AgroBase\\Forms\\frmAcompanhamento.cs",
@ -63,7 +164,7 @@
},
{
"$type": "Document",
"DocumentIndex": 2,
"DocumentIndex": 9,
"Title": "Variaveis.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Variaveis.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Variaveis.cs",
@ -71,12 +172,11 @@
"RelativeToolTip": "AgroBase\\Models\\Variaveis.cs",
"ViewState": "AQIAAIgAAAAAAAAAAAAIwJ0BAABPAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-06-04T11:07:28.156Z",
"EditorCaption": ""
"WhenOpened": "2024-06-04T11:07:28.156Z"
},
{
"$type": "Document",
"DocumentIndex": 4,
"DocumentIndex": 10,
"Title": "SensoriamentoModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\SensoriamentoModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\SensoriamentoModel.cs",
@ -84,12 +184,11 @@
"RelativeToolTip": "AgroBase\\Models\\Modules\\SensoriamentoModel.cs",
"ViewState": "AQIAAIcBAAAAAAAAAAAgwNoBAACSAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-06-04T11:06:48.719Z",
"EditorCaption": ""
"WhenOpened": "2024-06-04T11:06:48.719Z"
},
{
"$type": "Document",
"DocumentIndex": 5,
"DocumentIndex": 11,
"Title": "WT901CService.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\WT901CService.cs",
"RelativeDocumentMoniker": "AgroBase\\Services\\WT901CService.cs",
@ -97,18 +196,17 @@
"RelativeToolTip": "AgroBase\\Services\\WT901CService.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAABwAAAAQAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-06-04T10:42:18.417Z",
"EditorCaption": ""
"WhenOpened": "2024-06-04T10:42:18.417Z"
},
{
"$type": "Document",
"DocumentIndex": 3,
"DocumentIndex": 1,
"Title": "MovimentacaoModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\MovimentacaoModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\MovimentacaoModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\MovimentacaoModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Modules\\MovimentacaoModel.cs",
"ViewState": "AQIAAJIAAAAAAAAAAAAkwLIAAABDAAAA",
"ViewState": "AQIAAIcAAAAAAAAAAADwv58AAAAkAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2024-06-04T10:59:59.838Z",
"EditorCaption": ""

View File

@ -31,6 +31,8 @@ namespace AgroBase.Forms.Movimentacao
{
this.gpbSentido = new System.Windows.Forms.GroupBox();
this.gpbDF = new System.Windows.Forms.GroupBox();
this.lblDFEndereco = new System.Windows.Forms.Label();
this.txtDFEndereco = new System.Windows.Forms.TextBox();
this.cmbDFFrente = new System.Windows.Forms.ComboBox();
this.cmbDFTras = new System.Windows.Forms.ComboBox();
this.cmbDFDireita = new System.Windows.Forms.ComboBox();
@ -40,6 +42,8 @@ namespace AgroBase.Forms.Movimentacao
this.lblDFTras = new System.Windows.Forms.Label();
this.lblDFFrente = new System.Windows.Forms.Label();
this.gpbEF = new System.Windows.Forms.GroupBox();
this.label1 = new System.Windows.Forms.Label();
this.txtEFEndereco = new System.Windows.Forms.TextBox();
this.cmbEFFrente = new System.Windows.Forms.ComboBox();
this.cmbEFTras = new System.Windows.Forms.ComboBox();
this.cmbEFDireita = new System.Windows.Forms.ComboBox();
@ -49,6 +53,8 @@ namespace AgroBase.Forms.Movimentacao
this.lblEFTras = new System.Windows.Forms.Label();
this.lblEFFrente = new System.Windows.Forms.Label();
this.gpbDT = new System.Windows.Forms.GroupBox();
this.label3 = new System.Windows.Forms.Label();
this.txtDTEndereco = new System.Windows.Forms.TextBox();
this.cmbDTFrente = new System.Windows.Forms.ComboBox();
this.cmbDTTras = new System.Windows.Forms.ComboBox();
this.cmbDTDireita = new System.Windows.Forms.ComboBox();
@ -58,6 +64,8 @@ namespace AgroBase.Forms.Movimentacao
this.lblDTTras = new System.Windows.Forms.Label();
this.lblDTFrente = new System.Windows.Forms.Label();
this.gpbET = new System.Windows.Forms.GroupBox();
this.label2 = new System.Windows.Forms.Label();
this.txtETEndereco = new System.Windows.Forms.TextBox();
this.cmbETFrente = new System.Windows.Forms.ComboBox();
this.cmbETTras = new System.Windows.Forms.ComboBox();
this.cmbETDireita = new System.Windows.Forms.ComboBox();
@ -76,14 +84,6 @@ namespace AgroBase.Forms.Movimentacao
this.lblRampa = new System.Windows.Forms.Label();
this.nudRampa = new System.Windows.Forms.NumericUpDown();
this.btnSalvar = new System.Windows.Forms.Button();
this.txtDFEndereco = new System.Windows.Forms.TextBox();
this.lblDFEndereco = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.txtEFEndereco = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.txtETEndereco = new System.Windows.Forms.TextBox();
this.label3 = new System.Windows.Forms.Label();
this.txtDTEndereco = new System.Windows.Forms.TextBox();
this.gpbSentido.SuspendLayout();
this.gpbDF.SuspendLayout();
this.gpbEF.SuspendLayout();
@ -102,11 +102,11 @@ namespace AgroBase.Forms.Movimentacao
this.gpbSentido.Controls.Add(this.gpbEF);
this.gpbSentido.Controls.Add(this.gpbDT);
this.gpbSentido.Controls.Add(this.gpbET);
this.gpbSentido.Location = new System.Drawing.Point(15, 14);
this.gpbSentido.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbSentido.Location = new System.Drawing.Point(11, 11);
this.gpbSentido.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpbSentido.Name = "gpbSentido";
this.gpbSentido.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbSentido.Size = new System.Drawing.Size(501, 429);
this.gpbSentido.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpbSentido.Size = new System.Drawing.Size(376, 349);
this.gpbSentido.TabIndex = 40;
this.gpbSentido.TabStop = false;
this.gpbSentido.Text = "Sentido de giro";
@ -123,84 +123,107 @@ namespace AgroBase.Forms.Movimentacao
this.gpbDF.Controls.Add(this.lblDFDireita);
this.gpbDF.Controls.Add(this.lblDFTras);
this.gpbDF.Controls.Add(this.lblDFFrente);
this.gpbDF.Location = new System.Drawing.Point(260, 26);
this.gpbDF.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbDF.Location = new System.Drawing.Point(195, 21);
this.gpbDF.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpbDF.Name = "gpbDF";
this.gpbDF.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbDF.Size = new System.Drawing.Size(224, 193);
this.gpbDF.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpbDF.Size = new System.Drawing.Size(168, 157);
this.gpbDF.TabIndex = 9;
this.gpbDF.TabStop = false;
this.gpbDF.Text = "M4 - Direito Frente (DF)";
//
// lblDFEndereco
//
this.lblDFEndereco.AutoSize = true;
this.lblDFEndereco.Location = new System.Drawing.Point(10, 127);
this.lblDFEndereco.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDFEndereco.Name = "lblDFEndereco";
this.lblDFEndereco.Size = new System.Drawing.Size(53, 13);
this.lblDFEndereco.TabIndex = 9;
this.lblDFEndereco.Text = "Endereço";
//
// txtDFEndereco
//
this.txtDFEndereco.Location = new System.Drawing.Point(66, 124);
this.txtDFEndereco.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.txtDFEndereco.Name = "txtDFEndereco";
this.txtDFEndereco.Size = new System.Drawing.Size(92, 20);
this.txtDFEndereco.TabIndex = 8;
this.txtDFEndereco.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// cmbDFFrente
//
this.cmbDFFrente.FormattingEnabled = true;
this.cmbDFFrente.Location = new System.Drawing.Point(88, 31);
this.cmbDFFrente.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbDFFrente.Location = new System.Drawing.Point(66, 25);
this.cmbDFFrente.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbDFFrente.Name = "cmbDFFrente";
this.cmbDFFrente.Size = new System.Drawing.Size(121, 24);
this.cmbDFFrente.Size = new System.Drawing.Size(92, 21);
this.cmbDFFrente.TabIndex = 7;
//
// cmbDFTras
//
this.cmbDFTras.FormattingEnabled = true;
this.cmbDFTras.Location = new System.Drawing.Point(88, 62);
this.cmbDFTras.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbDFTras.Location = new System.Drawing.Point(66, 50);
this.cmbDFTras.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbDFTras.Name = "cmbDFTras";
this.cmbDFTras.Size = new System.Drawing.Size(121, 24);
this.cmbDFTras.Size = new System.Drawing.Size(92, 21);
this.cmbDFTras.TabIndex = 6;
//
// cmbDFDireita
//
this.cmbDFDireita.FormattingEnabled = true;
this.cmbDFDireita.Location = new System.Drawing.Point(88, 91);
this.cmbDFDireita.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbDFDireita.Location = new System.Drawing.Point(66, 74);
this.cmbDFDireita.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbDFDireita.Name = "cmbDFDireita";
this.cmbDFDireita.Size = new System.Drawing.Size(121, 24);
this.cmbDFDireita.Size = new System.Drawing.Size(92, 21);
this.cmbDFDireita.TabIndex = 5;
//
// cmbDFEsquerda
//
this.cmbDFEsquerda.FormattingEnabled = true;
this.cmbDFEsquerda.Location = new System.Drawing.Point(88, 124);
this.cmbDFEsquerda.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbDFEsquerda.Location = new System.Drawing.Point(66, 101);
this.cmbDFEsquerda.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbDFEsquerda.Name = "cmbDFEsquerda";
this.cmbDFEsquerda.Size = new System.Drawing.Size(121, 24);
this.cmbDFEsquerda.Size = new System.Drawing.Size(92, 21);
this.cmbDFEsquerda.TabIndex = 4;
//
// lblDFEsquerda
//
this.lblDFEsquerda.AutoSize = true;
this.lblDFEsquerda.Location = new System.Drawing.Point(13, 127);
this.lblDFEsquerda.Location = new System.Drawing.Point(10, 103);
this.lblDFEsquerda.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDFEsquerda.Name = "lblDFEsquerda";
this.lblDFEsquerda.Size = new System.Drawing.Size(66, 16);
this.lblDFEsquerda.Size = new System.Drawing.Size(52, 13);
this.lblDFEsquerda.TabIndex = 3;
this.lblDFEsquerda.Text = "Esquerda";
//
// lblDFDireita
//
this.lblDFDireita.AutoSize = true;
this.lblDFDireita.Location = new System.Drawing.Point(13, 94);
this.lblDFDireita.Location = new System.Drawing.Point(10, 76);
this.lblDFDireita.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDFDireita.Name = "lblDFDireita";
this.lblDFDireita.Size = new System.Drawing.Size(46, 16);
this.lblDFDireita.Size = new System.Drawing.Size(37, 13);
this.lblDFDireita.TabIndex = 2;
this.lblDFDireita.Text = "Direita";
//
// lblDFTras
//
this.lblDFTras.AutoSize = true;
this.lblDFTras.Location = new System.Drawing.Point(13, 64);
this.lblDFTras.Location = new System.Drawing.Point(10, 52);
this.lblDFTras.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDFTras.Name = "lblDFTras";
this.lblDFTras.Size = new System.Drawing.Size(35, 16);
this.lblDFTras.Size = new System.Drawing.Size(28, 13);
this.lblDFTras.TabIndex = 1;
this.lblDFTras.Text = "Trás";
//
// lblDFFrente
//
this.lblDFFrente.AutoSize = true;
this.lblDFFrente.Location = new System.Drawing.Point(13, 34);
this.lblDFFrente.Location = new System.Drawing.Point(10, 28);
this.lblDFFrente.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDFFrente.Name = "lblDFFrente";
this.lblDFFrente.Size = new System.Drawing.Size(45, 16);
this.lblDFFrente.Size = new System.Drawing.Size(37, 13);
this.lblDFFrente.TabIndex = 0;
this.lblDFFrente.Text = "Frente";
//
@ -216,84 +239,107 @@ namespace AgroBase.Forms.Movimentacao
this.gpbEF.Controls.Add(this.lblEFDireita);
this.gpbEF.Controls.Add(this.lblEFTras);
this.gpbEF.Controls.Add(this.lblEFFrente);
this.gpbEF.Location = new System.Drawing.Point(17, 26);
this.gpbEF.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbEF.Location = new System.Drawing.Point(13, 21);
this.gpbEF.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpbEF.Name = "gpbEF";
this.gpbEF.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbEF.Size = new System.Drawing.Size(224, 193);
this.gpbEF.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpbEF.Size = new System.Drawing.Size(168, 157);
this.gpbEF.TabIndex = 9;
this.gpbEF.TabStop = false;
this.gpbEF.Text = "M2 - Esquerdo Frente (EF)";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(10, 127);
this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(53, 13);
this.label1.TabIndex = 11;
this.label1.Text = "Endereço";
//
// txtEFEndereco
//
this.txtEFEndereco.Location = new System.Drawing.Point(66, 124);
this.txtEFEndereco.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.txtEFEndereco.Name = "txtEFEndereco";
this.txtEFEndereco.Size = new System.Drawing.Size(92, 20);
this.txtEFEndereco.TabIndex = 10;
this.txtEFEndereco.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// cmbEFFrente
//
this.cmbEFFrente.FormattingEnabled = true;
this.cmbEFFrente.Location = new System.Drawing.Point(88, 31);
this.cmbEFFrente.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbEFFrente.Location = new System.Drawing.Point(66, 25);
this.cmbEFFrente.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbEFFrente.Name = "cmbEFFrente";
this.cmbEFFrente.Size = new System.Drawing.Size(121, 24);
this.cmbEFFrente.Size = new System.Drawing.Size(92, 21);
this.cmbEFFrente.TabIndex = 7;
//
// cmbEFTras
//
this.cmbEFTras.FormattingEnabled = true;
this.cmbEFTras.Location = new System.Drawing.Point(88, 62);
this.cmbEFTras.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbEFTras.Location = new System.Drawing.Point(66, 50);
this.cmbEFTras.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbEFTras.Name = "cmbEFTras";
this.cmbEFTras.Size = new System.Drawing.Size(121, 24);
this.cmbEFTras.Size = new System.Drawing.Size(92, 21);
this.cmbEFTras.TabIndex = 6;
//
// cmbEFDireita
//
this.cmbEFDireita.FormattingEnabled = true;
this.cmbEFDireita.Location = new System.Drawing.Point(88, 91);
this.cmbEFDireita.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbEFDireita.Location = new System.Drawing.Point(66, 74);
this.cmbEFDireita.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbEFDireita.Name = "cmbEFDireita";
this.cmbEFDireita.Size = new System.Drawing.Size(121, 24);
this.cmbEFDireita.Size = new System.Drawing.Size(92, 21);
this.cmbEFDireita.TabIndex = 5;
//
// cmbEFEsquerda
//
this.cmbEFEsquerda.FormattingEnabled = true;
this.cmbEFEsquerda.Location = new System.Drawing.Point(88, 124);
this.cmbEFEsquerda.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbEFEsquerda.Location = new System.Drawing.Point(66, 101);
this.cmbEFEsquerda.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbEFEsquerda.Name = "cmbEFEsquerda";
this.cmbEFEsquerda.Size = new System.Drawing.Size(121, 24);
this.cmbEFEsquerda.Size = new System.Drawing.Size(92, 21);
this.cmbEFEsquerda.TabIndex = 4;
//
// lblEFEsquerda
//
this.lblEFEsquerda.AutoSize = true;
this.lblEFEsquerda.Location = new System.Drawing.Point(13, 127);
this.lblEFEsquerda.Location = new System.Drawing.Point(10, 103);
this.lblEFEsquerda.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblEFEsquerda.Name = "lblEFEsquerda";
this.lblEFEsquerda.Size = new System.Drawing.Size(66, 16);
this.lblEFEsquerda.Size = new System.Drawing.Size(52, 13);
this.lblEFEsquerda.TabIndex = 3;
this.lblEFEsquerda.Text = "Esquerda";
//
// lblEFDireita
//
this.lblEFDireita.AutoSize = true;
this.lblEFDireita.Location = new System.Drawing.Point(13, 94);
this.lblEFDireita.Location = new System.Drawing.Point(10, 76);
this.lblEFDireita.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblEFDireita.Name = "lblEFDireita";
this.lblEFDireita.Size = new System.Drawing.Size(46, 16);
this.lblEFDireita.Size = new System.Drawing.Size(37, 13);
this.lblEFDireita.TabIndex = 2;
this.lblEFDireita.Text = "Direita";
//
// lblEFTras
//
this.lblEFTras.AutoSize = true;
this.lblEFTras.Location = new System.Drawing.Point(13, 64);
this.lblEFTras.Location = new System.Drawing.Point(10, 52);
this.lblEFTras.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblEFTras.Name = "lblEFTras";
this.lblEFTras.Size = new System.Drawing.Size(35, 16);
this.lblEFTras.Size = new System.Drawing.Size(28, 13);
this.lblEFTras.TabIndex = 1;
this.lblEFTras.Text = "Trás";
//
// lblEFFrente
//
this.lblEFFrente.AutoSize = true;
this.lblEFFrente.Location = new System.Drawing.Point(13, 34);
this.lblEFFrente.Location = new System.Drawing.Point(10, 28);
this.lblEFFrente.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblEFFrente.Name = "lblEFFrente";
this.lblEFFrente.Size = new System.Drawing.Size(45, 16);
this.lblEFFrente.Size = new System.Drawing.Size(37, 13);
this.lblEFFrente.TabIndex = 0;
this.lblEFFrente.Text = "Frente";
//
@ -309,84 +355,107 @@ namespace AgroBase.Forms.Movimentacao
this.gpbDT.Controls.Add(this.lblDTDireita);
this.gpbDT.Controls.Add(this.lblDTTras);
this.gpbDT.Controls.Add(this.lblDTFrente);
this.gpbDT.Location = new System.Drawing.Point(260, 223);
this.gpbDT.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbDT.Location = new System.Drawing.Point(195, 181);
this.gpbDT.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpbDT.Name = "gpbDT";
this.gpbDT.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbDT.Size = new System.Drawing.Size(224, 193);
this.gpbDT.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpbDT.Size = new System.Drawing.Size(168, 157);
this.gpbDT.TabIndex = 9;
this.gpbDT.TabStop = false;
this.gpbDT.Text = "M3 - Direito Trás (DT)";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(10, 127);
this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(53, 13);
this.label3.TabIndex = 11;
this.label3.Text = "Endereço";
//
// txtDTEndereco
//
this.txtDTEndereco.Location = new System.Drawing.Point(66, 124);
this.txtDTEndereco.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.txtDTEndereco.Name = "txtDTEndereco";
this.txtDTEndereco.Size = new System.Drawing.Size(92, 20);
this.txtDTEndereco.TabIndex = 10;
this.txtDTEndereco.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// cmbDTFrente
//
this.cmbDTFrente.FormattingEnabled = true;
this.cmbDTFrente.Location = new System.Drawing.Point(88, 31);
this.cmbDTFrente.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbDTFrente.Location = new System.Drawing.Point(66, 25);
this.cmbDTFrente.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbDTFrente.Name = "cmbDTFrente";
this.cmbDTFrente.Size = new System.Drawing.Size(121, 24);
this.cmbDTFrente.Size = new System.Drawing.Size(92, 21);
this.cmbDTFrente.TabIndex = 7;
//
// cmbDTTras
//
this.cmbDTTras.FormattingEnabled = true;
this.cmbDTTras.Location = new System.Drawing.Point(88, 62);
this.cmbDTTras.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbDTTras.Location = new System.Drawing.Point(66, 50);
this.cmbDTTras.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbDTTras.Name = "cmbDTTras";
this.cmbDTTras.Size = new System.Drawing.Size(121, 24);
this.cmbDTTras.Size = new System.Drawing.Size(92, 21);
this.cmbDTTras.TabIndex = 6;
//
// cmbDTDireita
//
this.cmbDTDireita.FormattingEnabled = true;
this.cmbDTDireita.Location = new System.Drawing.Point(88, 91);
this.cmbDTDireita.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbDTDireita.Location = new System.Drawing.Point(66, 74);
this.cmbDTDireita.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbDTDireita.Name = "cmbDTDireita";
this.cmbDTDireita.Size = new System.Drawing.Size(121, 24);
this.cmbDTDireita.Size = new System.Drawing.Size(92, 21);
this.cmbDTDireita.TabIndex = 5;
//
// cmbDTEsquerda
//
this.cmbDTEsquerda.FormattingEnabled = true;
this.cmbDTEsquerda.Location = new System.Drawing.Point(88, 124);
this.cmbDTEsquerda.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbDTEsquerda.Location = new System.Drawing.Point(66, 101);
this.cmbDTEsquerda.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbDTEsquerda.Name = "cmbDTEsquerda";
this.cmbDTEsquerda.Size = new System.Drawing.Size(121, 24);
this.cmbDTEsquerda.Size = new System.Drawing.Size(92, 21);
this.cmbDTEsquerda.TabIndex = 4;
//
// lblDTEsquerda
//
this.lblDTEsquerda.AutoSize = true;
this.lblDTEsquerda.Location = new System.Drawing.Point(13, 127);
this.lblDTEsquerda.Location = new System.Drawing.Point(10, 103);
this.lblDTEsquerda.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDTEsquerda.Name = "lblDTEsquerda";
this.lblDTEsquerda.Size = new System.Drawing.Size(66, 16);
this.lblDTEsquerda.Size = new System.Drawing.Size(52, 13);
this.lblDTEsquerda.TabIndex = 3;
this.lblDTEsquerda.Text = "Esquerda";
//
// lblDTDireita
//
this.lblDTDireita.AutoSize = true;
this.lblDTDireita.Location = new System.Drawing.Point(13, 94);
this.lblDTDireita.Location = new System.Drawing.Point(10, 76);
this.lblDTDireita.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDTDireita.Name = "lblDTDireita";
this.lblDTDireita.Size = new System.Drawing.Size(46, 16);
this.lblDTDireita.Size = new System.Drawing.Size(37, 13);
this.lblDTDireita.TabIndex = 2;
this.lblDTDireita.Text = "Direita";
//
// lblDTTras
//
this.lblDTTras.AutoSize = true;
this.lblDTTras.Location = new System.Drawing.Point(13, 64);
this.lblDTTras.Location = new System.Drawing.Point(10, 52);
this.lblDTTras.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDTTras.Name = "lblDTTras";
this.lblDTTras.Size = new System.Drawing.Size(35, 16);
this.lblDTTras.Size = new System.Drawing.Size(28, 13);
this.lblDTTras.TabIndex = 1;
this.lblDTTras.Text = "Trás";
//
// lblDTFrente
//
this.lblDTFrente.AutoSize = true;
this.lblDTFrente.Location = new System.Drawing.Point(13, 34);
this.lblDTFrente.Location = new System.Drawing.Point(10, 28);
this.lblDTFrente.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDTFrente.Name = "lblDTFrente";
this.lblDTFrente.Size = new System.Drawing.Size(45, 16);
this.lblDTFrente.Size = new System.Drawing.Size(37, 13);
this.lblDTFrente.TabIndex = 0;
this.lblDTFrente.Text = "Frente";
//
@ -402,84 +471,107 @@ namespace AgroBase.Forms.Movimentacao
this.gpbET.Controls.Add(this.lblETDireita);
this.gpbET.Controls.Add(this.lblETTras);
this.gpbET.Controls.Add(this.lblETFrente);
this.gpbET.Location = new System.Drawing.Point(17, 223);
this.gpbET.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbET.Location = new System.Drawing.Point(13, 181);
this.gpbET.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpbET.Name = "gpbET";
this.gpbET.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.gpbET.Size = new System.Drawing.Size(224, 193);
this.gpbET.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.gpbET.Size = new System.Drawing.Size(168, 157);
this.gpbET.TabIndex = 0;
this.gpbET.TabStop = false;
this.gpbET.Text = "M1 - Esquerdo Trás (ET)";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(10, 127);
this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(53, 13);
this.label2.TabIndex = 11;
this.label2.Text = "Endereço";
//
// txtETEndereco
//
this.txtETEndereco.Location = new System.Drawing.Point(66, 124);
this.txtETEndereco.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.txtETEndereco.Name = "txtETEndereco";
this.txtETEndereco.Size = new System.Drawing.Size(92, 20);
this.txtETEndereco.TabIndex = 10;
this.txtETEndereco.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// cmbETFrente
//
this.cmbETFrente.FormattingEnabled = true;
this.cmbETFrente.Location = new System.Drawing.Point(88, 31);
this.cmbETFrente.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbETFrente.Location = new System.Drawing.Point(66, 25);
this.cmbETFrente.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbETFrente.Name = "cmbETFrente";
this.cmbETFrente.Size = new System.Drawing.Size(121, 24);
this.cmbETFrente.Size = new System.Drawing.Size(92, 21);
this.cmbETFrente.TabIndex = 7;
//
// cmbETTras
//
this.cmbETTras.FormattingEnabled = true;
this.cmbETTras.Location = new System.Drawing.Point(88, 62);
this.cmbETTras.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbETTras.Location = new System.Drawing.Point(66, 50);
this.cmbETTras.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbETTras.Name = "cmbETTras";
this.cmbETTras.Size = new System.Drawing.Size(121, 24);
this.cmbETTras.Size = new System.Drawing.Size(92, 21);
this.cmbETTras.TabIndex = 6;
//
// cmbETDireita
//
this.cmbETDireita.FormattingEnabled = true;
this.cmbETDireita.Location = new System.Drawing.Point(88, 91);
this.cmbETDireita.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbETDireita.Location = new System.Drawing.Point(66, 74);
this.cmbETDireita.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbETDireita.Name = "cmbETDireita";
this.cmbETDireita.Size = new System.Drawing.Size(121, 24);
this.cmbETDireita.Size = new System.Drawing.Size(92, 21);
this.cmbETDireita.TabIndex = 5;
//
// cmbETEsquerda
//
this.cmbETEsquerda.FormattingEnabled = true;
this.cmbETEsquerda.Location = new System.Drawing.Point(88, 124);
this.cmbETEsquerda.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.cmbETEsquerda.Location = new System.Drawing.Point(66, 101);
this.cmbETEsquerda.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.cmbETEsquerda.Name = "cmbETEsquerda";
this.cmbETEsquerda.Size = new System.Drawing.Size(121, 24);
this.cmbETEsquerda.Size = new System.Drawing.Size(92, 21);
this.cmbETEsquerda.TabIndex = 4;
//
// lblETEsquerda
//
this.lblETEsquerda.AutoSize = true;
this.lblETEsquerda.Location = new System.Drawing.Point(13, 127);
this.lblETEsquerda.Location = new System.Drawing.Point(10, 103);
this.lblETEsquerda.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblETEsquerda.Name = "lblETEsquerda";
this.lblETEsquerda.Size = new System.Drawing.Size(66, 16);
this.lblETEsquerda.Size = new System.Drawing.Size(52, 13);
this.lblETEsquerda.TabIndex = 3;
this.lblETEsquerda.Text = "Esquerda";
//
// lblETDireita
//
this.lblETDireita.AutoSize = true;
this.lblETDireita.Location = new System.Drawing.Point(13, 94);
this.lblETDireita.Location = new System.Drawing.Point(10, 76);
this.lblETDireita.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblETDireita.Name = "lblETDireita";
this.lblETDireita.Size = new System.Drawing.Size(46, 16);
this.lblETDireita.Size = new System.Drawing.Size(37, 13);
this.lblETDireita.TabIndex = 2;
this.lblETDireita.Text = "Direita";
//
// lblETTras
//
this.lblETTras.AutoSize = true;
this.lblETTras.Location = new System.Drawing.Point(13, 64);
this.lblETTras.Location = new System.Drawing.Point(10, 52);
this.lblETTras.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblETTras.Name = "lblETTras";
this.lblETTras.Size = new System.Drawing.Size(35, 16);
this.lblETTras.Size = new System.Drawing.Size(28, 13);
this.lblETTras.TabIndex = 1;
this.lblETTras.Text = "Trás";
//
// lblETFrente
//
this.lblETFrente.AutoSize = true;
this.lblETFrente.Location = new System.Drawing.Point(13, 34);
this.lblETFrente.Location = new System.Drawing.Point(10, 28);
this.lblETFrente.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblETFrente.Name = "lblETFrente";
this.lblETFrente.Size = new System.Drawing.Size(45, 16);
this.lblETFrente.Size = new System.Drawing.Size(37, 13);
this.lblETFrente.TabIndex = 0;
this.lblETFrente.Text = "Frente";
//
@ -493,11 +585,11 @@ namespace AgroBase.Forms.Movimentacao
this.groupBox1.Controls.Add(this.nudNumPolos);
this.groupBox1.Controls.Add(this.lblRampa);
this.groupBox1.Controls.Add(this.nudRampa);
this.groupBox1.Location = new System.Drawing.Point(15, 447);
this.groupBox1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.groupBox1.Location = new System.Drawing.Point(11, 363);
this.groupBox1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.groupBox1.Size = new System.Drawing.Size(501, 81);
this.groupBox1.Padding = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.groupBox1.Size = new System.Drawing.Size(376, 66);
this.groupBox1.TabIndex = 135;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Ajustes";
@ -505,23 +597,24 @@ namespace AgroBase.Forms.Movimentacao
// lblDiametroRoda
//
this.lblDiametroRoda.AutoSize = true;
this.lblDiametroRoda.Location = new System.Drawing.Point(374, 25);
this.lblDiametroRoda.Location = new System.Drawing.Point(280, 20);
this.lblDiametroRoda.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblDiametroRoda.Name = "lblDiametroRoda";
this.lblDiametroRoda.Size = new System.Drawing.Size(99, 16);
this.lblDiametroRoda.Size = new System.Drawing.Size(78, 13);
this.lblDiametroRoda.TabIndex = 43;
this.lblDiametroRoda.Text = "Diâmetro Roda";
//
// nudDiametroRoda
//
this.nudDiametroRoda.Location = new System.Drawing.Point(377, 45);
this.nudDiametroRoda.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.nudDiametroRoda.Location = new System.Drawing.Point(283, 37);
this.nudDiametroRoda.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.nudDiametroRoda.Maximum = new decimal(new int[] {
20000,
0,
0,
0});
this.nudDiametroRoda.Name = "nudDiametroRoda";
this.nudDiametroRoda.Size = new System.Drawing.Size(113, 22);
this.nudDiametroRoda.Size = new System.Drawing.Size(85, 20);
this.nudDiametroRoda.TabIndex = 42;
this.nudDiametroRoda.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.nudDiametroRoda.Value = new decimal(new int[] {
@ -534,23 +627,24 @@ namespace AgroBase.Forms.Movimentacao
// lblRPMMax
//
this.lblRPMMax.AutoSize = true;
this.lblRPMMax.Location = new System.Drawing.Point(252, 25);
this.lblRPMMax.Location = new System.Drawing.Point(189, 20);
this.lblRPMMax.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblRPMMax.Name = "lblRPMMax";
this.lblRPMMax.Size = new System.Drawing.Size(87, 16);
this.lblRPMMax.Size = new System.Drawing.Size(70, 13);
this.lblRPMMax.TabIndex = 41;
this.lblRPMMax.Text = "RPM Máximo";
//
// nudRPMMax
//
this.nudRPMMax.Location = new System.Drawing.Point(255, 45);
this.nudRPMMax.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.nudRPMMax.Location = new System.Drawing.Point(191, 37);
this.nudRPMMax.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.nudRPMMax.Maximum = new decimal(new int[] {
20000,
0,
0,
0});
this.nudRPMMax.Name = "nudRPMMax";
this.nudRPMMax.Size = new System.Drawing.Size(113, 22);
this.nudRPMMax.Size = new System.Drawing.Size(85, 20);
this.nudRPMMax.TabIndex = 40;
this.nudRPMMax.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.nudRPMMax.Value = new decimal(new int[] {
@ -563,23 +657,24 @@ namespace AgroBase.Forms.Movimentacao
// lblNumPolos
//
this.lblNumPolos.AutoSize = true;
this.lblNumPolos.Location = new System.Drawing.Point(130, 25);
this.lblNumPolos.Location = new System.Drawing.Point(98, 20);
this.lblNumPolos.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblNumPolos.Name = "lblNumPolos";
this.lblNumPolos.Size = new System.Drawing.Size(112, 16);
this.lblNumPolos.Size = new System.Drawing.Size(88, 13);
this.lblNumPolos.TabIndex = 36;
this.lblNumPolos.Text = "Número de Polos";
//
// nudNumPolos
//
this.nudNumPolos.Location = new System.Drawing.Point(133, 45);
this.nudNumPolos.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.nudNumPolos.Location = new System.Drawing.Point(100, 37);
this.nudNumPolos.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.nudNumPolos.Maximum = new decimal(new int[] {
12,
999,
0,
0,
0});
this.nudNumPolos.Name = "nudNumPolos";
this.nudNumPolos.Size = new System.Drawing.Size(113, 22);
this.nudNumPolos.Size = new System.Drawing.Size(85, 20);
this.nudNumPolos.TabIndex = 35;
this.nudNumPolos.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.nudNumPolos.Value = new decimal(new int[] {
@ -592,116 +687,49 @@ namespace AgroBase.Forms.Movimentacao
// lblRampa
//
this.lblRampa.AutoSize = true;
this.lblRampa.Location = new System.Drawing.Point(7, 25);
this.lblRampa.Location = new System.Drawing.Point(5, 20);
this.lblRampa.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
this.lblRampa.Name = "lblRampa";
this.lblRampa.Size = new System.Drawing.Size(117, 16);
this.lblRampa.Size = new System.Drawing.Size(95, 13);
this.lblRampa.TabIndex = 33;
this.lblRampa.Text = "Rampa ( x 100ms )";
//
// nudRampa
//
this.nudRampa.Location = new System.Drawing.Point(11, 45);
this.nudRampa.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.nudRampa.Location = new System.Drawing.Point(8, 37);
this.nudRampa.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.nudRampa.Maximum = new decimal(new int[] {
15,
0,
0,
0});
this.nudRampa.Name = "nudRampa";
this.nudRampa.Size = new System.Drawing.Size(113, 22);
this.nudRampa.Size = new System.Drawing.Size(85, 20);
this.nudRampa.TabIndex = 31;
this.nudRampa.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
this.nudRampa.ValueChanged += new System.EventHandler(this.nudRampa_ValueChanged);
//
// btnSalvar
//
this.btnSalvar.Location = new System.Drawing.Point(363, 532);
this.btnSalvar.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnSalvar.Location = new System.Drawing.Point(272, 432);
this.btnSalvar.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.btnSalvar.Name = "btnSalvar";
this.btnSalvar.Size = new System.Drawing.Size(153, 30);
this.btnSalvar.Size = new System.Drawing.Size(115, 24);
this.btnSalvar.TabIndex = 136;
this.btnSalvar.Text = "Salvar";
this.btnSalvar.UseVisualStyleBackColor = true;
this.btnSalvar.Click += new System.EventHandler(this.btnSalvar_Click);
//
// txtDFEndereco
//
this.txtDFEndereco.Location = new System.Drawing.Point(88, 153);
this.txtDFEndereco.Name = "txtDFEndereco";
this.txtDFEndereco.Size = new System.Drawing.Size(121, 22);
this.txtDFEndereco.TabIndex = 8;
this.txtDFEndereco.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// lblDFEndereco
//
this.lblDFEndereco.AutoSize = true;
this.lblDFEndereco.Location = new System.Drawing.Point(13, 156);
this.lblDFEndereco.Name = "lblDFEndereco";
this.lblDFEndereco.Size = new System.Drawing.Size(66, 16);
this.lblDFEndereco.TabIndex = 9;
this.lblDFEndereco.Text = "Endereço";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(13, 156);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(66, 16);
this.label1.TabIndex = 11;
this.label1.Text = "Endereço";
//
// txtEFEndereco
//
this.txtEFEndereco.Location = new System.Drawing.Point(88, 153);
this.txtEFEndereco.Name = "txtEFEndereco";
this.txtEFEndereco.Size = new System.Drawing.Size(121, 22);
this.txtEFEndereco.TabIndex = 10;
this.txtEFEndereco.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(13, 156);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(66, 16);
this.label2.TabIndex = 11;
this.label2.Text = "Endereço";
//
// txtETEndereco
//
this.txtETEndereco.Location = new System.Drawing.Point(88, 153);
this.txtETEndereco.Name = "txtETEndereco";
this.txtETEndereco.Size = new System.Drawing.Size(121, 22);
this.txtETEndereco.TabIndex = 10;
this.txtETEndereco.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(13, 156);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(66, 16);
this.label3.TabIndex = 11;
this.label3.Text = "Endereço";
//
// txtDTEndereco
//
this.txtDTEndereco.Location = new System.Drawing.Point(88, 153);
this.txtDTEndereco.Name = "txtDTEndereco";
this.txtDTEndereco.Size = new System.Drawing.Size(121, 22);
this.txtDTEndereco.TabIndex = 10;
this.txtDTEndereco.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
//
// frmMovConfig
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(531, 577);
this.ClientSize = new System.Drawing.Size(398, 469);
this.Controls.Add(this.btnSalvar);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.gpbSentido);
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2);
this.MaximizeBox = false;
this.Name = "frmMovConfig";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

File diff suppressed because it is too large Load Diff

View File

@ -158,7 +158,7 @@ namespace AgroBase.Models
Motor.RPM = rpm;
double temperatura = 0;
double.TryParse(Dados[3].Replace(".", ","), out temperatura);
temperatura = FuncoesMatematicas.CalcularTemperatura(temperatura, 0);
temperatura = FuncoesMatematicas.CalcularTemperatura(temperatura, -1.038);
Motor.Temperatura = temperatura;
double tensao = 0;
double.TryParse(Dados[4].Replace(".", ","), out tensao);

View File

@ -208,10 +208,10 @@ namespace AgroBase.Models.Modules
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 8, ComponenteID = "", Descricao = "28", Funcao = FuncoesPinout.Desabilitado, Habilitado = false },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 15, ComponenteID = "", Descricao = "29", Funcao = FuncoesPinout.NaoConectado, Habilitado = true },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 2, ComponenteID = "", Descricao = "30", Funcao = FuncoesPinout.NaoConectado, Habilitado = true },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 0, ComponenteID = "", Descricao = "31", Funcao = FuncoesPinout.NaoConectado, Habilitado = true },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 0, ComponenteID = "", Descricao = "31", Funcao = FuncoesPinout.NaoConectado, Habilitado = false },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 4, ComponenteID = "", Descricao = "32", Funcao = FuncoesPinout.NaoConectado, Habilitado = true },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 16, ComponenteID = "", Descricao = "33", Funcao = FuncoesPinout.RX, Habilitado = false },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 17, ComponenteID = "", Descricao = "34", Funcao = FuncoesPinout.TX, Habilitado = false },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 16, ComponenteID = "", Descricao = "33", Funcao = FuncoesPinout.RX, Habilitado = true },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 17, ComponenteID = "", Descricao = "34", Funcao = FuncoesPinout.TX, Habilitado = true },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 5, ComponenteID = "", Descricao = "35", Funcao = FuncoesPinout.NaoConectado, Habilitado = true },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 18, ComponenteID = "", Descricao = "36", Funcao = FuncoesPinout.NaoConectado, Habilitado = true },
new PinoutModel() { Controlador = TiposControladores.ESP32_WROVER, Barramento = TiposBarramentos.CONTROLADOR, Pino = 19, ComponenteID = "", Descricao = "37", Funcao = FuncoesPinout.NaoConectado, Habilitado = true },

View File

@ -751,8 +751,15 @@ namespace AgroBase.Comum
F_Code funcao = (F_Code)(val);
if (funcao == F_Code.Msg)
{
int _id = int.Parse(Recebido.Split(';')[1]);
FilaService.MarcarMensagemRecebida(_id);
try
{
int _id = int.Parse(Recebido.Split(';')[1]);
FilaService.MarcarMensagemRecebida(_id);
}
catch
{
}
}
}
}

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

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

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

@ -25,7 +25,7 @@
<meta name="viewport" content="width=device-width,
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style>
#map_43bf289ffdd8be3323b96d63504f91d8 {
#map_459afd82b51d20eef5f835f948f180a0 {
position: relative;
width: 100.0%;
height: 100.0%;
@ -39,14 +39,14 @@
<body>
<div class="folium-map" id="map_43bf289ffdd8be3323b96d63504f91d8" ></div>
<div class="folium-map" id="map_459afd82b51d20eef5f835f948f180a0" ></div>
</body>
<script>
var map_43bf289ffdd8be3323b96d63504f91d8 = L.map(
"map_43bf289ffdd8be3323b96d63504f91d8",
var map_459afd82b51d20eef5f835f948f180a0 = L.map(
"map_459afd82b51d20eef5f835f948f180a0",
{
center: [0.0, 0.0],
crs: L.CRS.EPSG3857,
@ -60,13 +60,13 @@
var tile_layer_c7d1c3f23602424bb5472c5862dca97e = L.tileLayer(
var tile_layer_accc0020d010bc302c3d24b743a95dc6 = 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_c7d1c3f23602424bb5472c5862dca97e.addTo(map_43bf289ffdd8be3323b96d63504f91d8);
tile_layer_accc0020d010bc302c3d24b743a95dc6.addTo(map_459afd82b51d20eef5f835f948f180a0);
</script>
@ -87,7 +87,7 @@
}
trajeto_json_add({"features": []});
trajeto_json.addTo(map_43bf289ffdd8be3323b96d63504f91d8);
trajeto_json.addTo(map_459afd82b51d20eef5f835f948f180a0);
function adicionarGeometria(novaGeometria) {
trajeto_json.addData(novaGeometria);
@ -145,7 +145,7 @@
var marcadorDinamico = L.marker([0, 0], {
icon: customIcon
}).addTo(map_43bf289ffdd8be3323b96d63504f91d8);
}).addTo(map_459afd82b51d20eef5f835f948f180a0);
// Conectar ao broker MQTT
const client = mqtt.connect('ws://localhost:9001'); // Use wss para conexão segura
@ -183,7 +183,7 @@
marcadorDinamico.setRotationAngle(angulo);
adicionarCoordenada("Tj", [novaLongitude, novaLatitude]);
map_43bf289ffdd8be3323b96d63504f91d8.setView(novaPosicao, map_43bf289ffdd8be3323b96d63504f91d8.getZoom());
map_459afd82b51d20eef5f835f948f180a0.setView(novaPosicao, map_459afd82b51d20eef5f835f948f180a0.getZoom());
});
function calcularOrientacao(P1latitude, P1longitude, P2latitude, P2longitude) {

View File

@ -20,11 +20,15 @@ class ModbusGetResponse {
byte _command_code;
byte _num_registers;
double _value;
bool _success;
bool _success = false;
ModbusGetResponse() : _address(0), _command_code(0), _num_registers(0), _value(0.0) {}
};
// Definir prioridades
#define PRIORITY_HIGH 1
#define PRIORITY_LOW 0
// Estrutura para armazenar dados da mensagem Modbus
struct ModbusMessage {
uint8_t slaveAddress;
@ -34,6 +38,8 @@ struct ModbusMessage {
uint8_t* response;
uint8_t* length;
SemaphoreHandle_t responseSemaphore;
uint8_t priority;
bool waitCallback;
};
// Fila para armazenar mensagens Modbus
@ -57,81 +63,103 @@ uint16_t calculateCRC(const uint8_t* data, uint8_t length) {
return crc;
}
// Tarefa para processar a fila de mensagens Modbus
void processModbusMessage(ModbusMessage& message) {
uint8_t command[8];
command[0] = message.slaveAddress;
command[1] = message.functionCode;
command[2] = (message.registerAddress >> 8) & 0xFF; // Big endian
command[3] = message.registerAddress & 0xFF;
// Converter o valor inteiro para o formato adequado
command[4] = (message.value >> 8) & 0xFF; // Big endian
command[5] = message.value & 0xFF;
uint16_t crc = calculateCRC(command, 6);
command[6] = crc & 0xFF;
command[7] = (crc >> 8) & 0xFF;
// Alternar para modo de transmissão
digitalWrite(DE_RE_PIN, HIGH);
vTaskDelay(pdMS_TO_TICKS(1)); // Pequeno atraso para garantir que o modo de transmissão esteja ativo
SerialDriver.write(command, 8);
if (Debug) {
// Imprimir o comando em formato hexadecimal
Serial.print("Comando enviado: ");
for (int i = 0; i < 8; i++) {
if (command[i] < 0x10) {
Serial.print("0"); // Adiciona um zero à esquerda para bytes menores que 0x10
}
Serial.print(command[i], HEX);
Serial.print(" ");
}
Serial.println();
}
// Alternar para modo de recepção
SerialDriver.flush(); // Garantir que todos os dados foram enviados
digitalWrite(DE_RE_PIN, LOW);
vTaskDelay(pdMS_TO_TICKS(1)); // Pequeno atraso para garantir que o modo de recepção esteja ativo
*message.length = 0;
if (message.waitCallback) {
// Aguardar a resposta
vTaskDelay(pdMS_TO_TICKS(100)); // Ajuste o tempo de delay conforme necessário
// Ler a resposta
if (SerialDriver.available()) {
*message.length = SerialDriver.readBytes(message.response, SerialDriver.available());
if (Debug) {
// Imprimir a resposta em formato hexadecimal
Serial.print("Resposta recebida: ");
for (int i = 0; i < *message.length; i++) {
if (message.response[i] < 0x10) {
Serial.print("0"); // Adiciona um zero à esquerda para bytes menores que 0x10
}
Serial.print(message.response[i], HEX);
Serial.print(" ");
}
Serial.println();
}
}
}
else {
vTaskDelay(pdMS_TO_TICKS(50));
}
// Sinalizar que a resposta está disponível
xSemaphoreGive(message.responseSemaphore);
}
void processModbusQueue(void* pvParameters) {
ModbusMessage message;
while (true) {
// Aguardar até que uma mensagem esteja disponível na fila
if (xQueueReceive(modbusQueue, &message, portMAX_DELAY) == pdPASS) {
uint8_t command[8];
command[0] = message.slaveAddress;
command[1] = message.functionCode;
command[2] = (message.registerAddress >> 8) & 0xFF; // Big endian
command[3] = message.registerAddress & 0xFF;
// Converter o valor inteiro para o formato adequado
command[4] = (message.value >> 8) & 0xFF; // Big endian
command[5] = message.value & 0xFF;
uint16_t crc = calculateCRC(command, 6);
command[6] = crc & 0xFF;
command[7] = (crc >> 8) & 0xFF;
// Alternar para modo de transmissão
digitalWrite(DE_RE_PIN, HIGH);
vTaskDelay(1); // Pequeno atraso para garantir que o modo de transmissão esteja ativo
SerialDriver.write(command, 8);
if (Debug) {
// Imprimir o comando em formato hexadecimal
Serial.print("Comando enviado: ");
for (int i = 0; i < 8; i++) {
if (command[i] < 0x10) {
Serial.print("0"); // Adiciona um zero à esquerda para bytes menores que 0x10
}
Serial.print(command[i], HEX);
Serial.print(" ");
}
Serial.println();
}
// Alternar para modo de recepção
SerialDriver.flush(); // Garantir que todos os dados foram enviados
digitalWrite(DE_RE_PIN, LOW);
delay(1); // Pequeno atraso para garantir que o modo de recepção esteja ativo
// Aguardar a resposta
delay(100); // Ajuste o tempo de delay conforme necessário
// Ler a resposta
if (SerialDriver.available()) {
*message.length = SerialDriver.readBytes(message.response, SerialDriver.available());
if (Debug) {
// Imprimir a resposta em formato hexadecimal
Serial.print("Resposta recebida: ");
for (int i = 0; i < *message.length; i++) {
if (message.response[i] < 0x10) {
Serial.print("0"); // Adiciona um zero à esquerda para bytes menores que 0x10
}
Serial.print(message.response[i], HEX);
Serial.print(" ");
}
Serial.println();
}
// Processar mensagem de alta prioridade imediatamente
if (message.priority == PRIORITY_HIGH) {
// Processar mensagem de alta prioridade
processModbusMessage(message);
} else {
*message.length = 0;
// Verificar se há mensagens de alta prioridade na fila
ModbusMessage highPriorityMessage;
if (xQueuePeek(modbusQueue, &highPriorityMessage, 0) == pdPASS && highPriorityMessage.priority == PRIORITY_HIGH) {
// Recolocar a mensagem de baixa prioridade na fila
xQueueSendToBack(modbusQueue, &message, 0);
} else {
// Processar mensagem de baixa prioridade
processModbusMessage(message);
}
}
// Sinalizar que a resposta está disponível
xSemaphoreGive(message.responseSemaphore);
}
}
}
// Função para inicializar o Modbus
void InicializarModbus(bool _debug = false) {
SerialDriver.begin(9600, SERIAL_8N2, RXD1, TXD1);
@ -152,9 +180,8 @@ void InicializarModbus(bool _debug = false) {
xTaskCreate(processModbusQueue, "ProcessModbusQueue", 4096, NULL, 1, NULL);
}
// Função para construir o comando Modbus
void sendModbusCommand(uint8_t slaveAddress, uint8_t functionCode, uint16_t registerAddress, int value, uint8_t* response, uint8_t& length) {
void sendModbusCommand(uint8_t slaveAddress, uint8_t functionCode, uint16_t registerAddress, int value, uint8_t* response, uint8_t& length, bool waitCallback) {
ModbusMessage message;
message.slaveAddress = slaveAddress;
message.functionCode = functionCode;
@ -162,6 +189,8 @@ void sendModbusCommand(uint8_t slaveAddress, uint8_t functionCode, uint16_t regi
message.value = value;
message.response = response;
message.length = &length;
message.priority = functionCode == 0x06 ? PRIORITY_HIGH : PRIORITY_LOW;
message.waitCallback = waitCallback;
message.responseSemaphore = xSemaphoreCreateBinary();
// Adicionar a mensagem à fila
@ -174,6 +203,4 @@ void sendModbusCommand(uint8_t slaveAddress, uint8_t functionCode, uint16_t regi
vSemaphoreDelete(message.responseSemaphore);
}
#endif

View File

@ -111,8 +111,8 @@ class Motor {
AtualizarDadosControle(true);
}
ModbusGetResponse EnviarComandoModbus(byte endereco, byte funcao, byte registro, int valor) {
const int maxTentativas = 3;
ModbusGetResponse EnviarComandoModbus(byte endereco, byte funcao, byte registro, int valor, bool aguardarResposta = true) {
const int maxTentativas = 2;
int tentativas = 0;
bool sucesso = false;
ModbusGetResponse resposta;
@ -121,57 +121,64 @@ class Motor {
uint8_t response[256];
uint8_t length = 0;
sendModbusCommand(endereco, funcao, registro, valor, response, length);
sendModbusCommand(endereco, funcao, registro, valor, response, length, aguardarResposta);
// GET
if (funcao == 0x03) {
if (length >= 5) { // Verifica se a resposta tem pelo menos 5 bytes (endereco, codigo_comando, numero_registros, 2 bytes de dados, 2 bytes de CRC)
resposta._success = true;
resposta._address = response[0];
resposta._command_code = response[1];
resposta._num_registers = response[2];
if (aguardarResposta) {
// GET
if (funcao == 0x03) {
if (length >= 5) { // Verifica se a resposta tem pelo menos 5 bytes (endereco, codigo_comando, numero_registros, 2 bytes de dados, 2 bytes de CRC)
resposta._success = true;
resposta._address = response[0];
resposta._command_code = response[1];
resposta._num_registers = response[2];
if (resposta._num_registers == 2) { // Caso de 2 bytes (sem ponto flutuante)
uint16_t value = (response[3] << 8) | response[4]; // Combina os dois bytes
resposta._value = static_cast<double>(value); // Converte para double
sucesso = true;
} else if (resposta._num_registers == 4 && length >= 7) { // Caso de 4 bytes (com ponto flutuante)
uint16_t highBytes = (response[3] << 8) | response[4]; // Combina os dois primeiros bytes
uint16_t lowBytes = (response[5] << 8) | response[6]; // Combina os dois últimos bytes
if (resposta._num_registers == 2) { // Caso de 2 bytes (sem ponto flutuante)
uint16_t value = (response[3] << 8) | response[4]; // Combina os dois bytes
resposta._value = static_cast<double>(value); // Converte para double
sucesso = true;
} else if (resposta._num_registers == 4 && length >= 7) { // Caso de 4 bytes (com ponto flutuante)
uint16_t highBytes = (response[3] << 8) | response[4]; // Combina os dois primeiros bytes
uint16_t lowBytes = (response[5] << 8) | response[6]; // Combina os dois últimos bytes
// Converte para double
resposta._value = highBytes + (lowBytes / 10000.0); // Supondo que os valores após a vírgula são representados em 4 dígitos decimais
sucesso = true;
} else {
Serial.println("Numero de registros inesperado ou resposta incompleta.");
resposta._success = false;
}
} else {
Serial.println("Resposta incompleta.");
resposta._success = false;
}
// Converte para double
resposta._value = highBytes + (lowBytes / 10000.0); // Supondo que os valores após a vírgula são representados em 4 dígitos decimais
sucesso = true;
} else {
Serial.println("Numero de registros inesperado ou resposta incompleta.");
resposta._success = false;
}
} else {
Serial.println("Resposta incompleta.");
resposta._success = false;
}
}
// SET
else if (funcao == 0x06) {
if (length >= 8) {
resposta._success = true;
resposta._address = response[0];
resposta._command_code = response[1];
resposta._num_registers = 0;
resposta._value = (response[4] << 8) | response[5];
sucesso = true;
} else {
Serial.println("Erro ao enviar comando");
resposta._success = false;
}
}
tentativas++;
if (!sucesso) {
Serial.print("Tentativa ");
Serial.print(tentativas);
Serial.println(" falhou, tentando novamente...");
}
}
// SET
else if (funcao == 0x06) {
if (length >= 8) {
resposta._success = true;
resposta._address = response[0];
resposta._command_code = response[1];
resposta._num_registers = 0;
resposta._value = (response[4] << 8) | response[5];
sucesso = true;
} else {
Serial.println("Erro ao enviar comando");
resposta._success = false;
}
else {
sucesso = true;
resposta._success = sucesso;
}
tentativas++;
if (!sucesso) {
Serial.print("Tentativa ");
Serial.print(tentativas);
Serial.println(" falhou, tentando novamente...");
}
}
if (!sucesso) {
@ -179,20 +186,24 @@ class Motor {
}
return resposta;
}
}
bool ConfigurarDriver() {
bool sucesso = false;
ModbusGetResponse a = EnviarComandoModbus(_endereco, 0x06, 0x00B6, 1);
ModbusGetResponse b = EnviarComandoModbus(_endereco, 0x06, 0x0076, 0);
ModbusGetResponse c = EnviarComandoModbus(_endereco, 0x06, 0x0086, _numPolos);
ModbusGetResponse d = EnviarComandoModbus(_endereco, 0x06, 0x008A, _rampa);
ModbusGetResponse e = EnviarComandoModbus(_endereco, 0x06, 0x0092, _rpmMax);
sucesso = a._success && b._success && c._success && d._success && e._success;
return sucesso;
if (a._success) {
ModbusGetResponse b = EnviarComandoModbus(_endereco, 0x06, 0x0076, 0);
if (b._success) {
ModbusGetResponse c = EnviarComandoModbus(_endereco, 0x06, 0x0086, _numPolos);
if (c._success) {
ModbusGetResponse d = EnviarComandoModbus(_endereco, 0x06, 0x008A, _rampa);
if (d._success) {
ModbusGetResponse e = EnviarComandoModbus(_endereco, 0x06, 0x0092, _rpmMax);
return e._success;
}
}
}
}
return false;
}
void AtualizarDadosControle(bool reset = false) {
@ -207,7 +218,7 @@ class Motor {
_RPM_SP = 0;
}
if (_SentidoSP != Parado && _SentidoSP != _Sentido) {
/*if (_SentidoSP != Parado && _SentidoSP != _Sentido) {
int std = EnviarComandoModbus(_endereco, 0x06, 0x006D, _SentidoSP == Horario ? 1 : 0)._value;
_Sentido = !Ligado ? Parado : std == 0 ? Horario : Antihorario;
}
@ -219,7 +230,24 @@ class Motor {
}
if (_Ligado != Ligado) {
Ligado = EnviarComandoModbus(_endereco, 0x06, 0x0066, _Ligado ? 1 : 0)._value == 1;
}*/
/*if (_SentidoSP != Parado && _SentidoSP != _Sentido) {
EnviarComandoModbus(_endereco, 0x06, 0x006D, _SentidoSP == Horario ? 1 : 0, false);
}
if (_RPM_SP != RPM_SP) {
EnviarComandoModbus(_endereco, 0x06, 0x0056, _RPM_SP, false);
}
if (_Freio != Freio) {
EnviarComandoModbus(_endereco, 0x06, 0x006A, _Freio ? 1 : 0, false);
}
if (_Ligado != Ligado) {
EnviarComandoModbus(_endereco, 0x06, 0x0066, _Ligado ? 1 : 0, false);
}*/
EnviarComandoModbus(_endereco, 0x06, 0x006D, _SentidoSP == Horario ? 1 : 0, false);
EnviarComandoModbus(_endereco, 0x06, 0x0056, _RPM_SP, false);
EnviarComandoModbus(_endereco, 0x06, 0x006A, _Freio ? 1 : 0, false);
EnviarComandoModbus(_endereco, 0x06, 0x0066, _Ligado ? 1 : 0, false);
}
@ -247,7 +275,7 @@ class Motor {
if (intMillis >= _TaxaAmostragem) {
AferirTemperatura();
AferirDadosDriver();
//AferirDadosDriver();
EnviarDadosSerial(MontarProtocoloSensor(sBLD, _ID, MontarDadosProtocoloBLD(RPM, Temperatura, Tensao, CorrenteMax, Ligado, _Sentido, Freio, CodAlarme, TemperaturaDriver)));
firstMilis = millis();
@ -265,9 +293,9 @@ class Motor {
Freio = EnviarComandoModbus(_endereco, 0x03, 0x006A, 1)._value == 1;
_Sentido = Ligado ? EnviarComandoModbus(_endereco, 0x03, 0x006D, 1)._value == 1 ? Horario : Antihorario : Parado;
CodAlarme = EnviarComandoModbus(_endereco, 0x03, 0x0076, 1)._value;
Tensao = EnviarComandoModbus(_endereco, 0x03, 0x00C8, 1)._value;
CorrenteMax = EnviarComandoModbus(_endereco, 0x03, 0x0096, 1)._value;
TemperaturaDriver = EnviarComandoModbus(_endereco, 0x03, 0x00D2, 1)._value;
Tensao = EnviarComandoModbus(_endereco, 0x03, 0x00C8, 2)._value;
CorrenteMax = EnviarComandoModbus(_endereco, 0x03, 0x0096, 2)._value;
TemperaturaDriver = EnviarComandoModbus(_endereco, 0x03, 0x00D2, 2)._value;
}
void AferirTemperatura() {

BIN
Mapas/AgGPS_COLHEITA.zip Normal file

Binary file not shown.