From 69b73246b99899dcb988a5f4793fa02bfa855d1d Mon Sep 17 00:00:00 2001 From: nifi Date: Mon, 13 Oct 2008 14:50:50 +0000 Subject: [PATCH] refactored MSPMote setup + added plugin to access MSPSim CLI --- tools/cooja/apps/mspsim/cooja.config | 2 +- tools/cooja/apps/mspsim/lib/mspsim.jar | Bin 317636 -> 320176 bytes .../src/se/sics/cooja/mspmote/ESBMote.java | 5 +- .../src/se/sics/cooja/mspmote/MspMote.java | 94 +++++--- .../src/se/sics/cooja/mspmote/SkyMote.java | 5 +- .../se/sics/cooja/mspmote/plugins/MspCLI.java | 211 ++++++++++++++++++ 6 files changed, 278 insertions(+), 39 deletions(-) create mode 100644 tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/plugins/MspCLI.java diff --git a/tools/cooja/apps/mspsim/cooja.config b/tools/cooja/apps/mspsim/cooja.config index 8ea0612c9..a0d48bbbc 100644 --- a/tools/cooja/apps/mspsim/cooja.config +++ b/tools/cooja/apps/mspsim/cooja.config @@ -1,3 +1,3 @@ se.sics.cooja.GUI.MOTETYPES = + se.sics.cooja.mspmote.ESBMoteType se.sics.cooja.mspmote.SkyMoteType se.sics.cooja.GUI.JARFILES = + cooja_mspsim.jar mspsim.jar -se.sics.cooja.GUI.PLUGINS = + se.sics.cooja.mspmote.plugins.MspCodeWatcher se.sics.cooja.mspmote.plugins.MspStackWatcher se.sics.cooja.mspmote.plugins.MspCycleWatcher +se.sics.cooja.GUI.PLUGINS = + se.sics.cooja.mspmote.plugins.MspCLI se.sics.cooja.mspmote.plugins.MspCodeWatcher se.sics.cooja.mspmote.plugins.MspStackWatcher se.sics.cooja.mspmote.plugins.MspCycleWatcher diff --git a/tools/cooja/apps/mspsim/lib/mspsim.jar b/tools/cooja/apps/mspsim/lib/mspsim.jar index d510628b40d8828374891e26c8098ad0f39a55a5..507e362074a3039816c20b075c42c4abd64efd58 100644 GIT binary patch delta 56468 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Â&$N4wMpSl4M1^1ZqEM7*KLM9a40;}*8Q>F@7m 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 interfaceXML = moteInterface.getConfigXML(); if (interfaceXML != null) { element.addContent(interfaceXML); config.add(element); @@ -372,7 +403,7 @@ public abstract class MspMote implements Mote { element = new Element("interface_config"); element.setText(moteInterface.getClass().getName()); - Collection interfaceXML = moteInterface.getConfigXML(); + Collection interfaceXML = moteInterface.getConfigXML(); if (interfaceXML != null) { element.addContent(interfaceXML); config.add(element); @@ -383,4 +414,3 @@ public abstract class MspMote implements Mote { } } - diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/SkyMote.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/SkyMote.java index d7e508fcd..5aadfdb22 100644 --- a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/SkyMote.java +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/SkyMote.java @@ -26,7 +26,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: SkyMote.java,v 1.6 2008/10/09 11:11:30 joxe Exp $ + * $Id: SkyMote.java,v 1.7 2008/10/13 14:50:50 nifi Exp $ */ package se.sics.cooja.mspmote; @@ -59,8 +59,7 @@ public class SkyMote extends MspMote { protected boolean initEmulator(File fileELF) { try { skyNode = new SkyNode(); - skyNode.setupNodePorts(false); - prepareMote(fileELF, skyNode.getCPU()); + prepareMote(fileELF, skyNode); } catch (Exception e) { logger.fatal("Error when creating Sky mote:", e); diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/plugins/MspCLI.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/plugins/MspCLI.java new file mode 100644 index 000000000..95b832119 --- /dev/null +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/plugins/MspCLI.java @@ -0,0 +1,211 @@ +/* + * Copyright (c) 2007, Swedish Institute of Computer Science. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. Neither the name of the Institute nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $Id: MspCLI.java,v 1.1 2008/10/13 14:50:50 nifi Exp $ + */ + +package se.sics.cooja.mspmote.plugins; +import java.awt.BorderLayout; +import java.awt.Container; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.KeyAdapter; +import java.awt.event.KeyEvent; +import javax.swing.JMenuItem; +import javax.swing.JOptionPane; +import javax.swing.JPopupMenu; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.JTextField; +import javax.swing.SwingUtilities; +import se.sics.cooja.ClassDescription; +import se.sics.cooja.GUI; +import se.sics.cooja.Mote; +import se.sics.cooja.PluginType; +import se.sics.cooja.Simulation; +import se.sics.cooja.VisPlugin; +import se.sics.cooja.mspmote.MspMote; +import se.sics.mspsim.cli.LineListener; + +@ClassDescription("Msp CLI") +@PluginType(PluginType.MOTE_PLUGIN) +public class MspCLI extends VisPlugin { + + private static final long serialVersionUID = 2833218439838209672L; + + private MspMote mspMote; + private JTextArea logArea; + private JTextField commandField; + private String[] history = new String[50]; + private int historyPos = 0; + private int historyCount = 0; + + private LineListener myListener; + + public MspCLI(Mote mote, Simulation simulationToVisualize, GUI gui) { + super("Msp CLI (" + mote.getInterfaces().getMoteID().getMoteID() + ')', gui); + this.mspMote = (MspMote) mote; + + final Container panel = getContentPane(); + + logArea = new JTextArea(4, 30); + logArea.setTabSize(4); + logArea.setEditable(false); + panel.add(new JScrollPane(logArea), BorderLayout.CENTER); + + JPopupMenu popupMenu = new JPopupMenu(); + JMenuItem clearItem = new JMenuItem("Clear"); + clearItem.addActionListener(new ActionListener() { + + public void actionPerformed(ActionEvent e) { + logArea.setText(""); + } + + }); + popupMenu.add(clearItem); + logArea.setComponentPopupMenu(popupMenu); + + ActionListener action = new ActionListener() { + + public void actionPerformed(ActionEvent e) { + String command = trim(commandField.getText()); + if (command != null) { + try { + int previous = historyCount - 1; + if (previous < 0) previous += history.length; + if (!command.equals(history[previous])) { + history[historyCount] = command; + historyCount = (historyCount + 1) % history.length; + } + historyPos = historyCount; + addCLIData("> " + command); + mspMote.sendCLICommand(command); + commandField.setText(""); + } catch (Exception ex) { + System.err.println("could not send '" + command + "':"); + ex.printStackTrace(); + JOptionPane.showMessageDialog(panel, + "could not send '" + command + "':\n" + + ex, "ERROR", + JOptionPane.ERROR_MESSAGE); + } + } else { + commandField.getToolkit().beep(); + } + } + + }; + commandField = new JTextField(); + commandField.addActionListener(action); + commandField.addKeyListener(new KeyAdapter() { + + @Override + public void keyPressed(KeyEvent e) { + switch (e.getKeyCode()) { + case KeyEvent.VK_UP: { + int nextPos = (historyPos + history.length - 1) % history.length; + if (nextPos == historyCount || history[nextPos] == null) { + commandField.getToolkit().beep(); + } else { + String cmd = trim(commandField.getText()); + if (cmd != null) { + history[historyPos] = cmd; + } + historyPos = nextPos; + commandField.setText(history[historyPos]); + } + break; + } + case KeyEvent.VK_DOWN: { + int nextPos = (historyPos + 1) % history.length; + if (nextPos == historyCount) { + historyPos = nextPos; + commandField.setText(""); + } else if (historyPos == historyCount || history[nextPos] == null) { + commandField.getToolkit().beep(); + } else { + String cmd = trim(commandField.getText()); + if (cmd != null) { + history[historyPos] = cmd; + } + historyPos = nextPos; + commandField.setText(history[historyPos]); + } + break; + } + } + } + + }); + panel.add(commandField, BorderLayout.SOUTH); + + if (mspMote.hasCLIListener()) { + logArea.setText("*** CLI already occupied by another listener ***"); + } else { + myListener = new LineListener() { + @Override + public void lineRead(String line) { + addCLIData(line); + } + }; + mspMote.setCLIListener(myListener); + } + // Tries to select this plugin + try { + setSelected(true); + } catch (java.beans.PropertyVetoException e) { + // Could not select + } + } + + public void closePlugin() { + if (myListener != null) { + mspMote.setCLIListener(null); + } + } + + public void addCLIData(final String text) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + String current = logArea.getText(); + int len = current.length(); + if (len > 4096) { + current = current.substring(len - 4096); + } + current = len > 0 ? (current + '\n' + text) : text; + logArea.setText(current); + logArea.setCaretPosition(current.length()); + } + }); + } + + private String trim(String text) { + return (text != null) && ((text = text.trim()).length() > 0) ? text : null; + } + +}