Source code for qtpyvcp.actions.coolant_actions

import os
import linuxcnc

# Set up logging
from qtpyvcp.utilities import logger
LOG = logger.getLogger(__name__)

from qtpyvcp.plugins import getPlugin
from qtpyvcp.utilities.qt_safety import safe_qt_callback

IN_DESIGNER = os.getenv('DESIGNER', False)
if not IN_DESIGNER:
    STATUS = getPlugin('status')
    STAT = STATUS.stat

CMD = linuxcnc.command()

#==============================================================================
# Coolent actions
#==============================================================================

[docs] class flood: """Flood Actions Group"""
[docs] @staticmethod def on(): """Turns Flood coolant ON ActionButton syntax:: coolant.flood.on """ LOG.debug("Turning Flood coolant green<ON>") CMD.flood(linuxcnc.FLOOD_ON)
[docs] @staticmethod def off(): """Turns Flood coolant OFF ActionButton syntax:: coolant.flood.off """ LOG.debug("Turning Flood coolant red<OFF>") CMD.flood(linuxcnc.FLOOD_OFF)
[docs] @staticmethod def toggle(): """Toggles Flood coolant ON/OFF ActionButton syntax:: coolant.flood.toggle """ if STAT.flood == linuxcnc.FLOOD_ON: flood.off() else: flood.on()
[docs] class mist: """Mist Actions Group"""
[docs] @staticmethod def on(): """Turns Mist coolant ON ActionButton syntax:: coolant.mist.on """ LOG.debug("Turning Mist coolant green<ON>") CMD.mist(linuxcnc.MIST_ON)
[docs] @staticmethod def off(): """Turns Mist coolant OFF ActionButton syntax:: coolant.mist.off """ LOG.debug("Turning Mist coolant red<OFF>") CMD.mist(linuxcnc.MIST_OFF)
[docs] @staticmethod def toggle(): """Toggles Mist coolant ON/OFF ActionButton syntax:: coolant.mist.toggle """ if STAT.mist == linuxcnc.MIST_ON: mist.off() else: mist.on()
def _coolant_ok(widget=None): """Checks if it is OK to turn coolant ON. Args: widget (QWidget, optional) : Widget to enable/disable according to result. Atributes: msg (string) : The reason the action is not permitted, or empty if permitted. Retuns: bool : True if OK, else False. """ if STAT.task_state == linuxcnc.STATE_ON: ok = True msg = "" else: ok = False msg = "Can't turn on coolant when machine is not ON" _coolant_ok.msg = msg if widget is not None: widget.setEnabled(ok) widget.setStatusTip(msg) widget.setToolTip(msg) return ok def _flood_bindOk(widget): _coolant_ok(widget) widget.setChecked(STAT.flood == linuxcnc.FLOOD_ON) STATUS.task_state.onValueChanged(safe_qt_callback(widget, lambda *args, **kwargs: _coolant_ok(widget))) STATUS.flood.onValueChanged(safe_qt_callback(widget, lambda s: widget.setChecked(s == linuxcnc.FLOOD_ON))) def _mist_bindOk(widget): _coolant_ok(widget) widget.setChecked(STAT.mist == linuxcnc.MIST_ON) STATUS.task_state.onValueChanged(safe_qt_callback(widget, lambda *args, **kwargs: _coolant_ok(widget))) STATUS.mist.onValueChanged(safe_qt_callback(widget, lambda s: widget.setChecked(s == linuxcnc.MIST_ON))) flood.on.ok = flood.off.ok = flood.toggle.ok = _coolant_ok flood.on.bindOk = flood.off.bindOk = flood.toggle.bindOk = _flood_bindOk mist.on.ok = mist.off.ok = mist.toggle.ok = _coolant_ok mist.on.bindOk = mist.off.bindOk = mist.toggle.bindOk = _mist_bindOk