kopia lustrzana https://github.com/jamesgao/kiln_controller
Fixing threading, dot rendering
rodzic
b80556e27a
commit
1c7ea8b974
|
@ -173,23 +173,49 @@ class AlphaScroller(threading.Thread):
|
|||
def __init__(self, address=0x70, interval=.25):
|
||||
self.interval = interval
|
||||
self.disp = Alphanumeric(address)
|
||||
super(AlphaScroller, self).__init__()
|
||||
self.value = " "
|
||||
self.text = " "
|
||||
self.counter = 0
|
||||
|
||||
def set_text(self, text, pad=True):
|
||||
self.text = text
|
||||
super(AlphaScroller, self).__init__()
|
||||
self.daemon = True
|
||||
self.running = True
|
||||
|
||||
def stop(self):
|
||||
self.running = False
|
||||
|
||||
def set_text(self, text, pad=True, reset=True):
|
||||
i = 0
|
||||
self.text = []
|
||||
while i < len(text)-1:
|
||||
if text[i+1] == ".":
|
||||
i+= 1
|
||||
self.text.push((text[i], True))
|
||||
else:
|
||||
self.text.push((text[i],))
|
||||
i+= 1
|
||||
|
||||
if pad:
|
||||
self.text += " "
|
||||
self.text += [(' ',)]*4
|
||||
|
||||
if reset:
|
||||
self.counter = 0
|
||||
|
||||
def set_speed(self, interval):
|
||||
self.interval = interval
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
while self.running:
|
||||
for i in range(4):
|
||||
char = self.value[(self.counter+i) % len(self.value)]
|
||||
self.disp.writeChar(i, char)
|
||||
time.sleep(self.interval)
|
||||
self.counter += 1
|
||||
|
||||
if __name__ == "__main__":
|
||||
scroller = AlphaScroller()
|
||||
scoller.set_text(list("Hello. World.")+["cone","degree"])
|
||||
scroller.start()
|
||||
try:
|
||||
scroller.join()
|
||||
except KeyboardInterrupt:
|
||||
scroller.stop()
|
|
@ -25,6 +25,7 @@ class Monitor(threading.Thread):
|
|||
self.display.start()
|
||||
super(Monitor, self).__init__()
|
||||
self.daemon = True
|
||||
self.running = True
|
||||
|
||||
def _read_temp(self):
|
||||
with open(self.device, 'r') as f:
|
||||
|
@ -39,12 +40,16 @@ class Monitor(threading.Thread):
|
|||
if match is not None:
|
||||
return float(match.group(1)) / 1000.0
|
||||
|
||||
def stop(self):
|
||||
self.running = False
|
||||
self.display.stop()
|
||||
|
||||
@property
|
||||
def temperature(self):
|
||||
return self.history[-1][1]
|
||||
|
||||
def run(self):
|
||||
while True:
|
||||
while running:
|
||||
temp = self._read_temp()
|
||||
fahr = temp * 9. / 5. + 32.
|
||||
now = datetime.datetime.now()
|
||||
|
@ -55,9 +60,12 @@ class Monitor(threading.Thread):
|
|||
if 600 <= temp:
|
||||
text += [' ', ' ', 'cone']+list("%0.1f"%temp_to_cone(temp))
|
||||
text += ' '
|
||||
self.display.text = text
|
||||
self.display.set_text(text, reset=False)
|
||||
|
||||
if __name__ == "__main__":
|
||||
mon = Monitor()
|
||||
mon.start()
|
||||
try:
|
||||
mon.join()
|
||||
except KeyboardInterrupt:
|
||||
mon.stop()
|
Ładowanie…
Reference in New Issue