modify: IN2 DI 输入监听
This commit is contained in:
@@ -161,9 +161,8 @@ class DIChannel:
|
||||
break
|
||||
timeout = int(min(remain, 0.5) * 1000)
|
||||
poller.poll(timeout)
|
||||
got = self.backend.read()
|
||||
if got:
|
||||
raw, ts = got
|
||||
# read() 返回本批全部事件,按序处理,快速抖动不丢中间跳变
|
||||
for raw, ts in self.backend.read():
|
||||
if self.on_event:
|
||||
self.on_event(ts, raw)
|
||||
self._emit(self._to_level(raw), ts)
|
||||
@@ -173,13 +172,10 @@ class DIChannel:
|
||||
while not self._stop:
|
||||
if deadline and time.time() >= deadline:
|
||||
break
|
||||
got = self.backend.read()
|
||||
if got:
|
||||
raw, ts = got
|
||||
lvl = self._to_level(raw)
|
||||
for raw, ts in self.backend.read():
|
||||
if self.on_event:
|
||||
self.on_event(ts, raw)
|
||||
self._emit(lvl, ts)
|
||||
self._emit(self._to_level(raw), ts)
|
||||
time.sleep(interval)
|
||||
|
||||
def request_stop(self):
|
||||
|
||||
Reference in New Issue
Block a user