Ejemplo n.º 1
0
ER ev3_motor_config(motor_port_t port, motor_type_t type) {
	ER ercd;

	CHECK_PORT(port);
	CHECK_MOTOR_TYPE(type);

//	lazy_initialize();

	mts[port] = type;

    /*
     * Set Motor Type
     */
    char buf[TNUM_MOTOR_PORT + 1];
    buf[0] = opOUTPUT_SET_TYPE;
    for (int i = EV3_PORT_A; i < TNUM_MOTOR_PORT; ++i)
        buf[i + 1] = getDevType(mts[i]);
    motor_command(buf, sizeof(buf));

    /*
     * Set initial state to IDLE
     */
    buf[0] = opOUTPUT_STOP;
    buf[1] = 1 << port;
    buf[2] = 0;
    motor_command(buf, sizeof(buf));

    ercd = E_OK;

error_exit:
    return ercd;
}
Ejemplo n.º 2
0
// A simple tester for testing operation of toggling characters via OpenCL
int main(int argc, char *argv[]) {
    if (argc < 4) {
        std::cout << "Specify [CPU|GPU|ACC] <InputBMP> <OutputBMP> <theta_radians>\n";
        return 1;
    }
    // Load source image from the given file
    BitmapImage srcImg;
    srcImg.load(argv[2]);
    // Create the OpenCL command queue for a given device
    ClCmdQueue queue(getDevType(argv[1]));
    // Create a kernel and functor using OpenCL kernel code from a file.
    cl::Kernel kernel = queue.loadKernel("batesokr_rotate.cl", "img_rotate");
    cl::NDRange globalRange(srcImg.getWidth(), srcImg.getHeight());
    cl::KernelFunctor vrotate(kernel, queue.getQueue(), cl::NullRange,
                            globalRange, cl::NullRange);
    BitmapImage outImg = clRotate(queue, vrotate, srcImg, atof(argv[4])*(M_PI/180.0f));
    outImg.write(argv[3]);
    return 0;
}
Ejemplo n.º 3
0
ER ev3_motors_init(motor_type_t typeA, motor_type_t typeB, motor_type_t typeC, motor_type_t typeD) {
	ER ercd;

	CHECK_MOTOR_TYPE(typeA);
	CHECK_MOTOR_TYPE(typeB);
	CHECK_MOTOR_TYPE(typeC);
	CHECK_MOTOR_TYPE(typeD);

	lazy_initialize();

	mts[EV3_PORT_A] = typeA;
	mts[EV3_PORT_B] = typeB;
	mts[EV3_PORT_C] = typeC;
	mts[EV3_PORT_D] = typeD;

    /**
     * Set device types
     */
    char buf[TNUM_MOTOR_PORT + 1];
    buf[0] = opOUTPUT_SET_TYPE;
    for (int i = EV3_PORT_A; i < TNUM_MOTOR_PORT; ++i)
        buf[i + 1] = getDevType(mts[i]);
    ercd = motor_command(buf, sizeof(buf));
    assert(ercd == E_OK);

    /**
     * Set initial state to IDLE
     */
    buf[0] = opOUTPUT_STOP;
    buf[1] = 0xF;
    buf[2] = 0;
    ercd = motor_command(buf, sizeof(buf));
    assert(ercd == E_OK);

    ercd = E_OK;

error_exit:
    return ercd;
}