Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2020-02-12 23:51:56 +0300
committerDavid Crocker <dcrocker@eschertech.com>2020-02-12 23:51:56 +0300
commit9885ed7cc55cb19fde1be14c8adfd11dfa7f86cf (patch)
tree43f81c1a73028b5ecc516854c20601d63d0f119e /src/GCodes/Trigger.h
parentd27f0a701c84fe1fcf4dc99c067b1fc38cd90f91 (diff)
Refactored GP inputs
Diffstat (limited to 'src/GCodes/Trigger.h')
-rw-r--r--src/GCodes/Trigger.h25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/GCodes/Trigger.h b/src/GCodes/Trigger.h
index 15d4781a..86aad4e0 100644
--- a/src/GCodes/Trigger.h
+++ b/src/GCodes/Trigger.h
@@ -9,15 +9,12 @@
#define SRC_GCODES_TRIGGER_H_
#include "RepRapFirmware.h"
+#include "GCodeResult.h"
#include "Hardware/IoPorts.h"
-typedef Bitmap<uint32_t> TriggerNumbersBitmap; // Bitmap of trigger numbers
-typedef Bitmap<uint16_t> TriggerInputStatesBitmap; // Bitmap of input states
-static_assert(MaxTriggers <= TriggerNumbersBitmap::MaxBits(), "need larger TriggerNumbersBitmap type");
-static_assert(MaxPortsPerTrigger <= TriggerInputStatesBitmap::MaxBits(), "need larger TriggerInputStatesBitmap");
-
-struct Trigger
+class Trigger
{
+public:
Trigger() noexcept;
void Init() noexcept;
@@ -28,10 +25,18 @@ struct Trigger
// Check whether this trigger is active and update the input states
bool Check() noexcept;
- IoPort ports[MaxPortsPerTrigger];
- TriggerInputStatesBitmap inputStates;
- uint8_t condition;
-};
+ // Handle M581 for this trigger
+ GCodeResult Configure(unsigned int number, GCodeBuffer& gb, const StringRef& reply) THROWS(GCodeException);
+
+ // Handle M582 for this trigger
+ bool CheckLevel() noexcept;
+private:
+ static void AppendInputNames(AxesBitmap endstops, InputPortsBitmap inputs, const StringRef& reply) noexcept;
+
+ AxesBitmap highLevelEndstops, lowLevelEndstops, endstopStates;
+ InputPortsBitmap highLevelInputs, lowLevelInputs, inputStates;
+ int8_t condition;
+};
#endif /* SRC_GCODES_TRIGGER_H_ */