Beispiel #1
0
/* 
 * Can process the following arguments using the echo command.
 *
 */
void processingArgs(int	argCount, const char **	argTable){
	
	for(int i=0; i < argCount ; i++){
		if (argTable[i][0] == '$'){
			if( argTable[i][1] == '[' ){
				char * data = (char*)argTable[i];
				printf("Cas calcul Arithmétique\n");
				remove_all_chars(data, '$');
				remove_all_chars(data, '[');
				remove_all_chars(data, ']');
			}else{
				argTable[i] = getEnv((&argTable[i][1]));
			}
		}
	}
}
Beispiel #2
0
void Thing1Class::loop()
{
	Event event;

	if (_serial->available()>0)
	{
		readline(rcvBuf,RCV_BUF_LEN); /* Read Event */
		
		if (strcmp("OK",rcvBuf) == 0)
		{
			event = Ok;
		}
		else if (strcmp("ERR",rcvBuf) == 0)
		{
			event = Err;
		}
		else if (strcmp("TIMEOUT+ERR",rcvBuf) == 0)
		{
			event = TimeoutErr;
		}
		else if (strcmp("SWITCH_ON",rcvBuf) == 0)
		{
			event = SwitchOn;
		}
		else if (strcmp("WLAN_CONNECTED",rcvBuf) == 0)
		{
			event = WlanConnected;
		}
		else if (strcmp("WLAN_DISCONNECTED",rcvBuf) == 0)
		{
			event = WlanDisconnected;
		}
		else if (strcmp("IP_CONFIG",rcvBuf) == 0)
		{
			event = IpConfig;
		}
		else if (memcmp("tcp:cli:connected",rcvBuf,17) == 0)
		{
			event = TcpConnected;
		}
		else if (memcmp("tcp:cli:rcv",rcvBuf,11) == 0)
		{
			event = TcpCliRcv;
		}
		else
		{
			event = UnknownInput;
		}

		switch (event)
		{
		case WlanConnected:
			break;
		case TimeoutErr:
			setLed(GreenOff);
			setLed(RedOn);
			_currState = DISCONNECTED;
			break;
		case WlanDisconnected:
			_currState = DISCONNECTED;
			setLed(GreenOff);
			setLed(RedOn);			
			break;
		case IpConfig:
			_currState = CONNECTED;
			setLed(RedOff);
			setLed(GreenOn);
			if(ipConfigCallback) 
			{
				(*ipConfigCallback)(IpConfigC, rcvBuf);
			}
			break;
		case TcpCliRcv:
			if(tcpCliRcvCallback) 
			{
				/* tcp:cli:rcv <Handle> ”<Message>” */
				strtok (rcvBuf," "); //cmd
				char * phandle = strtok(NULL," "); // handle
				char * pmessage = strtok(NULL," "); // received message
				
				remove_all_chars(pmessage, '"');

				(*tcpCliRcvCallback)(TcpCliRcvC, phandle, pmessage);
			}
			break;
			
		case TcpConnected:
			if(TcpConnectedCallback) 
			{
				/* tcp:cli:connected <IP> <Port> <Handle> */
				strtok (rcvBuf," "); // cmd 
				char * pip = strtok (NULL," "); // ip of client
				char * pport = strtok (NULL," "); // port				
				char * phandle = strtok(NULL," "); // handle
				
				(*TcpConnectedCallback)(TcpConnectedC, pip, pport, phandle); //ip, port, handle
			}
			break;
		case SwitchOn:
			switch (_currState)
			{
			case CONNECTED:
				disconnectCmd();
				break;
			case DISCONNECTED:
				smartconfigCmd();
				break;
			default:
				break;
			}
			break;
		case UnknownInput:
			break;
		default:
			break;
		}
	}
}