ajustes no controle dos atuadores

This commit is contained in:
Diego Freitas 2025-04-15 10:16:27 -03:00
parent 99d0ff87a5
commit 38a3e54fe2
16 changed files with 194 additions and 106 deletions

Binary file not shown.

View File

@ -3,27 +3,35 @@
"WorkspaceRootPath": "C:\\ZendionINC\\agrobot_base\\AgroBase\\", "WorkspaceRootPath": "C:\\ZendionINC\\agrobot_base\\AgroBase\\",
"Documents": [ "Documents": [
{ {
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\models\\operacoes\\operacaomodel.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\\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\\atuadormodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\modules\\atuadormodel.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\\enums.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\enums.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|c:\\zendioninc\\agrobot_base\\agrobase\\agrobase\\models\\operacoes\\operacaomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\operacoes\\operacaomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\operacoes\\operacaomodel.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\\movimentacaounificadomodel.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\\movimentacaounificadomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\modules\\movimentacaounificadomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\modules\\movimentacaounificadomodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
}, },
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\models\\modules\\direcionalmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\modules\\direcionalmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|C:\\ZendionINC\\agrobot_base\\AgroBase\\agrobase\\services\\mks057dcanservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\services\\mks057dcanservice.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\\canservice.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\\canservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\services\\canservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\services\\canservice.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\\mks057dmodel.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\\mks057dmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\mks057dmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" "RelativeMoniker": "D:0:0:{C54B41C0-1D21-4E3E-949E-0F86BBC86A33}|AgroBase\\AgroBase.csproj|solutionrelative:agrobase\\models\\mks057dmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
} }
], ],
@ -34,11 +42,63 @@
"DocumentGroups": [ "DocumentGroups": [
{ {
"DockedWidth": 200, "DockedWidth": 200,
"SelectedChildIndex": 3, "SelectedChildIndex": 2,
"Children": [ "Children": [
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 5, "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": "AQIAABABAAAAAAAAAAAewCsBAAA2AAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-15T12:41:41.493Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "Enums.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Enums.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Enums.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Enums.cs",
"RelativeToolTip": "AgroBase\\Models\\Enums.cs",
"ViewState": "AQIAABsAAAAAAAAAAAAowAAAAAAAAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-15T11:09:35.01Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "SensoriamentoModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\SensoriamentoModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\SensoriamentoModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\SensoriamentoModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Modules\\SensoriamentoModel.cs",
"ViewState": "AQIAAAkAAAAAAAAAAAAAACoAAAA3AAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-15T10:44:14.963Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "AtuadorModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\AtuadorModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\AtuadorModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\AtuadorModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Modules\\AtuadorModel.cs",
"ViewState": "AQIAAKsBAAAAAAAAAIA0wEwDAAAuAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-15T10:40:50.024Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "MKS057DModel.cs", "Title": "MKS057DModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\MKS057DModel.cs", "DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\MKS057DModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\MKS057DModel.cs", "RelativeDocumentMoniker": "AgroBase\\Models\\MKS057DModel.cs",
@ -46,12 +106,11 @@
"RelativeToolTip": "AgroBase\\Models\\MKS057DModel.cs", "RelativeToolTip": "AgroBase\\Models\\MKS057DModel.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAA4AAAA6AAAA", "ViewState": "AQIAAAAAAAAAAAAAAAAAAA4AAAA6AAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-14T22:08:11.705Z", "WhenOpened": "2025-04-14T22:08:11.705Z"
"EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 4, "DocumentIndex": 6,
"Title": "CANService.cs", "Title": "CANService.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\CANService.cs", "DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\CANService.cs",
"RelativeDocumentMoniker": "AgroBase\\Services\\CANService.cs", "RelativeDocumentMoniker": "AgroBase\\Services\\CANService.cs",
@ -59,12 +118,11 @@
"RelativeToolTip": "AgroBase\\Services\\CANService.cs", "RelativeToolTip": "AgroBase\\Services\\CANService.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAADoAAAAlAAAA", "ViewState": "AQIAAAAAAAAAAAAAAAAAADoAAAAlAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-14T19:46:16.662Z", "WhenOpened": "2025-04-14T19:46:16.662Z"
"EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 1, "DocumentIndex": 5,
"Title": "MovimentacaoUnificadoModel.cs", "Title": "MovimentacaoUnificadoModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs", "DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs", "RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs",
@ -72,47 +130,20 @@
"RelativeToolTip": "AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs", "RelativeToolTip": "AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAIUBAAA9AAAA", "ViewState": "AQIAAAAAAAAAAAAAAAAAAIUBAAA9AAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-14T19:32:58.021Z", "WhenOpened": "2025-04-14T19:32:58.021Z"
"EditorCaption": ""
}, },
{ {
"$type": "Document", "$type": "Document",
"DocumentIndex": 0, "DocumentIndex": 4,
"Title": "OperacaoModel.cs", "Title": "OperacaoModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoModel.cs", "DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Operacoes\\OperacaoModel.cs", "RelativeDocumentMoniker": "AgroBase\\Models\\Operacoes\\OperacaoModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoModel.cs", "ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Operacoes\\OperacaoModel.cs", "RelativeToolTip": "AgroBase\\Models\\Operacoes\\OperacaoModel.cs",
"ViewState": "AQIAAAQBAAAAAAAAAAAywCwBAAAIAAAA", "ViewState": "AQIAAA0AAAAAAAAAAAAuwCwBAAAIAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-14T16:46:36.149Z", "WhenOpened": "2025-04-14T16:46:36.149Z",
"EditorCaption": "" "EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "MKS057DCanService.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\MKS057DCanService.cs",
"RelativeDocumentMoniker": "AgroBase\\Services\\MKS057DCanService.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\MKS057DCanService.cs",
"RelativeToolTip": "AgroBase\\Services\\MKS057DCanService.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAA0AAABRAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-14T16:42:11.447Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"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": "AQIAAGQBAAAAAAAAAIAwwJkBAAA/AAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-14T16:38:57.306Z",
"EditorCaption": ""
} }
] ]
} }

View File

@ -472,7 +472,7 @@ namespace AgroBase.Models.Modules
var config2 = new List<byte> var config2 = new List<byte>
{ {
Variaveis.ID_Num_sMOD, Variaveis.ID_Num_sMOD,
(byte)CanMessagePosicaoDados.Config1, (byte)CanMessagePosicaoDados.Config2,
(byte)S_Code.sMOD, (byte)S_Code.sMOD,
}; };
config2.AddRange(PinoutModel.PinoProtocolo(Pinout, Funcoes, false)); config2.AddRange(PinoutModel.PinoProtocolo(Pinout, Funcoes, false));
@ -1192,7 +1192,7 @@ namespace AgroBase.Models.Modules
return sensor?.Componente ?? bico?.Componente ?? bomba?.Componente ?? S_Code.sVZO; return sensor?.Componente ?? bico?.Componente ?? bomba?.Componente ?? S_Code.sVZO;
} }
private void DefinirOuCriar(int CompID_Num, S_Code componente, bool Iniciado, List<dynamic> Parametros) private void DefinirOuCriar(int CompID_Num, CanMessagePosicaoDados Posicao, S_Code componente, List<dynamic> Parametros)
{ {
var Disp = Variaveis.OperacaoEmAndamento.DispAtu; var Disp = Variaveis.OperacaoEmAndamento.DispAtu;
var item = Disp.Dados.DadosLeitura; var item = Disp.Dados.DadosLeitura;
@ -1208,15 +1208,26 @@ namespace AgroBase.Models.Modules
_sensor = new FirmwareSensorFluxo() _sensor = new FirmwareSensorFluxo()
{ {
ID = sensor.ID, ID = sensor.ID,
Iniciado = Iniciado, Iniciado = false,
Vazao = -1, Vazao = -1,
}; };
item.SensoresFluxo.Add(_sensor); item.SensoresFluxo.Add(_sensor);
} }
if (_sensor != null) if (_sensor != null)
{ {
_sensor.Iniciado = Iniciado; switch (Posicao)
{
case CanMessagePosicaoDados.Status:
{
_sensor.Iniciado = Parametros.Count > 0 ? Parametros[0] : false;
break;
}
case CanMessagePosicaoDados.Dados1:
{
_sensor.Vazao = Parametros.Count > 0 ? Parametros[0] : -1; _sensor.Vazao = Parametros.Count > 0 ? Parametros[0] : -1;
break;
}
}
} }
break; break;
} }
@ -1229,15 +1240,26 @@ namespace AgroBase.Models.Modules
_sensor = new FirmwareSensorPressao() _sensor = new FirmwareSensorPressao()
{ {
ID = sensor.ID, ID = sensor.ID,
Iniciado = Iniciado, Iniciado = false,
Pressao = -1, Pressao = -1,
}; };
item.SensoresPressao.Add(_sensor); item.SensoresPressao.Add(_sensor);
} }
if (_sensor != null) if (_sensor != null)
{ {
_sensor.Iniciado = Iniciado; switch (Posicao)
{
case CanMessagePosicaoDados.Status:
{
_sensor.Iniciado = Parametros.Count > 0 ? Parametros[0] : false;
break;
}
case CanMessagePosicaoDados.Dados1:
{
_sensor.Pressao = Parametros.Count > 0 ? Parametros[0] : -1; _sensor.Pressao = Parametros.Count > 0 ? Parametros[0] : -1;
break;
}
}
} }
break; break;
} }
@ -1250,15 +1272,26 @@ namespace AgroBase.Models.Modules
_sensor = new FirmwareSensorMassa() _sensor = new FirmwareSensorMassa()
{ {
ID = sensor.ID, ID = sensor.ID,
Iniciado = Iniciado, Iniciado = false,
Massa = -1, Massa = -1,
}; };
item.SensoresMassa.Add(_sensor); item.SensoresMassa.Add(_sensor);
} }
if (_sensor != null) if (_sensor != null)
{ {
_sensor.Iniciado = Iniciado; switch (Posicao)
{
case CanMessagePosicaoDados.Status:
{
_sensor.Iniciado = Parametros.Count > 0 ? Parametros[0] : false;
break;
}
case CanMessagePosicaoDados.Dados1:
{
_sensor.Massa = Parametros.Count > 0 ? Parametros[0] : -1; _sensor.Massa = Parametros.Count > 0 ? Parametros[0] : -1;
break;
}
}
} }
break; break;
} }
@ -1271,15 +1304,26 @@ namespace AgroBase.Models.Modules
_sensor = new FirmwareRele() _sensor = new FirmwareRele()
{ {
ID = sensor.ID, ID = sensor.ID,
Iniciado = Iniciado, Iniciado = false,
Leitura = Estado.Desligado, Leitura = Estado.Desligado,
}; };
item.BicosPulverizadores.Add(_sensor); item.BicosPulverizadores.Add(_sensor);
} }
if (_sensor != null) if (_sensor != null)
{ {
_sensor.Iniciado = Iniciado; switch (Posicao)
{
case CanMessagePosicaoDados.Status:
{
_sensor.Iniciado = Parametros.Count > 0 ? Parametros[0] : false;
break;
}
case CanMessagePosicaoDados.Dados1:
{
_sensor.Leitura = Parametros.Count > 0 ? Parametros[0] : Estado.Desligado; _sensor.Leitura = Parametros.Count > 0 ? Parametros[0] : Estado.Desligado;
break;
}
}
} }
break; break;
} }
@ -1292,7 +1336,7 @@ namespace AgroBase.Models.Modules
_sensor = new FirmwareBombaPressurizadora() _sensor = new FirmwareBombaPressurizadora()
{ {
ID = sensor.ID, ID = sensor.ID,
Iniciado = Iniciado, Iniciado = false,
Estado = Estado.Desligado, Estado = Estado.Desligado,
Potencia = -1, Potencia = -1,
Pressao = -1, Pressao = -1,
@ -1302,11 +1346,22 @@ namespace AgroBase.Models.Modules
} }
if (_sensor != null) if (_sensor != null)
{ {
_sensor.Iniciado = Iniciado; switch (Posicao)
{
case CanMessagePosicaoDados.Status:
{
_sensor.Iniciado = Parametros.Count > 0 ? Parametros[0] : false;
break;
}
case CanMessagePosicaoDados.Dados1:
{
_sensor.Estado = Parametros.Count > 0 ? Parametros[0] : Estado.Desligado; _sensor.Estado = Parametros.Count > 0 ? Parametros[0] : Estado.Desligado;
_sensor.Potencia = Parametros.Count > 1 ? Parametros[1] : -1; _sensor.Potencia = Parametros.Count > 1 ? Parametros[1] : -1;
_sensor.PressaoSP = Parametros.Count > 2 ? Parametros[2] : -1; _sensor.PressaoSP = Parametros.Count > 2 ? Parametros[2] : -1;
_sensor.Pressao = Parametros.Count > 3 ? Parametros[3] : -1; _sensor.Pressao = Parametros.Count > 3 ? Parametros[3] : -1;
break;
}
}
} }
break; break;
} }
@ -1324,7 +1379,7 @@ namespace AgroBase.Models.Modules
S_Code componente = DetectarComponenteDoID_Num(ID_Num); S_Code componente = DetectarComponenteDoID_Num(ID_Num);
Console.WriteLine($"[ATU] Componente={componente.ToString()}, ID_Num={ID_Num}, Data={FuncoesGlobais.ConverterComandoBytesParaTexto(data)}"); //Console.WriteLine($"[ATU] Componente={componente.ToString()}, ID_Num={ID_Num}, Data={FuncoesGlobais.ConverterComandoBytesParaTexto(data)}");
switch (posicao) switch (posicao)
{ {
@ -1336,7 +1391,7 @@ namespace AgroBase.Models.Modules
bool conectado = data[3] == 1; bool conectado = data[3] == 1;
int versao = data[4]; int versao = data[4];
Console.WriteLine($"[ATU] Resposta {ID_Num} recebida. Tipo={tipoModulo}, Conectado={conectado}, Versão={versao}"); //Console.WriteLine($"[ATU] Resposta {ID_Num} recebida. Tipo={tipoModulo}, Conectado={conectado}, Versão={versao}");
item.Conectado = conectado; item.Conectado = conectado;
item.Dispositivo = tipoModulo; item.Dispositivo = tipoModulo;
@ -1345,7 +1400,7 @@ namespace AgroBase.Models.Modules
else else
{ {
bool Iniciado = data[2] == 1; bool Iniciado = data[2] == 1;
DefinirOuCriar(ID_Num, componente, Iniciado, new List<dynamic>()); DefinirOuCriar(ID_Num, posicao, componente, new List<dynamic>() { Iniciado });
} }
break; break;
} }
@ -1356,25 +1411,25 @@ namespace AgroBase.Models.Modules
case S_Code.sBIC: case S_Code.sBIC:
{ {
Estado estado = (Estado)data[2]; Estado estado = (Estado)data[2];
DefinirOuCriar(ID_Num, componente, true, new List<dynamic>() { estado }); DefinirOuCriar(ID_Num, posicao, componente, new List<dynamic>() { estado });
break; break;
} }
case S_Code.sFLX: case S_Code.sFLX:
{ {
double vazao = ConverterByteParaDouble(data, 2); double vazao = ConverterByteParaDouble(data, 2);
DefinirOuCriar(ID_Num, componente, true, new List<dynamic>() { vazao }); DefinirOuCriar(ID_Num, posicao, componente, new List<dynamic>() { vazao });
break; break;
} }
case S_Code.sMAS: case S_Code.sMAS:
{ {
double massa = ConverterByteParaDouble(data, 2); double massa = ConverterByteParaDouble(data, 2);
DefinirOuCriar(ID_Num, componente, true, new List<dynamic>() { massa }); DefinirOuCriar(ID_Num, posicao, componente, new List<dynamic>() { massa });
break; break;
} }
case S_Code.sPRS: case S_Code.sPRS:
{ {
double pressao = ConverterByteParaDouble(data, 2); double pressao = ConverterByteParaDouble(data, 2);
DefinirOuCriar(ID_Num, componente, true, new List<dynamic>() { pressao }); DefinirOuCriar(ID_Num, posicao, componente, new List<dynamic>() { pressao });
break; break;
} }
case S_Code.sBMB: case S_Code.sBMB:
@ -1383,7 +1438,7 @@ namespace AgroBase.Models.Modules
int percentualPotencia = data[3]; int percentualPotencia = data[3];
int pressaoSp = data[4]; int pressaoSp = data[4];
int pressaoAtual = data[5]; int pressaoAtual = data[5];
DefinirOuCriar(ID_Num, componente, true, new List<dynamic>() { estado, percentualPotencia, pressaoSp, pressaoAtual }); DefinirOuCriar(ID_Num, posicao, componente, new List<dynamic>() { estado, percentualPotencia, pressaoSp, pressaoAtual });
break; break;
} }

View File

@ -262,7 +262,7 @@ namespace AgroBase.Models.Modules
{ {
Descricao = "Corrente Máx", Descricao = "Corrente Máx",
Valor = (3.2).ToString(), Valor = (3.2).ToString(),
QtdBytes = 1, QtdBytes = 2,
Escalar = true, Escalar = true,
Enviar = true Enviar = true
}, },
@ -294,8 +294,8 @@ namespace AgroBase.Models.Modules
{ {
Descricao = "Corrente Máx", Descricao = "Corrente Máx",
Valor = (3.2).ToString(), Valor = (3.2).ToString(),
QtdBytes = 1, QtdBytes = 2,
Escalar = false, Escalar = true,
Enviar = true Enviar = true
}, },
} }
@ -326,8 +326,8 @@ namespace AgroBase.Models.Modules
{ {
Descricao = "Corrente Máx", Descricao = "Corrente Máx",
Valor = (50).ToString(), Valor = (50).ToString(),
QtdBytes = 1, QtdBytes = 2,
Escalar = false, Escalar = true,
Enviar = true Enviar = true
}, },
} }
@ -358,8 +358,8 @@ namespace AgroBase.Models.Modules
{ {
Descricao = "Corrente Máx", Descricao = "Corrente Máx",
Valor = (100).ToString(), Valor = (100).ToString(),
QtdBytes = 1, QtdBytes = 2,
Escalar = false, Escalar = true,
Enviar = true Enviar = true
}, },
} }
@ -534,7 +534,7 @@ namespace AgroBase.Models.Modules
{ {
FuncoesPinout.ServoFreio, FuncoesPinout.ServoFreio,
}, },
_AnguloControle = 0, _AnguloControle = 180,
}, },
new SensorServoModel() new SensorServoModel()
{ {
@ -547,7 +547,7 @@ namespace AgroBase.Models.Modules
{ {
FuncoesPinout.ServoFreio, FuncoesPinout.ServoFreio,
}, },
_AnguloControle = 0, _AnguloControle = 180,
}, },
} }
}; };

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

View File

@ -165,8 +165,8 @@ class BombaPressurizadora {
break; break;
} }
case CanMessagePosicaoDados::Dados1: { case CanMessagePosicaoDados::Dados1: {
data.push_back(EstadoLeitura); data.push_back(static_cast<uint8_t>(EstadoLeitura));
data.push_back(PercentualPotenciaLeitura); data.push_back((int)PercentualPotenciaLeitura);
data.push_back((int)_PressaoSP); data.push_back((int)_PressaoSP);
data.push_back((int)sensorPressao->Pressao); data.push_back((int)sensorPressao->Pressao);
break; break;
@ -256,11 +256,11 @@ std::vector<uint8_t> BombaPressurizadora::ConfigurarBomba(std::vector<BombaPress
} }
void BombaPressurizadora::ComandarBomba(std::vector<BombaPressurizadora*>& lista, std::vector<uint8_t>& data, uint8_t& id) { void BombaPressurizadora::ComandarBomba(std::vector<BombaPressurizadora*>& lista, std::vector<uint8_t>& data, uint8_t& id) {
if (data.size() < 6) return; if (data.size() < 5) return;
Estado novoEstado = (Estado)data[3]; Estado novoEstado = (Estado)data[3];
int pressao = (int)data[4]; int pressao = (int)data[4];
for (auto* _bomba : lista) { for (auto* _bomba : lista) {
if (_bomba && _bomba->ID_Num == id) { if (_bomba->ID_Num == id) {
_bomba->_EstadoControle = novoEstado; _bomba->_EstadoControle = novoEstado;
_bomba->_PressaoSP = (double)pressao; _bomba->_PressaoSP = (double)pressao;
_bomba->AlterarStatusBomba(); _bomba->AlterarStatusBomba();

View File

@ -96,7 +96,7 @@ class Rele {
break; break;
} }
case CanMessagePosicaoDados::Dados1: { case CanMessagePosicaoDados::Dados1: {
data.push_back(_Status); data.push_back(static_cast<uint8_t>(_Status));
break; break;
} }
} }

View File

@ -38,7 +38,7 @@ class ServoFreio {
if (_pino.Definido()) { if (_pino.Definido()) {
_Servo.attach(_pino.num); _Servo.attach(_pino.num);
_Servo.write(Incremental ? 0 : 180);\ AtualizarAngulo(Incremental ? 0 : 180);
Iniciado = true; Iniciado = true;
@ -67,6 +67,8 @@ class ServoFreio {
void AtualizarAngulo(int novoAngulo) { void AtualizarAngulo(int novoAngulo) {
if (Iniciado) { if (Iniciado) {
PrintTela("Angulo de freio atualizado de " + String(_Angulo) + " para " + String(novoAngulo));
_Angulo = novoAngulo; _Angulo = novoAngulo;
_Servo.write(_Angulo); _Servo.write(_Angulo);
@ -141,7 +143,7 @@ void ServoFreio::ComandarServo(std::vector<ServoFreio*>& lista, std::vector<uint
if (data.size() < 4) return; if (data.size() < 4) return;
for (auto* _freio : lista) { for (auto* _freio : lista) {
if (_freio->ID_Num == id) { if (_freio->ID_Num == id) {
_freio->AtualizarAngulo(data[3]); _freio->AtualizarAngulo((int)data[3]);
return; return;
} }
} }

View File

@ -85,8 +85,8 @@ class Sinaleiro {
break; break;
} }
case CanMessagePosicaoDados::Dados1: { case CanMessagePosicaoDados::Dados1: {
data.push_back(_StatusLeitura); data.push_back(static_cast<uint8_t>(_StatusLeitura));
data.push_back(_Status); data.push_back(static_cast<uint8_t>(_Status));
break; break;
} }
} }