Beispiel #1
0
def main():
    server_port = 5000
    client_list = set()

    argc = len(sys.argv)
    if argc < 2 or argc > 3:
        usage()
        sys.exit(-1)

    serial_port = sys.argv[1]

    if argc == 3:
        server_port = int(sys.argv[2])

    data_sender = ScopeDataSender(client_list)
    scope = Scope(serial_port)
    scope.set_big_preamp(Scope.CHANNEL_A)
    scope.set_big_preamp(Scope.CHANNEL_B)
    scope.set_sample_rate_divisor(0x7)
    scope_read_thread = ScopeReadThread(scope, data_sender)

    def stop_server_and_exit(signum, frame):
        print '\rStopping server'
        scope_read_thread.stop()
        scope_read_thread.join()
        reactor.stop()

    def status_message(msg):
        print msg

    signal.signal(signal.SIGINT, stop_server_and_exit)
    scope_read_thread.start()

    reactor.listenTCP(server_port, ScopeFactory(client_list))
    reactor.callWhenRunning(
            status_message, 'Server started on port %d' % server_port)
    reactor.run()