diff options
author | Florian Jung <flo@windfisch.org> | 2015-01-07 17:51:55 +0100 |
---|---|---|
committer | Florian Jung <flo@windfisch.org> | 2015-01-07 17:51:55 +0100 |
commit | 5772af4eed51e45de06b1329ed3be3158c4c2ccf (patch) | |
tree | 33d67d69bfa7a5a1b18d73203119c263a8815ded /server2.py | |
parent | a1de75322f87cd6adea4afcf3470d2466d0881b8 (diff) |
server2
Diffstat (limited to 'server2.py')
-rw-r--r-- | server2.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/server2.py b/server2.py new file mode 100644 index 0000000..2066231 --- /dev/null +++ b/server2.py @@ -0,0 +1,66 @@ +import cv2 +import os +import socket +import sys +import time +import struct + + + + + + +server_address = '/home/flo/uds_socket' +try: + os.unlink(server_address) +except OSError: + if os.path.exists(server_address): + raise + +# Create a UDS socket +sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + +# Bind the socket to the port +print >>sys.stderr, 'starting up on %s' % server_address +sock.bind(server_address) + +# Listen for incoming connections +sock.listen(1) + + + +while True: + # Wait for a connection + print >>sys.stderr, 'waiting for a connection' + connection, client_address = sock.accept() + try: + print >>sys.stderr, 'connection from', client_address + + cap = cv2.VideoCapture("flight.avi") + logfile = open("flight.log", "r") + while True: + data = connection.recv(16) + if data: + if data=="get\n": + status, frame = cap.read() + values = logfile.readline().split() + phi = float(values[0]) + theta = float(values[1]) + psi = float(values[2]) + batt = 100.0 + + framestr = frame.tostring() + lenframestr=len(framestr) + connection.sendall(struct.pack(">i",lenframestr)+framestr+struct.pack("@dddd", phi, theta, psi, batt)); + elif data[0:3] == "fly" and data[-1]=="\n": + values = data[3:-1].split() + print "fly ",values + else: + print >>sys.stderr, 'no more data from', client_address + break + except: + print "Dingens!!11!1!!!" + finally: + # Clean up the connection + connection.close() + |