File tree 1 file changed +8
-1
lines changed
1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -30,9 +30,10 @@ import SwiftIO
30
30
31
31
@SeeSawActor
32
32
public final class QuadRotary {
33
- public enum Mode : Sendable {
33
+ public enum Mode : Sendable , Equatable {
34
34
case poll( Duration )
35
35
case interrupt( Int32 )
36
+ case manual
36
37
}
37
38
38
39
public nonisolated static let NumEncoders = UInt8 ( 4 )
@@ -86,6 +87,8 @@ public final class QuadRotary {
86
87
}
87
88
_interrupt = DigitalIn ( Id ( rawValue: pin) , mode: . pullDown)
88
89
. risingEdgeInterrupts
90
+ case . manual:
91
+ _interrupt = nil
89
92
}
90
93
91
94
var encoders = [ IncrementalEncoder] ( )
@@ -134,6 +137,8 @@ public final class QuadRotary {
134
137
}
135
138
136
139
public func run( ) {
140
+ guard _mode != . manual else { return }
141
+
137
142
_task = Task < ( ) , Error > { @Sendable [ self ] in
138
143
switch _mode {
139
144
case let . poll( pollInterval) :
@@ -145,6 +150,8 @@ public final class QuadRotary {
145
150
for try await _ in _interrupt! {
146
151
await _sendEvents ( )
147
152
}
153
+ case . manual:
154
+ break
148
155
}
149
156
}
150
157
}
You can’t perform that action at this time.
0 commit comments