Example #1
0
def test_selector():

    _log = Logger("sel-test", Level.INFO)
    #   _i2c_scanner = I2CScanner(Level.WARN)
    #   if not _i2c_scanner.has_address([0x0F]):
    #       _log.warning('test ignored: no rotary encoder found.')
    #       return

    _selector = None

    try:
        # read YAML configuration
        _loader = ConfigLoader(Level.INFO)
        filename = 'config.yaml'
        _config = _loader.configure(filename)
        _selector = Selector(_config, Level.INFO)
        _count = 0
        _updates = 0
        _rate = Rate(20)
        _last_value = 0
        _limit = 45
        _log.info('live-updating from rotary encoder...')
        while _updates < _limit:
            _value = _selector.read()
            if _value != _last_value:
                _updates += 1
                _log.info(Style.BRIGHT +
                          'returned value: {:d}; updates remaining: {:d}'.
                          format(_value, _limit - _updates))
            else:
                _log.info(Style.DIM +
                          'returned value: {:d}; updates remaining: {:d}'.
                          format(_value, _limit - _updates))
            _last_value = _value
            _count += 1
            if _count % 33 == 0:
                _log.info('waiting…')
            _rate.wait()

    finally:
        if _selector:
            _selector.reset()
Example #2
0
args = parser.parse_args()

LOG_FN = 'log/scl_agent_%s.log' % str(args.sw_id) \
        if args.log2file else None
LEVEL = logging.DEBUG if args.debug else logging.INFO
logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    datefmt='%Y%m%d %H:%M:%S',
    level=LEVEL,
    filename=LOG_FN,
    filemode='w')
logger = logging.getLogger(__name__)

timer = Timer(logger)
streams = scl.Streams(logger)
selector = Selector()
scl2sw = scl.Scl2Sw(local_ctrl_host, local_ctrl_port, streams, logger)
if args.channel == 'udp':
    scl2scl = scl.Scl2SclUdp(streams, logger, agent_list[args.sw_id],
                             scl_agent_port, scl_proxy_port)
else:
    scl2scl = scl.Scl2SclTcp(streams, logger, agent_list[args.sw_id],
                             proxy_list, scl_proxy_port, timer)

timer.start()  # another thread, daemonize

while True:
    timer.wait(selector)
    scl2scl.wait(selector)
    scl2sw.wait(selector)
    lists = selector.block()