Files
2026-08-20 06:17:39 +08:00

28 lines
898 B
Python

import linuxcnc
import os
import hal
import hal_glib
class HandlerClass:
def _on_max_value_change(self,hal_pin,data=None):
self.meter.max = float(hal_pin.get())
self.meter.queue_draw() # force a widget redraw
def __init__(self, halcomp,builder,useropts):
self.builder = builder
# hal pin with change callback.
# When the pin's value changes the callback is executed.
self.max_value = hal_glib.GPin(halcomp.newpin('max-value', hal.HAL_FLOAT, hal.HAL_IN))
self.max_value.connect('value-changed', self._on_max_value_change)
inifile = linuxcnc.ini(os.getenv("INI_FILE_NAME"))
mmax = inifile.getreal("METER", "MAX", fallback=100.0)
self.meter = self.builder.get_object('meter')
self.max_value.set(mmax)
def get_handlers(halcomp,builder,useropts):
return [HandlerClass(halcomp,builder,useropts)]