From 0f02b307e4f8f7e4467935871ec3f58b09a899c8 Mon Sep 17 00:00:00 2001
From: Kris Burney <burneykb@iastate.edu>
Date: Fri, 2 Dec 2016 20:09:02 -0600
Subject: [PATCH] loging wifi latency

---
 groundStation/src/backend/backend.c | 36 ++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 13 deletions(-)

diff --git a/groundStation/src/backend/backend.c b/groundStation/src/backend/backend.c
index 5c4dc9fa6..df97a2299 100644
--- a/groundStation/src/backend/backend.c
+++ b/groundStation/src/backend/backend.c
@@ -114,7 +114,6 @@ modular_structs_t structs;
 // 		in the future.
 static void cb(struct ucart_vrpn_TrackerData * td) {
 	static int count = 0;
-
 	if(!(count % 10)) {
 		sendVrpnPacket(td);
 		//updateLogFile(td);
@@ -233,31 +232,32 @@ int main(int argc, char **argv)
 					if(wasDisconnected(fd)){
 						break;
 					}
-
 					if (fd == fileno(stdin)) {
 						/**
 						 * Ignore stdin from the backend
 						 */
 					} else if (fd == zyboSocket) {
-						printf("recieving from quad\n");
-
+						//printf("recieving from quad\n");
 						/**
 						 * Read the response from the control loop
 						 */
 						int available;
 						ioctl(fd, FIONREAD, &available);
 						if (available < 12) {
+							//printf("only %d available\n", available);
 							continue;
 						}
+
+						//printf("recieving more than 12\n");
 						int respLen = readQuad(respBuf, CMD_MAX_LENGTH);
 						if(respLen <= 0) {
 							perror("ERROR reading from quad...\n");
 						}
 
-						//int id = getInt((unsigned char *)respBuf, 7);
-						//findTimeDiff(id);
+						int id = getInt((unsigned char *)respBuf, 7);
+						findTimeDiff(id);
 
-						quad_recv(respBuf, respLen);
+						//quad_recv(respBuf, respLen);
 						// if(respLen == 11) {
 						// 	int id = getInt((unsigned char *)respBuf, 7);
 						// 	findTimeDiff(id);
@@ -337,19 +337,27 @@ void sendStartPacket() {
 }
 
 void sendVrpnPacket(struct ucart_vrpn_TrackerData *info) {
-	int pSize = sizeof(struct ucart_vrpn_TrackerData) + 8;
+	int pSize = 36;//sizeof(struct ucart_vrpn_TrackerData) + 8;
 	int n;
 	unsigned char packet[pSize];
 	currMessageID++;
 	packet[0] = 0xBE; // BEGIN					//PACKET_START_BYTE;
-	packet[1] = 0x04;	// UPDATE				//'U'; // U for vrpn camera update, C for command
+	packet[1] = 0x04; // UPDATE				//'U'; // U for vrpn camera update, C for command
 	packet[2] = 0x00; // N/A
 	//TODO Figure out Packet ID with this new ucar_vrpn_TrackerData struct
 	packet[3] = (currMessageID & 0x000000ff); 			// MSG ID(1)
 	packet[4] =	((currMessageID >> 8) & 0x000000ff); // MSG ID(2)
-	packet[5] = (sizeof(struct ucart_vrpn_TrackerData) & 0x000000ff); 			// DATALEN(1)
-	packet[6] = ((sizeof(struct ucart_vrpn_TrackerData) >> 8) & 0x00000ff); 	// DATALEN(2)
-	memcpy(&packet[7], &info, sizeof(struct ucart_vrpn_TrackerData));
+	packet[5] = (28 & 0x000000ff); 			// DATALEN(1)
+	packet[6] = ((28) >> 8 & 0x00000ff); 	// DATALEN(2)
+	//memcpy(&packet[7], &info, sizeof(struct ucart_vrpn_TrackerData));
+
+	memset(&packet[7], 0, 4);
+	memcpy(&packet[11], &info[4], 4);
+	memcpy(&packet[15], &info[0], 4);
+	memcpy(&packet[19], &info[8], 4);
+	memcpy(&packet[23], &info[16], 4);
+	memcpy(&packet[27], &info[12], 4);
+	memcpy(&packet[31], &info[20], 4);
 
 	char checksum = 0;
 	int i;
@@ -363,6 +371,7 @@ void sendVrpnPacket(struct ucart_vrpn_TrackerData *info) {
 		perror("vrpnhandler: ERROR writing to socket");
 		keepRunning = 0;
 	}
+
 	struct timeval tstart;
 	gettimeofday(&tstart, NULL);
 	timeArr[currMessageID%MAX_HASH_SIZE] = tstart;
@@ -766,7 +775,8 @@ void findTimeDiff(int respID) {
 	struct timeval result, tend;
 	gettimeofday(&tend, NULL);
 	timeval_subtract(&result, &tend, &timeArr[respID%MAX_HASH_SIZE]);
-	printf("elapsed time = %ld ms\n", result.tv_usec/1000);
+	printf("(BackEnd): Elapsed time = %ld ms\n", result.tv_usec/1000);
+	// printf("print to log\n");
 	// char tmp[8];
 	// snprintf(tmp, 8, "%ld \tms\n", result.tv_usec/1000);
 	// writeStringToLog(tmp);
-- 
GitLab