Blame view
220222_final/GW/python/gateway_http_uplink.py
2.58 KB
35833671e
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Script to be executed. Open a http server with function serve_forever(port) Created on Wed Jun 9 10:56:11 2021 @author: Georges de Massol """ from http.server import HTTPServer, BaseHTTPRequestHandler import urllib.parse import gateway import test_gateway import gat import threading import socket ip = 'localhost' ''' sema=threading.Semaphore(value=0) def thread_server(): print("Server lanched") while (1): a=1 sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) sock.bind(('127.0.0.1',4242)) sock.listen(1) #sema.acquire(1) conn,addr=sock.accept() sema.acquire(1) with conn: #a=1 while(a): data='' print("connected from", addr) #sema.acquire(1) a=0 data='q' print(data) conn.send(data.encode('ascii')) data='' sock.close() print("Server done") ''' class SimpleHTTPRequestHandler(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.end_headers() self.wfile.write(b'Serveur uplink en marche!') def do_POST(self): #sema.release() # ↓↓↓ Lecture de la dernière valeur de GNU Radio ↓↓↓ # la lecture est faite le plus tôt possible pour éviter tout parasitage par un autre appareil. # Tn : échantillon n Tn = 123456 # ↑↑↑ Lecture de la dernière valeur de GNU Radio ↑↑↑ content_length = int(self.headers['Content-Length']) body = self.rfile.read(content_length) self.send_response(200) self.end_headers() print(urllib.parse.urlparse(self.path)) # print(urllib.parse.parse_qs(urllib.parse.urlparse(self.path).query)) event = urllib.parse.parse_qs(urllib.parse.urlparse(self.path).query).get('event', None)[0] gat.postcompute(event, body, Tn) def serve_forever(port = 6666): """ Function executed permanently. Do not run code after this function. Parameters ---------- port : int, optional Port for the server. The default is 6666. Returns ------- None. """ httpd = HTTPServer((ip, port), SimpleHTTPRequestHandler) print("http server for uplink started on {}:{} ".format(ip, port)) httpd.serve_forever() #do not add code then #threading.Thread(target=thread_server, args=()).start() serve_forever() |