#!/usr/bin/python

from socket import *
import string
import time
import struct;
import random;

myport = random.randint(1025,65535);

port = 10000
host = "10.45.4.43"
myaddr = ("10.45.1.229",myport);

buf = 100000;

TCPSock = socket(AF_INET,SOCK_STREAM);
#TCPSock = socket(AF_INET,SOCK_DGRAM);
TCPSock.bind(myaddr);
TCPSock.connect((host,port));

f_mhz = 2400;	
f_hz = 0;	
gain = 2; 	
window = 3; 	#0=rect, 1=hanning, 2=hamming, 3=blackman
#samples = 0xffffffff; 	#8-15	fft:(returns 2^number[8-15]) raw:(returns number)
samples = 2; 	#8-15	fft:(returns 2^number[8-15]) raw:(returns number)
decim = 2; 	#0-8  
#decim = decim+16;	# +16 to use 16bit instead of 32 bit 
mode = 1; 	#0=IQ, 1=MAG, 2=MAGDB
sets = 0xffffffff;	
#sets = 1;

fft_data = struct.pack("<IIIIIIIIII", 0x02, 0x20, f_mhz, f_hz, gain,window, samples, decim, mode,sets);
raw_data = struct.pack("<IIIIIIII", 0x01, 0x18, f_mhz, f_hz, gain,samples, decim,sets);
stat_data = struct.pack("!II", 0x0000, 0x0000)

data = raw_data;

#TCPSock.sendto(data, (host,port))
TCPSock.send(data);

print "sent"



count = 0;
while(1):
	data,addr = TCPSock.recvfrom(buf);
	
	print "got response"
	
	print "Data length: %d bytes."%(len(data));
	if(len(data)==12):
		a,b,c = struct.unpack("!III",data);
		print "%x,%x,%x"%(a,b,c);

	datavector = [];

	for d in data:
		a = struct.unpack("<b",d);
		datavector.append(a);

	print datavector;
		
	count = count + 1;
	
	if(count > 1):
		sets = 3;
		raw_data_2 = struct.pack("<IIIIIIII", 0x01, 0x18, f_mhz, f_hz, gain,samples, decim,sets);
		TCPSock.send(raw_data_2);
		
		
		
TCPSock.close();