From b92e0552f549214d0d401f1065d43851775fce1e Mon Sep 17 00:00:00 2001
From: David Gauchard <gauchard@laas.fr>
Date: Tue, 20 Jun 2023 11:22:10 +0200
Subject: [PATCH] make emu on host work again

---
 host_gui/make.sh           |  2 +-
 motor.h                    | 19 +++++++++++++------
 pousseseringue-arduino.cpp | 16 +++++++---------
 pousseseringue-arduino.ino |  1 +
 4 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/host_gui/make.sh b/host_gui/make.sh
index f0537cb..5012cff 100755
--- a/host_gui/make.sh
+++ b/host_gui/make.sh
@@ -6,7 +6,7 @@ firefox=true
 pwd=$(pwd)
 cd ${ESP8266ARDUINO}/tests/host
 make FORCE32=0 ssl
-make -j 10 FORCE32=0 USERCFLAGS="-I ${ARDUINOLIB}/emuAsync/replacement" ULIBDIRS=${ARDUINOLIB}/emuAsync:${ARDUINOLIB}/ESPUI:${ARDUINOLIB}/ArduinoJson:${ARDUINOLIB}/arduinoWebSockets ${pwd}/../pousseseringue-arduino
+make -j 10 FORCE32=0 USERCFLAGS="-I ${ARDUINOLIB}/emuAsync/replacement" ULIBDIRS=${ARDUINOLIB}/emuAsync:${ARDUINOLIB}/ESPUI:${ARDUINOLIB}/ArduinoJson:${ARDUINOLIB}/arduinoWebSockets:${ARDUINOLIB}/ESPWebDAV:${ARDUINOLIB}/Debouncer ${pwd}/../pousseseringue-arduino
 
 $firefox && (
     true '----------------------------------------'
diff --git a/motor.h b/motor.h
index 9aaf403..ef0e8c2 100644
--- a/motor.h
+++ b/motor.h
@@ -8,17 +8,25 @@
 #if CORE_MOCK
 class AccelStepper
 {
+public:
+    enum { DRIVER, FULL4WIRE, };
+    AccelStepper(uint8_t interface = AccelStepper::FULL4WIRE, uint8_t pin1 = 2, uint8_t pin2 = 3, uint8_t pin3 = 4, uint8_t pin4 = 5, bool enable = true) {}
+    unsigned long computeNewSpeed () { return 10; }
+    float maxSpeed () { return 10; }
+    float acceleration () { return 5; }
+    long distanceToGo () { return 0; }
 };
 #else
 #include <AccelStepper.h>
 #endif
 
-class isrStepper: public AccelStepper
+class ISRStepper: public AccelStepper
 {
     // usefulness: make computeNewSpeed() public to be called outside from interrupt
 public:
-    isrStepper(uint8_t interface = AccelStepper::FULL4WIRE, uint8_t pin1 = 2, uint8_t pin2 = 3, uint8_t pin3 = 4, uint8_t pin4 = 5, bool enable = true):
+    ISRStepper(uint8_t interface = AccelStepper::FULL4WIRE, uint8_t pin1 = 2, uint8_t pin2 = 3, uint8_t pin3 = 4, uint8_t pin4 = 5, bool enable = true):
         AccelStepper(interface, pin1, pin2, pin3, pin4, enable) { }
+    // make it public
     inline unsigned long computeNewSpeed () { return AccelStepper::computeNewSpeed(); }
 };
 
@@ -26,9 +34,9 @@ class Motor
 {
 public:
 
-    using MotorHardware_t = isrStepper;
+    using MotorHardware_t = ISRStepper;
 
-    Motor (isrStepper& stepper): stepper(stepper)
+    Motor (MotorHardware_t& stepper): stepper(stepper)
     {
         setSpeedMmPerSec(1);
         setAccelMmPerSecPerSec(0.5); //  <----- this is not yet configured by user
@@ -63,7 +71,6 @@ public:
 
     void setSpeedMmPerSec (float mmPerSec)
     {
-        Serial.printf("# set speed to %g steps/s\n", mmToStep(mmPerSec));
 #if !CORE_MOCK
         stepper.setMaxSpeed(mmToStep(mmPerSec));
 #endif
@@ -177,5 +184,5 @@ protected:
     float _retainAccel = -1;
     bool _forwardClockwise;
 
-    isrStepper& stepper;
+    MotorHardware_t& stepper;
 };
diff --git a/pousseseringue-arduino.cpp b/pousseseringue-arduino.cpp
index c8718b7..55aad68 100644
--- a/pousseseringue-arduino.cpp
+++ b/pousseseringue-arduino.cpp
@@ -6,12 +6,15 @@
 #undef STASSID
 #undef STAPSK
 
+#define STASSID "hackaton"
+#define STAPSK  "WifiLAAS2018"
+
 #ifndef STASSID
 #define STASSID         "laas-capture"
 #define STAPSK          ""
 #endif
 
-#ifndef ARDUINO_ESP8266_ADAFRUIT_HUZZAH
+#if !CORE_MOCK && !defined(ARDUINO_ESP8266_ADAFRUIT_HUZZAH)
 #error select board Adafruit Feather HUZZAH ESP8266
 #endif
 
@@ -43,6 +46,7 @@
 #include <Schedule.h>
 #include <interrupts.h> // InterruptLock
 
+
 using InterruptLock = esp8266::InterruptLock;
 
 #if !CORE_MOCK
@@ -50,21 +54,15 @@ using InterruptLock = esp8266::InterruptLock;
 SSD1306AsciiWire oled;
 #endif // !CORE_MOCK
 
-
 #include "motor.h"
-#if CORE_MOCK
-isrStepper stepper;
-#else
-isrStepper stepper(AccelStepper::DRIVER, STEP, DIR);
-#endif
-
-
 #include "Debouncer.h"          // local, debouncer, short counter, long detector
 #include "syringe.h"
 #include "cli.h"
 #include "common.h"
 #include "fs.h"
 
+ISRStepper stepper(AccelStepper::DRIVER, STEP, DIR);
+
 enum class Modes { TURN, TURNSetup, RPM, RPMSetup, INFO };
 
 const char* msgHeader = MSGHEADER;
diff --git a/pousseseringue-arduino.ino b/pousseseringue-arduino.ino
index e3e70bc..bdd1024 100644
--- a/pousseseringue-arduino.ino
+++ b/pousseseringue-arduino.ino
@@ -8,4 +8,5 @@
   #include "syringe.cpp"
   #include "motor.cpp"
   #include "cli.cpp"
+  #include "fs.cpp"
 #endif // !CORE_MOCK
-- 
GitLab