示例#1
0
void ShooterArm::UsePIDOutput(double output)
{
    //Go from stage 1 to to 2, or from stage 3 to 2 if off target
    if (((_onStage2 == false) && (OnTarget())) ||
        ((_onStage3 == true) && (OnTarget() == false)))
    {
        _onStage2 = true;
        _onStage3 = false;
        PIDController *pid = GetPIDController(); 
        pid->SetPID(_bothStage_P,_stage_2_I,_stage_2_D);
        pid->SetAbsoluteTolerance(fabs(_stage_2_tolerance * VOLTAGE_DEG_SCALAR));
    }
    else if ((_onStage2 == true) && (_onStage3 == false) && (OnTarget()))
    {
        _onStage3 = true;
        PIDController *pid = GetPIDController(); 
        pid->SetPID(_bothStage_P,0.0,_stage_2_D);
        //pid->SetAbsoluteTolerance(fabs(_stage_2_tolerance * VOLTAGE_DEG_SCALAR));
    }
    // BEGIN AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=OUTPUT
	shooterArmMotor->PIDWrite(output);
    // END AUTOGENERATED CODE, SOURCE=ROBOTBUILDER ID=OUTPUT
}
示例#2
0
void GameSocket::ProcessData(unsigned char* data, int size)
{
    Reader.SetBuffer(data);

    int offset = 0;
    while(offset < size)
    {
        unsigned short psize  = Reader.ReadWord() + 6;
        unsigned short opcode = Reader.ReadWord();
        Reader.Skip(2);

        switch(opcode) {

        case GAME_CLIENT_KEEP_ALIVE:
        case GAME_CLIENT_ACCEPT_HANDSHAKE:
            break;

        case GAME_CLIENT_INFO:
            SendServerInfo();
            break;

        case GAME_CLIENT_PATCH_REQUEST:
            SendPatchInfo();
            break;

        case GAME_CLIENT_AUTH:
            OnAuth();
            break;

        case GAME_CLIENT_CHARACTER:
            OnCharacter();
            break;

        case GAME_CLIENT_INGAME_REQUEST:
            OnIngameRequest();
            break;

        case GAME_CLIENT_MOVEMENT:
            OnMovement();
            break;

        case GAME_CLIENT_CLOSE:
            OnGameQuit();
            break;

        case GAME_CLIENT_CHAT:
            OnChat();
            break;

        case GAME_CLIENT_ITEM_MOVE:
            OnItem();
            break;

        case GAME_CLIENT_TARGET:
            OnTarget();
            break;

        case GAME_CLIENT_INGAME_NOTIFY:
            OnIngameNotify();
            break;

        case GAME_CLIENT_EMOTION://update carlosx
            OnEmotion();
            break;

        case GAME_CLIENT_SIT: //update carlosx
            OnSit();
            break;

        case GAME_CLIENT_ESTRELLA: //update carlosx
            OnEstrella();
            break;

        case GAME_CLIENT_ADDSKILL: //update carlosx
            OnUpdateSkill();
            break;

        case GAME_CLIENT_MASTERY: //update carlosx
            OnMastertSkill();
            break;

        case GAME_CLIENT_ATSKILL: //update carlosx
            OnATSkill();
            break;

        case GAME_CLIENT_ADDSTR:  //update carlosx
            OnADDStr();
            break;

        case GAME_CLIENT_ADDINT:  //update carlosx
            OnADDInt();
            break;

        case GAME_CLIENT_GM:
            OnGM();
            break;

        default:
            printf("Unknown opcode: %.4x\n", opcode);
        }
        Reader.Reset();
        Reader.Skip(psize);
        offset += psize;
    }
    Reader.Reset();
}