示例#1
0
//control
void controlMov(motor393 *motor_){ //checa los botones de los motores

	if(vexRT[ADELANTE_D]){//depende de que boton este presionado entonces mueve el motor de diferente forma
		motorFront(&motor_[motorLeft]);
	}
	else if(vexRT[ATRAS_D]){
		motorBack(&motor_[motorLeft]);
	}
	else {
		motorStop(&motor_[motorLeft]);//en caso de que ningun boton esta presionado, entonces apaga el motor
	}

	if(vexRT[ADELANTE_I]){ //lo mismo que arriba pero con el boton izquierdo
		motorFront(&motor_[motorRight]);
	}
	else if(vexRT[ATRAS_I]){
		motorBack(&motor_[motorRight]);
	}
	else {
		motorStop(&motor_[motorRight]);
	}

	if(vexRT[IZQUIERDA]){ //lo mismo que arriba pero con el boton izquierdo
		motorFront(&motor_[motorOmni]);
	}
	else if(vexRT[DERECHA]){
		motorBack(&motor_[motorOmni]);
	}
	else {
		motorStop(&motor_[motorOmni]);
	}

}
bool dataHandler(uint8_t *dataRecv, uint8_t *dataSend, uint8_t *dataSendLen)
{
	TransPacket *dataPack = (TransPacket *)dataRecv;
	TransPacket *dataHandle = (TransPacket *)dataSend;
	
	if(dataPack->header != PC_HEADER)
		return false;

	if(checkXor(&dataPack->dataBuf[0], dataPack->len, &dataPack->dataBuf[dataPack->len]))
		return false;
	
	dataHandle->header = dataPack->header;
	
	switch(dataPack->cmd)
	{
		case 0x01:
			dataHandle->len = 0;
		case 0x02:
			commanderGetPacket(dataPack);
			break;
		case 0x03:
			velocityGetPID(dataPack);
			break;
		case 0x04:
			turnGetPID(dataPack);
			break;
		case 0x10:
			accBack(dataHandle);
			break;
		case 0x11:
			gyroBack(dataHandle);
			break;
		case 0x12:
			magBack(dataHandle);
			break;
		case 0x13:
			eulerBack(dataHandle);
			break;
		case 0x14:
			motorBack(dataHandle);
			break;
		case 0x15:
//			velocityPIDBack(dataHandle);
			break;
		case 0x16:
			turnPIDBack(dataHandle);
			break;
	}
	
	generateXor(&dataHandle->dataBuf[0], dataHandle->len, &dataHandle->dataBuf[dataHandle->len]);
	
	*dataSendLen = dataHandle->len + 5;

	return true;
}
示例#3
0
void controlBandas(motor393 *motor_){ //funcion que controla las bandas

	if(vexRT[SUCCIONAR]){
		motorFront(&motor_[motorSuc]);
	}
	else if(vexRT[ESCUPIR]){
		motorBack(&motor_[motorSuc]);
	}
	else if(vexRT[APAGARBANDA]){
		motorStop(&motor_[motorSuc]);
	}

}
示例#4
0
void down(motor393 *motor1, motor393 *motor2){
	motorBack(motor1);
	motorBack(motor2);
}
示例#5
0
void turnback(motor393 *motor_){
     motorBack(&motor_[motorRight]);
     motorStop(&motor_[motorLeft]);
     delay(300);
}
示例#6
0
void back(motor393 *motor_){
     motorBack(&motor_[motorRight]);
     motorBack(&motor_[motorLeft]);
}