pygpibtoolkit/prologix_emulator.py

Sat, 19 May 2018 00:07:15 +0200

author
David Douard <david.douard@logilab.fr>
date
Sat, 19 May 2018 00:07:15 +0200
changeset 101
975576e55563
child 102
91713944ebb0
permissions
-rw-r--r--

[prologix] beginning of a proper prologix dongle emulator

101
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
1 # This program is free software; you can redistribute it and/or modify it under
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
2 # the terms of the GNU General Public License as published by the Free Software
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
3 # Foundation; either version 2 of the License, or (at your option) any later
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
4 # version.
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
5 #
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
6 # This program is distributed in the hope that it will be useful, but WITHOUT
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
7 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
8 # FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
9 #
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
10 # You should have received a copy of the GNU General Public License along with
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
11 # this program; if not, write to the Free Software Foundation, Inc.,
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
12 # 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
13 """Copyright (c) 2007-2018 David Douard (Paris, FRANCE).
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
14 https://bitbucket.org/dddouard/pygpibtoolkit -- mailto:david.douard@sdfa3.org
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
15
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
16 prologix emulator
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
17 =================
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
18
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
19 Base class for writing an emulator of a Prologix dongle.
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
20
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
21 This aims at writing tests and virtual devices to check tools.
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
22
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
23 """
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
24
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
25 import os
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
26 import serial
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
27 import time
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
28 import subprocess
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
29 import tempfile
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
30 import threading
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
31 from queue import Queue
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
32 import logging
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
33 from logging import debug, info, warning, error # noqa
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
34
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
35
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
36 logging.basicConfig()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
37 logger = logging.getLogger(__name__)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
38
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
39 SOCAT = '/usr/bin/socat'
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
40
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
41
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
42 class BasePrologixEmulator:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
43
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
44 def __init__(self):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
45 """
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
46 """
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
47 self.tmpdir = tempfile.mkdtemp()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
48 busside = os.path.join(self.tmpdir, 'bus')
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
49 serialside = os.path.join(self.tmpdir, 'serial')
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
50 self.socatp = subprocess.Popen([
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
51 SOCAT,
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
52 'PTY,raw,echo=0,link={}'.format(busside),
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
53 'PTY,raw,echo=0,link={}'.format(serialside)])
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
54 self.serialurl = serialside
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
55
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
56 time.sleep(0.1) # wait a bit for socat to be started
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
57 self.cnx = serial.Serial(busside, timeout=0)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
58
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
59 self.running = True
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
60 self.output = Queue()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
61 self.mainloop = threading.Thread(target=self.run)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
62 self.reset()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
63
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
64 self.mainloop.start()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
65
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
66 def reset(self):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
67 self.output.queue.clear() # should probably protect this...
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
68 self.mode = 1
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
69 self.addr = 5
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
70
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
71 def close(self):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
72 self.running = False
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
73 self.socatp.kill()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
74 self.socatp.wait()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
75 self.mainloop.join()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
76
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
77 def run(self):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
78 while self.running:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
79 data = self.cnx.readline().strip()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
80 if data:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
81 if data[:2] == b'++':
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
82 self.parse_cmd(data)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
83 else:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
84 self.parse_data(data)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
85 elif not self.output.empty():
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
86 data = self.output.get()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
87 logger.info('Sending %r' % data)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
88 self.cnx.write(data)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
89 else:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
90 time.sleep(0.01)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
91
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
92 def send(self, data):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
93 for row in data.splitlines():
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
94 self.output.put(row)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
95
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
96 def parse_data(self, row):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
97 logger.info('Received %r' % row)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
98 self.output.put(b'OK\r\n')
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
99
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
100 def parse_cmd(self, row):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
101 logger.info('Received CMD %r' % row)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
102 cmd = row.decode().split()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
103 args = cmd[1:]
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
104 cmd = cmd[0][2:]
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
105 getattr(self, 'parse_cmd_{}'.format(cmd))(args)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
106
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
107 def parse_cmd_mode(self, args):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
108 if not args:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
109 self.output.put(('%s\r\n' % self.mode).encode())
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
110 else:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
111 try:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
112 if len(args) == 1:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
113 mode = int(args[0])
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
114 assert mode in (0, 1)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
115 logger.info('Set mode=%s' % mode)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
116 self.mode = mode
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
117 else:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
118 raise Exception()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
119 except:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
120 self.output.put(b'Error\r\n')
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
121
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
122 def parse_cmd_addr(self, args):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
123 if not args:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
124 self.output.put(('%s\r\n' % self.addr).encode())
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
125 else:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
126 try:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
127 if len(args) == 1:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
128 addr = int(args[0])
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
129 assert 0 <= addr <= 31
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
130 logger.info('Set addr=%s' % addr)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
131 self.addr = addr
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
132 else:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
133 raise Exception()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
134 except:
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
135 self.output.put(b'Error\r\n')
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
136
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
137
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
138 def main():
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
139 emul = BasePrologixEmulator()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
140 cnx = serial.Serial(emul.serialurl, timeout=0)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
141 for i in range(10):
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
142 data = '++cmd %s' % i
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
143 print('SEND', data)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
144 cnx.write(data.encode() + b'\r\n')
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
145 time.sleep(0.1)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
146 print('GOT %r' % cnx.readall())
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
147
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
148 emul.close()
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
149
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
150
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
151 if __name__ == '__main__':
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
152 logger.setLevel(logging.DEBUG)
975576e55563 [prologix] beginning of a proper prologix dongle emulator
David Douard <david.douard@logilab.fr>
parents:
diff changeset
153 main()

mercurial