Moves servo event to main

This commit is contained in:
Rune Harlyk
2025-09-14 19:26:44 +02:00
committed by Rune Harlyk
parent 1bb098e952
commit f9a0880cd9
2 changed files with 13 additions and 10 deletions
@@ -20,9 +20,6 @@
#define FACTORY_SERVO_OSCILLATOR_FREQUENCY 27000000
#endif
#define EVENT_SERVO_CONFIGURATION_SETTINGS "servoPWM"
#define EVENT_SERVO_STATE "servoState"
enum class SERVO_CONTROL_STATE { DEACTIVATED, PWM, ANGLE };
class ServoController : public StatefulService<ServoSettings> {
@@ -32,16 +29,9 @@ class ServoController : public StatefulService<ServoSettings> {
_persistence(ServoSettings::read, ServoSettings::update, this, SERVO_SETTINGS_FILE) {}
void begin() {
// socket.onEvent(EVENT_SERVO_CONFIGURATION_SETTINGS,
// [&](JsonVariant &root, int originId) { servoEvent(root, originId); });
// socket.onEvent(EVENT_SERVO_STATE, [&](JsonVariant &root, int originId) { stateUpdate(root, originId); });
_persistence.readFromFS();
initializePCA();
// socket.onEvent(EVENT_SERVO_STATE, [&](JsonVariant &root, int originId) {
// is_active = root["active"] | false;
// is_active ? activate() : deactivate();
// });
}
void pcaWrite(int index, int value) {
+13
View File
@@ -76,6 +76,8 @@ void setupServer() {
#define MODE_EVENT "mode"
#define WALK_GAIT_EVENT "walk_gait"
#define EVENT_I2C_SCAN "i2cScan"
#define EVENT_SERVO_CONFIGURATION_SETTINGS "servoPWM"
#define EVENT_SERVO_STATE "servoState"
void setupEventSocket() {
// Motion events
@@ -96,6 +98,17 @@ void setupEventSocket() {
peripherals.getI2CResult(results);
socket.emit(EVENT_I2C_SCAN, results);
});
// Servo controller events
socket.onEvent(EVENT_SERVO_CONFIGURATION_SETTINGS,
[&](JsonVariant &root, int originId) { servoController.servoEvent(root, originId); });
socket.onEvent(EVENT_SERVO_STATE,
[&](JsonVariant &root, int originId) { servoController.stateUpdate(root, originId); });
socket.onEvent(EVENT_SERVO_STATE, [&](JsonVariant &root, int originId) {
const bool is_active = root["active"] | false;
is_active ? servoController.activate() : servoController.deactivate();
});
}
void IRAM_ATTR SpotControlLoopEntry(void *) {