예제 #1
0
def main():
    """ Main function """

    codenames = []
    for channel in settings.channels.values():
        channel['reader'] = SocketReaderClass(channel['host'], channel['port'],
                                              channel['command'])
        channel['reader'].start()
        channel['logger'] = ValueLogger(channel['reader'], comp_val=channel['comp_value'])
        channel['logger'].daemon = True
        channel['logger'].start()
        codenames.append(channel['codename'])

    db_logger = ContinuousDataSaver(continuous_data_table=settings.dateplot_table,
                                    username=credentials.user,
                                    password=credentials.passwd,
                                    measurement_codenames=codenames)
    db_logger.start()

    time.sleep(2)

    everything_ok = True
    while everything_ok:
        time.sleep(0.25)
        for channel in settings.channels.values():
            if not channel['reader'].isAlive():
                everything_ok = False
            value = channel['logger'].read_value()
            if channel['logger'].read_trigged():
                print(value)
                db_logger.save_point_now(channel['codename'], value)
                channel['logger'].clear_trigged()
예제 #2
0
def main():
    """ Main function """
    logging.basicConfig(filename="logger.txt", level=logging.ERROR)
    logging.basicConfig(level=logging.ERROR)

    hih_instance = honeywell_6000.HIH6130()
    reader = Reader(hih_instance)
    reader.daemon = True
    reader.start()

    time.sleep(5)

    codenames = ['chemlab312_temperature', 'chemlab312_humidity']

    loggers = {}
    loggers[codenames[0]] = ValueLogger(reader, comp_val=0.2, comp_type='lin', channel=1)
    loggers[codenames[0]].daemon = True
    loggers[codenames[0]].start()
    loggers[codenames[1]] = ValueLogger(reader, comp_val=0.2, comp_type='lin', channel=2)
    loggers[codenames[1]].daemon = True
    loggers[codenames[1]].start()

    livesocket = LiveSocket('Chemlab312 Air Logger', codenames)
    livesocket.start()

    socket = DateDataPullSocket('Chemlab312 Air Logger', codenames,
                                timeouts=[1.0] * len(loggers))
    socket.start()

    db_logger = ContinuousDataSaver(continuous_data_table='dateplots_chemlab312',
                                    username=credentials.user,
                                    password=credentials.passwd,
                                    measurement_codenames=codenames)
    db_logger.start()

    while reader.isAlive():
        time.sleep(0.5)
        for name in codenames:
            value = loggers[name].read_value()
            livesocket.set_point_now(name, value)
            socket.set_point_now(name, value)
            if loggers[name].read_trigged():
                print(value)
                db_logger.save_point_now(name, value)
                loggers[name].clear_trigged()
예제 #3
0
def main():
    """ Main function """

    codenames = []
    for channel in settings.channels.values():
        channel['reader'] = SocketReaderClass(channel['host'], channel['port'],
                                              channel['command'])
        channel['reader'].start()
        channel['logger'] = ValueLogger(channel['reader'], comp_val=channel['comp_value'])
        channel['logger'].daemon = True
        channel['logger'].start()
        codenames.append(channel['codename'])

    try:
        port = settings.port_number
    except AttributeError:
        port = 9000
    pullsocket = DateDataPullSocket(settings.user + '-socket_logger',
                                    codenames, timeouts=5, port=port)
    pullsocket.start()

        
    db_logger = ContinuousDataSaver(continuous_data_table=settings.dateplot_table,
                                    username=settings.user,
                                    password=settings.passwd,
                                    measurement_codenames=codenames)
    db_logger.start()

    time.sleep(2)

    everything_ok = True
    while everything_ok:
        time.sleep(0.25)
        for channel in settings.channels.values():
            if not channel['reader'].isAlive():
                everything_ok = False
                # Report error here!!!
                # Consider to keep program running even in case of
                # socket failures
            value = channel['logger'].read_value()
            pullsocket.set_point_now(channel['codename'], value)
            if channel['logger'].read_trigged():
                print(value)
                db_logger.save_point_now(channel['codename'], value)
                channel['logger'].clear_trigged()
예제 #4
0
        self.quit = True

#logging.basicConfig(filename="logger.txt", level=logging.ERROR)
#logging.basicConfig(level=logging.ERROR)

dmm_port = '/dev/serial/by-id/usb-9710_7840-if00-port0'
dmm = keithley2700.Keithley2700('serial', device=dmm_port)
reader = DmmReader(dmm)
reader.daemon = True
reader.start()

codenames = ['omicron_rtd_resistance',]
loggers = {}
for i in range(0, len(codenames)):
    loggers[codenames[i]] = ValueLogger(reader, maximumtime=60, comp_type = 'lin', comp_val = 0.1, channel = i)
    loggers[codenames[i]].daemon = True
    loggers[codenames[i]].start()

socket = DateDataPullSocket('omicron_rtd_resistance',
                            codenames, port=9001, timeouts=[5.0] * len(codenames))
socket.daemon = True
socket.start()

#db_logger = ContinuousLogger(table='dateplots_omicron',
#                                 username=credentials.user,
#                                 password=credentials.passwd,
#                                 measurement_codenames=codenames)
#db_logger.daemon = True
#db_logger.start()

time.sleep(5)
예제 #5
0
        self.quit = True


ngc2d_port = '/dev/serial/by-id/usb-9710_7840-if00-port0'
omega_port = 'usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0'
iongauge = NGC2d.NGC2d(device=ngc2d_port)
omega = omegabus.OmegaBus(device=omega_port)
reader = Reader(iongauge, omega)
reader.daemon = True
reader.start()

codenames = ['omicron_nanobeam_pressure', 'omicron_nanobeam_temperature']
loggers = {}
for i in range(0, len(codenames)):
    loggers[codenames[i]] = ValueLogger(reader, maximumtime=60, comp_type = 'lin', comp_val = 0.1, channel = i)
    loggers[codenames[i]].daemon = True
    loggers[codenames[i]].start()
socket = DateDataPullSocket('omicron_nanobeam',
                            codenames, port=9000, timeouts=[5.0] * len(codenames))
socket.daemon = True
socket.start()

#db_logger = ContinuousLogger(table='dateplots_omicron',
#                             username=credentials.user,
#                             password=credentials.passwd,
#                             measurement_codenames=codenames)
#db_logger.daemon = True
#db_logger.start()

time.sleep(5)
run = True