|
@@ -30,9 +30,18 @@ class Rtu(object):
|
|
|
|
|
|
def client(self, id):
|
|
|
server = Demeter.service('common').one('setting_server', id=id)
|
|
|
- master = modbus_tcp.RtuMaster(serial.Serial(port=server['server_port'], baudrate=9600, bytesize=8, parity='N', stopbits=1, xonxoff=0))
|
|
|
+ port,baudrate = self.port(server['server_port'])
|
|
|
+ master = modbus_rtu.RtuMaster(serial.Serial(port, baudrate=baudrate, bytesize=8, parity='N', stopbits=1, xonxoff=0))
|
|
|
Demeter.service('handle', 'modbus').set(master, server)
|
|
|
|
|
|
def send(self, server, type_info, info, value):
|
|
|
- master = modbus_tcp.RtuMaster(host=server['server_host'], port=int(server['server_port']))
|
|
|
- Demeter.service('handle', 'modbus').send(master, server, type_info, info, value)
|
|
|
+ master = modbus_rtu.RtuMaster(serial.Serial(port, baudrate=baudrate, bytesize=8, parity='N', stopbits=1, xonxoff=0))
|
|
|
+ Demeter.service('handle', 'modbus').send(master, server, type_info, info, value)
|
|
|
+
|
|
|
+ def port(self, port):
|
|
|
+ baudrate = 4800
|
|
|
+ if ':' in port:
|
|
|
+ data = port.split(':')
|
|
|
+ port = data[0]
|
|
|
+ baudrate = int(data[1])
|
|
|
+ return (port, baudrate)
|