From 6fa375d4523cb8430173fda6c6aa9c94a8c148b3 Mon Sep 17 00:00:00 2001
From: Jake Read <jake.read@cba.mit.edu>
Date: Wed, 19 May 2021 14:28:32 -0400
Subject: [PATCH] add option for og module on stepper, and add homing query
 state for home-completion promises

---
 .../osape-smoothieroll-drop-stepper/src/config.h   |  2 ++
 .../osape-smoothieroll-drop-stepper/src/main.cpp   | 14 +++++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/firmware/osape-smoothieroll-drop-stepper/src/config.h b/firmware/osape-smoothieroll-drop-stepper/src/config.h
index 3f537ba..93d31e3 100644
--- a/firmware/osape-smoothieroll-drop-stepper/src/config.h
+++ b/firmware/osape-smoothieroll-drop-stepper/src/config.h
@@ -4,4 +4,6 @@
 //#define UCBUS_IS_HEAD
 #define UCBUS_IS_DROP
 
+#define IS_OG_MODULE
+
 #endif 
\ No newline at end of file
diff --git a/firmware/osape-smoothieroll-drop-stepper/src/main.cpp b/firmware/osape-smoothieroll-drop-stepper/src/main.cpp
index 04ca517..3658779 100644
--- a/firmware/osape-smoothieroll-drop-stepper/src/main.cpp
+++ b/firmware/osape-smoothieroll-drop-stepper/src/main.cpp
@@ -104,6 +104,17 @@ boolean onHomeData(uint8_t* data, uint16_t len){
 
 vertex_t* homeEp = osapBuildEndpoint("Home", onHomeData, nullptr);
 
+// -------------------------------------------------------- HOME STATE 
+
+boolean beforeHomeStateQuery(void);
+
+vertex_t* homeStateEp = osapBuildEndpoint("HomeState", nullptr, beforeHomeStateQuery);
+
+boolean beforeHomeStateQuery(void){
+  homeStateEp->ep->data[0] = homing;
+  homeStateEp->ep->dataLen = 1;
+}
+
 // -------------------------------------------------------- LIMIT SETUP 
 
 #define LIMIT_PORT PORT->Group[0]
@@ -148,6 +159,7 @@ void setup() {
   osapAddVertex(cScaleEp);        // 5
   // homing 
   osapAddVertex(homeEp);          // 6 
+  osapAddVertex(homeStateEp);     // 7 
   // stepper init 
   stepper_hw->init(false, c_scale);
 }
@@ -289,7 +301,7 @@ void ucBusDrop_onRxISR(void){
     }
     return;
   }
-
+  // normal step operation 
   //DEBUG2PIN_TOGGLE;
   move_counter += vel;
   boolean move_check = (move_counter > 1.0F);
-- 
GitLab