Exemple #1
0
def main():
    """Main function"""
    pvci = PVCi('/dev/serial/by-id/'
                'usb-FTDI_USB-RS485_Cable_FTY3M2GN-if00-port0')

    # Start live socket
    live_socket = LiveSocket(
        'thetaprobe_pvci',
        list(CODENAME_TRANSLATION.keys()) + list(EXTRA_LIVE.keys()),
    )
    live_socket.start()

    # Start database saver
    database_saver = ContinuousDataSaver('dateplots_thetaprobe',
                                         credentials.USERNAME,
                                         credentials.PASSWORD,
                                         list(CODENAME_TRANSLATION.keys()))
    database_saver.start()

    # Set up criterium checker
    criterium_checker = LoggingCriteriumChecker(
        codenames=list(CODENAME_TRANSLATION.keys()),
        types=['log', 'log', 'lin'],
        criteria=[0.1, 0.1, 1.0],
    )

    try:
        run(pvci, live_socket, database_saver, criterium_checker)
    except KeyboardInterrupt:
        pvci.close()
        live_socket.stop()
        database_saver.stop()
Exemple #2
0
def main():
    """ Main function """
    logging.basicConfig(filename="logger.txt", level=logging.ERROR)
    logging.basicConfig(level=logging.ERROR)

    #port = '/dev/serial/by-id/usb-FTDI_USB-RS485_Cable_FTY5BU0H-if00-port0'
    port = '/dev/serial/by-id/usb-FTDI_USB-RS485_Cable_FTY3GX3T-if00-port0'

    # Set up criterium logger
    logger = LoggingCriteriumChecker(
        codenames=[CODENAME],
        types=['lin'],
        criteria=[0.2],
        time_outs=[300],
    )

    # Set up pullsocket
    datasocket = DateDataPullSocket('mgw_temp', [CODENAME],
                                    timeouts=4,
                                    port=9000)
    datasocket.start()

    db_logger = ContinuousDataSaver(continuous_data_table='dateplots_omicron',
                                    username=credentials.user,
                                    password=credentials.passwd,
                                    measurement_codenames=[CODENAME])
    db_logger.start()

    measurement = TcReader(port, datasocket, logger, db_logger)
    measurement.start()
Exemple #3
0
def main():
    """ Main function """
    logging.basicConfig(filename="logger.txt", level=logging.ERROR)
    logging.basicConfig(level=logging.ERROR)

    ports = dict()
    ports[
        'Sample'] = '/dev/serial/by-id/usb-FTDI_USB-RS485_Cable_FTY5BU0H-if00-port0'
    ports[
        'Base'] = '/dev/serial/by-id/usb-FTDI_USB-RS485_Cable_FTY3GX3T-if00-port0'

    # Set up criterium logger
    logger = LoggingCriteriumChecker(
        codenames=[CODENAMES['Base']],
        types=['lin'],
        criteria=[0.2],
        time_outs=[300],
    )

    # Set up pullsocket
    datasocket = DateDataPullSocket('mgw_temp',
                                    list(CODENAMES.values()),
                                    timeouts=4,
                                    port=9000)
    datasocket.start()

    db_logger = ContinuousDataSaver(continuous_data_table='dateplots_omicron',
                                    username=credentials.user,
                                    password=credentials.passwd,
                                    measurement_codenames=[CODENAMES['Base']])
    db_logger.start()

    measurement = TcReader(ports['Base'],
                           datasocket,
                           crit_logger=logger,
                           db_logger=db_logger,
                           codename=CODENAMES['Base'])
    measurement.start()

    sample_logger = TcReader(ports['Sample'],
                             datasocket,
                             codename=CODENAMES['Sample'])
    sample_logger.start()

    time.sleep(5)
    string = 'Base: {: >6.4} C, Sample: {: >6.4} C'
    while True:
        try:
            time.sleep(1)
            print(
                string.format(measurement.temperature,
                              sample_logger.temperature))
        except KeyboardInterrupt:
            measurement.stop()
            sample_logger.stop()
            time.sleep(2)
            print('\nTcReaders stopped')
            datasocket.stop()
            print('Pullsocket stopped\nExiting.')
            break
def main():
    """ Main function """
    ports = dict()
    ports['Sample'] = '/dev/serial/by-id/usb-FTDI_USB-RS485_Cable_FTY5BU0H-if00-port0'
    ports['Base'] =   '/dev/serial/by-id/usb-FTDI_USB-RS485_Cable_FTY3GX3T-if00-port0'

    # Set up criterium logger
    logger = LoggingCriteriumChecker(
        codenames=[CODENAMES['Base']],
        types=['lin'],
        criteria=[0.73],
        time_outs=[600],
        low_compare_values=[-200],
        )

    # Set up pullsocket
    datasocket = DateDataPullSocket('mgw_temp', list(CODENAMES.values()), timeouts=4, port=9000)
    datasocket.start()

    db_logger = ContinuousDataSaver(continuous_data_table='dateplots_omicron',
                                    username=credentials.user,
                                    password=credentials.passwd,
                                    measurement_codenames=[CODENAMES['Base']])
    db_logger.start()

    logger1 = LOGGER.getChild('Base_reader')
    measurement = TcReader(ports['Base'], datasocket, crit_logger=logger, db_logger=db_logger, codename=CODENAMES['Base'], logger=logger1)
    measurement.start()

    logger2 = LOGGER.getChild('Sample_reader')
    sample_logger = TcReader(ports['Sample'], datasocket, codename=CODENAMES['Sample'], logger=logger2)
    sample_logger.start()

    time.sleep(2)
    string = 'Base: {: <6.4} C, Sample: {: <6.4} C'
    while True:
        try:
            time.sleep(1)
            sample = sample_logger.temperature
            if sample is None:
                sample = '----'
            base = measurement.temperature
            if base is None:
                base = '----'
            print(string.format(base, sample))
        except ValueError:
            print('ValueError')
            print(repr(measurement.temperature), type(measurement.temperature))
            print(repr(sample_logger.temperature))
        except KeyboardInterrupt:
            measurement.stop()
            sample_logger.stop()
            time.sleep(2)
            LOGGER.info('\nTcReaders stopped')
            datasocket.stop()
            LOGGER.info('Pullsocket stopped\nExiting.')
            break
Exemple #5
0
def main():
    """ Main function """
    wp.wiringPiSetup()
    datasocket = DateDataPullSocket(
        'furnaceroom_controller',
        ['temperature', 'setpoint', 'dutycycle', 'pid_p', 'pid_i'],
        timeouts=999999,
        port=9000)
    datasocket.start()

    pushsocket = DataPushSocket('furnaceroom_push_control',
                                action='store_last')
    pushsocket.start()

    power_calculator = PowerCalculatorClass(datasocket, pushsocket)
    power_calculator.daemon = True
    power_calculator.start()

    codenames = [
        'fr307_furnace_1_dutycycle', 'fr307_furnace_1_S',
        'fr307_furnace_1_pid_p', 'fr307_furnace_1_pid_i'
    ]
    db_logger = ContinuousDataSaver(
        continuous_data_table='dateplots_furnaceroom307',
        username=credentials.user,
        password=credentials.passwd,
        measurement_codenames=codenames)
    db_logger.start()

    # Criterium checker
    criterium_checker = LoggingCriteriumChecker(
        codenames=codenames,
        types=['lin'] * len(codenames),
        criteria=[0.1, 0.99, 1., 1.],
        time_outs=[60, 600, 300, 300],
    )

    heater = HeaterClass(power_calculator, datasocket, db_logger,
                         criterium_checker)
    heater.start()

    tui = CursesTui(heater)
    tui.daemon = True
    tui.start()
    # make sure tui close down properly and the T setpoint is put low.
    try:
        while not heater.quit:
            time.sleep(1)
    except KeyboardInterrupt:
        print("Keyboard Interrupt detected, closing program")
        heater.quit = True
    finally:
        power_calculator.quit = True
        time.sleep(0.1)
        tui.stop()
def main():
    """Main function """
    pvci = epimax.PVCi(
        '/dev/serial/by-id/'
        'usb-FTDI_USB-RS485_Cable_FT0N0UFX-if00-port0',
        slave_address=1)

    # Start live socket
    live_socket = LiveSocket(
        'omicron_pvci',
        list(CODENAME_TRANSLATION.keys()),
    )
    live_socket.start()

    # Start pull socket
    pullsocket = DateDataPullSocket(
        'omicron_pvci_pull',
        list(CODENAME_TRANSLATION.keys()),
        timeouts=2.5,
    )
    pullsocket.start()

    # Start database saver
    database_saver = ContinuousDataSaver(
        'dateplots_omicron',
        credentials.USERNAME,
        credentials.PASSWORD,
        list(CODENAME_TRANSLATION.keys()),
    )
    database_saver.start()

    # Criterium checker
    criterium_checker = LoggingCriteriumChecker(
        codenames=list(CODENAME_TRANSLATION.keys()),
        types=['log'] * len(CODENAME_TRANSLATION.keys()),
        criteria=[0.05] * len(CODENAME_TRANSLATION.keys()),
        time_outs=[300] * len(CODENAME_TRANSLATION.keys()),
    )

    # Main loop
    try:
        run(pvci, live_socket, pullsocket, database_saver, criterium_checker)
    except KeyboardInterrupt:
        sleep(WAIT)
        pvci.close()
        live_socket.stop()
        pullsocket.stop()
        database_saver.stop()
    except:
        LOG.exception("Omicron pvci data logger stopped")
Exemple #7
0
    iongauge = NGC2D.NGC2D_comm(device=ngc2d_port)
    omega = omega_cni.ISeries(omega_port, 9600, comm_stnd='rs232')

    # Codenames
    codenames = ['omicron_nanobeam_pressure',
                 'omicron_nanobeam_temperature']
    pullsocket = DateDataPullSocket('nanobeam_state', codenames, timeouts=4, port=9000)
    reader = Reader(iongauge, omega, codenames, pullsocket)
    reader.daemon = True
    reader.start()
    print('Codenames used: {}'.format(codenames))

    # Criterium checker
    criterium_checker = LoggingCriteriumChecker(
        codenames=codenames,
        types=['log', 'lin'],
        criteria=[0.15, 0.5],
        time_outs=[600, 600],
        )

    db_logger = ContinuousDataSaver(
        'dateplots_omicron',
        credentials.user,
        credentials.passwd,
        codenames)
    db_logger.daemon = True
    db_logger.start()
    print('Starting database logger')
    time.sleep(1)

    run = True
    t0 = time.time()
Exemple #8
0
    # Codenames
    codenames = ['omicron_nanobeam_pressure', 'omicron_nanobeam_temperature']
    pullsocket = DateDataPullSocket('nanobeam_state',
                                    codenames,
                                    timeouts=4,
                                    port=9000)
    reader = Reader(iongauge, omega, codenames, pullsocket)
    reader.daemon = True
    reader.start()
    print('Codenames used: {}'.format(codenames))

    # Criterium checker
    criterium_checker = LoggingCriteriumChecker(
        codenames=codenames,
        types=['log', 'lin'],
        criteria=[0.15, 0.5],
        time_outs=[600, 600],
    )

    db_logger = ContinuousDataSaver('dateplots_omicron', credentials.user,
                                    credentials.passwd, codenames)
    db_logger.daemon = True
    db_logger.start()
    print('Starting database logger')
    time.sleep(1)

    run = True
    t0 = time.time()
    while run:
        try:
            time.sleep(1)
    )
    pullsocket.start()

    # Start database saver
    database_saver = ContinuousDataSaver(
        'dateplots_omicron',
        credentials.USERNAME,
        credentials.PASSWORD,
        list(CODENAME_TRANSLATION.keys()),
    )
    database_saver.start()

    # Criterium checker
    criterium_checker = LoggingCriteriumChecker(
        codenames=list(CODENAME_TRANSLATION.keys()),
        types=['log'] * len(CODENAME_TRANSLATION.keys()),
        criteria=[0.05] * len(CODENAME_TRANSLATION.keys()),
        time_outs=[300] * len(CODENAME_TRANSLATION.keys()),
    )

    # Main loop
    data_logger = DataLogger(pvci, live_socket, pullsocket, database_saver,
                             criterium_checker)
    data_logger.start()

    printer = ValuePrinter(data_logger)
    printer.start()

    while True:
        try:
            sleep(3)
            if not printer.is_alive():