summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Trigaux <mat@openerp.com>2014-01-13 12:23:36 +0100
committerMartin Trigaux <mat@openerp.com>2014-01-13 12:23:36 +0100
commit7078d1c36a01c794a0f38e9eac7bfaea6adf083f (patch)
treee9b8210dccf1b3330c32c3ecc5a71a7415037dbc
parente0f4c59f11638949a76aada28b48362709d46984 (diff)
parent8a43a64250f9c79d808122c45e680ca05c0986f0 (diff)
[MERGE] sync with trunk
bzr revid: mat@openerp.com-20140113112336-1dg6zz86g24yiicq
-rw-r--r--addons/hw_escpos/__openerp__.py3
-rw-r--r--addons/hw_escpos/controllers/main.py9
-rw-r--r--addons/hw_proxy/controllers/main.py13
-rw-r--r--addons/hw_scanner/controllers/main.py17
4 files changed, 24 insertions, 18 deletions
diff --git a/addons/hw_escpos/__openerp__.py b/addons/hw_escpos/__openerp__.py
index 830b78300ea..127dbd5cf0b 100644
--- a/addons/hw_escpos/__openerp__.py
+++ b/addons/hw_escpos/__openerp__.py
@@ -37,6 +37,9 @@ that would need such functionality.
""",
'author': 'OpenERP SA',
'depends': ['hw_proxy'],
+ 'external_dependencies': {
+ 'python' : ['usb.core','serial','qrcode'],
+ },
'test': [
],
'installable': True,
diff --git a/addons/hw_escpos/controllers/main.py b/addons/hw_escpos/controllers/main.py
index 78ed77a2318..d284d05dfdd 100644
--- a/addons/hw_escpos/controllers/main.py
+++ b/addons/hw_escpos/controllers/main.py
@@ -14,8 +14,6 @@ import usb.core
from openerp.tools.translate import _
from .. import escpos
from ..escpos import printer
-#import escpos
-#import escpos.printer
from PIL import Image
from openerp import http
@@ -29,6 +27,13 @@ class EscposDriver(hw_proxy.Proxy):
supported_printers = [
{ 'vendor' : 0x04b8, 'product' : 0x0e03, 'name' : 'Epson TM-T20' }
]
+
+ def connected_usb_devices(self,devices):
+ connected = []
+ for device in devices:
+ if usb.core.find(idVendor=device['vendor'], idProduct=device['product']) != None:
+ connected.append(device)
+ return connected
def get_escpos_printer(self):
printers = self.connected_usb_devices(self.supported_printers)
diff --git a/addons/hw_proxy/controllers/main.py b/addons/hw_proxy/controllers/main.py
index 967323ae0d6..6ddf94843fd 100644
--- a/addons/hw_proxy/controllers/main.py
+++ b/addons/hw_proxy/controllers/main.py
@@ -7,30 +7,21 @@ import openerp
import time
import random
import subprocess
-import usb.core
-import escpos
-import escpos.printer
import werkzeug
import werkzeug.wrappers
+_logger = logging.getLogger(__name__)
+
from openerp import http
from openerp.http import request
from openerp.addons.web.controllers.main import manifest_list, module_boot, html_template
-_logger = logging.getLogger(__name__)
class Proxy(http.Controller):
def __init__(self):
self.scale = 'closed'
self.scale_weight = 0.0
- def connected_usb_devices(self,devices):
- connected = []
- for device in devices:
- if usb.core.find(idVendor=device['vendor'], idProduct=device['product']) != None:
- connected.append(device)
- return connected
-
@http.route('/hw_proxy/hello', type='http', auth='admin')
def helloajx(self):
return request.make_response('ping', {
diff --git a/addons/hw_scanner/controllers/main.py b/addons/hw_scanner/controllers/main.py
index ec56a733671..69fd29f5128 100644
--- a/addons/hw_scanner/controllers/main.py
+++ b/addons/hw_scanner/controllers/main.py
@@ -12,7 +12,12 @@ from openerp.http import request
_logger = logging.getLogger(__name__)
-from evdev import InputDevice, ecodes, categorize, list_devices
+try:
+ import evdev
+except ImportError:
+ _logger.error('OpenERP module hw_scanner depends on the evdev python module')
+ evdev = None
+
from select import select
class ScannerDriver(hw_proxy.Proxy):
@@ -76,13 +81,15 @@ class ScannerDriver(hw_proxy.Proxy):
}
def get_device(self):
+ if not evdev:
+ return None
devices = [ device for device in listdir(self.input_dir)]
keyboards = [ device for device in devices if 'kbd' in device ]
scanners = [ device for device in devices if ('barcode' in device.lower()) or ('scanner' in device.lower()) ]
if len(scanners) > 0:
- return InputDevice(join(self.input_dir,scanners[0]))
+ return evdev.InputDevice(join(self.input_dir,scanners[0]))
elif len(keyboards) > 0:
- return InputDevice(join(self.input_dir,keyboards[0]))
+ return evdev.InputDevice(join(self.input_dir,keyboards[0]))
else:
return None
@@ -105,9 +112,9 @@ class ScannerDriver(hw_proxy.Proxy):
device.ungrab()
return ''
for event in device.read():
- if event.type == ecodes.EV_KEY:
+ if event.type == evdev.ecodes.EV_KEY:
+ #_logger.debug('Evdev Keyboard event %s',evdev.categorize(event))
if event.value == 1: # keydown events
- #print categorize(event)
if event.code in self.keymap:
if shift:
barcode.append(self.keymap[event.code][1])