use of com.qualcomm.robotcore.hardware.configuration.ReadXMLFileHandler in project robotcode by OutoftheBoxFTC.
the class FtcEventLoopBase method handleCommandRequestParticularConfiguration.
/*
* The driver station wants the contents of the configuration file.
*/
protected void handleCommandRequestParticularConfiguration(String data) {
RobotConfigFile file = robotCfgFileMgr.getConfigFromString(data);
ReadXMLFileHandler parser = new ReadXMLFileHandler();
if (file.isNoConfig()) {
// don't try to parse if there's no file
return;
}
try {
WriteXMLFileHandler writeXMLFileHandler = new WriteXMLFileHandler(activityContext);
ArrayList<ControllerConfiguration> deviceList = (ArrayList<ControllerConfiguration>) parser.parse(file.getXml());
String xmlData = writeXMLFileHandler.toXml(deviceList);
RobotLog.vv(FtcConfigurationActivity.TAG, "FtcEventLoop: handleCommandRequestParticularConfigFile, data: " + xmlData);
networkConnectionHandler.sendCommand(new Command(CommandList.CMD_REQUEST_PARTICULAR_CONFIGURATION_RESP, xmlData));
} catch (RobotCoreException e) {
e.printStackTrace();
}
}
use of com.qualcomm.robotcore.hardware.configuration.ReadXMLFileHandler in project robotcode by OutoftheBoxFTC.
the class FtcConfigurationActivity method handleCommandRequestParticularConfigurationResp.
protected CallbackResult handleCommandRequestParticularConfigurationResp(String extra) throws RobotCoreException {
ReadXMLFileHandler readXMLFileHandler = new ReadXMLFileHandler();
List<ControllerConfiguration> controllerList = readXMLFileHandler.parse(new StringReader(extra));
buildControllersFromXMLResults(controllerList);
populateListAndWarnDevices();
return CallbackResult.HANDLED;
}
use of com.qualcomm.robotcore.hardware.configuration.ReadXMLFileHandler in project robotcode by OutoftheBoxFTC.
the class HardwareFactory method createHardwareMap.
// ------------------------------------------------------------------------------------------------
// Hardware management
// ------------------------------------------------------------------------------------------------
/**
* Create a hardware map
*
* @return HardwareMap
*/
public HardwareMap createHardwareMap(EventLoopManager manager) throws RobotCoreException, InterruptedException {
// We synchronize with scanning so that there's only one thread trying to open *new* FTDI devices at a time
synchronized (HardwareDeviceManager.scanDevicesLock) {
RobotLog.vv(TAG, "createHardwareMap()");
// Clear notion of embedded lynx module that we currently have. We'll discovery a new one,
// if he's there, when we go through the below.
WifiDirectInviteDialogMonitor.clearUILynxModule();
HardwareMap map = new HardwareMap(context);
if (xmlPullParser != null) {
DeviceManager deviceMgr = new HardwareDeviceManager(context, manager);
ReadXMLFileHandler readXmlFileHandler = new ReadXMLFileHandler();
List<ControllerConfiguration> ctrlConfList = readXmlFileHandler.parse(xmlPullParser);
for (ControllerConfiguration ctrlConf : ctrlConfList) {
ConfigurationType type = ctrlConf.getConfigurationType();
if (type == BuiltInConfigurationType.MOTOR_CONTROLLER) {
mapUsbMotorController(map, deviceMgr, (MotorControllerConfiguration) ctrlConf);
} else if (type == BuiltInConfigurationType.SERVO_CONTROLLER) {
mapUsbServoController(map, deviceMgr, (ServoControllerConfiguration) ctrlConf);
} else if (type == BuiltInConfigurationType.LEGACY_MODULE_CONTROLLER) {
mapUsbLegacyModule(map, deviceMgr, (LegacyModuleControllerConfiguration) ctrlConf);
} else if (type == BuiltInConfigurationType.DEVICE_INTERFACE_MODULE) {
mapCoreInterfaceDeviceModule(map, deviceMgr, (DeviceInterfaceModuleConfiguration) ctrlConf);
} else if (type == BuiltInConfigurationType.LYNX_USB_DEVICE) {
mapLynxUsbDevice(map, deviceMgr, (LynxUsbDeviceConfiguration) ctrlConf);
} else {
RobotLog.ee(TAG, "Unexpected controller type while parsing XML: " + type.toString());
}
}
} else {
// no XML to parse, just return empty map
RobotLog.vv(TAG, "no xml to parse: using empty map");
}
return map;
}
}
use of com.qualcomm.robotcore.hardware.configuration.ReadXMLFileHandler in project robotcode by OutoftheBoxFTC.
the class FtcConfigurationActivity method readFile.
/**
* This method parses the XML of the active configuration file, and calls methods to populate
* the appropriate data structures to the configuration information can be displayed to the
* user.
*/
private void readFile() {
try {
XmlPullParser xmlPullParser = currentCfgFile.getXml();
if (xmlPullParser == null) {
throw new RobotCoreException("can't access configuration");
}
//
ReadXMLFileHandler parser = new ReadXMLFileHandler();
List<ControllerConfiguration> controllerList = parser.parse(xmlPullParser);
buildControllersFromXMLResults(controllerList);
populateListAndWarnDevices();
//
} catch (Exception e) {
String message = String.format(getString(R.string.errorParsingConfiguration), currentCfgFile.getName());
RobotLog.ee(TAG, e, message);
appUtil.showToast(UILocation.ONLY_LOCAL, context, message);
}
}
use of com.qualcomm.robotcore.hardware.configuration.ReadXMLFileHandler in project robotcode by OutoftheBoxFTC.
the class ConfigureFromTemplateActivity method instantiateTemplate.
RobotConfigMap instantiateTemplate(RobotConfigFile templateMeta, XmlPullParser xmlPullParser) throws RobotCoreException {
awaitScannedDevices();
//
ReadXMLFileHandler readXMLFileHandler = new ReadXMLFileHandler();
List<ControllerConfiguration> controllerList = readXMLFileHandler.parse(xmlPullParser);
RobotConfigMap robotConfigMap = new RobotConfigMap(controllerList);
robotConfigMap.bindUnboundControllers(scannedDevices);
//
return robotConfigMap;
}
Aggregations