示例#1
0
文件: A_to_L.c 项目: manishc1/Coding
void main() {
		// Unit Tests
		test("Empty_String_Test",  0,    stringToLong(""));
		test("Zero_Test",          0,    stringToLong("0"));
		test("Negative_Test",      -123, stringToLong("-123"));
		test("Positive_Test",      123,  stringToLong("123"));
		test("Spaces_Test",        123,  stringToLong("   123   "));
		test("Non_Digit_Test",     0,    stringToLong("no digit"));
		test("Partial_Digit_Test", 12,   stringToLong("12e"));
}
示例#2
0
文件: euler.c 项目: nroberson/euler
int main(int argc, char *argv[])
{
	if (2 != argc)
	{
		puts("usage: euler <problem_num>");
		return EXIT_FAILURE;
	}

	stl_parse_result parseResult = stringToLong(argv[1]);

	if (EXIT_FAILURE == parseResult.status)
	{
		puts("Invalid input!");
		return EXIT_FAILURE;
	}

	printf("Getting solution for problem %ld\n", parseResult.value);
	profile_result profileResult;
	switch (parseResult.value) {
		case 1:
			profileResult = profileFunc(&solution1);
			break;
		case 2:
			profileResult = profileFunc(&solution2);
			break;
		case 3:
			profileResult = profileFunc(&solution3);
			break;
		case 4:
			profileResult = profileFunc(&solution4);
			break;
		case 5:
			profileResult = profileFunc(&solution5);
			break;
		case 6:
			profileResult = profileFunc(&solution6);
			break;
		default:
			return !(0 < printf("I don't have a solution for that prolem yet.\n"));
			break;
	}

	if (0 <= profileResult.duration)
	{
		printf("Execution time: %ld microseonds\n", profileResult.duration);
	} else
	{
		printf("Profiling failed.\n");
	}

	return profileResult.status;
}
示例#3
0
文件: chord.c 项目: willzxd/Chord
/*
After a connection, handle the messages.
*/
void handle(int sock){
	//printf("Im handle.\n");
	//return 0;

	int n;
	char msgR[1000];
	char msgS[1000];

	n = readaline(sock, msgR, 1000);
	

	if (strcmp(msgR, "JOIN") == 0){
		printf("====Handle: Got JOIN====\n");

		node node_new;
		n = readaline(sock, msgR, 1000);
		printf("Got JOIN:%s\n", msgR);
		(&node_new)->id = stringToLong(msgR);

		n = readaline(sock, msgR, 1000);
		printf("Got JOIN:%s\n", msgR);
		strcpy((&node_new)->ip, msgR);

		n = readaline(sock, msgR, 1000);
		printf("Got JOIN:%s\n", msgR);
		(&node_new)->port = atoi(msgR);

		node *pre_toJoin = malloc(sizeof(node));
		node *suc_toJoin = malloc(sizeof(node));
		int result = joinIn(node_new, pre_toJoin, suc_toJoin);

		if (result == 1 || result == 2){
			sendto(sock, "JOIN_SUCC\n", 10, 0,
					(struct sockaddr *) &client_addr, sizeof(client_addr));
			printf("=====Handle: JOIN_SUCC=====\n");

			sprintf(msgS, "%ld", pre_toJoin->id);
			strcat(msgS, "\n");
			sendto(sock, msgS, strlen(msgS), 0,
					(struct sockaddr *) &client_addr, sizeof(client_addr));
			printf("handle.JOIN_SUCC.predecessor's id:%s\n", msgS);
			strcpy(msgS, pre_toJoin->ip);
			strcat(msgS, "\n");
			sendto(sock, msgS, strlen(msgS), 0,
					(struct sockaddr *) &client_addr, sizeof(client_addr));
			printf("handle.JOIN_SUCC.predecessor's ip:%s\n", msgS);
			sprintf(msgS, "%d", pre_toJoin->port);
			strcat(msgS, "\n");
			sendto(sock, msgS, strlen(msgS), 0,
					(struct sockaddr *) &client_addr, sizeof(client_addr));
			printf("handle.JOIN_SUCC.predecessor's port:%s\n", msgS);

			sprintf(msgS, "%ld", suc_toJoin->id);
			strcat(msgS, "\n");
			sendto(sock, msgS, strlen(msgS), 0,
					(struct sockaddr *) &client_addr, sizeof(client_addr));
			printf("handle.JOIN_SUCC.successor's id:%s\n", msgS);
			strcpy(msgS, suc_toJoin->ip);
			strcat(msgS, "\n");
			sendto(sock, msgS, strlen(msgS), 0,
					(struct sockaddr *) &client_addr, sizeof(client_addr));
			printf("handle.JOIN_SUCC.successor's ip:%s\n", msgS);
			sprintf(msgS, "%d", suc_toJoin->port);
			strcat(msgS, "\n");
			sendto(sock, msgS, strlen(msgS), 0,
					(struct sockaddr *) &client_addr, sizeof(client_addr));
			printf("handle.JOIN_SUCC.successor's port:%s\n", msgS);

			if (result == 2){
				node nodes_info[1];
				nodes_info[0] = node_new;
				int number_node = 1;
				sendNtoN(nodes_info, number_node, "PRE",
						*suc_toJoin);
			}
		} 
		else{
			sendto(sock, "JOIN_WAIT\n", 10, 0,
					(struct sockaddr *) &client_addr, sizeof(client_addr));
			node nodes_info[1];
			nodes_info[0] = node_new;
			int number_node = 1;
			sendNtoN(nodes_info, number_node, "JOIN_FD", *successor0);
		}
	} 
	else if (strcmp(msgR, "JOIN_FD") == 0){
		printf("=====Handle: Got JOIN_FD=====\n");
		node node_new;
		n = readaline(sock, msgR, 1000);
		(&node_new)->id = stringToLong(msgR);
		n = readaline(sock, msgR, 1000);
		strcpy((&node_new)->ip, msgR);
		n = readaline(sock, msgR, 1000);
		(&node_new)->port = atoi(msgR);
		node *pre_toJoin = malloc(sizeof(node));
		node *suc_toJoin = malloc(sizeof(node));
		int result = joinIn(node_new, pre_toJoin, suc_toJoin);

		if (result == 1 || result == 2){
			node nodes_info[2];
			nodes_info[0] = *pre_toJoin;
			nodes_info[1] = *suc_toJoin;
			int number_node = 2;
			sendNtoN(nodes_info, number_node, "JOIN_SUCC", node_new);

			if (result == 2){
				node nodes_info[1];
				nodes_info[0] = node_new;
				int number_node = 1;
				sendNtoN(nodes_info, number_node, "PRE",
						*suc_toJoin);
			}
		} 
		else{
			sendto(sock, "JOIN_WAIT\n", 10, 0,
					(struct sockaddr *) &client_addr, sizeof(client_addr));

			node nodes_info[1];
			nodes_info[0] = node_new;
			int number_node = 1;
			sendNtoN(nodes_info, number_node, "JOIN_FD", *successor0);
		}
	} 
	else if (strcmp(msgR, "JOIN_SUCC") == 0){
		printf("====Handle: Got %s=====\n", msgR);

		n = readaline(sock, msgR, 1000);
		predecessor0->id = stringToLong(msgR);
		n = readaline(sock, msgR, 1000);
		strcpy(predecessor0->ip, msgR);
		n = readaline(sock, msgR, 1000);
		predecessor0->port = atoi(msgR);
		n = readaline(sock, msgR, 1000);
		successor0->id = stringToLong(msgR);
		n = readaline(sock, msgR, 1000);
		strcpy(successor0->ip, msgR);
		n = readaline(sock, msgR, 1000);
		successor0->port = atoi(msgR);
		initFTable();

		/*
		 printf("predecessor0:\n");
		 printNode(*predecessor0);
		 printf("successor0:\n");
		 printNode(*successor0);
		 */
		//updateFTable();
		node node_new[2];
		node_new[0] = *current;
		node_new[1].id = 0;
		sendNtoN(node_new, 2, "UPDATE", *successor0);

	} 
	else if (strcmp(msgR, "PRE") == 0){
		printf("====Handle: Got %s=====\n", msgR);

		n = readaline(sock, msgR, 1000);
		predecessor0->id = stringToLong(msgR);
		n = readaline(sock, msgR, 1000);
		strcpy(predecessor0->ip, msgR);
		n = readaline(sock, msgR, 1000);
		predecessor0->port = atoi(msgR);
		/*
		 printf("predecessor0:\n");
		 printNode(*predecessor0);
		 printf("successor0:\n");
		 printNode(*successor0);
		 */
	} 
	else if (strcmp(msgR, "SUCC") == 0){
		printf("====Handle: Got %s=====\n", msgR);

		n = readaline(sock, msgR, 1000);
		successor0->id = stringToLong(msgR);
		n = readaline(sock, msgR, 1000);
		strcpy(successor0->ip, msgR);
		n = readaline(sock, msgR, 1000);
		successor0->port = atoi(msgR);
		/*
		 printf("predecessor0:\n");
		 printNode(*predecessor0);
		 printf("successor0:\n");
		 printNode(*successor0);
		 */
	} 
	else if (strcmp(msgR, "UPDATE") == 0){
		printf("====Handle: Got %s=====\n", msgR);

		node node_new;
		n = readaline(sock, msgR, 1000);
		node_new.id = stringToLong(msgR);
		n = readaline(sock, msgR, 1000);
		strcpy(node_new.ip, msgR);
		n = readaline(sock, msgR, 1000);
		node_new.port = atoi(msgR);
		

		int power;
		n = readaline(sock, msgR, 1000);
		power = atoi(msgR);
		n = readaline(sock, msgR, 1000);
		n = readaline(sock, msgR, 1000);
		if (node_new.id != current->id){
			updateFTable(node_new.id, -1, 1);
			if (power < FINGERTABLE_SIZE ){
				int i;
				int j = 0;
				char results[FINGERTABLE_SIZE * 2][1000];
				for (i = power; i <= FINGERTABLE_SIZE - 1; i++){

					long bound = 0;
					if (node_new.id + (long) pow(2, i) >= KEY_SIZE ){
						bound = node_new.id + (long) pow(2, i) - KEY_SIZE;
					} 
					else{
						bound = node_new.id + (long) pow(2, i);
					}

					if (current->id >= bound){
						sprintf(results[j++], "%ld", bound);
						sprintf(results[j++], "%ld", current->id);
					} 
					else if(successor0->id > current->id && current->id < predecessor0->id
							&& predecessor0->id >= successor0->id && bound > current->id){
						sprintf(results[j++], "%ld", bound);
						sprintf(results[j++], "%ld", current->id);
					} 
					else{
						break;
					}
				}
				power = i;
				if (j > 0)
					sendStoN("FTABLE_UPDATE", results, j, node_new);
			}
			node nodes_new[2];
			nodes_new[0] = node_new;
			nodes_new[1].id = power;
			sendNtoN(nodes_new, 2, "UPDATE", *successor0);
		}
	} 
	else if (strcmp(msgR, "FTABLE_UPDATE") == 0){
		printf("====Handle: Got %s=====\n", msgR);
		int size;
		n = readaline(sock, msgR, 1000);
		size = atoi(msgR);
		
		int i;
		long start;
		long nodeId;
		for (i = 0; i <= size - 1; i += 2){

			n = readaline(sock, msgR, 1000);
			start = stringToLong(msgR);
			n = readaline(sock, msgR, 1000);
			nodeId = stringToLong(msgR);
			insertFTable(start, nodeId);
		}
	} 
	else if (strcmp(msgR, "LEAVE_PRE") == 0){
		printf("====Handle: Got %s=====\n", msgR);

		n = readaline(sock, msgR, 1000);
		predecessor0->id = stringToLong(msgR);
		n = readaline(sock, msgR, 1000);
		strcpy(predecessor0->ip, msgR);
		n = readaline(sock, msgR, 1000);
		predecessor0->port = stringToLong(msgR);
		/*
		 printf("predecessor0:\n");
		 printNode(*predecessor0);
		 printf("successor0:\n");
		 printNode(*successor0);
		 */
	} 
	else if (strcmp(msgR, "LEAVE_SUC") == 0){
		printf("====Handle: Got %s=====\n", msgR);
		n = readaline(sock, msgR, 1000);
		successor0->id = stringToLong(msgR);
		n = readaline(sock, msgR, 1000);
		strcpy(successor0->ip, msgR);
		n = readaline(sock, msgR, 1000);
		successor0->port = atoi(msgR);
		/*
		 printf("predecessor0:\n");
		 printNode(*predecessor0);
		 printf("successor0:\n");
		 printNode(*successor0);
		 */
	} 
	else if (strcmp(msgR, "UPDATE_LEAVE") == 0){
		printf("====Handle: Got %s=====\n", msgR);
		node node_leave;
		n = readaline(sock, msgR, 1000);
		node_leave.id = stringToLong(msgR);		
		n = readaline(sock, msgR, 1000);
		strcpy(node_leave.ip, msgR);		
		n = readaline(sock, msgR, 1000);
		node_leave.port = atoi(msgR);		
		node node_suc;
		n = readaline(sock, msgR, 1000);
		node_suc.id = stringToLong(msgR);
		n = readaline(sock, msgR, 1000);
		strcpy(node_suc.ip, msgR);	
		n = readaline(sock, msgR, 1000);
		node_suc.port = atoi(msgR);	
		if (node_leave.id != current->id){
			updateFTable(node_leave.id, node_suc.id, 0);
			node nodes_new[2];
			nodes_new[0] = node_leave;
			nodes_new[1] = node_suc;
			sendNtoN(nodes_new, 2, "UPDATE_LEAVE", *successor0);
		} else{
			*quitUpdate = 1;
		}
	} 
	//Search part
	else if (strcmp(msgR, "LOOKUP") == 0){
		printf("=====Handle: Get LOOKUP Message=====\n");

		long key;
		node node_source;
		n = readaline(sock, msgR, 1000);
		printf("handle: lookup message:%s\n", msgR);
		key = stringToLong(msgR);

		n = readaline(sock, msgR, 1000);
		printf("handle: lookup message:%s\n", msgR);
		n = readaline(sock, msgR, 1000);
		printf("handle: lookup message:%s\n", msgR);
		n = readaline(sock, msgR, 1000);
		node_source.id = stringToLong(msgR);
		printf("handle: lookup message:%s\n", msgR);
		n = readaline(sock, msgR, 1000);
		strcpy(node_source.ip, msgR);
		printf("handle: lookup message:%s\n", msgR);
		n = readaline(sock, msgR, 1000);
		node_source.port = atoi(msgR);
		printf("handle: lookup message:%s\n", msgR);
		if (node_source.id == current->id){
			printf("Key not found\n");
		} 
		else{
			node result;
			result = lookup(key, node_source);
			if (result.id != -1){
				printf("The key belongs to the node:\n");
				printNode(*current);
				printf("Not found.\n");
				node node_found[1];
				node_found[0] = *current;
				sendNtoN(node_found, 1, "FOUND", node_source);
			}
		}
	}
	//Receive a "FOUND" message, print the message out  
	else if (strcmp(msgR, "FOUND") == 0){
		printf("handle: Got FOUND: %s\n", msgR);
		node node_found;
		n = readaline(sock, msgR, 1000);
		node_found.id = stringToLong(msgR);
		n = readaline(sock, msgR, 1000);
		strcpy(node_found.ip, msgR);
		n = readaline(sock, msgR, 1000);
		node_found.port = atoi(msgR);
		printf("Key found on node:\n");
		printNode(node_found);
	} 
	//else if (strcmp(msgR, "IS_ALIVE") == 0){
		//printf("====Handle: Got %s=====\n", msgR);
		//send back a confirm message
	//}
}
示例#4
0
文件: chord.c 项目: willzxd/Chord
/*
In main function: Join in a ring
*/
void join(char** argv){
	// struct sockaddr_in {
	// 	short int sin_family; /* 通信类型 */
	// 	unsigned short int sin_port; /* 端口 */
	// 	struct in_addr sin_addr; /* Internet 地址 */
	// 	unsigned char sin_zero[8]; /* 与sockaddr结构的长度相同*/
	// };
	struct sockaddr_in serveraddr, clientaddr;
	int serversock;
	int n;
	char sendline[1000];
	char recvline[1000];

	//init parameters
	serversock = socket(AF_INET, SOCK_STREAM, 0);
	bzero(&serveraddr, sizeof(serveraddr));
	serveraddr.sin_family = AF_INET;
	
	if (inet_addr(argv[2]) != -1){
		printf("Join: server ip is: %s\n", argv[2]);
		serveraddr.sin_addr.s_addr = inet_addr(argv[2]);
	}
	else{
		printf("Join error: server address error");
	}

	printf("Join: server port is: %s\n", argv[3]);
	serveraddr.sin_port = htons(atoi(argv[3]));

	//connect to server
	printf("Join: connect to the server...\n");
	n = connect(serversock, (struct sockaddr *) &serveraddr, sizeof(serveraddr));
	if (n == 0){
		printf("Join: connceted!\n");
	}
	else{
		printf("error:%s\n",strerror(errno));
		perror("Join: connect failed.\n");
	}
	

	strcpy(sendline, "JOIN");
	strcat(sendline, "\n");
	sendto(serversock, sendline, strlen(sendline), 0,
			(struct sockaddr *) &serveraddr, sizeof(serveraddr));
	printf("Join: send join message:%s\n", sendline);

	sprintf(sendline, "%ld", current->id);
	strcat(sendline, "\n");
	sendto(serversock, sendline, strlen(sendline), 0,
			(struct sockaddr *) &serveraddr, sizeof(serveraddr));
	printf("Join: send my id:%s\n", sendline);

	strcpy(sendline, current->ip);
	strcat(sendline, "\n");
	sendto(serversock, sendline, strlen(sendline), 0,
			(struct sockaddr *) &serveraddr, sizeof(serveraddr));
	printf("Join: send my ip:%s\n", sendline);

	sprintf(sendline, "%d", current->port);
	strcat(sendline, "\n");
	sendto(serversock, sendline, strlen(sendline), 0,
			(struct sockaddr *) &serveraddr, sizeof(serveraddr));
	printf("Join: send my port:%s\n", sendline);


	n = readaline(serversock, recvline, 1000);
	//printf("recv:%s\n", recvline);

	if (strcmp(recvline, "JOIN_SUCC") == 0){
		printf("JOIN_SUCC: begin to read receive message\n");
		n = readaline(serversock, recvline, 1000);
		predecessor0->id = stringToLong(recvline);
		printf("Join: receive predecessor id:%s\n", recvline);

		n = readaline(serversock, recvline, 1000);
		strcpy(predecessor0->ip, recvline);
		printf("Join: receive predecessor ip:%s\n", recvline);

		n = readaline(serversock, recvline, 1000);
		predecessor0->port = atoi(recvline);
		printf("Join: receive predecessor port:%s\n", recvline);

		n = readaline(serversock, recvline, 1000);
		successor0->id = stringToLong(recvline);
		printf("Join: receive successor id:%s\n", recvline);

		n = readaline(serversock, recvline, 1000);
		strcpy(successor0->ip, recvline);
		printf("Join: receive successor ip:%s\n", recvline);

		n = readaline(serversock, recvline, 1000);
		successor0->port = atoi(recvline);
		printf("Join: receive successor port:%s\n", recvline);

		initFTable();
		printf("Join: init fingertable finished.\n");
		printNode(* current);
		printNode(* predecessor0);
		printNode(* successor0);
		
		node newN[2];
		newN[0] = *current;
		newN[1].id = 0;
		printf("Send UPDATE info to successor.\n");
		sendNtoN(newN, 2, "UPDATE", *successor0);

	}
	close(serversock);

}
示例#5
0
文件: RS232.C 项目: frozen2020/new
void runCommand()
{	unsigned long temp;
	//ON and OFF command
	if((strncmp(parameter,QSW, 3)==0))
		{
			if(strncmp(setting_value,TURN_OFF,6)==0)
				{
				QSWON=0;
				strncpy(msg_globe,TURN_OFF,6);
				echo();
				}
				
			else
				{
				QSWON=1;		
				strncpy(msg_globe,TURN_ON,6);
				echo();
				}			
			qswonAction();
		}
	else if((strncmp(parameter,SHT, 3)==0))
		{
			if(strncmp(setting_value,TURN_OFF,6)==0)
				{
				SHTON=0;
				strncpy(msg_globe,TURN_OFF,6);
				echo();
				}
			else
				{
				SHTON=1;		
				strncpy(msg_globe,TURN_ON,6);
				echo();
				}
			shtonAction();		
		}	
	else if((strncmp(parameter,EXT, 3)==0))
		{
			if(strncmp(setting_value,TURN_OFF,6)==0)
				{
				QSWEXT=0;
				strncpy(msg_globe,TURN_OFF,6);
				echo();
				}
			else
				{
				QSWEXT=1;		
				strncpy(msg_globe,TURN_ON,6);
				echo();
				}				
			qswextAction();		
		}
	else if((strncmp(parameter,RST, 3)==0))
		{
			if(strncmp(setting_value,TURN_OFF,6)==0)
				{
				RESET=0;
				strncpy(msg_globe,TURN_OFF,6);
				echo();
				}
			else
				{
				RESET=1;		
				strncpy(msg_globe,TURN_ON,6);
				echo();
				TPFLAG = 0;
				}							
		}
	else if((strncmp(parameter,DIO, 3)==0))
		{
			if(strncmp(setting_value,TURN_OFF,6)==0)
				{
				RF_OFF=1;
				strncpy(msg_globe,TURN_OFF,6);
				echo();
				}
				
			else
				{
				RF_OFF=0;
				strncpy(msg_globe,TURN_ON,6);
				echo();
				}			
			diodeAction();
		}	
	else if((strncmp(parameter,FPS, 3)==0))
		{
			   if(strncmp(setting_value,TURN_OFF,6)==0)  //normal: no FPS
				{
				FPS_ON=0;
				*PEDATDIR = *PEDATDIR & 0xFFBF; 		
				FPS_LEVEL=100;
				//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@	
				//*T4CMPR = FPS_LEVEL;
				//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@			
				}
				else if(strncmp(setting_value,TURN_ON,6)==0) //method 1: FPS=on, FPL=100%
				{
				FPS_ON=1;
				*PEDATDIR = *PEDATDIR | 0x0040; 	
				FPS_LEVEL=100;
				//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@				
				//*T4CMPR = FPS_LEVEL;
				//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
				}
				else      //method 2: FPS=off, FPL=input
				{
				FPS_ON=2;
				//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
				//*T4CMPR = FPS_LEVEL;
				//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
				*PEDATDIR = *PEDATDIR & 0xFFBF; 												
				}				
				if(FPS_ON==2)
   	 			*XINT2CR = 0x8005;
   	 			else
   	 			*XINT2CR = 0x8000;   	 	
				strncpy(msg_globe,(char *)FPS_ON,6);
				echo();				
		}									
	//SETTING VALUE COMMAND		
	else if((strncmp(parameter,PRF, 3)==0))		
		{
		PULSERATE=stringToLong((char *)setting_value);		
		pulseRateAction();		
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}
	else if((strncmp(parameter,PWM, 3)==0))//++xiao PWM		
		{
		PWMTime=stringToLong((char *)setting_value);
		if( (PWMTime < 20) || (PWMTime > 380) )
		PWMTime=20;		
		pulseRateAction();
		WriteData();
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}//++xiao		
	else if((strncmp(parameter,TEV, 3)==0))		
		{
		ENVSET=(short)stringToLong((char *)setting_value);		
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}		
	else if((strncmp(parameter,TLA, 3)==0))		
		{
		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
		//D2_SET=(short)stringToLong((char *)setting_value);
		D2_SET=(float)stringToLong((char *)setting_value);
		//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@		
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}		
	else if((strncmp(parameter,TK1, 3)==0))		
		{
		XTL1SET=(short)stringToLong((char *)setting_value);		
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}		
	else if((strncmp(parameter,TK2, 3)==0))		
		{
		XTL2SET=stringToLong((char *)setting_value);		
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}		
	else if((strncmp(parameter,TDI, 3)==0))		
		{
		D1_SET=(float)stringToLong((char *)setting_value);		
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}		
	else if((strncmp(parameter,IDI, 3)==0))		
		{
		DIODECUR=stringToLong((char *)setting_value);
		if( DIODECUR > DIMAX ) DIODECUR = DIMAX;	//ver3c
		Diode_SetPt= DIODECUR;			
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		/*
		while(DIODECUR < Diode_SetPt)			// ramp the diode current
			{
			DIODECUR++;      				
			if(DIMAX > 250)	*T3CMPR = (DIODECUR<<2);
			else *T3CMPR = (DIODECUR<<2);
		 	wait(100);
			PLACE = 25;
		 	num2ascii(DIODECUR, 0);
		 	}						
		 	*/
		}		
	/*else if((strncmp(parameter,PKP, 3)==0))		
		{
		Kp=(float)stringToLong((char *)setting_value);		
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}		
	else if((strncmp(parameter,PKI, 3)==0))		
		{
		Ki=(float)stringToLong((char *)setting_value);		
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}					
	else if((strncmp(parameter,PKD, 3)==0))		
		{
		Kd=(float)stringToLong((char *)setting_value);		
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}*/		
	else if((strncmp(parameter,FPL, 3)==0))		
		{
		if(FPS_ON==2)
		{
			FPS_LEVEL=stringToLong((char *)setting_value);
			//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@			
			//*T4CMPR = FPS_LEVEL;
			//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
		}
		else 
		{
			FPS_LEVEL=100;
			//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@	
			//*T4CMPR = FPS_LEVEL;
			//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
		}			
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}	
	else if((strncmp(parameter,DCL, 3)==0))		
		{
		DIMAX=(short)stringToLong((char *)setting_value);		
		strncpy(msg_globe,(char *)setting_value,6);
		echo();
		}											
	else
	{strncpy(msg_globe,ERROR,6);
	 echo();		 
	 }
	return;
}