try {
scanResultReady = ScanApi.isScanResultReady(ModelPreferences.getInstance()
.getScanServer());
if (scanResultReady) {
Data timeStampData = new Data();
timeStampData.setName("sensors timestamps");
datas.add(timeStampData);
}
}
catch (SalsaDeviceException e) {
if (e.isConsoleDisplay()) {
e.printStackTrace();
}
scanResultReady = false;
}
boolean canUseConfigDisplay = false;
if ((config != null) && (config.getScanAddOn() != null)
&& (config.getScanAddOn().getDisplay() != null)
&& (config.getScanAddOn().getDisplay().getAxisList() != null)
&& (config.getScanAddOn().getDisplay().getAxisList().size() > 0)) {
canUseConfigDisplay = true;
}
useConfig &= (config != null);
if (canUseConfigDisplay) {
// A display is recorded : restore that. Restores the display.
if (scanResultReady) {
int expectedSize;
List<DisplayAxis> displayAxisList = config.getScanAddOn().getDisplay()
.getAxisList();
Iterator<DisplayAxis> displayAxisIterator = displayAxisList.iterator();
DisplayAxis displayAxis;
displayAxis = displayAxisIterator.hasNext() ? displayAxisIterator.next() : null;
datas.get(0).setDefaultAxis1D(convertAxis(displayAxis));
List<ISensor> sensorsList = (useConfig ? config.getSensorsList() : scanResult
.getSensorsList());
expectedSize = 1 + sensorsList.size();
for (ISensor sensor : sensorsList) {
Data tempData = new Data();
tempData.setName(tempData.getName());
displayAxis = displayAxisIterator.hasNext() ? displayAxisIterator.next() : null;
tempData.setName(sensor.getName());
tempData.setDefaultAxis1D(convertAxis(displayAxis));
datas.add(tempData);
}
List<IActuator> actuatorsXList = (useConfig ? config.getDimensionX()
.getActuatorsList() : scanResult.getActuatorsXList());
expectedSize += actuatorsXList.size();
for (IActuator actuator : actuatorsXList) {
Data tempData = new Data();
tempData.setName(tempData.getName());
displayAxis = displayAxisIterator.hasNext() ? displayAxisIterator.next() : null;
tempData.setName(actuator.getName());
tempData.setDefaultAxis1D(convertAxis(displayAxis));
datas.add(tempData);
}
if (isConfig2D) {
List<IActuator> actuatorsYList = (useConfig ? ((IConfig2D) config)
.getDimensionY().getActuatorsList() : ((IScanResult2D) scanResult)
.getActuatorsYList());
expectedSize = actuatorsYList.size();
for (IActuator actuator : actuatorsYList) {
Data tempData = new Data();
tempData.setName(tempData.getName());
displayAxis = displayAxisIterator.hasNext() ? displayAxisIterator.next()
: null;
tempData.setName(actuator.getName());
tempData.setDefaultAxis1D(convertAxis(displayAxis));
datas.add(tempData);
}
}
// XXX RG: Removed this test because it is not compatible with disabled devices
// if (expectedSize != displayAxisList.size()) {
// Salsa
// .getApplicationController()
// .errorMessage(
// "Error : the configuration does not have the expected number of devices in the display manager parameters.");
// }
}
}
else {
// If no display is recorded, this is the default behavior.
List<ISensor> sensorsList = (useConfig ? config.getSensorsList() : scanResult
.getSensorsList());
if (sensorsList.size() > 0) {
Data tempData = new Data();
tempData.setName(sensorsList.get(0).getName());
if (!isConfig2D) {
tempData.setDefaultAxis1D(Axis.Y1);
}
datas.add(tempData);
}
for (int i = 1; i < sensorsList.size(); i++) {
Data tempData = new Data();
tempData.setName(sensorsList.get(i).getName());
if (!isConfig2D) {
tempData.setDefaultAxis1D(Axis.Y2);
}
datas.add(tempData);
}
List<IActuator> actuatorsXList = (useConfig ? config.getDimensionX().getActuatorsList()
: scanResult.getActuatorsXList());
for (int i = 0; i < actuatorsXList.size(); i++) {
Data tempData = new Data();
tempData.setName(actuatorsXList.get(i).getName());
datas.add(tempData);
}
if (isConfig2D) {
List<IActuator> actuatorsYList = (useConfig ? ((IConfig2D) config).getDimensionY()
.getActuatorsList() : ((IScanResult2D) scanResult).getActuatorsYList());
for (int i = 0; i < actuatorsYList.size(); i++) {
Data tempData = new Data();
tempData.setName(actuatorsYList.get(i).getName());
datas.add(tempData);
}
if (sensorsList.size() > 0) {
for (Data data : datas) {