From 5e08d676f62c1c09b80bdf3253a7edf46b84ae6a Mon Sep 17 00:00:00 2001 From: Chuang Zhu Date: Sat, 12 Dec 2020 23:23:21 +0800 Subject: [PATCH] upgrade to python3 --- mapserver/mapper.py | 87 +++++++++++++++++++++++++------------------ mapserver/mapper.pyc | Bin 1940 -> 0 bytes 2 files changed, 50 insertions(+), 37 deletions(-) mode change 100644 => 100755 mapserver/mapper.py delete mode 100644 mapserver/mapper.pyc diff --git a/mapserver/mapper.py b/mapserver/mapper.py old mode 100644 new mode 100755 index 8d9577c..9100841 --- a/mapserver/mapper.py +++ b/mapserver/mapper.py @@ -1,48 +1,61 @@ -#!/usr/bin/env python - #-*-coding:utf-8-*- +#!/usr/bin/env python3 + +from http.server import SimpleHTTPRequestHandler, HTTPServer +from urllib.parse import parse_qs import socket import struct import time -import web -HOST = 'localhost' -PORT = 5678 -BUFFSIZE = 1024 -ADDR = ( HOST, PORT ) +import os -sock = socket.socket( socket.AF_INET, socket.SOCK_DGRAM ) +HOST = 'localhost' +PORT = 5678 + +sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) +class MapHandler(SimpleHTTPRequestHandler): + def __init__(self, *args, **kwargs): + directory = os.path.dirname(__file__) + super().__init__(*args, directory=directory, **kwargs) -urls = ( - '/','index', - '/post','post', - '/static/*','static', -) -app = web.application(urls, globals()) + def do_GET(self): + if self.path == '/': + self.send_response(301) + self.send_header('Location', '/static/baidumap.html') + self.end_headers() + else: + super(MapHandler, self).do_GET() -class index: - def GET(self): - return "" - -class post: - def POST(self): - inn=web.input() - lon=float(inn.get('lon')) - lat=float(inn.get('lat')) - h=float(inn.get('hgt')) - data=struct.pack("ddd",lat,lon,h) - sock.sendto(data,ADDR) - print lon,lat,h - -class static: - def GET(self, media, file): - try: - f = open(media+'/'+file, 'r') - return f.read() - except: - return '404' - -if __name__ == "__main__": app.run() + def do_POST(self): + if self.path == '/post': + urlencoded = self.rfile.read(int(self.headers['Content-Length'])) + parsed = parse_qs(urlencoded) + pos = [float(parsed.get(k)[0]) for k in [b'lon', b'lat', b'hgt']] + data = struct.pack('ddd', *pos) + sock.sendto(data, (HOST, PORT)) + print(*pos) + self.send_response(200) + self.send_header('Content-Type', 'text/plain') + else: + self.send_response(404) + self.end_headers() +if __name__ == "__main__": + from argparse import ArgumentParser + argp = ArgumentParser(description='GPS-SDR-SIM realtime map server.') + argp.add_argument('port', + type=int, + default=8080, + nargs='?', + help='specify port for map server [default: 8080]') + argp.add_argument( + '--host', + type=str, + default='0.0.0.0', + help='specify host map server to bind [default: 0.0.0.0]') + args = argp.parse_args() + httpd = HTTPServer((args.host, args.port), MapHandler) + print('Serving at http://{}:{}'.format(args.host, args.port)) + httpd.serve_forever() diff --git a/mapserver/mapper.pyc b/mapserver/mapper.pyc deleted file mode 100644 index f6d09fdfec3409f17ec1884787f8b23124aae914..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1940 zcmbtU&2HO95S}F^S+Qj$j+)wNb1IO6$RW(Z$DpX=A0-GX2P+3nbRih+TBbsg0=a5y zz&^RRK1g4ompnxeeSscw&oPJOo1tVI?#Zqw&dz?bJIkHfm+}m4ZMZ!)4(SKq(%mMolK1e4YD<|bvgvTM3!hwBAX&_(HZb% zGPh~4Le{5oi!78?IwLW)$u!8^A+tii10i}dxJ{->W{phi9D*G_?vhzOht|kq-llgR z6@Qa$)40RiRVMf82OZok`HWxB-GZ9t!#F+4OP4(Q8V0HnIR!j)bzYbm`&-FcIK>(V zE3s1Y*06N3ONQY?$APOR=dolTPZ?f=!0oHZ;VKB5?gwlhvRJ&^yq4V~=>5Qh(sK|L zh~QOncxlta3SzuuH9X2EHXI#K!hiqzZhlXzO%;ul-6Hnqj0>9O;%xVw9> z!5jGiQUOD*2@yqEJh4&amSr-@%`C-KFJXFdo@m!PRP#aWc;&=~x^{dxv>bnl55h-? z%2;tmPZc?jP85wnJ|OZx^)7+l0`xC|{sOFVM8`tb6Q54tszzruI;|7(IbNa@C{5;~ zf~|`sT`cH6Glcx`7xg5dX`WSM>|{I|RiiN`V3G*N3cz!PTTw|H;D6W+_E!{avl*n~KKz*GS}z>Rfe za2*W_$vj1>(QSl5{hzZYDW!~0{nwIL_R`Z*Z7d22@8;u8DM*P)KDC)Bg^f+X>#IC4 zBPP})u^11N)Jh_5TC7rd-@|9gi6!N$b=8KHioF!~|6QMag9m&L7ivSzo53VbvM8!( z#(|I)c%>OixB720EQPPq8Lto`_zIpXI)m5N>AO7V4{*uEY9^V?o`H6vyxi9Z@pS74L=q