-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcorio.py
96 lines (70 loc) · 2.25 KB
/
corio.py
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#-------------------------------------------------------------------------------
# Name: corio
# Purpose:
#
# Author: Robert Walker
#
# Created: 17/09/2014
# Copyright: (c) robert.walker 2014
# Licence: GPLv3
#-------------------------------------------------------------------------------
import telnet as tel
import device
from socket import timeout
TIMEOUT = 0.5
class Corio(tel.Telnet, device.Device):
def set_fade_speed(self, speed):
"""
int speed = 1 - 25 set speed of fades"""
with self:
self.open()
self.write('fade speed={}\r\n'.format(speed))
try:
self.read_until('>', TIMEOUT)
except timeout:
self.close()
return False
self.close()
self._fade_speed = speed
return True
def get_fade_speed(self):
return self._fade_speed
def fade(self, in_):
"""
fade the overlay in or out
bool in_ = true for in, false for out"""
with self:
self.open()
if in_:
self.write('fade=1\r\n')
else:
self.write('fade=0\r\n')
read = self.expect(['[>]', '[?]'], TIMEOUT)
if read[0]:
self.close()
return False
self.close()
return True
def is_faded_in(self):
return self._faded_in
def update(self):
with self:
self.open()
self.write('fade\r\n')
read = (self.expect(['[0-1]'], 1))
self._faded_in = True if '1' in read[2] else False if '0' in read[2] else None
self.write('fade speed\r\n')
self._fade_speed = int(self.expect(['[0-9]{1,2}'], 1)[2])
self.close()
return True
def __init__(self, host, port, *args, **kwargs):
tel.Telnet.__init__(self, host, port, *args, **kwargs)
def fade_in(self):
return self.fade(True)
def fade_out(self):
return self.fade(False)
def main():
cor = Corio('localhost', 2003)
print cor.get_fade_speed()
if __name__ == '__main__':
main()