This question has been flagged
5085 Views

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)
Avatar
Discard