Merged in direcional (pull request #1)
implementacao firmware direcional v9
This commit is contained in:
commit
37d865168c
Binary file not shown.
Binary file not shown.
|
|
@ -574,8 +574,8 @@ namespace AgroBase.Models
|
|||
Valor = Sensor.Leituras[0],
|
||||
Maximo = Sensor.Leituras[0] > Sensor.LimiteMaximo,
|
||||
Minimo = Sensor.Leituras[0] < Sensor.LimiteMinimo,
|
||||
ParaMaximo = true,
|
||||
ParaMinimo = true
|
||||
ParaMaximo = false,
|
||||
ParaMinimo = false
|
||||
};
|
||||
|
||||
bool Adicionado = false;
|
||||
|
|
|
|||
|
|
@ -54,12 +54,19 @@ namespace AgroBase.Services
|
|||
|
||||
public static void MarcarMensagemRecebida(int Id)
|
||||
{
|
||||
var Mensagem = MensagensFila.FirstOrDefault(x => x.Id == Id);
|
||||
if (Mensagem != null)
|
||||
try
|
||||
{
|
||||
Mensagem.Enviado = true;
|
||||
Mensagem.Recebido = true;
|
||||
Mensagem.RecebidoEm = DateTime.Now;
|
||||
var Mensagem = MensagensFila.FirstOrDefault(x => x.Id == Id);
|
||||
if (Mensagem != null)
|
||||
{
|
||||
Mensagem.Enviado = true;
|
||||
Mensagem.Recebido = true;
|
||||
Mensagem.RecebidoEm = DateTime.Now;
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
MarcarMensagemRecebida(Id);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
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
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
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[{"Momento":"2024-05-14T14:31:16.5514643-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":40.666666666666686,"BateriaConsumida":0.0,"DistanciaPercorrida":[0.0],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":0.0,"AnguloCarroBussola":0.0,"AnguloCarro":0.0,"SonarFrontal":null},{"Momento":"2024-05-14T14:31:21.5474662-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":38.000000000000021,"BateriaConsumida":0.0,"DistanciaPercorrida":[44.417076135074289],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":26.792489877337857,"AnguloCarroBussola":0.0,"AnguloCarro":26.792489877337857,"SonarFrontal":null},{"Momento":"2024-05-14T14:31:26.551465-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":40.333333333333364,"BateriaConsumida":0.0,"DistanciaPercorrida":[48.086473312388812],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":0.0,"AnguloCarroBussola":0.0,"AnguloCarro":0.0,"SonarFrontal":null},{"Momento":"2024-05-14T14:31:29.373471-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":40.666666666666686,"BateriaConsumida":0.0,"DistanciaPercorrida":[59.196241284562973],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":339.76236648495751,"AnguloCarroBussola":0.0,"AnguloCarro":339.76236648495751,"SonarFrontal":null}]
|
||||
|
|
@ -0,0 +1 @@
|
|||
[{"Latitude":-22.213150166666665,"Longitude":-47.381637166666664,"DataHora":"2024-05-14T14:31:03","Altitude":0.0,"Velocidade":0.0,"NumeroSatelites":0,"PrecisaoHorizontal":99.99,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213150166666665,"Longitude":-47.381637166666664,"DataHora":"2024-05-14T14:31:04","Altitude":0.0,"Velocidade":0.0,"NumeroSatelites":0,"PrecisaoHorizontal":99.99,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213150166666665,"Longitude":-47.381637166666664,"DataHora":"2024-05-14T14:31:05","Altitude":0.0,"Velocidade":0.0,"NumeroSatelites":0,"PrecisaoHorizontal":99.99,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213150166666665,"Longitude":-47.381637166666664,"DataHora":"2024-05-14T14:31:06","Altitude":0.0,"Velocidade":0.0,"NumeroSatelites":0,"PrecisaoHorizontal":99.99,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213499333333335,"Longitude":-47.381491333333337,"DataHora":"2024-05-14T14:31:07","Altitude":634.1,"Velocidade":1.0167480000000002,"NumeroSatelites":4,"PrecisaoHorizontal":1.83,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213499333333335,"Longitude":-47.381491333333337,"DataHora":"2024-05-14T14:31:08","Altitude":0.0,"Velocidade":0.0,"NumeroSatelites":0,"PrecisaoHorizontal":99.99,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213477333333334,"Longitude":-47.381479333333331,"DataHora":"2024-05-14T14:31:09","Altitude":633.8,"Velocidade":3.548432,"NumeroSatelites":4,"PrecisaoHorizontal":2.64,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213466166666667,"Longitude":-47.381445833333331,"DataHora":"2024-05-14T14:31:10","Altitude":633.6,"Velocidade":6.798692,"NumeroSatelites":3,"PrecisaoHorizontal":5.33,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213466166666667,"Longitude":-47.381445833333331,"DataHora":"2024-05-14T14:31:12","Altitude":0.0,"Velocidade":0.0,"NumeroSatelites":0,"PrecisaoHorizontal":99.99,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213466166666667,"Longitude":-47.381445833333331,"DataHora":"2024-05-14T14:31:13","Altitude":0.0,"Velocidade":0.0,"NumeroSatelites":0,"PrecisaoHorizontal":99.99,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213466166666667,"Longitude":-47.381445833333331,"DataHora":"2024-05-14T14:31:14","Altitude":0.0,"Velocidade":0.0,"NumeroSatelites":0,"PrecisaoHorizontal":99.99,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.213455166666666,"Longitude":-47.3813825,"DataHora":"2024-05-14T14:31:16","Altitude":633.3,"Velocidade":4.5170280000000007,"NumeroSatelites":3,"PrecisaoHorizontal":2.93,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0},{"Latitude":-22.2134175,"Longitude":-47.3813975,"DataHora":"2024-05-14T14:31:17","Altitude":633.1,"Velocidade":4.183668,"NumeroSatelites":4,"PrecisaoHorizontal":1.97,"Orientacao":0.0,"idxRua":-1,"DirecaoTrecho":0}]
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
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
|
|
@ -0,0 +1 @@
|
|||
[]
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -0,0 +1 @@
|
|||
[{"Momento":"2024-05-15T10:11:07.1130095-03:00","VelocidadeMedia":2.1575,"PorcentagemBateria":44.666666666666664,"BateriaConsumida":0.0,"DistanciaPercorrida":[0.963038400821167],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":313.83523287124854,"AnguloCarroBussola":180.9,"AnguloCarro":180.9,"SonarFrontal":null},{"Momento":"2024-05-15T10:11:12.1242647-03:00","VelocidadeMedia":3.275,"PorcentagemBateria":44.666666666666664,"BateriaConsumida":0.0,"DistanciaPercorrida":[2.98028488320971],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":327.73919233859016,"AnguloCarroBussola":180.9,"AnguloCarro":180.9,"SonarFrontal":null},{"Momento":"2024-05-15T10:11:17.1098177-03:00","VelocidadeMedia":0.68499999999999994,"PorcentagemBateria":44.666666666666664,"BateriaConsumida":0.0,"DistanciaPercorrida":[6.7887456315332546],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":359.15809931264033,"AnguloCarroBussola":225.0,"AnguloCarro":225.0,"SonarFrontal":null},{"Momento":"2024-05-15T10:11:22.1295084-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":44.666666666666664,"BateriaConsumida":0.0,"DistanciaPercorrida":[7.3131227937591419],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":70.198340852408933,"AnguloCarroBussola":225.0,"AnguloCarro":225.0,"SonarFrontal":null},{"Momento":"2024-05-15T10:11:27.1162514-03:00","VelocidadeMedia":0.5525,"PorcentagemBateria":44.500000000000028,"BateriaConsumida":0.0,"DistanciaPercorrida":[7.6614960836171493],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":155.1609399717413,"AnguloCarroBussola":225.0,"AnguloCarro":225.0,"SonarFrontal":null},{"Momento":"2024-05-15T10:11:32.1169405-03:00","VelocidadeMedia":0.2375,"PorcentagemBateria":43.000000000000028,"BateriaConsumida":0.0,"DistanciaPercorrida":[11.392174184706931],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":246.44973069290097,"AnguloCarroBussola":225.0,"AnguloCarro":225.0,"SonarFrontal":null},{"Momento":"2024-05-15T10:11:37.1063255-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":44.166666666666707,"BateriaConsumida":0.0,"DistanciaPercorrida":[12.758542054929476],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":257.80956171546052,"AnguloCarroBussola":225.0,"AnguloCarro":225.0,"SonarFrontal":null},{"Momento":"2024-05-15T10:11:42.1793396-03:00","VelocidadeMedia":0.052499999999999991,"PorcentagemBateria":44.000000000000007,"BateriaConsumida":0.0,"DistanciaPercorrida":[14.472118899110127],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":73.78485087846434,"AnguloCarroBussola":225.0,"AnguloCarro":225.0,"SonarFrontal":null},{"Momento":"2024-05-15T10:11:47.1317457-03:00","VelocidadeMedia":0.6875,"PorcentagemBateria":44.500000000000028,"BateriaConsumida":0.0,"DistanciaPercorrida":[15.410928497384353],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":60.23683523996209,"AnguloCarroBussola":225.0,"AnguloCarro":225.0,"SonarFrontal":null},{"Momento":"2024-05-15T10:11:52.1154138-03:00","VelocidadeMedia":0.515,"PorcentagemBateria":44.333333333333336,"BateriaConsumida":0.0,"DistanciaPercorrida":[16.508644053577292],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":200.32028971051378,"AnguloCarroBussola":225.0,"AnguloCarro":225.0,"SonarFrontal":null},{"Momento":"2024-05-15T10:11:57.1094736-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":44.333333333333336,"BateriaConsumida":0.0,"DistanciaPercorrida":[18.289986129955171],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":0.0,"AnguloCarroBussola":225.0,"AnguloCarro":225.0,"SonarFrontal":null},{"Momento":"2024-05-15T10:12:00.8741811-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":44.333333333333336,"BateriaConsumida":0.0,"DistanciaPercorrida":[18.428773556411564],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":269.99999980315897,"AnguloCarroBussola":225.0,"AnguloCarro":225.0,"SonarFrontal":null}],{"Momento":"2024-05-15T10:12:10.9568297-03:00","VelocidadeMedia":0.0,"PorcentagemBateria":44.500000000000028,"BateriaConsumida":0.0,"DistanciaPercorrida":[18.428773556411564],"DistanciaEsquerda":0.0,"DistanciaDireita":0.0,"AnguloCarroGPS":269.99999980315897,"AnguloCarroBussola":225.0,"AnguloCarro":225.0,"SonarFrontal":null}]
|
||||
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
|
|
@ -1 +1 @@
|
|||
{"ExpansorGPIO":false,"EnderecoExpansor":"","Pinos":[{"Controlador":1,"Barramento":0,"Pino":99,"Descricao":"1","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":98,"Descricao":"2","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":36,"Descricao":"3","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":39,"Descricao":"4","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":34,"Descricao":"5","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":35,"Descricao":"6","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":32,"Descricao":"7","Funcao":12,"Habilitado":true,"ComponenteID":"TMVET"},{"Controlador":1,"Barramento":0,"Pino":33,"Descricao":"8","Funcao":12,"Habilitado":true,"ComponenteID":"TMVEF"},{"Controlador":1,"Barramento":0,"Pino":25,"Descricao":"9","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDT"},{"Controlador":1,"Barramento":0,"Pino":26,"Descricao":"10","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDF"},{"Controlador":1,"Barramento":0,"Pino":27,"Descricao":"11","Funcao":38,"Habilitado":true,"ComponenteID":"LEDMN"},{"Controlador":1,"Barramento":0,"Pino":14,"Descricao":"12","Funcao":38,"Habilitado":true,"ComponenteID":"LEDAT"},{"Controlador":1,"Barramento":0,"Pino":12,"Descricao":"13","Funcao":38,"Habilitado":true,"ComponenteID":"LEDOP"},{"Controlador":1,"Barramento":0,"Pino":97,"Descricao":"14","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":13,"Descricao":"15","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":9,"Descricao":"16","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":10,"Descricao":"17","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":11,"Descricao":"18","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":96,"Descricao":"19","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":6,"Descricao":"26","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":7,"Descricao":"27","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":8,"Descricao":"28","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":15,"Descricao":"29","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":2,"Descricao":"30","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":0,"Descricao":"31","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":4,"Descricao":"32","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":16,"Descricao":"33","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":17,"Descricao":"34","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":5,"Descricao":"35","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":18,"Descricao":"36","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":19,"Descricao":"37","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":95,"Descricao":"38","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":21,"Descricao":"39","Funcao":33,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":3,"Descricao":"40","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":1,"Descricao":"41","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":22,"Descricao":"42","Funcao":34,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":23,"Descricao":"43","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":94,"Descricao":"44","Funcao":0,"Habilitado":false,"ComponenteID":""}]}
|
||||
{"ExpansorGPIO":false,"EnderecoExpansor":"","Pinos":[{"Controlador":1,"Barramento":0,"Pino":99,"Descricao":"1","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":98,"Descricao":"2","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":36,"Descricao":"3","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":39,"Descricao":"4","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":34,"Descricao":"5","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":35,"Descricao":"6","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":32,"Descricao":"7","Funcao":12,"Habilitado":true,"ComponenteID":"TMVET"},{"Controlador":1,"Barramento":0,"Pino":33,"Descricao":"8","Funcao":12,"Habilitado":true,"ComponenteID":"TMVEF"},{"Controlador":1,"Barramento":0,"Pino":25,"Descricao":"9","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDT"},{"Controlador":1,"Barramento":0,"Pino":26,"Descricao":"10","Funcao":12,"Habilitado":true,"ComponenteID":"TMVDF"},{"Controlador":1,"Barramento":0,"Pino":27,"Descricao":"11","Funcao":38,"Habilitado":true,"ComponenteID":"LEDOP"},{"Controlador":1,"Barramento":0,"Pino":14,"Descricao":"12","Funcao":38,"Habilitado":true,"ComponenteID":"LEDAT"},{"Controlador":1,"Barramento":0,"Pino":12,"Descricao":"13","Funcao":38,"Habilitado":true,"ComponenteID":"LEDMN"},{"Controlador":1,"Barramento":0,"Pino":97,"Descricao":"14","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":13,"Descricao":"15","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":9,"Descricao":"16","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":10,"Descricao":"17","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":11,"Descricao":"18","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":96,"Descricao":"19","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":6,"Descricao":"26","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":7,"Descricao":"27","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":8,"Descricao":"28","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":15,"Descricao":"29","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":2,"Descricao":"30","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":0,"Descricao":"31","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":4,"Descricao":"32","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":16,"Descricao":"33","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":17,"Descricao":"34","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":5,"Descricao":"35","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":18,"Descricao":"36","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":19,"Descricao":"37","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":95,"Descricao":"38","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":21,"Descricao":"39","Funcao":33,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":3,"Descricao":"40","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":1,"Descricao":"41","Funcao":0,"Habilitado":false,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":22,"Descricao":"42","Funcao":34,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":23,"Descricao":"43","Funcao":0,"Habilitado":true,"ComponenteID":""},{"Controlador":1,"Barramento":0,"Pino":94,"Descricao":"44","Funcao":0,"Habilitado":false,"ComponenteID":""}]}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
|
|
@ -25,7 +25,7 @@
|
|||
<meta name="viewport" content="width=device-width,
|
||||
initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
<style>
|
||||
#map_f8872872d362397e346888da36799a6a {
|
||||
#map_235fa83d4b51d53b0df06fc71795e861 {
|
||||
position: relative;
|
||||
width: 100.0%;
|
||||
height: 100.0%;
|
||||
|
|
@ -39,14 +39,14 @@
|
|||
<body>
|
||||
|
||||
|
||||
<div class="folium-map" id="map_f8872872d362397e346888da36799a6a" ></div>
|
||||
<div class="folium-map" id="map_235fa83d4b51d53b0df06fc71795e861" ></div>
|
||||
|
||||
</body>
|
||||
<script>
|
||||
|
||||
|
||||
var map_f8872872d362397e346888da36799a6a = L.map(
|
||||
"map_f8872872d362397e346888da36799a6a",
|
||||
var map_235fa83d4b51d53b0df06fc71795e861 = L.map(
|
||||
"map_235fa83d4b51d53b0df06fc71795e861",
|
||||
{
|
||||
center: [0.0, 0.0],
|
||||
crs: L.CRS.EPSG3857,
|
||||
|
|
@ -60,13 +60,13 @@
|
|||
|
||||
|
||||
|
||||
var tile_layer_c686e407ed5ff252b28559436200f4ac = L.tileLayer(
|
||||
var tile_layer_248fb57e22960ed22012e87b50b24fca = 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_c686e407ed5ff252b28559436200f4ac.addTo(map_f8872872d362397e346888da36799a6a);
|
||||
tile_layer_248fb57e22960ed22012e87b50b24fca.addTo(map_235fa83d4b51d53b0df06fc71795e861);
|
||||
|
||||
</script>
|
||||
|
||||
|
|
@ -87,7 +87,7 @@
|
|||
}
|
||||
trajeto_json_add({"features": []});
|
||||
|
||||
trajeto_json.addTo(map_f8872872d362397e346888da36799a6a);
|
||||
trajeto_json.addTo(map_235fa83d4b51d53b0df06fc71795e861);
|
||||
|
||||
function adicionarGeometria(novaGeometria) {
|
||||
trajeto_json.addData(novaGeometria);
|
||||
|
|
@ -145,7 +145,7 @@
|
|||
|
||||
var marcadorDinamico = L.marker([0, 0], {
|
||||
icon: customIcon
|
||||
}).addTo(map_f8872872d362397e346888da36799a6a);
|
||||
}).addTo(map_235fa83d4b51d53b0df06fc71795e861);
|
||||
|
||||
// Conectar ao broker MQTT
|
||||
const client = mqtt.connect('ws://localhost:9001'); // Use wss para conexão segura
|
||||
|
|
@ -184,7 +184,7 @@
|
|||
marcadorDinamico.setRotationAngle(angulo);
|
||||
|
||||
adicionarCoordenada("Tj", [novaLongitude, novaLatitude]);
|
||||
map_f8872872d362397e346888da36799a6a.setView(novaPosicao, map_f8872872d362397e346888da36799a6a.getZoom());
|
||||
map_235fa83d4b51d53b0df06fc71795e861.setView(novaPosicao, map_235fa83d4b51d53b0df06fc71795e861.getZoom());
|
||||
});
|
||||
|
||||
function calcularOrientacao(P1latitude, P1longitude, P2latitude, P2longitude) {
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
|
|
@ -17,7 +17,7 @@ bool Conectado = false;
|
|||
|
||||
int _TaxaAmostragem;
|
||||
int FrequenciaMaxima = 10000;
|
||||
double _Margem = 2.0;
|
||||
double _Margem = 1.0;
|
||||
|
||||
int dutyCycle = 512;
|
||||
double _frequencia = 4000;
|
||||
|
|
@ -76,7 +76,7 @@ class Motor {
|
|||
_pinoDIR.Conectar(false);
|
||||
_pinoEncoder.Conectar();
|
||||
|
||||
encoderKalman = new SimpleKalmanFilter(1, 2, 0.01);
|
||||
encoderKalman = new SimpleKalmanFilter(0.5, 2, 0.01);
|
||||
|
||||
xTaskCreatePinnedToCore(&Motor::RampaTaskWrapper, "RampaTask", 5000, this, 20 - _canal, &RampaTaskHandle, tskNO_AFFINITY);
|
||||
|
||||
|
|
@ -183,7 +183,7 @@ class Motor {
|
|||
}
|
||||
|
||||
double _ultimaLeituraValida = 0; // Armazena a última leitura válida do ângulo
|
||||
double _limiarPico = 5; // Define o limiar máximo aceitável para a mudança de ângulo entre leituras
|
||||
double _limiarPico = 3; // Define o limiar máximo aceitável para a mudança de ângulo entre leituras
|
||||
int _vezesPico = 0;
|
||||
|
||||
void AferirPosicao() {
|
||||
|
|
|
|||
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
|
||||
]
|
||||
}
|
||||
|
|
@ -0,0 +1,406 @@
|
|||
// Dispositivo: Direcional
|
||||
// Versão Firmware: 9
|
||||
// Ultima atualização: 14/05/2024
|
||||
// Atualização: Inclusão do potenciometro para aferição do angulo
|
||||
|
||||
#include "C:\ZendionInc\agrobot_base\Firmware\Modulos\SerialService.h"
|
||||
#include "C:\ZendionInc\agrobot_base\Firmware\Modulos\Utils.h"
|
||||
#include "C:\ZendionInc\agrobot_base\Firmware\Modulos\Pinout.h"
|
||||
#include <SimpleKalmanFilter.h>
|
||||
#define D_Code Dir
|
||||
#define VERSION 9
|
||||
|
||||
#define _pinoLED RGB_BUILTIN
|
||||
|
||||
long _baudRate = 115200;
|
||||
|
||||
bool Conectado = false;
|
||||
|
||||
int _TaxaAmostragem;
|
||||
int FrequenciaMaxima = 10000;
|
||||
double _Margem = 0.5;
|
||||
double _AgMin = 380;
|
||||
double _AgMax = 3430;
|
||||
int RefMin = -90;
|
||||
int RefMax = 90;
|
||||
|
||||
int dutyCycle = 512;
|
||||
double _frequencia = 4000;
|
||||
|
||||
PinoModel _pinoGeral;
|
||||
|
||||
class Motor {
|
||||
public:
|
||||
// Construtor
|
||||
Motor(String desc) {
|
||||
_ID = desc;
|
||||
}
|
||||
|
||||
// Definições
|
||||
String _ID;
|
||||
int _canal;
|
||||
PinoModel _pinoENA;
|
||||
PinoModel _pinoDIR;
|
||||
PinoModel _pinoPUL;
|
||||
PinoModel _pinoEncoder;
|
||||
|
||||
SimpleKalmanFilter* encoderKalman;
|
||||
|
||||
bool Iniciado = false;
|
||||
bool Testando = false;
|
||||
bool Referenciando = false;
|
||||
|
||||
// Consumo
|
||||
double _Angulo;
|
||||
Sentido _Sentido;
|
||||
|
||||
// Entrada de dados
|
||||
double _Angulo_SP;
|
||||
int _Angulo_Offset = 0;
|
||||
Sentido _Sentido_SP = Parado;
|
||||
bool _MotorLigado = false;
|
||||
bool _Estabilizar = true;
|
||||
bool _Referenciar = true;
|
||||
|
||||
bool Referenciado = false;
|
||||
|
||||
|
||||
void Inicializar() {
|
||||
if (Iniciado) {
|
||||
EnviarDadosSerial(_ID + " ja inicializado");
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (_pinoPUL.Definido()) {
|
||||
AtualizarPWM();
|
||||
}
|
||||
_pinoENA.Conectar(true);
|
||||
_pinoDIR.Conectar(false);
|
||||
_pinoEncoder.Conectar();
|
||||
|
||||
encoderKalman = new SimpleKalmanFilter(1, 2, 0.01);
|
||||
|
||||
xTaskCreatePinnedToCore(&Motor::RampaTaskWrapper, "RampaTask", 5000, this, 20 - _canal, &RampaTaskHandle, tskNO_AFFINITY);
|
||||
|
||||
ResetRef(_Referenciar);
|
||||
|
||||
EnviarDadosSerial(_ID + " Iniciado");
|
||||
|
||||
Iniciado = true;
|
||||
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0"));
|
||||
}
|
||||
|
||||
void ResetRef(bool _Ref) {
|
||||
_Sentido_SP = Parado;
|
||||
_Sentido = Parado;
|
||||
Referenciado = !_Ref;
|
||||
Referenciando = _Ref;
|
||||
_MotorLigado = _Ref;
|
||||
}
|
||||
|
||||
void AtualizarPWM() {
|
||||
ledcSetup(_canal, _frequencia, 10);
|
||||
ledcAttachPin(_pinoPUL.num, _canal);
|
||||
ledcWrite(_canal, dutyCycle);
|
||||
}
|
||||
|
||||
void Desligar() {
|
||||
if (!Iniciado) {
|
||||
EnviarDadosSerial(_ID + " nao esta inicializado");
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0"));
|
||||
return;
|
||||
}
|
||||
|
||||
// Parar a execução das tarefas
|
||||
vTaskDelete(RampaTaskHandle);
|
||||
|
||||
delete encoderKalman;
|
||||
|
||||
// Redefinir as configurações para os valores iniciais
|
||||
_pinoENA.Desconectar();
|
||||
_pinoDIR.Desconectar();
|
||||
_pinoPUL.Desconectar();
|
||||
_pinoEncoder.Desconectar();
|
||||
|
||||
|
||||
EnviarDadosSerial(_ID + " Desligado");
|
||||
|
||||
Iniciado = false;
|
||||
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0"));
|
||||
}
|
||||
|
||||
void Testar() {
|
||||
Testando = true;
|
||||
|
||||
Testando = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
TaskHandle_t RampaTaskHandle = NULL;
|
||||
static void RampaTaskWrapper(void *pvParameters) {
|
||||
Motor* motor = static_cast<Motor*>(pvParameters);
|
||||
motor->RampaTask();
|
||||
}
|
||||
|
||||
void RampaTask() {
|
||||
unsigned long previousMillisRampa = millis();
|
||||
|
||||
while (true) { // Loop infinito mais claro
|
||||
// Verifica a conexão antes de prosseguir
|
||||
if (!Conectado) {
|
||||
// Espera por 1 segundo para reduzir o uso da CPU se não estiver conectado
|
||||
vTaskDelay(1000 / portTICK_PERIOD_MS);
|
||||
continue; // Pula para a próxima iteração do loop
|
||||
}
|
||||
|
||||
// Executa as funções de controle e monitoramento do motor
|
||||
AferirPosicao();
|
||||
if (Referenciando) {
|
||||
ReferenciarMotor();
|
||||
} else {
|
||||
VerificarAnguloSP();
|
||||
}
|
||||
|
||||
Atualizar();
|
||||
|
||||
// Envia dados via serial em intervalos definidos por _TaxaAmostragem
|
||||
if (millis() - previousMillisRampa >= _TaxaAmostragem) {
|
||||
previousMillisRampa = millis(); // Atualiza o tempo para o próximo envio
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sENC, _ID, MontarDadosProtocoloEncoderAbsoluto(_Sentido, _Angulo, Referenciando, Referenciado)));
|
||||
}
|
||||
|
||||
// Libera a CPU para outras tarefas por um curto período
|
||||
vTaskDelay(1 / portTICK_PERIOD_MS); // Torna o delay mais explícito e ajustado ao tick do sistema
|
||||
}
|
||||
}
|
||||
|
||||
void Atualizar() {
|
||||
_pinoENA.set(!_MotorLigado);
|
||||
_pinoDIR.set(_Sentido_SP != Antihorario);
|
||||
}
|
||||
|
||||
void AferirPosicao() {
|
||||
if (_pinoEncoder.Definido()) {
|
||||
int leitura = _pinoEncoder.get();
|
||||
float leituraNormalizada = encoderKalman->updateEstimate(leitura);
|
||||
double _angulo = fmap(leituraNormalizada, _AgMin, _AgMax, RefMin, RefMax);
|
||||
|
||||
double angulo_com_offset = _angulo - _Angulo_Offset;
|
||||
|
||||
// Normaliza o ângulo para o intervalo de -90 a 90 graus
|
||||
while (angulo_com_offset > 90) angulo_com_offset -= 180;
|
||||
while (angulo_com_offset < -90) angulo_com_offset += 180;
|
||||
|
||||
_Angulo = angulo_com_offset;
|
||||
|
||||
DefinirSentidoDeGiro();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
double _anguloAnterior = 0;
|
||||
int leituras = 0;
|
||||
void DefinirSentidoDeGiro() {
|
||||
double _anguloAtual = _Angulo;
|
||||
|
||||
if (leituras > 100) {
|
||||
if (_MotorLigado) {
|
||||
if (_anguloAtual > _anguloAnterior) {
|
||||
_Sentido = Horario;
|
||||
}
|
||||
else if (_anguloAtual < _anguloAnterior) {
|
||||
_Sentido = Antihorario;
|
||||
}
|
||||
}
|
||||
else {
|
||||
_Sentido = Parado;
|
||||
}
|
||||
|
||||
_anguloAnterior = _anguloAtual;
|
||||
|
||||
leituras = 0;
|
||||
}
|
||||
leituras++;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
unsigned long previousMillisCorrecao = millis();
|
||||
void VerificarAnguloSP() {
|
||||
bool ModoSP = (_Angulo_SP > -1);
|
||||
if (_MotorLigado) {
|
||||
double AnguloComparar = ModoSP ? _Angulo_SP : RefMax;
|
||||
if (_Sentido_SP == Horario && _Angulo >= AnguloComparar) {
|
||||
_MotorLigado = false;
|
||||
}
|
||||
else if (_Sentido_SP == Antihorario && _Angulo <= (AnguloComparar * -1)) {
|
||||
_MotorLigado = false;
|
||||
}
|
||||
}
|
||||
else if (ModoSP) {
|
||||
if (millis() - previousMillisCorrecao >= 1500) {
|
||||
previousMillisCorrecao = millis();
|
||||
|
||||
bool NoRangeZero = (_Angulo >= -_Margem && _Angulo <= _Margem);
|
||||
bool NoRangeSP = (_Angulo >= (_Angulo_SP - _Margem) && _Angulo <= (_Angulo_SP + _Margem));
|
||||
if (_Angulo_SP == 0 && !NoRangeZero && _Estabilizar) {
|
||||
_Sentido_SP = _Angulo > 0 ? Antihorario : Horario;
|
||||
_MotorLigado = true;
|
||||
}
|
||||
else if (!NoRangeSP) {
|
||||
_MotorLigado = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ReferenciarMotor() {
|
||||
_Angulo_SP = 0;
|
||||
Referenciado = false;
|
||||
|
||||
if (Referenciando && (_Angulo >= -_Margem && _Angulo <= _Margem)) {
|
||||
Referenciando = false;
|
||||
Referenciado = true;
|
||||
_MotorLigado = false;
|
||||
}
|
||||
else {
|
||||
_Sentido_SP = (_Angulo > 0) ? Antihorario : Horario;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
Motor M1("ET");
|
||||
Motor M2("EF");
|
||||
Motor M3("DT");
|
||||
Motor M4("DF");
|
||||
|
||||
Motor* MotorPorID(String ID) {
|
||||
Motor* _motor =
|
||||
ID == "ET" ? &M1 :
|
||||
ID == "EF" ? &M2 :
|
||||
ID == "DT" ? &M3 :
|
||||
ID == "DF" ? &M4 :
|
||||
nullptr;
|
||||
return _motor;
|
||||
}
|
||||
|
||||
void setup() {
|
||||
Serial.begin(_baudRate);
|
||||
//iniciarMCP(D_Code, 8, 18, 0x20, false);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
std::vector<ProtocoloSerial> protocolos = LerBufferSerialFila();
|
||||
|
||||
for (int i = 0; i < protocolos.size(); i++) {
|
||||
ProcessarProtocolo(protocolos[i].protocolo, protocolos[i].funcao, protocolos[i].idMensagem);
|
||||
}
|
||||
}
|
||||
|
||||
void ProcessarProtocolo(String Protocolo, F_Code _funcao, int idMensagem) {
|
||||
|
||||
if (_funcao == Chk) {
|
||||
EnviarDadosSerial(MontarProtocoloVerificacao(D_Code, VERSION));
|
||||
}
|
||||
else if (_funcao == Cfg) {
|
||||
std::vector<String> Partes = SplitString(Protocolo, (char*)",");
|
||||
String ID = Partes[0];
|
||||
bool Conectar = Partes[1] == "1";
|
||||
if (ID == "MD") {
|
||||
_TaxaAmostragem = Partes[2].toInt();
|
||||
|
||||
EnviarDadosSerial(MontarProtocoloSensor(sCFG, "MD", Conectar ? "1" : "0"));
|
||||
vTaskDelay(pdMS_TO_TICKS(100));
|
||||
Conectado = Conectar;
|
||||
}
|
||||
else {
|
||||
Motor* _motor = MotorPorID(ID);
|
||||
|
||||
int canal = Partes[2].toInt();
|
||||
bool motor_ativado = Partes[3] == "1";
|
||||
bool estabilizar = Partes[4] == "1";
|
||||
bool referenciar = Partes[5] == "1";
|
||||
int _offset = Partes[6].toInt();
|
||||
TiposBarramentos pulB = (TiposBarramentos)Partes[7].toInt();
|
||||
int pul = Partes[8].toInt();
|
||||
TiposBarramentos dirB = (TiposBarramentos)Partes[9].toInt();
|
||||
int dir = Partes[10].toInt();
|
||||
TiposBarramentos enaB = (TiposBarramentos)Partes[11].toInt();
|
||||
int ena = Partes[12].toInt();
|
||||
TiposBarramentos encB = (TiposBarramentos)Partes[13].toInt();
|
||||
int encoder = Partes[14].toInt();
|
||||
|
||||
if (motor_ativado) {
|
||||
if (Conectar) {
|
||||
_motor->_canal = canal;
|
||||
_motor->_Estabilizar = estabilizar;
|
||||
_motor->_Referenciar = referenciar;
|
||||
_motor->_Angulo_Offset = _offset;
|
||||
_motor->_pinoPUL = PinoModel(pul, pulB, _PWM);
|
||||
_motor->_pinoDIR = PinoModel(dir, dirB, _OUTPUT);
|
||||
_motor->_pinoENA = PinoModel(ena, enaB, _OUTPUT);
|
||||
_motor->_pinoEncoder = PinoModel(encoder, encB, _INPUT, ANALOGICO);
|
||||
_motor->Inicializar();
|
||||
}
|
||||
else {
|
||||
_motor->Desligar();
|
||||
}
|
||||
vTaskDelay(500);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (_funcao == Cmd) {
|
||||
std::vector<String> Partes = SplitString(Protocolo, (char*)",");
|
||||
String ID = Partes[0];
|
||||
|
||||
Motor* _motor = MotorPorID(ID);
|
||||
|
||||
Sentido sentido = (Sentido)Partes[1].toInt();
|
||||
int angulo = Partes[2].toInt();
|
||||
int porcentagem = Partes[3].toInt();
|
||||
double frequencia = (porcentagem / 100.0) * FrequenciaMaxima;
|
||||
bool referenciar = Partes[4] == "1";
|
||||
int offset = Partes[5].toInt();
|
||||
|
||||
_frequencia = frequencia;
|
||||
|
||||
_motor->_Sentido_SP = sentido;
|
||||
_motor->_Angulo_SP = angulo;
|
||||
_motor->_Angulo_Offset = offset;
|
||||
|
||||
_motor->AtualizarPWM();
|
||||
|
||||
if (referenciar) {
|
||||
_motor->ResetRef(referenciar);
|
||||
}
|
||||
else {
|
||||
_motor->_MotorLigado = sentido != Parado;
|
||||
}
|
||||
}
|
||||
else if (_funcao == Tst) {
|
||||
std::vector<String> Partes = SplitString(Protocolo, (char*)",");
|
||||
String ID = Partes[0];
|
||||
|
||||
Motor* _motor = MotorPorID(ID);
|
||||
|
||||
bool EmTeste = _motor->Testando;
|
||||
if (!EmTeste) {
|
||||
_motor->Testar();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
EnviarDadosSerial(MontarProtocoloMensagemRecebida(idMensagem));
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
|
||||
]
|
||||
}
|
||||
Loading…
Reference in New Issue