use of com.qualcomm.robotcore.hardware.configuration.DeviceConfiguration in project robotcode by OutoftheBoxFTC.
the class EditPortListCheckboxActivity method addCheckBoxListenerOnIndex.
protected void addCheckBoxListenerOnIndex(final int index) {
View itemView = findViewByIndex(index);
final EditText name;
name = (EditText) itemView.findViewById(this.idItemEditTextResult);
final DeviceConfiguration device;
device = this.itemList.get(index);
CheckBox checkbox = (CheckBox) itemView.findViewById(this.idItemCheckbox);
checkbox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (((CheckBox) view).isChecked()) {
name.setEnabled(true);
name.setText("");
device.setEnabled(true);
device.setName("");
} else {
name.setEnabled(false);
name.setText(disabledDeviceName());
device.setEnabled(false);
device.setName(disabledDeviceName());
}
}
});
}
use of com.qualcomm.robotcore.hardware.configuration.DeviceConfiguration in project robotcode by OutoftheBoxFTC.
the class EditPortListSpinnerActivity method changeDevice.
@Override
protected void changeDevice(View itemView, ConfigurationType type) {
TextView textViewPortNumber = (TextView) itemView.findViewById(this.idItemPortNumber);
int portNumber = Integer.parseInt(textViewPortNumber.getText().toString());
EditText nameText = (EditText) itemView.findViewById(this.idItemEditTextResult);
nameText.setEnabled(true);
DeviceConfiguration config = findConfigByPort(portNumber);
clearNameIfNecessary(nameText, config);
config.setConfigurationType(type);
config.setEnabled(true);
}
use of com.qualcomm.robotcore.hardware.configuration.DeviceConfiguration in project robotcode by OutoftheBoxFTC.
the class HardwareFactory method mapCoreInterfaceDeviceModule.
private void mapCoreInterfaceDeviceModule(HardwareMap map, DeviceManager deviceMgr, DeviceInterfaceModuleConfiguration ctrlConf) throws RobotCoreException, InterruptedException {
if (!ctrlConf.isEnabled()) {
return;
}
DeviceInterfaceModule deviceInterfaceModule = deviceMgr.createDeviceInterfaceModule(ctrlConf.getSerialNumber(), ctrlConf.getName());
map.deviceInterfaceModule.put(ctrlConf.getName(), deviceInterfaceModule);
List<DeviceConfiguration> pwmDevices = ctrlConf.getPwmOutputs();
buildDevices(pwmDevices, map, deviceMgr, deviceInterfaceModule);
List<DeviceConfiguration> i2cDevices = ctrlConf.getI2cDevices();
buildI2cDevices(i2cDevices, map, deviceMgr, deviceInterfaceModule);
List<DeviceConfiguration> analogInputDevices = ctrlConf.getAnalogInputDevices();
buildDevices(analogInputDevices, map, deviceMgr, deviceInterfaceModule);
List<DeviceConfiguration> digitalDevices = ctrlConf.getDigitalDevices();
buildDevices(digitalDevices, map, deviceMgr, deviceInterfaceModule);
List<DeviceConfiguration> analogOutputDevices = ctrlConf.getAnalogOutputDevices();
buildDevices(analogOutputDevices, map, deviceMgr, deviceInterfaceModule);
}
use of com.qualcomm.robotcore.hardware.configuration.DeviceConfiguration in project robotcode by OutoftheBoxFTC.
the class HardwareFactory method mapNxtServoController.
private void mapNxtServoController(HardwareMap map, DeviceManager deviceMgr, LegacyModule legacyModule, DeviceConfiguration devConf) {
if (!devConf.isEnabled()) {
return;
}
ServoController sc = deviceMgr.createHTServoController(legacyModule, devConf.getPort(), devConf.getName());
map.servoController.put(devConf.getName(), sc);
for (DeviceConfiguration servoConf : ((ServoControllerConfiguration) devConf).getServos()) {
mapServo(map, deviceMgr, servoConf, sc);
}
}
use of com.qualcomm.robotcore.hardware.configuration.DeviceConfiguration in project robotcode by OutoftheBoxFTC.
the class HardwareFactory method mapLynxUsbDevice.
private void mapLynxUsbDevice(HardwareMap map, DeviceManager deviceMgr, LynxUsbDeviceConfiguration lynxUsbDeviceConfiguration) throws RobotCoreException, InterruptedException {
if (!lynxUsbDeviceConfiguration.isEnabled()) {
return;
}
// Make a new LynxUsbDevice
LynxUsbDevice lynxUsbDevice = (LynxUsbDevice) deviceMgr.createLynxUsbDevice(lynxUsbDeviceConfiguration.getSerialNumber(), lynxUsbDeviceConfiguration.getName());
try {
// If the system made up this device, let the live device know that too
if (lynxUsbDeviceConfiguration.isSystemSynthetic()) {
lynxUsbDevice.setSystemSynthetic(true);
}
// Are we the first USB-attached (as opposed to embedded) LynxUsbDevice?
boolean isFirstLynxUsbDevice = !LynxConstants.isEmbeddedSerialNumber(lynxUsbDeviceConfiguration.getSerialNumber());
for (LynxUsbDevice usbDevice : map.getAll(LynxUsbDevice.class)) {
if (!LynxConstants.isEmbeddedSerialNumber(usbDevice.getSerialNumber())) {
isFirstLynxUsbDevice = false;
break;
}
}
// Make all the modules first, since we need to ping the parent before pinging anyone else,
// and so we need to figure out who that is.
//
List<LynxModule> potentialModules = new ArrayList<LynxModule>();
Map<Integer, String> moduleNames = new HashMap<Integer, String>();
final int parentModuleAddress = lynxUsbDeviceConfiguration.getParentModuleAddress();
for (DeviceConfiguration moduleConfiguration : lynxUsbDeviceConfiguration.getModules()) {
int moduleAddress = moduleConfiguration.getPort();
moduleNames.put(moduleAddress, moduleConfiguration.getName());
//
LynxModule module = (LynxModule) deviceMgr.createLynxModule(lynxUsbDevice, moduleAddress, parentModuleAddress == moduleAddress, moduleConfiguration.getName());
potentialModules.add(module);
// If the system made up this device, let the live device know that too
if (((LynxModuleConfiguration) moduleConfiguration).isSystemSynthetic()) {
module.setSystemSynthetic(true);
}
}
// Attach all the LynxModules to that LynxUsbDevice, parents first, so that parents get pinged first. Note that if some
// modules aren't actually there, or are there but are wedged, these may throw exceptions.
Map<Integer, LynxModule> connectedModules = new HashMap<Integer, LynxModule>();
for (LynxModule module : potentialModules) {
if (module.isParent()) {
// nb: there should be only one parent
connectModule(lynxUsbDevice, module, moduleNames, connectedModules, isFirstLynxUsbDevice && connectedModules.isEmpty());
}
}
for (LynxModule module : potentialModules) {
if (!module.isParent()) {
connectModule(lynxUsbDevice, module, moduleNames, connectedModules, false);
}
}
// Finish adding all the pieces to the modules we successfully talked to
mapLynxModuleComponents(map, deviceMgr, lynxUsbDeviceConfiguration, lynxUsbDevice, connectedModules);
// For the things that worked, remember the module names in the hwmap
for (Map.Entry<Integer, LynxModule> pair : connectedModules.entrySet()) {
int moduleAddress = pair.getKey();
map.put(moduleNames.get(moduleAddress), pair.getValue());
}
// Remember the LynxUsbDevice too, so we we'll only enable one to charge the RC battery
map.put(lynxUsbDeviceConfiguration.getName(), lynxUsbDevice);
} catch (LynxNackException e) {
throw e.wrap();
} catch (RobotCoreException | RuntimeException e) {
lynxUsbDevice.close();
map.remove(lynxUsbDeviceConfiguration.getName(), lynxUsbDevice);
throw e;
}
}
Aggregations