summaryrefslogtreecommitdiffhomepage
path: root/digital/io/tools/io
diff options
context:
space:
mode:
Diffstat (limited to 'digital/io/tools/io')
-rw-r--r--digital/io/tools/io/__init__.py1
-rw-r--r--digital/io/tools/io/init.py6
-rw-r--r--digital/io/tools/io/io.py36
3 files changed, 43 insertions, 0 deletions
diff --git a/digital/io/tools/io/__init__.py b/digital/io/tools/io/__init__.py
new file mode 100644
index 00000000..42e63913
--- /dev/null
+++ b/digital/io/tools/io/__init__.py
@@ -0,0 +1 @@
+from io import Io
diff --git a/digital/io/tools/io/init.py b/digital/io/tools/io/init.py
new file mode 100644
index 00000000..12c6bb9a
--- /dev/null
+++ b/digital/io/tools/io/init.py
@@ -0,0 +1,6 @@
+"""Default parameters for io."""
+host = dict (
+ trap = ((1, 255), (1, 255), (1, 255), (1, 255), (1, 255), (1, 255)),
+ sharp_threshold = ((0x7f, 0x90), (0x7f, 0x90), (0x7f, 0x90),
+ (0x7f, 0x90), (0x7f, 0x90)),
+ )
diff --git a/digital/io/tools/io/io.py b/digital/io/tools/io/io.py
new file mode 100644
index 00000000..8b78a8cc
--- /dev/null
+++ b/digital/io/tools/io/io.py
@@ -0,0 +1,36 @@
+import proto, time
+
+class Io:
+
+ def __init__ (self, file, time = time.time, **param):
+ self.proto = proto.Proto (file, time, 0.1)
+ self.async = False
+ self.param = param
+ self.send_param ()
+
+ def send_param (self):
+ p = self.param
+ for i, t in enumerate (p['trap']):
+ self.proto.send ('t', 'BBB', i, t[0], t[1])
+ for i, t in enumerate (p['sharp_threshold']):
+ self.proto.send ('h', 'BHH', i, t[0], t[1])
+
+ def write_eeprom (self):
+ self.proto.send ('p', 'BB', ord ('E'), ord ('s'))
+ time.sleep (1)
+ self.proto.wait (lambda: True)
+
+ def reset (self):
+ self.proto.send ('w')
+ self.proto.send ('w', 'H', 0)
+ self.proto.send ('z')
+ self.proto.send ('z')
+
+ def close (self):
+ self.reset ()
+ self.wait (lambda: True)
+ self.proto.file.close ()
+
+ def fileno (self):
+ return self.proto.fileno ()
+