added simulation config backwards compatibility for contiki mote types: may not work for configurations with several compiled sources
This commit is contained in:
parent
3a2718279b
commit
47da035f38
|
@ -26,7 +26,7 @@
|
|||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* $Id: ContikiMoteType.java,v 1.31 2009/03/11 11:54:19 fros4943 Exp $
|
||||
* $Id: ContikiMoteType.java,v 1.32 2009/03/11 18:42:53 fros4943 Exp $
|
||||
*/
|
||||
|
||||
package se.sics.cooja.contikimote;
|
||||
|
@ -1274,6 +1274,9 @@ public class ContikiMoteType implements MoteType {
|
|||
public boolean setConfigXML(Simulation simulation,
|
||||
Collection<Element> configXML, boolean visAvailable)
|
||||
throws MoteTypeCreationException {
|
||||
boolean warnedOldVersion = false;
|
||||
File oldVersionSource = null;
|
||||
|
||||
moteInterfacesClasses = new ArrayList<Class<? extends MoteInterface>>();
|
||||
this.simulation = simulation;
|
||||
|
||||
|
@ -1309,6 +1312,29 @@ public class ContikiMoteType implements MoteType {
|
|||
} else {
|
||||
moteInterfacesClasses.add(moteInterfaceClass);
|
||||
}
|
||||
} else if (
|
||||
name.equals("contikibasedir") ||
|
||||
name.equals("contikicoredir") ||
|
||||
name.equals("projectdir") ||
|
||||
name.equals("compilefile") ||
|
||||
name.equals("process") ||
|
||||
name.equals("sensor") ||
|
||||
name.equals("coreinterface")) {
|
||||
/* Backwards compatibility: old contiki mote type is being loaded */
|
||||
if (!warnedOldVersion) {
|
||||
warnedOldVersion = true;
|
||||
logger.warn("Old simulation config detected: contiki mote types may not load correctly");
|
||||
}
|
||||
|
||||
if (name.equals("compilefile")) {
|
||||
if (element.getText().endsWith(".c")) {
|
||||
File potentialFile = new File(element.getText());
|
||||
if (potentialFile.exists()) {
|
||||
oldVersionSource = potentialFile;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
logger.fatal("Unrecognized entry in loaded configuration: " + name);
|
||||
}
|
||||
|
@ -1320,6 +1346,25 @@ public class ContikiMoteType implements MoteType {
|
|||
moteInterfacesClasses.toArray(arr);
|
||||
setCoreInterfaces(ContikiMoteType.getRequiredCoreInterfaces(arr));
|
||||
|
||||
/* Backwards compatibility: old contiki mote type is being loaded */
|
||||
if (getContikiSourceFile() == null &&
|
||||
warnedOldVersion &&
|
||||
oldVersionSource != null)
|
||||
{
|
||||
/* Guess Contiki source */
|
||||
setContikiSourceFile(oldVersionSource);
|
||||
logger.info("Guessing Contiki source: " + oldVersionSource.getAbsolutePath());
|
||||
|
||||
setContikiFirmwareFile(getExpectedFirmwareFile(oldVersionSource));
|
||||
logger.info("Guessing Contiki firmware: " + getContikiFirmwareFile().getAbsolutePath());
|
||||
|
||||
/* Guess compile commands */
|
||||
String compileCommands =
|
||||
"make " + getExpectedFirmwareFile(oldVersionSource).getName() + " TARGET=cooja";
|
||||
logger.info("Guessing compile commands: " + compileCommands);
|
||||
setCompileCommands(compileCommands);
|
||||
}
|
||||
|
||||
boolean createdOK = configureAndInit(GUI.getTopParentContainer(), simulation, visAvailable);
|
||||
return createdOK;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue