Search in sources :

Example 1 with MotorConfiguration

use of com.qualcomm.robotcore.hardware.configuration.MotorConfiguration in project robotcode by OutoftheBoxFTC.

the class HardwareFactory method mapNxtDcMotorController.

private void mapNxtDcMotorController(HardwareMap map, DeviceManager deviceMgr, LegacyModule legacyModule, DeviceConfiguration ctrlConf) {
    if (!ctrlConf.isEnabled()) {
        return;
    }
    HiTechnicNxtDcMotorController dcMotorController = (HiTechnicNxtDcMotorController) deviceMgr.createHTDcMotorController(legacyModule, ctrlConf.getPort(), ctrlConf.getName());
    map.dcMotorController.put(ctrlConf.getName(), dcMotorController);
    for (MotorConfiguration motorConf : ((MotorControllerConfiguration) ctrlConf).getMotors()) {
        mapMotor(map, deviceMgr, motorConf, dcMotorController);
    }
    VoltageSensor voltageSensor = dcMotorController;
    map.voltageSensor.put(ctrlConf.getName(), voltageSensor);
}
Also used : MotorControllerConfiguration(com.qualcomm.robotcore.hardware.configuration.MotorControllerConfiguration) LynxVoltageSensor(com.qualcomm.hardware.lynx.LynxVoltageSensor) VoltageSensor(com.qualcomm.robotcore.hardware.VoltageSensor) HiTechnicNxtDcMotorController(com.qualcomm.hardware.hitechnic.HiTechnicNxtDcMotorController) MotorConfiguration(com.qualcomm.robotcore.hardware.configuration.MotorConfiguration)

Example 2 with MotorConfiguration

use of com.qualcomm.robotcore.hardware.configuration.MotorConfiguration in project robotcode by OutoftheBoxFTC.

the class HardwareFactory method mapLynxModuleComponents.

private void mapLynxModuleComponents(HardwareMap map, DeviceManager deviceMgr, LynxUsbDeviceConfiguration lynxUsbDeviceConfiguration, LynxUsbDevice lynxUsbDevice, Map<Integer, LynxModule> connectedModules) throws LynxNackException, RobotCoreException, InterruptedException {
    // Hook up the pieces to each module
    for (DeviceConfiguration moduleConfiguration : lynxUsbDeviceConfiguration.getModules()) {
        LynxModule module = connectedModules.get(moduleConfiguration.getPort());
        // Ignore modules that ultimately didn't connect
        if (module == null) {
            continue;
        }
        LynxModuleConfiguration lynxModuleConfiguration = (LynxModuleConfiguration) moduleConfiguration;
        // For each module, hook up motor controller and motors
        LynxDcMotorController mc = new LynxDcMotorController(context, module);
        map.dcMotorController.put(moduleConfiguration.getName(), mc);
        for (MotorConfiguration motorConf : lynxModuleConfiguration.getMotors()) {
            if (motorConf.isEnabled()) {
                DcMotor m = deviceMgr.createDcMotorEx(mc, motorConf.getPort(), motorConf.getMotorType(), motorConf.getName());
                map.dcMotor.put(motorConf.getName(), m);
            }
        }
        // And hook up servo controller and servos
        LynxServoController sc = new LynxServoController(context, module);
        map.servoController.put(moduleConfiguration.getName(), sc);
        for (DeviceConfiguration servoConf : lynxModuleConfiguration.getServos()) {
            mapServoEx(map, deviceMgr, servoConf, sc);
        }
        // And a voltage sensor
        LynxVoltageSensor voltageSensor = new LynxVoltageSensor(context, module);
        map.voltageSensor.put(moduleConfiguration.getName(), voltageSensor);
        // Also a PWM Output Controller
        LynxPwmOutputController pwmOutputController = new LynxPwmOutputController(context, module);
        map.put(moduleConfiguration.getName(), pwmOutputController);
        buildLynxDevices(lynxModuleConfiguration.getPwmOutputs(), map, deviceMgr, pwmOutputController);
        // Also an AnalogInputController
        LynxAnalogInputController analogInputController = new LynxAnalogInputController(context, module);
        map.put(moduleConfiguration.getName(), analogInputController);
        buildLynxDevices(lynxModuleConfiguration.getAnalogInputs(), map, deviceMgr, analogInputController);
        // And a digital channel controller
        LynxDigitalChannelController digitalChannelController = new LynxDigitalChannelController(context, module);
        map.put(moduleConfiguration.getName(), digitalChannelController);
        buildLynxDevices(lynxModuleConfiguration.getDigitalDevices(), map, deviceMgr, digitalChannelController);
        // And I2c devices
        buildLynxI2cDevices(lynxModuleConfiguration.getI2cDevices(), map, deviceMgr, module);
    }
}
Also used : LynxModule(com.qualcomm.hardware.lynx.LynxModule) LynxServoController(com.qualcomm.hardware.lynx.LynxServoController) LynxDcMotorController(com.qualcomm.hardware.lynx.LynxDcMotorController) LynxAnalogInputController(com.qualcomm.hardware.lynx.LynxAnalogInputController) LynxDigitalChannelController(com.qualcomm.hardware.lynx.LynxDigitalChannelController) LynxPwmOutputController(com.qualcomm.hardware.lynx.LynxPwmOutputController) MotorConfiguration(com.qualcomm.robotcore.hardware.configuration.MotorConfiguration) LynxVoltageSensor(com.qualcomm.hardware.lynx.LynxVoltageSensor) LynxUsbDeviceConfiguration(com.qualcomm.robotcore.hardware.configuration.LynxUsbDeviceConfiguration) LynxI2cDeviceConfiguration(com.qualcomm.robotcore.hardware.configuration.LynxI2cDeviceConfiguration) DeviceConfiguration(com.qualcomm.robotcore.hardware.configuration.DeviceConfiguration) LynxModuleConfiguration(com.qualcomm.robotcore.hardware.configuration.LynxModuleConfiguration) DcMotor(com.qualcomm.robotcore.hardware.DcMotor)

Example 3 with MotorConfiguration

use of com.qualcomm.robotcore.hardware.configuration.MotorConfiguration in project robotcode by OutoftheBoxFTC.

the class HardwareFactory method mapUsbMotorController.

private void mapUsbMotorController(HardwareMap map, DeviceManager deviceMgr, MotorControllerConfiguration ctrlConf) throws RobotCoreException, InterruptedException {
    if (!ctrlConf.isEnabled()) {
        return;
    }
    ModernRoboticsUsbDcMotorController dcMotorController = (ModernRoboticsUsbDcMotorController) deviceMgr.createUsbDcMotorController(ctrlConf.getSerialNumber(), ctrlConf.getName());
    map.dcMotorController.put(ctrlConf.getName(), dcMotorController);
    for (MotorConfiguration motorConf : ctrlConf.getMotors()) {
        mapMotor(map, deviceMgr, motorConf, dcMotorController);
    }
    VoltageSensor voltageSensor = dcMotorController;
    map.voltageSensor.put(ctrlConf.getName(), voltageSensor);
}
Also used : LynxVoltageSensor(com.qualcomm.hardware.lynx.LynxVoltageSensor) VoltageSensor(com.qualcomm.robotcore.hardware.VoltageSensor) ModernRoboticsUsbDcMotorController(com.qualcomm.hardware.modernrobotics.ModernRoboticsUsbDcMotorController) MotorConfiguration(com.qualcomm.robotcore.hardware.configuration.MotorConfiguration)

Example 4 with MotorConfiguration

use of com.qualcomm.robotcore.hardware.configuration.MotorConfiguration in project robotcode by OutoftheBoxFTC.

the class EditLegacyModuleControllerActivity method createController.

/**
 * If the drop-down spinner-selected item is a Controller (Motor- or Servo-), we need to create
 * an empty Controller with the proper number of motors/servos.
 *
 * @param port    - the port where this controller got added
 * @param newType - the type of controller we're creating
 */
private void createController(int port, ConfigurationType newType) {
    DeviceConfiguration currentModule = devices.get(port);
    String name = currentModule.getName();
    SerialNumber serialNumber = new SerialNumber();
    ConfigurationType currentType = currentModule.getConfigurationType();
    if (!(currentType == newType)) {
        // only update the controller if it's a new choice.
        ControllerConfiguration newModule;
        if (newType == BuiltInConfigurationType.MOTOR_CONTROLLER) {
            ArrayList<MotorConfiguration> motors = new ArrayList<MotorConfiguration>();
            for (int motorPortNumber = ModernRoboticsConstants.INITIAL_MOTOR_PORT; motorPortNumber <= ModernRoboticsConstants.NUMBER_OF_MOTORS; motorPortNumber++) {
                motors.add(new MotorConfiguration(motorPortNumber));
            }
            newModule = new MotorControllerConfiguration(name, motors, serialNumber);
            newModule.setPort(port);
        } else if (newType == BuiltInConfigurationType.SERVO_CONTROLLER) {
            ArrayList<ServoConfiguration> servos = new ArrayList<ServoConfiguration>();
            for (int servoPortNumber = ModernRoboticsConstants.INITIAL_SERVO_PORT; servoPortNumber <= ModernRoboticsConstants.NUMBER_OF_SERVOS; servoPortNumber++) {
                servos.add(new ServoConfiguration(servoPortNumber));
            }
            newModule = new ServoControllerConfiguration(name, servos, serialNumber);
            newModule.setPort(port);
        } else if (newType == BuiltInConfigurationType.MATRIX_CONTROLLER) {
            ArrayList<MotorConfiguration> motors = new ArrayList<MotorConfiguration>();
            for (int motorPortNumber = MatrixConstants.INITIAL_MOTOR_PORT; motorPortNumber <= MatrixConstants.NUMBER_OF_MOTORS; motorPortNumber++) {
                motors.add(new MotorConfiguration(motorPortNumber));
            }
            ArrayList<ServoConfiguration> servos = new ArrayList<ServoConfiguration>();
            for (int servoPortNumber = MatrixConstants.INITIAL_SERVO_PORT; servoPortNumber <= MatrixConstants.NUMBER_OF_SERVOS; servoPortNumber++) {
                servos.add(new ServoConfiguration(servoPortNumber));
            }
            newModule = new MatrixControllerConfiguration(name, motors, servos, serialNumber);
            newModule.setPort(port);
        } else {
            newModule = null;
        }
        if (newModule != null) {
            newModule.setEnabled(true);
            setModule(newModule);
        }
    }
}
Also used : ConfigurationType(com.qualcomm.robotcore.hardware.configuration.ConfigurationType) BuiltInConfigurationType(com.qualcomm.robotcore.hardware.configuration.BuiltInConfigurationType) MotorControllerConfiguration(com.qualcomm.robotcore.hardware.configuration.MotorControllerConfiguration) ArrayList(java.util.ArrayList) MatrixControllerConfiguration(com.qualcomm.robotcore.hardware.configuration.MatrixControllerConfiguration) SerialNumber(com.qualcomm.robotcore.util.SerialNumber) ServoConfiguration(com.qualcomm.robotcore.hardware.configuration.ServoConfiguration) ServoControllerConfiguration(com.qualcomm.robotcore.hardware.configuration.ServoControllerConfiguration) MotorControllerConfiguration(com.qualcomm.robotcore.hardware.configuration.MotorControllerConfiguration) ControllerConfiguration(com.qualcomm.robotcore.hardware.configuration.ControllerConfiguration) ServoControllerConfiguration(com.qualcomm.robotcore.hardware.configuration.ServoControllerConfiguration) MatrixControllerConfiguration(com.qualcomm.robotcore.hardware.configuration.MatrixControllerConfiguration) MotorConfiguration(com.qualcomm.robotcore.hardware.configuration.MotorConfiguration) DeviceConfiguration(com.qualcomm.robotcore.hardware.configuration.DeviceConfiguration)

Example 5 with MotorConfiguration

use of com.qualcomm.robotcore.hardware.configuration.MotorConfiguration in project robotcode by OutoftheBoxFTC.

the class EditLegacyModuleControllerActivity method editController_general.

/**
 * Launches the activity for the controller
 *
 * @param controller - the module we're about to edit
 */
private void editController_general(DeviceConfiguration controller) {
    // names already gone
    LinearLayout layout = (LinearLayout) findViewByPort(controller.getPort());
    EditText nameText = (EditText) layout.findViewById(R.id.editTextResult);
    controller.setName(nameText.getText().toString());
    if (controller.getConfigurationType() == BuiltInConfigurationType.MOTOR_CONTROLLER) {
        EditParameters<MotorConfiguration> parameters = new EditParameters<MotorConfiguration>(this, controller, MotorConfiguration.class, ((MotorControllerConfiguration) controller).getMotors());
        parameters.setInitialPortNumber(ModernRoboticsConstants.INITIAL_MOTOR_PORT);
        parameters.setConfigurationTypes(MotorConfiguration.getAllMotorConfigurationTypes());
        handleLaunchEdit(EditLegacyMotorControllerActivity.requestCode, EditLegacyMotorControllerActivity.class, parameters);
    } else if (controller.getConfigurationType() == BuiltInConfigurationType.SERVO_CONTROLLER) {
        EditParameters<ServoConfiguration> parameters = new EditParameters<ServoConfiguration>(this, controller, ServoConfiguration.class, ((ServoControllerConfiguration) controller).getServos());
        parameters.setInitialPortNumber(ModernRoboticsConstants.INITIAL_SERVO_PORT);
        handleLaunchEdit(EditLegacyServoControllerActivity.requestCode, EditLegacyServoControllerActivity.class, parameters);
    } else if (controller.getConfigurationType() == BuiltInConfigurationType.MATRIX_CONTROLLER) {
        handleLaunchEdit(EditMatrixControllerActivity.requestCode, EditMatrixControllerActivity.class, controller);
    }
}
Also used : EditText(android.widget.EditText) ServoConfiguration(com.qualcomm.robotcore.hardware.configuration.ServoConfiguration) ServoControllerConfiguration(com.qualcomm.robotcore.hardware.configuration.ServoControllerConfiguration) MotorConfiguration(com.qualcomm.robotcore.hardware.configuration.MotorConfiguration) LinearLayout(android.widget.LinearLayout)

Aggregations

MotorConfiguration (com.qualcomm.robotcore.hardware.configuration.MotorConfiguration)5 LynxVoltageSensor (com.qualcomm.hardware.lynx.LynxVoltageSensor)3 VoltageSensor (com.qualcomm.robotcore.hardware.VoltageSensor)2 DeviceConfiguration (com.qualcomm.robotcore.hardware.configuration.DeviceConfiguration)2 MotorControllerConfiguration (com.qualcomm.robotcore.hardware.configuration.MotorControllerConfiguration)2 ServoConfiguration (com.qualcomm.robotcore.hardware.configuration.ServoConfiguration)2 ServoControllerConfiguration (com.qualcomm.robotcore.hardware.configuration.ServoControllerConfiguration)2 EditText (android.widget.EditText)1 LinearLayout (android.widget.LinearLayout)1 HiTechnicNxtDcMotorController (com.qualcomm.hardware.hitechnic.HiTechnicNxtDcMotorController)1 LynxAnalogInputController (com.qualcomm.hardware.lynx.LynxAnalogInputController)1 LynxDcMotorController (com.qualcomm.hardware.lynx.LynxDcMotorController)1 LynxDigitalChannelController (com.qualcomm.hardware.lynx.LynxDigitalChannelController)1 LynxModule (com.qualcomm.hardware.lynx.LynxModule)1 LynxPwmOutputController (com.qualcomm.hardware.lynx.LynxPwmOutputController)1 LynxServoController (com.qualcomm.hardware.lynx.LynxServoController)1 ModernRoboticsUsbDcMotorController (com.qualcomm.hardware.modernrobotics.ModernRoboticsUsbDcMotorController)1 DcMotor (com.qualcomm.robotcore.hardware.DcMotor)1 BuiltInConfigurationType (com.qualcomm.robotcore.hardware.configuration.BuiltInConfigurationType)1 ConfigurationType (com.qualcomm.robotcore.hardware.configuration.ConfigurationType)1