blob: bdf1ac24fd5444d6c3afc2b965cf8c2412d0f466 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
/*
* Trigger.h
*
* Created on: 6 Jun 2019
* Author: David
*/
#ifndef SRC_GCODES_TRIGGER_H_
#define SRC_GCODES_TRIGGER_H_
#include <RepRapFirmware.h>
#include <Hardware/IoPorts.h>
class Trigger
{
public:
Trigger() noexcept;
void Init() noexcept;
// Return true if this trigger is unused, i.e. it doesn't watch any pins
bool IsUnused() const noexcept;
// Check whether this trigger is active and update the input states
bool Check() noexcept;
// 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_ */
|