summaryrefslogtreecommitdiff
path: root/server2.py
diff options
context:
space:
mode:
Diffstat (limited to 'server2.py')
-rw-r--r--server2.py66
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()
+