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