def main(): """ The main function runs a loop that waits for dbus calls, drives the leds and reads the switch. """ try: config = ConfigParser() config.read(constants.get_config_file()) i2c_address = int(config.get('OpenMotics', 'leds_i2c_address'), 16) led_controller = LedController(Hardware.get_i2c_device(), i2c_address, Hardware.get_gpio_input()) led_controller.start() led_controller.set_led(Hardware.Led.POWER, True) DBusService('led_service', event_receiver=lambda *args, **kwargs: led_controller.event_receiver(*args, **kwargs), get_state=led_controller.get_state) LOGGER.log("Running led service.") mainloop = gobject.MainLoop() gobject.timeout_add(250, led_controller.drive_leds) gobject.timeout_add(250, led_controller.check_button) mainloop.run() except Exception as exception: LOGGER.log('Error starting led service: {0}'.format(exception))
def main(): """ The main function runs a loop that waits for om bus calls, drives the leds and reads the switch. """ try: logger.info('Starting led service...') config = ConfigParser() config.read(constants.get_config_file()) i2c_address = int(config.get('OpenMotics', 'leds_i2c_address'), 16) led_controller = LedController(Hardware.get_i2c_device(), i2c_address, Hardware.get_gpio_input()) led_controller.start() led_controller.set_led(Hardware.Led.POWER, True) signal_request = {'stop': False} def stop(signum, frame): """ This function is called on SIGTERM. """ _ = signum, frame logger.info('Stopping led service...') led_controller.stop() logger.info('Stopping led service...Done') signal_request['stop'] = True signal(SIGTERM, stop) logger.info('Starting led service... Done') while not signal_request['stop']: time.sleep(1) except Exception as exception: logger.exception('Error starting led service: {0}'.format(exception))
def main(): """ The main function runs a loop that waits for dbus calls, drives the leds and reads the switch. """ try: config = ConfigParser() config.read(constants.get_config_file()) dbus.mainloop.glib.DBusGMainLoop(set_as_default=True) system_bus = dbus.SystemBus() _ = dbus.service.BusName("com.openmotics.status", system_bus) # Initializes the bus # The above `_ = dbus...` need to be there, or the bus won't be initialized i2c_device = Hardware.get_i2c_device() i2c_address = int(config.get('OpenMotics', 'leds_i2c_address'), 16) status = StatusObject(system_bus, '/com/openmotics/status', i2c_device, i2c_address, Hardware.get_gpio_input()) status.start() status.set_led(Hardware.Led.POWER, True) LOGGER.log("Running led service.") mainloop = gobject.MainLoop() gobject.timeout_add(250, status.drive_leds) gobject.timeout_add(250, status.check_button) mainloop.run() except Exception as exception: LOGGER.log('Error starting led service: {0}'.format(exception))