def test5_0_iter_pins(self): """ GpioCtrl >5_0> read cfg and iterate a couple of times over the pins """ ctrl = GpioCtrl(self.opt) ctrl.read_cfg() cfg = { 'groups':'a', 'prio':'0', 'duration':'10', } ctrl.set_pin_cfg('1', cfg) ctrl.set_pin_cfg('2', cfg) ctrl.set_pin_cfg('3', cfg) ctrl.set_pin_cfg('1', {'start':'00:05'}) ctrl.set_pin_cfg('2', {'start':'00:10'}) ctrl.set_pin_cfg('3', {'start':'00:15'}) print "### Before arrange" for key, item in ctrl.gpio_pins.items(): if isinstance(item, MainPin): print "MainPin: ", key else: print "SlavePin: ", key, item.get_dt_on(), item.get_dt_off() ctrl.arrange_pins(True) print "### After arrange" for key, item in ctrl.gpio_pins.items(): if not isinstance(item, MainPin): print "SlavePin: ", key, item.get_dt_on(), item.get_dt_off() # t0 dt = self.create_dt(5, 0) ctrl.trigger_pins(dt) mask = {'1': '1', '2': '0', '3': '0'} self.check_pins(ctrl, mask) # t1 dt = self.create_dt(16, 0) ctrl.trigger_pins(dt) mask = {'1': '0', '2': '1', '3': '0'} self.check_pins(ctrl, mask) # t2 dt = self.create_dt(25, 0) ctrl.trigger_pins(dt) mask = {'1': '0', '2': '0', '3': '1'} self.check_pins(ctrl, mask)
def test3_1_check_arrangement_group_collision(self): """ GpioCtrl >3_1> Pins are grouped, times are equal, rpio differ """ ctrl = GpioCtrl(self.opt) ctrl.read_cfg() ctrl.set_pin_cfg('1', {'groups':'a', 'start':'00:00', 'prio':'0', 'duration':'10', }) ctrl.set_pin_cfg('2', {'groups':'a', 'start':'00:00', 'prio':'1', 'duration':'10', }) ctrl.set_pin_cfg('3', {'groups':'a', 'start':'00:00', 'prio':'2', 'duration':'10', }) ctrl.set_pin_cfg('4', {'groups':'b', 'start':'00:00', 'prio':'0', 'duration':'10', }) ctrl.set_pin_cfg('5', {'groups':'b'}) pincfg_path = "%s/%s/etc/raspigpioctrl/" % (PREFIX, self.opt['-r']) pin1 = SlavePin(self.opt, "%s/pin1.cfg" % pincfg_path) pin1.set_cfg({'groups':'a', 'start':'00:00', 'prio':'0', 'duration':'10', }) pin2 = SlavePin(self.opt, "%s/pin2.cfg" % pincfg_path) pin2.set_cfg({'groups':'a', 'start':'00:10', 'prio':'1', 'duration':'10', }) pin3 = SlavePin(self.opt, "%s/pin3.cfg" % pincfg_path) pin3.set_cfg({'groups':'a', 'start':'00:20', 'prio':'2', 'duration':'10', }) pin4 = SlavePin(self.opt, "%s/pin4.cfg" % pincfg_path) pin4.set_cfg({'groups':'b', 'start':'00:00', 'prio':'0', 'duration':'10', }) pin5 = MainPin(self.opt, "%s/main5.cfg" % pincfg_path) pin5.set_cfg({'groups':'b'}) exp_items = { 'gpio_pins': { '1': pin1, '2': pin2, '3': pin3, '4': pin4, '5': pin5, } } ctrl.arrange_pins() self.check(ctrl, exp_items)