ajustes controle servo Sen e req Atu

This commit is contained in:
Diego Freitas 2025-04-15 16:30:39 -03:00
parent d0d07c8544
commit af744f21c3
22 changed files with 38 additions and 126 deletions

Binary file not shown.

View File

@ -7,32 +7,16 @@
"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}",
"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}",
"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}"
},
{
"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}"
},
{
"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}"
},
{
"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}"
}
],
"DocumentGroupContainers": [
@ -42,34 +26,8 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 2,
"SelectedChildIndex": 0,
"Children": [
{
"$type": "Document",
"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,
@ -78,39 +36,27 @@
"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",
"ViewState": "AQIAAAAAAAAAAAAAAAAAALgEAAAhAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-15T10:44:14.963Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"DocumentIndex": 1,
"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",
"ViewState": "AQIAALcAAAAAAAAAAAAYwPQBAAAJAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-15T10:40:50.024Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 7,
"Title": "MKS057DModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\MKS057DModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\MKS057DModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\MKS057DModel.cs",
"RelativeToolTip": "AgroBase\\Models\\MKS057DModel.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAA4AAAA6AAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-14T22:08:11.705Z"
},
{
"$type": "Document",
"DocumentIndex": 6,
"DocumentIndex": 3,
"Title": "CANService.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Services\\CANService.cs",
"RelativeDocumentMoniker": "AgroBase\\Services\\CANService.cs",
@ -122,25 +68,13 @@
},
{
"$type": "Document",
"DocumentIndex": 5,
"Title": "MovimentacaoUnificadoModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Modules\\MovimentacaoUnificadoModel.cs",
"ViewState": "AQIAAAAAAAAAAAAAAAAAAIUBAAA9AAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-14T19:32:58.021Z"
},
{
"$type": "Document",
"DocumentIndex": 4,
"DocumentIndex": 2,
"Title": "OperacaoModel.cs",
"DocumentMoniker": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoModel.cs",
"RelativeDocumentMoniker": "AgroBase\\Models\\Operacoes\\OperacaoModel.cs",
"ToolTip": "C:\\ZendionINC\\agrobot_base\\AgroBase\\AgroBase\\Models\\Operacoes\\OperacaoModel.cs",
"RelativeToolTip": "AgroBase\\Models\\Operacoes\\OperacaoModel.cs",
"ViewState": "AQIAAA0AAAAAAAAAAAAuwCwBAAAIAAAA",
"ViewState": "AQIAAAIAAAAAAAAAAAAswC4MAAAFAAAA",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-04-14T16:46:36.149Z",
"EditorCaption": ""

View File

@ -140,6 +140,12 @@ namespace AgroBase.Forms.Movimentacao
Modulo.MovMotor.ConfigFreio.Incremental = rdbInc.Checked;
Modulo.MovMotor.ConfigFreio.AnguloInicial = (int)nudAngulo.Value;
var servo = Variaveis.OperacaoEmAndamento.DispSen.Dados.Servos.FirstOrDefault(x => x.ID.Contains(Modulo.Modulo_ID));
if (servo != null)
{
servo.Incremental = rdbInc.Checked;
}
}
}
}

View File

@ -425,9 +425,9 @@ namespace AgroBase.Models.Modules
}
}
public void RequisitarDadosModulo(F_Code dado)
public void RequisitarDadosModulo(F_Code dado, bool aguardaResposta = true)
{
Variaveis.OperacaoEmAndamento.DispAtu?.AdicionarMensagemFila(dado);
Variaveis.OperacaoEmAndamento.DispAtu?.AdicionarMensagemFila(dado, null, aguardaResposta);
}
public List<byte[]> ProtocoloConfiguracao(bool Conectar)
@ -626,7 +626,7 @@ namespace AgroBase.Models.Modules
{
if (RequisitarDados)
{
RequisitarDadosModulo(F_Code.ReqTx);
RequisitarDadosModulo(F_Code.ReqTx, false);
}
VerificaControleLeitura();

View File

@ -350,11 +350,6 @@ namespace AgroBase.Models.Modules
}
public string ProtocoloConfiguracao(bool Conectar)
{
return "";
}
public void EnviarComandoControle(Direcao DirecaoAtual)
{
var simulando = Variaveis.OperacaoEmAndamento.Simulando || Variaveis.OperacaoEmAndamento.Treinando;

View File

@ -571,7 +571,7 @@ namespace AgroBase.Models.Modules
});
Dados.Servos.ForEach(x =>
{
x._AnguloControle = 0;
x._AnguloControle = x.Incremental ? 0 : 180;
});
ReiniciarLeituras(Dados);
@ -1213,6 +1213,7 @@ namespace AgroBase.Models.Modules
public string Descricao { get; set; }
public S_Code Componente { get; set; }
public List<FuncoesPinout> Funcoes { get; set; }
public bool Incremental { get; set; }
public bool Controlar { get; set; }
public int _AnguloControle { get; set; }
@ -1248,21 +1249,13 @@ namespace AgroBase.Models.Modules
{
var pino = pinout.Pinos.FirstOrDefault(p => p.ComponenteID == ID);
// Descobrir se é incremental
bool incremental = true;
var freio = Variaveis.OperacaoEmAndamento.DispMvd.Dados.Modulos.FirstOrDefault(x => ID.Contains(x.Modulo_ID));
if (freio != null)
{
incremental = freio.MovMotor.ConfigFreio.Incremental;
}
List<byte> config = new List<byte>
{
(byte)ID_Num,
(byte)CanMessagePosicaoDados.Config1,
(byte)Componente,
(byte)(conectar ? 1 : 0),
(byte)(incremental ? 1 : 0),
(byte)(Incremental ? 1 : 0),
(byte)(pino?.Barramento ?? TiposBarramentos.CONTROLADOR),
(byte)(pino?.Pino ?? PinoutUtils.PINO_INVALIDO)
};

View File

@ -1823,10 +1823,13 @@ namespace AgroBase.Models
{
Variaveis.OperacaoEmAndamento.AtualizarDadosControle(true);
}
else if (Variaveis.OperacaoEmAndamento.Modo == ModoOperacao.Manual && !MKS057DCanService.Referenciando)
else if (Variaveis.OperacaoEmAndamento.Modo == ModoOperacao.Manual)
{
GeneralJoystick.EnviaComandoMotor(Keys.Escape, T_Code.Mov, true);
GeneralJoystick.EnviaComandoMotor(Keys.Escape, T_Code.Dir, true);
if (!MKS057DCanService.Referenciando)
{
GeneralJoystick.EnviaComandoMotor(Keys.Escape, T_Code.Dir, true);
}
foreach (var bico in Variaveis.OperacaoEmAndamento.DispAtu.Dados.BicosPulverizadores)
{
GeneralJoystick.EnviarComandoAtuador(S_Code.sBIC, false, bico.ID, true);
@ -2026,7 +2029,6 @@ namespace AgroBase.Models
atu = T_Code.Atu.ToString(),
sen = T_Code.Sen.ToString(),
pzm = T_Code.Pzm.ToString(),
wit = T_Code.Wit.ToString(),
a05 = T_Code.A05.ToString(),
snr = T_Code.Snr.ToString(),
cam_caminho = Variaveis.OperacaoEmAndamento.CameraCaminho.Nome,
@ -2941,7 +2943,6 @@ namespace AgroBase.Models
public string atu { get; set; }
public string sen { get; set; }
public string pzm { get; set; }
public string wit { get; set; }
public string snr { get; set; }
public string a05 { get; set; }
public string cam_caminho { get; set; }
@ -3288,23 +3289,6 @@ namespace AgroBase.Models
public DateTime UltimoComandoRespondido { get; set; }
}
public class ImuSensoriamentoLogModel
{
public DateTime Momento { get; set; }
public DateTime DataHora { get; set; }
public bool Inicializado { get; set; }
public double AccM { get; set; }
public double AsM { get; set; }
public double AngleX { get; set; }
public double AngleY { get; set; }
public double AngleZ { get; set; }
public double HM { get; set; }
public double Temperatura { get; set; }
public double Pressao { get; set; }
public double Altitude { get; set; }
public DateTime UltimoComandoRespondido { get; set; }
}
public class DirSensoriamentoLogModel
{
public DateTime Momento { get; set; }

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_95d095eb3279ac049b5a7920dc2e75dc {
#map_e4b836c188aa7a7f34596e791f687835 {
position: relative;
width: 100.0%;
height: 100.0%;
@ -39,14 +39,14 @@
<body>
<div class="folium-map" id="map_95d095eb3279ac049b5a7920dc2e75dc" ></div>
<div class="folium-map" id="map_e4b836c188aa7a7f34596e791f687835" ></div>
</body>
<script>
var map_95d095eb3279ac049b5a7920dc2e75dc = L.map(
"map_95d095eb3279ac049b5a7920dc2e75dc",
var map_e4b836c188aa7a7f34596e791f687835 = L.map(
"map_e4b836c188aa7a7f34596e791f687835",
{
center: [0.0, 0.0],
crs: L.CRS.EPSG3857,
@ -60,13 +60,13 @@
var tile_layer_4f15be748757bce19bb9f40c8cb7d7a5 = L.tileLayer(
var tile_layer_e22f90836b9c7fe4833b37ff793d8e6b = 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_4f15be748757bce19bb9f40c8cb7d7a5.addTo(map_95d095eb3279ac049b5a7920dc2e75dc);
tile_layer_e22f90836b9c7fe4833b37ff793d8e6b.addTo(map_e4b836c188aa7a7f34596e791f687835);
</script>
@ -87,7 +87,7 @@
}
trajeto_json_add({"features": []});
trajeto_json.addTo(map_95d095eb3279ac049b5a7920dc2e75dc);
trajeto_json.addTo(map_e4b836c188aa7a7f34596e791f687835);
function adicionarGeometria(novaGeometria) {
trajeto_json.addData(novaGeometria);
@ -145,7 +145,7 @@
var marcadorDinamico = L.marker([0, 0], {
icon: customIcon
}).addTo(map_95d095eb3279ac049b5a7920dc2e75dc);
}).addTo(map_e4b836c188aa7a7f34596e791f687835);
// 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_95d095eb3279ac049b5a7920dc2e75dc.setView(novaPosicao, map_95d095eb3279ac049b5a7920dc2e75dc.getZoom());
map_e4b836c188aa7a7f34596e791f687835.setView(novaPosicao, map_e4b836c188aa7a7f34596e791f687835.getZoom());
});
function calcularOrientacao(P1latitude, P1longitude, P2latitude, P2longitude) {

View File

@ -482,4 +482,4 @@ C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.csproj.GenerateR
C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.csproj.CoreCompileInputs.cache
C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.exe
C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.pdb
C:\ZendionInc\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.csproj.CopyComplete
C:\ZendionINC\agrobot_base\AgroBase\AgroBase\obj\Debug\AgroBase.csproj.Up2Date