Reconstruct debounce, enahnce display.
Former-commit-id: 39c845baadaa727877866fe43b86a02ebf64c915
This commit is contained in:
48
ch340.py
48
ch340.py
@ -2,7 +2,7 @@
|
||||
import serial.tools.list_ports
|
||||
import time
|
||||
|
||||
OFFLINE_DEBUG = True
|
||||
OFFLINE_DEBUG = False
|
||||
|
||||
def _list_ch340_ports():
|
||||
ports = serial.tools.list_ports.comports()
|
||||
@ -17,10 +17,13 @@ def _list_ch340_ports():
|
||||
return []
|
||||
|
||||
if OFFLINE_DEBUG:
|
||||
print("WARNING: Running in offline debug mode, no actual hardware interaction.\n"*3)
|
||||
time.sleep(2)
|
||||
class CH340:
|
||||
def __init__(self):
|
||||
self._speed = 0.0
|
||||
self._time = (0,0,0)
|
||||
self.start = 0
|
||||
|
||||
@property
|
||||
def speed(self):
|
||||
@ -38,6 +41,13 @@ if OFFLINE_DEBUG:
|
||||
def time(self,x):
|
||||
self._time = x
|
||||
|
||||
@property
|
||||
def running(self):
|
||||
return time.time() - self.start < self._get_time()
|
||||
|
||||
def _get_time(self):
|
||||
return (self.time[0]*3600 + self.time[1]*60 + self.time[2])/2
|
||||
|
||||
def _prepare(self,speed,t,vol):
|
||||
if speed is not None:
|
||||
self.speed = speed
|
||||
@ -63,24 +73,37 @@ if OFFLINE_DEBUG:
|
||||
|
||||
def push(self,speed=None,t=None,vol=None):
|
||||
self._prepare(speed,t,vol)
|
||||
time.sleep(self.time[0]*3600 + self.time[1]*60 + self.time[2])
|
||||
self.start = time.time()
|
||||
time.sleep(self._get_time())
|
||||
|
||||
def pull(self,speed=None,t=None,vol=None):
|
||||
self._prepare(speed,t,vol)
|
||||
time.sleep(self.time[0]*3600 + self.time[1]*60 + self.time[2])
|
||||
self.start = time.time()
|
||||
time.sleep(self._get_time())
|
||||
|
||||
def push_async(self,speed=None,t=None,vol=None):
|
||||
self._prepare(speed,t,vol)
|
||||
self.start = time.time()
|
||||
time.sleep(0.01)
|
||||
|
||||
def pull_async(self,speed=None,t=None,vol=None):
|
||||
self._prepare(speed,t,vol)
|
||||
self.start = time.time()
|
||||
time.sleep(0.01)
|
||||
|
||||
def stop(self):
|
||||
self.start = 0
|
||||
print("Stop")
|
||||
else:
|
||||
class CH340:
|
||||
def __init__(self,idx=0):
|
||||
|
||||
self.port = _list_ch340_ports()[idx] # 串口名
|
||||
self.pump_ser = serial.Serial(self.port, 9600) # 初始化串口
|
||||
self._speed = 0.0
|
||||
self.speed = 0.0
|
||||
self._time = (0,0,0)
|
||||
self.time = (0,0,0)
|
||||
self.start = 0
|
||||
|
||||
@property
|
||||
def speed(self):
|
||||
@ -116,6 +139,13 @@ else:
|
||||
self.pump_ser.write(f"q5h{x[2]}d".encode('ascii'))
|
||||
time.sleep(0.01)
|
||||
|
||||
@property
|
||||
def running(self):
|
||||
return time.time() - self.start < self._get_time()
|
||||
|
||||
def _get_time(self):
|
||||
return self.time[0]*3600 + self.time[1]*60 + self.time[2]
|
||||
|
||||
def _prepare(self,speed,t,vol):
|
||||
if speed is not None:
|
||||
self.speed = speed
|
||||
@ -138,27 +168,27 @@ else:
|
||||
|
||||
def push(self,speed=None,t=None,vol=None):
|
||||
self.push_async(speed,t,vol)
|
||||
time.sleep(self.time[0]*3600 + self.time[1]*60 + self.time[2])
|
||||
time.sleep(self._get_time())
|
||||
|
||||
def push_async(self,speed=None,t=None,vol=None):
|
||||
self._prepare(speed,t,vol)
|
||||
self.pump_ser.write(b"q6h2d")
|
||||
self.start = time.time()
|
||||
time.sleep(0.01)
|
||||
|
||||
def pull(self,speed=None,t=None,vol=None):
|
||||
self.pull_async(speed,t,vol)
|
||||
time.sleep(self.time[0]*3600 + self.time[1]*60 + self.time[2])
|
||||
time.sleep(self._get_time())
|
||||
|
||||
def pull_async(self,speed=None,t=None,vol=None):
|
||||
print(1)
|
||||
print(t,speed,vol)
|
||||
self._prepare(speed,t,vol)
|
||||
self.pump_ser.write(b"q6h3d")
|
||||
print(self.time,self.speed)
|
||||
self.start = time.time()
|
||||
time.sleep(0.01)
|
||||
|
||||
def stop(self):
|
||||
self.pump_ser.write(b"q6h6d")
|
||||
self.start = 0
|
||||
time.sleep(0.01)
|
||||
|
||||
def __del__(self):
|
||||
|
Reference in New Issue
Block a user