Пример #1
0
def main():
    init_logging('power_controlled_lights.log')

    logging.info('Reading settings configuration file')
    cfg = ConfigParser()
    cfg.read('settings.cfg')

    device_cfg = ConfigParser()
    device_cfg.read('device_settings.cfg')

    logging.info('Initializing LED strip driver')
    color_strip = ColorStrip(device_cfg, LED_FREQ_HZ)

    signal.signal(signal.SIGTERM,
                  lambda: color_strip.set_color(RgbColor(0, 0, 0)))

    logging.info('Creating ANT+ node')
    node = AntPlusNode(NETWORK_KEY)

    try:
        logging.info('Attaching ANT+ power meter')
        pwr_meter = node.attach_power_meter()
        logging.info('Initializing power light controller')
        plc = PowerLightController(node.stop, None, cfg, pwr_meter,
                                   color_strip)
        logging.info('Starting ANT+ node')
        node.start()
    except Exception as e:
        logging.error('Caught exception "%s"' % str(e))
        raise
    finally:
        logging.info('Turning off LED strip')
        color_strip.set_color(RgbColor(0, 0, 0))
        logging.info('Stopping ANT+ node')
        node.stop()
Пример #2
0
def main():
    init_logging('hr_controlled_fan.log')

    logging.info('Reading settings configuration file')
    cfg = ConfigParser()
    cfg.read('settings.cfg')

    device_cfg = ConfigParser()
    device_cfg.read('device_settings.cfg')

    logging.info('Initializing fan driver')
    fan = FourSpeedRealayFan(device_cfg)

    logging.info('Creating ANT+ node')
    node = AntPlusNode(NETWORK_KEY)
    
    try:
        logging.info('Attaching ANT+ heart rate monitor')
        hrm = node.attach_hrm()
        logging.info('Initializing heart rate fan controller')
        hfc = HRFanController(node.stop, None, cfg, hrm, fan)
        logging.info('Starting ANT+ node')        
        node.start()
    except Exception as e:
        logging.error('Caught exception "%s"' % str(e))
        raise
    finally:
        logging.info('Turning off fan')
        fan.select_speed(0)
        logging.info('Stopping ANT+ node')
        node.stop()
Пример #3
0
def main():
    node = AntPlusNode(NETWORK_KEY)

    try:
        cadence_sensor = node.attach_cadence_sensor()
        cadence_sensor.on_cadence_data = print_cadence
        node.start()
    finally:
        node.stop()
def main():
    node = AntPlusNode(NETWORK_KEY)
    
    try:
        power_meter = node.attach_power_meter()
        power_meter.on_power_data = print_power
        power_meter.on_cadence_data = print_cadence
        node.start()
    finally:
        node.stop()
def main():
    init_logging('control_fan_and_lights.log')

    logging.info('Reading settings configuration file')
    cfg = ConfigParser()
    cfg.read('settings.cfg')

    device_cfg = ConfigParser()
    device_cfg.read('device_settings.cfg')

    logging.info('Initializing fan driver')
    fan = FourSpeedRealayFan(device_cfg)
    logging.info('Initializing LED strip driver')
    color_strip = ColorStrip(device_cfg, LED_FREQ_HZ)

    signal.signal(signal.SIGTERM,
                  lambda: color_strip.set_color(RgbColor(0, 0, 0)))

    logging.info('Creating ANT+ node')
    node = AntPlusNode(NETWORK_KEY)

    try:
        node_stopper = TwoClientNodeStopper(node)
        logging.info('Attaching ANT+ heart rate monitor')
        hrm = node.attach_hrm()
        logging.info('Initializing heart rate fan controller')
        hfc = HRFanController(node_stopper.stop_client1,
                              node_stopper.cancel_stop_client1, cfg, hrm, fan)
        logging.info('Attaching ANT+ power meter')
        pwr_meter = node.attach_power_meter()
        meter_id = node.check_id_of_power_meter()
        logging.info('Initializing power light controller')
        plc = PowerLightController(node_stopper.stop_client2,
                                   node_stopper.cancel_stop_client2, cfg,
                                   pwr_meter, color_strip)
        logging.info('Starting ANT+ node')
        node.start()
    except Exception as e:
        logging.error('Caught exception "%s"' % str(e))
        raise
    finally:
        logging.info('Turning off fan')
        fan.select_speed(0)
        logging.info('Turning off LED strip')
        color_strip.set_color(RgbColor(0, 0, 0))
        logging.info('Stopping ANT+ node')
        node.stop()
Пример #6
0
def main():
    node = AntPlusNode(NETWORK_KEY)

    try:
        # https://support.wahoofitness.com/hc/en-us/articles/115000738484-Tire-Size-Chart
        # 700x18c = 2.07
        # 700x19c = 2.08
        # 700x20c = 2.086
        # 700x23c = 2.096
        # 700x25c = 2.105
        # 700x28c = 2.136
        speed_sensor = node.attach_speed_sensor(
            wheel_circumference_meters=2.105)
        speed_sensor.on_speed_data = print_speed
        node.start()
    finally:
        node.stop()
def main():
    parser = argparse.ArgumentParser(
        description=
        'Monitor and print speed and cadence from ANT+ speed and cadence sensors'
    )

    parser.add_argument(
        '-c',
        '--combined',
        action='store_true',
        default=False,
        help=
        'Connect to separate speed and cadence sensors (some speed and cadence devices may work as individual speed and cadence senors)'
    )

    args = parser.parse_args()

    node = AntPlusNode(NETWORK_KEY)

    try:
        # https://support.wahoofitness.com/hc/en-us/articles/115000738484-Tire-Size-Chart
        # 700x18c = 2.07
        # 700x19c = 2.08
        # 700x20c = 2.086
        # 700x23c = 2.096
        # 700x25c = 2.105
        # 700x28c = 2.136
        wheel_circumference_meters = 2.105
        if args.combined:
            speed_and_cadence_sensor = node.attach_combined_speed_and_cadence_sensor(
                wheel_circumference_meters=wheel_circumference_meters)
        else:
            speed_and_cadence_sensor = node.attach_speed_and_cadence_sensor(
                wheel_circumference_meters=wheel_circumference_meters)
        speed_and_cadence_sensor.on_speed_data = print_speed
        speed_and_cadence_sensor.on_cadence_data = print_cadence
        node.start()
    finally:
        node.stop()