I have a linux ubuntu desktop with a service returning weight data through a tcp port. Odoo v10 is installed on a remote server.Inside the point of sale instead of typing weight manually, user clicks a button, odoo opens up a socket and gets the weight from the desktop computer. The ports firewall has been opened. I don't receive any values or exceptions in the POS.
NB:/ When odoo is installed in the desktop computer everything works fine.
My code is below:
python:
class WeighBridgeController(http.Controller):
@http.route('/pos/weight/bridge', type='json', auth="user", website="True") def process_weight_data(self, **kw): input_data = kw.get('input_data') # Create a TCP/IP socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_address = ('ip of desktop', port) print 'connecting to %s port %s' % server_address sock.connect(server_address) try: message = 'CLIENT DATA' print 'sending...' sock.send(message) data = '' while True: data = sock.recv(2048) print 'received at new "%s"' % filter(str.isdigit, data) return {"ibos_weight": filter(str.isdigit, data)} except socket.gaierror: print 'Server error!' finally: sock.close()
POs Javascript:
setInterval(function () {
ajax.jsonRpc('/pos/weight/bridge','process_weight_data',{'input_data':0}).then(function (data) {
var weightage_bridge=0;
weightage_bridge=data['ibos_weight'];
document.getElementById('wrdr').value = weightage_bridge;
console.log('Ajax Json RPC Gross POPUP: ' + weightage_bridge);
},function (err) {
console.log('dave err: ' + err.toString());
});
},1)