Example #1
0
boolean processPIDCrit(BowlerPacket * Packet){
	uint8_t i=0;
	switch (Packet->use.head.RPC){
	case KPID:
		for(i=0;i<getNumberOfPidChannels();i++){
			getPidGroupDataTable(i)->config.Enabled = true; 
			setOutput(i,0.0);
			getPidGroupDataTable(i)->config.Enabled = false; 
			getPidVelocityDataTable(i)->enabled=false; 
			getPidGroupDataTable(i)->Output=0.0;
		}
		READY(Packet,zone,0);
		break;
	case CPID:
		if(ConfigPID(Packet)){
			READY(Packet,zone,1);
		}else
			ERR(Packet,zone,1);
		break;
	case CPDV:
		if(ConfigPDVelovity(Packet)){
			READY(Packet,zone,1);
		}else
			ERR(Packet,zone,1);
		break;
	default:
		return false; 
	}
	return true; 
}
Example #2
0
/*! process command
 *
 * \return A value : braitenberg end mode
 *    - 0 if success
 *    - <0 if any error
*/
int process_command ()
{
	char Buffer[MAXBUFFERSIZE];
 	int narg;
  
  int out=0;
	
 	string larg[MAX_ARG];
	char *bptr;


	// receive and interpret commands (wait)
  if ( readLine(Buffer) >0 ) 
  {
  	#ifdef DEBUG
  		printf("%c length %d |%s|",Buffer[0],strlen(Buffer),Buffer);
  	#endif
  	
  	if (strlen(Buffer)>2)
  	{
  		/* Process all the args */
			bptr = Buffer + 2;
			
			narg=getArgs(bptr,larg);
			
		}
  	
		switch(Buffer[0])
		{
			case 'A':
				out=braitenberg(narg,larg);
				break;
			case 'B':
				revisionOS(narg,larg);
				break;
			case 'C': 
				configureOS(narg,larg);	
				break;
			case 'D': 
				SetSpeed(narg,larg);	
				break;
			case 'E': 
				GetSpeed(narg,larg);	
				break;
			case 'F': 
				SetTargetProfile(narg,larg);	
				break;
			case 'G': 
				GetUS(narg,larg);	
				break;
			case 'H': 
				ConfigPID(narg,larg);	
				break;
			case 'I': 
				SetEncPosition(narg,larg);	
				break;
			case 'J': 
				ConfigSpeedProfile(narg,larg);	
				break;
			case 'K': 
				SetLED(narg,larg);	
				break;
			case 'L': 
				SetSpeedOpenLoop(narg,larg);	
				break;
			case 'M': 
				InitMot(narg,larg);	
				break;					
			case 'N': 
				ReadProxSensors(narg,larg);	
				break;
			case 'O': 
				ReadAmbSensors(narg,larg);	
				break;
			case 'P': 
				SetTargetPosition(narg,larg);	
				break;
			case 'R': 
				ReadPos(narg,larg);	
				break;							
			case 'V':
				batStatus(narg,larg);
				break;
			case 'X':
				BinaryRead(narg,larg);
				break;
			case 'Z':
				tstampRST(narg,larg);
				break;
			default:
				sprintf(Buffer,"%c\r\n",ERROR_CMD_CHAR);
				com_send(Buffer, strlen(Buffer));
				
		}
  }
      
	return out;
}