This commit is contained in:
matteo porta 2022-07-13 10:36:58 +02:00
parent 8d96c770db
commit 78ed0c7ebd
2 changed files with 24 additions and 4 deletions

View File

@ -34,6 +34,9 @@ printer:
[tecna_t3] [tecna_t3]
port: COM3 port: COM3
baudrate: 115200 baudrate: 115200
admin_pin: 603
modify_pin: 603
select_pin: 603
[neo_pixels] [neo_pixels]
port: COM1 port: COM1

View File

@ -12,12 +12,32 @@ class TecnaMarpossProvasetT3(ModbusComponent):
def __init__(self, config=None, name=None, period=1, lazy=True, paused=False, threaded=True): def __init__(self, config=None, name=None, period=1, lazy=True, paused=False, threaded=True):
super().__init__(config=config, name=name, period=period, lazy=lazy, paused=paused, threaded=threaded, registers=registers) super().__init__(config=config, name=name, period=period, lazy=lazy, paused=paused, threaded=threaded, registers=registers)
pin_registers = {
"admin_pin": "PASSWORD: Administrator", # was 1909
"modify_pin": "PASSWORD: Modify program", # was 0
"select_pin": "PASSWORD: Select program", # was 0
}
def config_changed(self): def config_changed(self):
super().config_changed() super().config_changed()
# self.set_measure_units() self.pins = {
"admin_pin": self.config.get("admin_pin", None),
"modify_pin": self.config.get("modify_pin", None),
"select_pin": self.config.get("select_pin", None),
}
self.unlock_tecna()
self.set_measure_units()
self.units = self.get_measure_units() self.units = self.get_measure_units()
self.log.info(f"units: {self.units}") self.log.info(f"units: {self.units}")
def unlock_tecna(self, **kwargs):
pins = self.pins.copy()
pins.update(kwargs)
for pin_name, register in self.pin_registers.items():
pin = pins[pin_name]
if pin is not None:
self.write(register, pin)
_pressure_units = {"mH2O": 0, "mbar": 1, "kPa": 2, "mmHg": 3, "inH2O": 4, "psi": 5, "mmH2O": 6, } # (se fondoscala <=6 bar) _pressure_units = {"mH2O": 0, "mbar": 1, "kPa": 2, "mmHg": 3, "inH2O": 4, "psi": 5, "mmH2O": 6, } # (se fondoscala <=6 bar)
_leak_units = {"mmH2O": 0, "mbar": 1, "Pa": 2, "mmHg": 3, "inH2O": 4, "psi": 5, } _leak_units = {"mmH2O": 0, "mbar": 1, "Pa": 2, "mmHg": 3, "inH2O": 4, "psi": 5, }
_leak_flow_units = {"cm3/min": 0, "cm3/h": 1, } _leak_flow_units = {"cm3/min": 0, "cm3/h": 1, }
@ -133,9 +153,6 @@ class TecnaMarpossProvasetT3(ModbusComponent):
recipe_name = recipe.spec["part_number"][:16].encode("ascii") recipe_name = recipe.spec["part_number"][:16].encode("ascii")
recipe_name += b"\x00" * (16 - len(recipe_name)) recipe_name += b"\x00" * (16 - len(recipe_name))
recipe = { recipe = {
"PASSWORD: Administrator": 603, # was 1909
"PASSWORD: Modify program": 603, # was 0
"PASSWORD: Select program": 603, # was 0
"INSTRUMENT SETTING: Various flags": 0b0000000000000000, "INSTRUMENT SETTING: Various flags": 0b0000000000000000,
**{719 + i: (recipe_name[i * 2 + 1] << 8) + recipe_name[i * 2] for i in range(8)}, **{719 + i: (recipe_name[i * 2 + 1] << 8) + recipe_name[i * 2] for i in range(8)},
"Selection number of test table on which you intend to work": table, "Selection number of test table on which you intend to work": table,