changeset 68:64a7a1d3d75c

Cleanup AD9956 DDS driver
author Daniele Nicolodi <daniele.nicolodi@obspm.fr>
date Mon, 29 Oct 2012 14:48:14 +0100
parents 0159abc1a9d8
children 94cb4b29bb47
files DDS_Fox.c DDS_Fox.h
diffstat 2 files changed, 207 insertions(+), 285 deletions(-) [+]
line wrap: on
line diff
--- a/DDS_Fox.c	Mon Oct 29 14:48:08 2012 +0100
+++ b/DDS_Fox.c	Mon Oct 29 14:48:14 2012 +0100
@@ -2,10 +2,7 @@
 #include <ansi_c.h>
 #include "DDS_Fox.h"
 
-//#define DDS_IP "192.168.0.3"
-//#define TCP_PORT 6665
-
-#define DIV 0			   // divided by 1
+// #define DEBUG 1
 #define CMD_SEP ";"
 #define BASE_TIME 0.01
 
@@ -25,22 +22,37 @@
 #define CMD_GET_FREQ 28
 #define CMD_SWEEP_SIGN 29
 
-
-/************************* Global variables ***********************************/ 
-//static char  Request[255]; 
+typedef struct {
+	char* action;
+	char* canal;
+	char* command;  
+	char* value0;
+	char* value1;
+	char* value2;
+	char* value3;
+	char* value4;
+	char* value5;
+	char* value6;
+	char* value7;
+	char* value8;
+	char* value9;
+	char* value10;
+	char* value11;
+	char* value12;
+	char* value13;
+	char* value14;
+	char* value15;
+	char* value16;
+	char* value17;
+	char* value18;
+	char* value19;
+} Command;
 
-/************************* My own functions ***********************************/
-/*DDSParameter DDSGetParam (int panel, int control) {
-	DDSParameter Parameter ;
-	
-	GetCtrlVal (panel, CONTROL_DDS_IP, Parameter->ip) ;
-	GetCtrlVal (panel, CONTROL_DDS_PORT, &(Parameter->Port)) ;
-	GetCtrlVal (panel, CONTROL_DDS_CLOCK, &(Parameter->Clock)) ;
-	GetCtrlVal (panel, CONTROL_DDS_RATE, &(Parameter->SweepRate)) ;
-	GetCtrlVal (panel, CONTROL_DDS_DELTA_T, &(Parameter->Delta_T)) ;
-	return(Parameter);
-}*/
-
+static int SendCmd(char *Buffer, DDSParameter *Param);
+static int RecvCmd(Command *Rd, char * Buffer, DDSParameter *Param);
+static void init_command(Command *cmd);
+static int parse_command(Command *cmd1, char *buf);
+static void convert_double_6char (double fraction, unsigned char* octets);
 
 #define error(...) _error(__FILE__, __LINE__, __func__, __VA_ARGS__)
 
@@ -54,90 +66,109 @@
 	va_end(args);
 }
 
-
-void DDS_Initialize (DDSParameter *Param) {
-	char  Request[255]; 
-	//send NOP command 
-	sprintf(Request,"set;%i;%i",1,CMD_NOP);   
-	SendCmd(Request, Param) ;
-	//reset the DDS
-	DDSFox_Reset(Param);
-	
-	//Set Profile Number 0 (only one used for soft frequecy sweep)
-//	sprintf(Request,"set;%i;%i;%i",1,CMD_PROFILE,0);   
-//	SendCmd(Request, Param) ; 
+void DDSFox_Initialize(DDSParameter *Param, char *ip, int port, double frequency)
+{
+	strcpy(Param->ip, ip); 
+	Param->Port = 6665;
+	Param->Profil = 7; // configuration profile: single freq=0, sweep=7
+	Param->Clock = 200000000;
+	Param->Delta_T = 0.01;
+	Param->SweepRate = 0.0;
 	
-	//Set Profile Number 7 (only one used for soft frequecy sweep)
-	sprintf(Request,"set;%i;%i;%i",1,CMD_PROFILE,7);   
-	SendCmd(Request, Param) ; 
-
+	// reset the DDS
+	//DDSFox_Nop(Param);
+	DDSFox_Reset(Param);
+	// set profile number 7 soft frequecy sweep
+	DDSFox_SetProfile(Param);
+	// set clock divider to 1
+	DDSFox_SetDiv(Param, 1);
+	// set frequency
+	DDSFox_SetFreqInf(Param, frequency);
+	// set frequency upper bound to max value
+	DDSFox_SetFreqMax(Param);
+	// set sweep rate to 0
+	DDSFox_SetDT(Param);
+	DDSFox_SetDf(Param);
+	DDSFox_SetSweepSign(Param);
+	// start sweep
+	DDSFox_StartSweep(Param);
+	// set frequency lower bound to min value
+	DDSFox_SetFreqMin(Param);
+	
+	return;
+}
 
-	//Set Clock Divider to 00b (which means 1)
-	DDSFox_SetDiv(Param);
-    //Set sweep rate at 0	
-	DDSFox_SetFreqMax (Param);
-	DDSFox_SetFreq (Param) ;
-	DDSFox_SetDT (Param) ;
-	DDSFox_SetDf (Param) ;
-	DDSFox_StartSweep (Param) ;
-	return ;
+void DDSFox_SetSweepRate(DDSParameter *Param, double sweepRate)
+{
+	Param->SweepRate = sweepRate;
+	DDSFox_SetDf(Param);
+	DDSFox_SetSweepSign(Param);
 }
 
-void DDS_ReInitialize (DDSParameter *Param) {
-	char  Request[255]; 
-	//send NOP command 
-	sprintf(Request,"set;%i;%i",1,CMD_NOP);   
-	SendCmd(Request, Param) ;
-	//reset the DDS
-	//DDSFox_Reset(Param);
-	
-	//Set Profile Number 0 (only one used for soft frequecy sweep)
-//	sprintf(Request,"set;%i;%i;%i",1,CMD_PROFILE,0);   
-//	SendCmd(Request, Param) ; 
-	
-	//Set Profile Number 7 (only one used for soft frequecy sweep)
-	sprintf(Request,"set;%i;%i;%i",1,CMD_PROFILE,7);   
-	SendCmd(Request, Param) ; 
-
-
-	//Set Clock Divider to 00b (which means 1)
-	DDSFox_SetDiv(Param);
-    //Set sweep rate at 0	
-	DDSFox_SetFreqMax (Param);
-	DDSFox_SetFreq (Param) ;
-	DDSFox_SetDT (Param) ;
-	DDSFox_SetDf (Param) ;
-	DDSFox_StartSweep (Param) ;
-	return ;
+void DDSFox_Set(DDSParameter *Param, double frequency, double sweepRate)
+{
+	// set desired frequency
+	DDSFox_SetFreqInf(Param, frequency);
+	// set frequency upper bound to max value
+	DDSFox_SetFreqMax(Param);
+	// set sweep rate to 0
+	Param->SweepRate = 0.0;
+	DDSFox_SetDT(Param);
+	DDSFox_SetDf(Param);
+	DDSFox_SetSweepSign(Param);
+	// start sweep
+	DDSFox_StartSweep(Param);
+	// set frequency lower bound to min value
+	DDSFox_SetFreqMin(Param);
+	// set desired sweep rate
+	Param->SweepRate = sweepRate;
+	DDSFox_SetDf(Param);
+	DDSFox_SetSweepSign(Param);
 }
 
+void DDSFox_Nop (DDSParameter *Param)
+{
+	// send NOP command
+	char request[255];
+	sprintf(request, "set;%i;%i", 1, CMD_NOP);
+	SendCmd(request, Param);
+}
 
-void DDSFox_Reset(DDSParameter *Param) {
+void DDSFox_SetProfile (DDSParameter *Param)
+{
+	char request[255];
+	sprintf(request, "set;%i;%i;%i", 1, CMD_PROFILE, Param->Profil);
+	SendCmd(request, Param);
+}
+
+void DDSFox_Reset(DDSParameter *Param)
+{
 	char  Request[255]; 
-	sprintf(Request,"set;%i;%i",1,CMD_NOP);   
-	SendCmd(Request, Param) ;
+	//sprintf(Request,"set;%i;%i",1,CMD_NOP);   
+	//SendCmd(Request, Param) ;
 	sprintf(Request,"set;%i;%i",1,CMD_RESET_DDS);   
 	SendCmd(Request, Param) ;
 	return ;
 }
 
-
-void DDSFox_StopSweep(DDSParameter *Param) {
+void DDSFox_StopSweep(DDSParameter *Param)
+{
 	char  Request[255];
     sprintf(Request,"set;%i;%i;%i",1,CMD_STOP_SWEEP,1); 
   	SendCmd(Request, Param);
 	return ;
 }
 
-
-void DDSFox_StartSweep(DDSParameter *Param) {
+void DDSFox_StartSweep(DDSParameter *Param)
+{
 	char  Request[255];
     sprintf(Request,"set;%i;%i;%i",1,CMD_START_SWEEP,1); 
   	SendCmd(Request, Param);
 	return ;
 }
 
-void DDSFox_SetFreqMax (DDSParameter *Param) {
+void DDSFox_SetFreqMax (DDSParameter *Param)
+{
 	unsigned char octets[6];
 	char  Request[255]; 
 	convert_double_6char(pow(2,48)/2,octets);	 // borne sup : clock / 2
@@ -148,7 +179,8 @@
 	return ;
 }
 
-void DDSFox_SetFreqMin (DDSParameter *Param) {
+void DDSFox_SetFreqMin (DDSParameter *Param)
+{
 	unsigned char octets[6];
 	char  Request[255]; 
 	convert_double_6char(1,octets);	 // borne inf : ~0
@@ -159,66 +191,49 @@
 	return ;
 }
 
-void DDSFox_SetFreq (DDSParameter *Param) {
+void DDSFox_SetFreqInf (DDSParameter *Param, double frequency)
+{
+	double word ;
+	unsigned char octets[6];
+	char Request[255];
+	word = pow(2,48)*(frequency / Param->Clock);
+	convert_double_6char(word, octets);
+	sprintf(Request,"set;%i;%i;%i;%i;%i;%i;%i;%i",1,CMD_FREQ_INF,
+		*(octets+5),*(octets+4),*(octets+3),*(octets+2),*(octets+1),*octets); 
+	SendCmd(Request, Param);
+}
+
+void DDSFox_SetFreqSup (DDSParameter *Param, double frequency)
+{
 	double word ;
 	unsigned char octets[6];
-	int SweepSign = -1 ;
-	char  Request[255]; 
-	if (Param->Profil == 0) {
-		word = pow(2,48)*(Param->Frequency/Param->Clock);
-		convert_double_6char(word, octets);			// borne inf : la freq voulu	
-		sprintf(Request,"set;%i;%i;%i;%i;%i;%i;%i;%i",1,CMD_FREQ_INF,
-			*(octets+5),*(octets+4),*(octets+3),*(octets+2),*(octets+1),*octets); 
-		SendCmd(Request, Param);
-	}
-	else if(Param->Profil == 7) {
-		SweepSign = DDSFox_GetSweepSign(Param) ;
-		if(SweepSign == 0){								// sweep positif
-			word = pow(2,48)*(Param->Frequency/Param->Clock);
-			convert_double_6char(word, octets);			// borne inf : la freq voulu	
-			sprintf(Request,"set;%i;%i;%i;%i;%i;%i;%i;%i",1,CMD_FREQ_INF,
-				*(octets+5),*(octets+4),*(octets+3),*(octets+2),*(octets+1),*octets); 
-			SendCmd(Request, Param);
-			DDSFox_SetFreqMax (Param);
-		}
-		else {											// sweep neg
-			word = pow(2,48)*(Param->Frequency/Param->Clock);
-			convert_double_6char(word, octets);				// borne sup : la freq voulue	
-			sprintf(Request,"set;%i;%i;%i;%i;%i;%i;%i;%i",1,CMD_FREQ_SUP,
-				*(octets+5),*(octets+4),*(octets+3),*(octets+2),*(octets+1),*octets); 
-			SendCmd(Request, Param);
-			DDSFox_SetFreqMin (Param);
-		}
-	}
-	return ;
+	char Request[255];
+	word = pow(2,48)*(frequency / Param->Clock);
+	convert_double_6char(word, octets);
+	sprintf(Request,"set;%i;%i;%i;%i;%i;%i;%i;%i",1,CMD_FREQ_SUP,
+		*(octets+5),*(octets+4),*(octets+3),*(octets+2),*(octets+1),*octets); 
+	SendCmd(Request, Param);
 }
 
+static int GetSweepSign(DDSParameter *Param)
+{
+	if (Param->SweepRate >= 0.0)
+		return 0;
+	return 1;
+}
 
-// Change le signe de sweep en frequence. Argument: struct de param de la DDS
-void DDSFox_SetSweepSign(DDSParameter *Param) {
-	char  Request[255] ; 
+void DDSFox_SetSweepSign(DDSParameter *Param)
+{
+	char Request[255] ; 
 	int SweepSign ;
-	SweepSign = DDSFox_GetSweepSign(Param) ;
-	sprintf(Request,"set;%i;%i;%i",1,CMD_SWEEP_SIGN, SweepSign) ; 
+	SweepSign = GetSweepSign(Param) ;
+	sprintf(Request, "set;%i;%i;%i", 1, CMD_SWEEP_SIGN, SweepSign);
 	SendCmd(Request, Param) ;
 	return ;
 }
 
-/*void DDSFox_SetSweepSign(DDSParameter *Param) {
-	char  Request[255] ; 
-	int SweepSign ;
-	if (Param->Profil == 7)
-		Param->Frequency = DDSFox_ReadFreq(Param) ;
-	DDSFox_SetFreq (Param) ;
-	SweepSign = DDSFox_GetSweepSign(Param) ;
-	sprintf(Request,"set;%i;%i;%i",1,CMD_SWEEP_SIGN, SweepSign) ; 
-	SendCmd(Request, Param) ;
-	return ;
-}*/
-
-
-// Change la valeur de la base pour 'lincrement de frequence (sweep). Argument: delta T x 10ms, retourne rien.
-void DDSFox_SetDT(DDSParameter *Param) {
+void DDSFox_SetDT(DDSParameter *Param)
+{
 	char  Request[255]; 
 	int dt= 0;
 	char FTW0[255]="0";	   /**** sinon le fichier inf.xx est faux 	   ***/
@@ -229,13 +244,18 @@
 	return ;
 }
 
-
 // Change le facteur de division de la clock. Argument: facteur de div, retourne rien 
-void DDSFox_SetDiv(DDSParameter *Param) {
-	char  Request[255]; 
-	int Div = DIV ;
+void DDSFox_SetDiv(DDSParameter *Param, int div)
+{
+	char Request[255]; 
 	Command Rd;
-	char  temp;
+	char temp;
+	
+	int Div = 0;
+	// Div = log2(div)
+	while ((div >>= 1) > 1)
+		Div++;
+	
 	init_command(&Rd);
 	sprintf(Request,"get;%i;%i",1,CMD_CONFIG_REG2);      
 	if (RecvCmd(&Rd, Request, Param) < 0)
@@ -249,9 +269,8 @@
 	return ;
 }
 
-
-
-void DDSFox_SetDf(DDSParameter *Param) {
+void DDSFox_SetDf(DDSParameter *Param)
+{
 	char  Request[255]; 
 	double word ;
 	unsigned char *octets;
@@ -265,13 +284,8 @@
 	return ;
 }
 
-int DDSFox_GetSweepSign(DDSParameter *Param) {
-	if (Param->SweepRate >= 0) return(0);
-	else return(1);
-}
-
-
-double DDSFox_ReadFreq(DDSParameter *Param) {
+double DDSFox_ReadFreq(DDSParameter *Param)
+{
 	char  Request[255]; 
 	unsigned int OctetA, OctetB, OctetC, OctetD, OctetE, OctetF ;
 	double FreqRead ;
@@ -291,27 +305,38 @@
 	return(FreqRead);
 }
 
+// TCP communication
 
-/************************ Fonction de communications TCP ******************/
-static const double timeout = 0.5;
+static unsigned int timeout = 0; // milliseconds
 
+int OnTCPEvent(unsigned handle, int xType, int errCode, void *callbackData)
+{
+	return 0;
+}
 
-int SendCmd(char *Buffer, DDSParameter *Param) {
+static int SendCmd(char *Buffer, DDSParameter *Param)
+{
 	unsigned int hConv=0;
 	char  Response[255];
-	if (ConnectToTCPServer (&hConv, Param->Port, Param->ip, OnTCPEvent, Response, 0) < 0) {
+#ifdef DEBUG
+	fprintf(stderr, "> %s\n", Buffer);
+#endif
+	if (ConnectToTCPServer (&hConv, Param->Port, Param->ip, OnTCPEvent, Response, timeout) < 0) {
 		error("Connect failed");
 		return -1;
 	}
-	if (ClientTCPWrite (hConv, Buffer, strlen(Buffer)+1, 0) < 0) {
+	if (ClientTCPWrite (hConv, Buffer, strlen(Buffer)+1, timeout) < 0) {
 		error("Write failed");
 		return -1;
 	}
 	sprintf(Response,"                              ");
-	if (ClientTCPRead (hConv, Response, 255, 0) < 0) {
+	if (ClientTCPRead (hConv, Response, 255, timeout) < 0) {
 		error("Read failed");
 		return -1;
 	}
+#ifdef DEBUG
+	fprintf(stderr, "< %s\n", Response);
+#endif
 	if (strncmp("OK",Response,2)) {
 		error("Response failed %s %s", Buffer, Response);
 		return -1;
@@ -319,25 +344,30 @@
 	return 0;
 }
 
-
-int RecvCmd(Command *Rd, char * Buffer, DDSParameter *Param) {
+static int RecvCmd(Command *Rd, char * Buffer, DDSParameter *Param)
+{
 	unsigned int hConv=0;
 	char parsebuf[255];
 	char  Response[255];
-	if (ConnectToTCPServer (&hConv, Param->Port, Param->ip, OnTCPEvent, Response, 0) < 0) {
+#ifdef DEBUG
+	fprintf(stderr, "> %s\n", Buffer);
+#endif
+	if (ConnectToTCPServer (&hConv, Param->Port, Param->ip, OnTCPEvent, Response, timeout) < 0) {
 		error("Connect failed");
 		return -1;     
 	}
-	if (ClientTCPWrite (hConv, Buffer, strlen(Buffer)+1, 0) < 0) {
+	if (ClientTCPWrite (hConv, Buffer, strlen(Buffer)+1, timeout) < 0) {
 		error("Write failed");
 		return -1;
 	}
 	sprintf(Response,"                              ");     
-	if (ClientTCPRead (hConv, Response, 255, 0) < 0) {
+	if (ClientTCPRead (hConv, Response, 255, timeout) < 0) {
 		error("Read failed");
 		return -1;
 	}
-
+#ifdef DEBUG
+	fprintf(stderr, "< %s\n", Response);
+#endif
 	if (strncmp(Buffer,Response,strlen(Buffer))) {
 		error("Response failed %s %s", Buffer, Response);
 		return -1;
@@ -348,50 +378,18 @@
 	return 0;
 }
 
-
-int OnTCPEvent(unsigned handle, int xType, int errCode, void *callbackData) {
-	//char* Response = (char*)(callbackData);
-	//char Response[255];
-	//switch(xType) {
-	//	case TCP_DISCONNECT :
-			//printf("Server disconnected\n");
-	//		break;
-	//	case TCP_DATAREADY :
-			//printf("Server data ready\n");
-			//ClientTCPRead (handle, Response, 255, 5);
-	//		break;
-	//}
-	return 0;
+static void init_command(Command *cmd)
+{
+	memset(cmd, 0, sizeof(Command));
 }
 
-/************************ Fonction de mise en forme des données pour le transfert ******************/
-
-void parse_command2(int* cmd, char* buf)
+static int parse_command(Command *cmd1, char *buf)
 {
 	char* pointer;
 	int c = 0;
 	
 	pointer = strtok( buf, CMD_SEP );
 	while( pointer ){
-		if ((c > 2) && ( c < 19 ))
-		{
-			cmd[c-3] = atoi(pointer);
-			printf("%i", cmd[c-3]);
-		}
-			
-			
-		pointer = strtok( NULL, CMD_SEP );
-		c++;
-	}
-}
-
-
-int parse_command(Command *cmd1, char *buf){
-	char* pointer;
-	int c = 0;
-	
-	pointer = strtok( buf, CMD_SEP );
-	while( pointer ){
 		if( c == 0 ){
 			cmd1->action = pointer;
 		}
@@ -431,49 +429,11 @@
 	return 0;
 }
 
-
-int init_command(Command *cmd1){
-	cmd1->action = NULL;
-	cmd1->canal = NULL;
-	cmd1->command = NULL;
-	cmd1->value0 = NULL;
-	cmd1->value1 = NULL;
-	cmd1->value2 = NULL;
-	cmd1->value3 = NULL;
-	cmd1->value4 = NULL;
-	cmd1->value5 = NULL;
-	cmd1->value6 = NULL;
-	cmd1->value7 = NULL;
-	cmd1->value8 = NULL;
-	cmd1->value9 = NULL;
-	cmd1->value10 = NULL;
-	cmd1->value11 = NULL;
-	cmd1->value12 = NULL;
-	cmd1->value13 = NULL;
-	cmd1->value14 = NULL;
-	cmd1->value15 = NULL;
-	cmd1->value16 = NULL;
-	cmd1->value17 = NULL;
-	cmd1->value18 = NULL;
-	cmd1->value19 = NULL;
-	return 0;
+// convert double into 6 bytes sent back by an unsigned char pointer
+static void convert_double_6char (double fraction, unsigned char* octets)
+{
+	// 64 bits integer
+	unsigned long long x = fraction;
+	for (int i = 0; i < 6; i++)
+		octets[5 - i] = (unsigned char)((x >> (i * 8)) & 0xFF);
 }
-
-
-//Convert double into 6 bytes sent back by an unsigned char pointer
-int convert_double_6char (double fraction, unsigned char* octets) {
-	double  bita, bitb, bitc, bitd, bite, bitf;
-	bitf= fraction/(1099511627776.0); 
-	*(octets+5)=(unsigned char)bitf;
-	bite= (fraction-1099511627776.0*(*(octets+5)))/(4294967296.0);
-	*(octets+4)=(unsigned char)bite;
-	bitd=(fraction-1099511627776.0*(*(octets+5))- 4294967296.0*(*(octets+4)))/( 16777216.0);
-	*(octets+3)=(unsigned char)bitd;
-	bitc=(fraction-1099511627776.0*(*(octets+5))- 4294967296.0*(*(octets+4))-16777216.0*(*(octets+3)))/( 65536.0);
-	*(octets+2)=(unsigned char)bitc;
-	bitb= (fraction-1099511627776.0*(*(octets+5))- 4294967296.0*(*(octets+4))-16777216.0*(*(octets+3))-65536*(*(octets+2)))/ 256.0;
-	*(octets+1)=(unsigned char)bitb;
-	bita= (fraction-1099511627776.0*(*(octets+5))- 4294967296.0*(*(octets+4))-16777216.0*(*(octets+3))-65536*(*(octets+2))-256.0*(*(octets+1)))/ 1.0;  
-	*(octets)=(unsigned char)bita;
-	return 0;
-}
--- a/DDS_Fox.h	Mon Oct 29 14:48:08 2012 +0100
+++ b/DDS_Fox.h	Mon Oct 29 14:48:14 2012 +0100
@@ -4,52 +4,23 @@
 	int Port;
 	//int Divider;
 	double Clock;
-	double Frequency;
 	double SweepRate;
 	double Delta_T;
-	unsigned int Profil;  // numéro de profil de la DDS : single freq=0, sweep=7
-}DDSParameter;
-
-
-
-
-
+	unsigned int Profil;
+} DDSParameter;
 
-typedef struct {
-	char* action;
-	char* canal;
-	char* command;  
-	char* value0;
-	char* value1;
-	char* value2;
-	char* value3;
-	char* value4;
-	char* value5;
-	char* value6;
-	char* value7;
-	char* value8;
-	char* value9;
-	char* value10;
-	char* value11;
-	char* value12;
-	char* value13;
-	char* value14;
-	char* value15;
-	char* value16;
-	char* value17;
-	char* value18;
-	char* value19;
-	
-}Command;
-
-
-void DDS_Initialize (DDSParameter * Param) ;
+void DDSFox_Initialize(DDSParameter *Param, char *ip, int port, double frequency);
+void DDSFox_SetSweepRate(DDSParameter *Param, double sweepRate);
+void DDSFox_Set(DDSParameter *Param, double frequency, double sweepRate);
+void DDSFox_Nop(DDSParameter *Param);
+void DDSFox_SetProfile(DDSParameter *Param);
+void DDSFox_SetDiv(DDSParameter *Param, int div);
 void DDSFox_Reset(DDSParameter * Param);
 void DDSFox_SetFreq (DDSParameter * Param) ;
+void DDSFox_SetFreqInf (DDSParameter *Param, double frequency) ;
+void DDSFox_SetFreqSup (DDSParameter *Param, double frequency) ;
 void DDSFox_SetFreqMax (DDSParameter *Param);
 void DDSFox_SetFreqMin (DDSParameter *Param) ;
-//void DDSFox_SetRate (DDSParameter * Param) ;
-void DDSFox_SetDiv(DDSParameter * Param) ;
 void DDSFox_SetDT(DDSParameter * Param);
 void DDSFox_SetDf(DDSParameter * Param);
 int DDSFox_GetSweepSign(DDSParameter * Param);
@@ -57,13 +28,4 @@
 void DDSFox_StopSweep(DDSParameter * Param);
 void DDSFox_StartSweep(DDSParameter * Param);
 double DDSFox_ReadFreq(DDSParameter * Param);
-int SendCmd(char * Buffer, DDSParameter * Param) ;
-int RecvCmd2(int * cmd, char * Buffer, DDSParameter * Param) ;
-int RecvCmd(Command * Rd, char * Buffer, DDSParameter * Param) ;
-int OnTCPEvent(unsigned handle, int xType, int errCode, void *callbackData) ;
-void parse_command2(int * cmd, char * buf ) ;
-int parse_command(Command * cmd1, char * command ) ;
-int convert_double_6char (double fraction, unsigned char* octects) ;
-int init_command(Command * cmd1) ;
-void DDS_ReInitialize (DDSParameter *Param);