#!/usr/bin/python
'''xmlrpc wrapper around the keithley driver'''

import stardice.daemon_servers
import keithley.keithley as keithley
import os

if __name__ == "__main__":
    import optparse 
    parser = optparse.OptionParser(usage="%prog [-l log] [-d]")
    parser.add_option('-d', '--daemon', default=False, 
                      action='store_true', 
                      help='Run as a background daemon')
    parser.add_option('--dummy', default=False, 
                      action='store_true', 
                      help='Run a fake instance instead')
    parser.add_option('-p', '--port', default=8765, 
                      action='store', type='int', 
                      help='Listen on port')
    parser.add_option('-H', '--hostname', default='localhost', 
                      action='store', 
                      help='server address')
    parser.add_option('-l', '--log-file', default=None, 
                      action='store', dest='log_file',
                      help='specify a log file')
    parser.add_option('-t', '--tty', default='/dev/ttyUSB1', 
                      dest='tty', action='store', 
                      help='specify the serial port')
    parser.add_option('-m', '--model', default='6514', 
                      action='store', 
                      help='specify the electrometer model')
    parser.add_option('-b', '--baudrate', default='9600', 
                      action='store', 
                      help='specify the electrometer model')

    (options, args) = parser.parse_args()
    
    SERVER_HOSTNAME = options.hostname
    SERVER_PORT = options.port    

    name = 'keithley-server'
    stardice.daemon_servers.setup_logging(name, logfile=options.log_file)
    models = {'6514': keithley.Keithley6514,
              '6485': keithley.Keithley6485}
    eol = {'6514': '\r',
           '6485': '\n'}
    instance = models[options.model](dev=options.tty, baudrate=options.baudrate)
    server = stardice.daemon_servers.BasicServer((SERVER_HOSTNAME, SERVER_PORT), name, instance)
    if options.daemon:
        stardice.daemon_servers.daemonize(options, args, server)
    else:
        #pass
        server.main(options, args)
