ER ev3_motor_config()

in ev3-api/src/ev3api_motor.c [157:188]


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;
}