Clean up easymodbus, rename variables and decouple modbus and can
This commit is contained in:
parent
f751fe58c6
commit
738337c5f8
2 changed files with 11 additions and 36 deletions
16
WebRelay.py
16
WebRelay.py
|
|
@ -1,7 +1,5 @@
|
||||||
import easymodbus.modbusClient
|
|
||||||
from pymodbus.client.sync import ModbusTcpClient
|
from pymodbus.client.sync import ModbusTcpClient
|
||||||
|
|
||||||
|
|
||||||
class WebRelay:
|
class WebRelay:
|
||||||
def __init__(self, n_relay=10):
|
def __init__(self, n_relay=10):
|
||||||
self.n_relay = n_relay
|
self.n_relay = n_relay
|
||||||
|
|
@ -27,20 +25,6 @@ class WebRelay:
|
||||||
self.client.close()
|
self.client.close()
|
||||||
self.client = None
|
self.client = None
|
||||||
|
|
||||||
'''
|
|
||||||
def WriteSingleCoil(self, startingAddress, value)
|
|
||||||
|
|
||||||
Write single Coil to Server device (Function code 5)
|
|
||||||
startingAddress: Coil to be written
|
|
||||||
value: Coil Value to be written
|
|
||||||
|
|
||||||
def WriteMultipleCoils(self, startingAddress, values)
|
|
||||||
|
|
||||||
Write multiple coils to Server device (Function code 15)
|
|
||||||
startingAddress : First coil to be written
|
|
||||||
values: Coil Values [0..quantity-1] to be written
|
|
||||||
'''
|
|
||||||
|
|
||||||
def turn_relay_on(self, relay_id):
|
def turn_relay_on(self, relay_id):
|
||||||
'''
|
'''
|
||||||
:param relay_id: id of relay to turn on
|
:param relay_id: id of relay to turn on
|
||||||
|
|
|
||||||
31
c2m.py
31
c2m.py
|
|
@ -8,9 +8,9 @@ from pubsub import pub
|
||||||
from WebRelay import WebRelay
|
from WebRelay import WebRelay
|
||||||
|
|
||||||
|
|
||||||
class BmsListener (can.Listener):
|
class CanToModbus (can.Listener):
|
||||||
def __init__(self, parent):
|
def __init__(self, modbus_client):
|
||||||
self.parent = parent
|
self.modbus_client = modbus_client
|
||||||
|
|
||||||
def on_message_received(self, msg):
|
def on_message_received(self, msg):
|
||||||
relay_id = msg.arbitration_id
|
relay_id = msg.arbitration_id
|
||||||
|
|
@ -18,26 +18,20 @@ class BmsListener (can.Listener):
|
||||||
print (relay_id, relay_state)
|
print (relay_id, relay_state)
|
||||||
if relay_id < 10:
|
if relay_id < 10:
|
||||||
if relay_state[-1] > 0:
|
if relay_state[-1] > 0:
|
||||||
# pub.sendMessage("turn_relay_on", relay_id=relay_id)
|
self.modbus_client.turn_relay_on(relay_id)
|
||||||
self.parent.turn_relay_on(relay_id)
|
|
||||||
else:
|
else:
|
||||||
# pub.sendMessage("turn_relay_off",relay_id=relay_id)
|
self.modbus_client.turn_relay_off(relay_id)
|
||||||
self.parent.turn_relay_off(relay_id)
|
|
||||||
|
|
||||||
print ("message processed!")
|
|
||||||
|
|
||||||
|
|
||||||
class Model:
|
class PmgrowBms:
|
||||||
def __init__(self, modbus):
|
def __init__(self, add_printer=True):
|
||||||
self.bus = None
|
self.bus = None
|
||||||
self.notifier = None
|
self.notifier = None
|
||||||
self.printer = can.Printer()
|
self.listeners = [can.Printer()] if add_printer else []
|
||||||
self.listen_bms = BmsListener(modbus)
|
|
||||||
|
|
||||||
def start_can(self):
|
def start_can(self):
|
||||||
self.bus = can.Bus()
|
self.bus = can.Bus()
|
||||||
#self.notifier = can.Notifier(self.bus, [self.printer])
|
self.notifier = can.Notifier(self.bus, self.listeners)
|
||||||
self.notifier = can.Notifier(self.bus, [self.printer, self.listen_bms])
|
|
||||||
|
|
||||||
def stop_can(self):
|
def stop_can(self):
|
||||||
self.notifier.stop()
|
self.notifier.stop()
|
||||||
|
|
@ -59,13 +53,10 @@ if __name__ == "__main__":
|
||||||
modbus.apply_network_configs(nc_dict)
|
modbus.apply_network_configs(nc_dict)
|
||||||
modbus.connect_slave()
|
modbus.connect_slave()
|
||||||
|
|
||||||
# pub.subscribe(modbus.turn_relay_on, "turn_relay_on")
|
canbus = PmgrowBms(modbus)
|
||||||
# pub.subscribe(modbus.turn_relay_off, "turn_relay_off")
|
canbus.listeners.append(CanToModbus(modbus))
|
||||||
|
|
||||||
canbus = Model(modbus)
|
|
||||||
|
|
||||||
canbus.start_can()
|
canbus.start_can()
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
# modbus.client.is_connected()
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue