?? dgps_server.py
字號:
#!/usr/env python#------------------------------------------------------------------------------# dgps_server.py : DGPS server that send RTCM correction data## - programmed by Boyoon Jung (boyoon@robotics.usc.edu)#------------------------------------------------------------------------------import uspp.usppfrom SocketServer import *import socketimport timeimport sysimport threadimport os# constantsDGPSServerPort = 7777# global variablesrtcm_msg = ''counter = 0terminated = 0# DGPS server classclass DGPSServer (BaseRequestHandler): """ DGPSServer: a TCP server that send RTCM correction data." """ def handle(self): """ process a request from clients. """ # global variables global rtcm_msg global counter # local variable cntr = counter dir(self) conn = self.request try: peer = conn.getpeername() print '[Info] accepted a request from ', peer, '.' # send RTCM messages while not terminated: if cntr != counter: conn.send(rtcm_msg) cntr = counter time.sleep(0.1) except: print '[Info] unexpected socket close by a client (', peer, ').'# main functionif __name__ == '__main__': # default settings device = '/dev/ttyS0' baudrate = 9600 # process the command-line arguments if len(sys.argv) > 1: device = sys.argv[1] if len(sys.argv) > 2: baudrate = int(sys.argv[2]) # open a seiral port serial = uspp.SerialPort(device, 100, baudrate) # start a DGPS server dgps_server = ThreadingTCPServer(('', DGPSServerPort), DGPSServer) thread.start_new_thread(dgps_server.serve_forever, ()) # start to send RTCM messages try: print 'Started to send RTCM messages.' while 1: # retrieve a RTCM message try: message = '' while 1: message = message + serial.read() # send the RTCM message if it is valid except uspp.SerialPort_linux.SerialPortException: if message: rtcm_msg = message counter += 1 print message except: terminated = 1 print 'Terminated.'
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -