#include "SerialService.h" #include "Pinout.h" #include "Utils.h" #include #ifndef ServoFreioModel #define ServoFreioModel class ServoFreio { public: ServoFreio(String _modID, String _id) { Mod_ID = _modID; _ID = _id; } String Mod_ID; String _ID; PinoModel _pino; bool Incremental = true; bool Iniciado = false; int _Angulo = 0; Servo _Servo; void Inicializar() { if (Iniciado) { //EnviarDadosSerial(_ID + " ja inicializado"); EnviarDadosSerial(Mod_ID, MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0")); return; } if (_pino.Definido()) { _Servo.attach(_pino.num); _Servo.write(Incremental ? 0 : 180); } Iniciado = true; EnviarDadosSerial(Mod_ID, MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0")); } void Desligar() { if (!Iniciado) { //EnviarDadosSerial(_ID + " nao esta inicializado"); EnviarDadosSerial(Mod_ID, MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0")); return; } // Redefinir as configurações para os valores iniciais if (_pino.Definido()) { _Servo.detach(); } //EnviarDadosSerial(_ID + " Desligado"); Iniciado = false; EnviarDadosSerial(Mod_ID, MontarProtocoloSensor(sCFG, _ID, Iniciado ? "1" : "0")); } void AtualizarAngulo(int novoAngulo) { _Angulo = novoAngulo; _Servo.write(_Angulo); } void RequisitarDados() { EnviarDadosSerial(Mod_ID, MontarProtocoloSensor(sFRO, _ID, MontarDadosProtocoloFreio(Iniciado, _Angulo))); } }; #endif