bool robotInfraredDetectorHasObstacle(enum InfraredDetectorGroupType type) {
    OutputStream* outputStream = getDriverRequestOutputStream();
    InputStream* inputStream = getDriverResponseInputStream();

    append(outputStream, ROBOT_INFRARED_DETECTOR_DEVICE_HEADER);
    append(outputStream, COMMAND_INFRARED_DETECTOR_DETECTION);
    appendHex2(outputStream, type);
    bool result = transmitFromDriverRequestBuffer();
    if (result) {
        int result = readHex2(inputStream);
        return result == 0x01;
    }
    return false;
}
bool clientDistributor2018CleanNext(int direction) {
    OutputStream* outputStream = getDriverRequestOutputStream();
    InputStream* inputStream = getDriverResponseInputStream();

    append(outputStream, LAUNCHER_2018_DEVICE_HEADER);
    append(outputStream, DISTRIBUTOR_LOAD_NEXT_BALL_COMMAND);
    appendHex2(outputStream, direction);

    bool result = transmitFromDriverRequestBuffer();

    // Read the distance of detection, but we don't care about
    readHex2(inputStream);

    return result;
}
bool clientLaunch2018(int launcherIndex, bool prepare) {
    OutputStream* outputStream = getDriverRequestOutputStream();
    append(outputStream, LAUNCHER_2018_DEVICE_HEADER);
    if (prepare) {
        append(outputStream, LAUNCHER_PREPARE_BALL_COMMAND);
        appendHex2(outputStream, launcherIndex);
    }
    else {
        append(outputStream, LAUNCHER_SEND_BALL_COMMAND);
        appendHex2(outputStream, launcherIndex);
    }
    bool result = transmitFromDriverRequestBuffer();

    return result;
}
Beispiel #4
0
BOOL motionDriverGotoPositionPulse(float left,
                                   float right,
                                   float a,
                                   float s) {
    OutputStream* outputStream = getDriverRequestOutputStream();
    append(outputStream, COMMAND_MOTION_GOTO_IN_PULSE);
    appendHex4(outputStream, left);
    appendHex4(outputStream, right);
    appendHex2(outputStream, a);
    appendHex2(outputStream, s);

    BOOL result = transmitFromDriverRequestBuffer();

    return result;
}
BOOL sendStrategyNextStep() {
	appendString(getOutputStreamLogger(INFO), "sendStrategyNextStep\n");

    OutputStream* outputStream = getDriverRequestOutputStream();
    InputStream* inputStream = getDriverResponseInputStream();

    append(outputStream, COMMAND_STRATEGY_NEXT_STEP);

    BOOL result = transmitFromDriverRequestBuffer();
    if (result) {
        int result = readHex2(inputStream);
		return result;
    }
    return FALSE;
}
BOOL sendStrategyOpponentRobotPosition(Point* opponentRobotPosition) {
	OutputStream* debugOutputStream = getOutputStreamLogger(INFO);
	appendString(debugOutputStream, "sendStrategyOpponentRobotPosition: ");

    OutputStream* outputStream = getDriverRequestOutputStream();

    append(outputStream, COMMAND_STRATEGY_SET_OPPONENT_ROBOT_POSITION);
    appendHex4(outputStream, opponentRobotPosition->x);
    appendSeparator(outputStream);
    appendHex4(outputStream, opponentRobotPosition->y);

	appendStringAndDec(debugOutputStream, " x=", opponentRobotPosition->x);
	appendStringAndDec(debugOutputStream, ", y=", opponentRobotPosition->y);
	println(debugOutputStream);

    BOOL result = transmitFromDriverRequestBuffer();

    return result;
}
Beispiel #7
0
BOOL motionDriverBSplineAbsolute(float x, float y, float angle, float dist0, float dist1, int accelerationFactor, int speedFactor) {
    OutputStream* outputStream = getDriverRequestOutputStream();
    append(outputStream, COMMAND_MOTION_SPLINE_ABSOLUTE);
    appendHex4(outputStream, x);
    appendSeparator(outputStream);
    appendHex4(outputStream, y);
    appendSeparator(outputStream);
    appendHex4(outputStream, angle);
    appendSeparator(outputStream);
    appendHex2(outputStream, dist0);
    appendSeparator(outputStream);
    appendHex2(outputStream, dist1);
    appendSeparator(outputStream);
    appendHex(outputStream, accelerationFactor);
    appendHex(outputStream, speedFactor);

    BOOL result = transmitFromDriverRequestBuffer();

    return result;
}