From 5cca043a84029fdee960ff2cf2a49bf5eba88ddb Mon Sep 17 00:00:00 2001 From: Fredrik Osterlind Date: Wed, 18 Jan 2012 21:27:11 +0100 Subject: [PATCH] added cooja mote type using mspsim's msp430x platforms (ti's exp5438) --- tools/cooja/apps/mspsim/build.xml | 11 +- tools/cooja/apps/mspsim/exp5438.png | Bin 0 -> 123355 bytes .../se/sics/cooja/mspmote/Exp5438Mote.java | 74 ++++++ .../sics/cooja/mspmote/Exp5438MoteType.java | 211 ++++++++++++++++++ .../se/sics/cooja/mspmote/TyndallMote.java | 75 +++++++ .../sics/cooja/mspmote/TyndallMoteType.java | 210 +++++++++++++++++ .../cooja/mspmote/interfaces/Exp5438LED.java | 170 ++++++++++++++ .../cooja/mspmote/interfaces/MspSerial.java | 19 +- .../cooja/mspmote/interfaces/TyndallLED.java | 180 +++++++++++++++ .../mspmote/interfaces/UsciA0Serial.java | 46 ++++ .../mspmote/interfaces/UsciA1Serial.java | 46 ++++ tools/cooja/apps/mspsim/tyndall.png | Bin 0 -> 8672 bytes 12 files changed, 1030 insertions(+), 12 deletions(-) create mode 100755 tools/cooja/apps/mspsim/exp5438.png create mode 100755 tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/Exp5438Mote.java create mode 100755 tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/Exp5438MoteType.java create mode 100755 tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/TyndallMote.java create mode 100755 tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/TyndallMoteType.java create mode 100755 tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/Exp5438LED.java create mode 100755 tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/TyndallLED.java create mode 100755 tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/UsciA0Serial.java create mode 100755 tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/UsciA1Serial.java create mode 100755 tools/cooja/apps/mspsim/tyndall.png diff --git a/tools/cooja/apps/mspsim/build.xml b/tools/cooja/apps/mspsim/build.xml index e1b5dac71..32b467799 100644 --- a/tools/cooja/apps/mspsim/build.xml +++ b/tools/cooja/apps/mspsim/build.xml @@ -59,8 +59,15 @@ - - + + + + + + + + + diff --git a/tools/cooja/apps/mspsim/exp5438.png b/tools/cooja/apps/mspsim/exp5438.png new file mode 100755 index 0000000000000000000000000000000000000000..e7ff64fdfee255552c59a8c694e0aba4397b3e46 GIT binary patch literal 123355 zcmV)2K+M01P)N2bPDNB8 zb~7$DE;u(kfL#Cp|BXpRK~#8N?EPnSm3Ow~3*$h}IU@uT2qjQPIVY5J&N=5C5FjLS z&N=67G6rl+uno>GXP50NSJ{SyE-X8TSSH1S!BfP$3~93JVKULPCOKV`CK)6Qk(p zXw$zN8XB~63l$R?{6Ad4yN>KuT3D=d z6Y~`no}#GWSY^hiD=suf@e%QIUg#p1g${DHv)97;7FuXIPY&~}HGjrz&7Cz}^UP;z zzS&F#xOynUFGSGwYH07k`C^s!v1(^lP&&XGHO13f*GdQFQp6mDi$N1#`_A365cn4N> zcd9IHiLxU6wW7X4_b#5&m1BDe)UE0$FHl^dpVH!DG`{&BR-cnJ~;m;K)#?RVX+sNK}fvjfF(%hNmGM_n1mKJkl&cDs3&Eh%C(QN)c z$8wgYO_`}#Gt4z(+E34E(uAoRH)f(njTozu!^ddy?3vH?d;gF4VE^_c|6{xZyVk5$ zVSI>^gFPvA6ZGKvDSh+N8@herkXE(VD8R{9X|ds&F?p;krda$B7x1awhcw`Ymo;F} z5Dj?wCB69a3wq(j0ebPp7x`Z9e{nEh2WrTmp?cwk7r3AMxc?>Yf9WN@pYI(!c&J`{ zVUS*a=>@&?@&FCuu`K7=C@{!JOM5z0QC6+ajy5gr>eh;--KwpuP=JrOUK%h!FK~PD zg#jAK&kYGtAF19^@wn{ERJ@H}65 z$#nk!9^=T-{eKJ6{}`9{e~eeLbIoRD#YZY3EJz#sJ9YoodEK~tT>G}JQDf!{qDYr$tsS@^%Z9yOXyjjh&(q zgNJMIi-R=qB@PD;0VBv?BKTf@@u$DP@bYlIG-#wL0D0d3^|_gz z8ai-1uet4S0s6n|rTv#p{rZ>9>-2{;EA@AMefrnsefqmKtMt3gtMyO4z4~K+xBlGI zs()Z4@%x@GeZP6Vez9e!Y_(RkE?0MZhxXQ2>&Nx0^kY-4 ze%Icq%e9s2ZSB>O9Xqsh{Vpx-?$gcAI{j>QnSNQ6qW2oI)xWe;>sR-wZ*9NUtzE4( zMU{F`)u?}3(XHRqXX^pap}nqAl@)c|%2ZR`sMz2H`T7JZIy71#eoM3@6!0c0RZ)N@ z2@&bah%cZ&D^_k+tx7YB^m=2p=>q<-uT9@~Rcl>(hRi4{hYlES3Nj-@zD!^mfo252 zkRgLKgy5Yp@+A#1va6Bt$eJ&|G(aPVyr>cUpK+fNxGxiEBZj`HQG;IA#Np!=;2B^7 zand8xlp7bRjF>E?#AGTylAba&O4G)U(}({&NN}eO{2K@5{^d9oN#gg@yV} ziE-@|>xZHeeOFehKNfSX}TaZ>Of}yN*h! zy-DBH6zK12c>}H<){n>cOJBdQ-yPYfzpQQ5clCMtO!J+w=5B7N}-oik3trn^4qrkk^QS6nXeZ$j>KSaRfjtx1^LpB?6eFC6_2Uu1HDo zMXKOA)mK*PLQwsT<~N^E`H;J|7+G7F=T*N zbX05N$YB~ioNPx18%#M_n3f=a*F}2S$fQHadIN?j*v}RK$4ldf4v>qzi$Xl26&Db! zONY9ZyadE|NsN+W0fr*Ov~~4Tc{hij;cf}(VUL+3D$an8?KC;i-XDkM-x1A}yFN$P(W zaC`q9ZN7Wv#D91HjZ;6(lTYpWDNz6V=lqIZJ>)$;VcpbJaF^jccF zt|i3lm8v3rxPQCe+Ob7%AKa}sPwm&6hj!@e13UFjQ=QI%RG;+@(}VS^bv3(0&(0pv z>GT}FXP1ser|8*^Z8}R(e6)YRURkzWhxm*iY}%^ZeQWffZ>3J>73!1SyL1p>?^HmH zj`&CFtZ%dq@VXBN_~}|ws6O4&plgXiI_|bu$9dgvWvA-Py{-D9Ay*f}{Iw(4U#Gmh z^v=>UJ!;C-wE$loTN0^PD{J)a)wBBO&^}#nYt<>ANbL*=)o$+q?F|mm*`C#UNWyxj zw_EqPJ~sv@>H^QFj3#8N9)J*Sp6m=PQS|HmXn}gWyI>Y>2dlp zDpKF@;eQ+-tM8Iy^jUPEzH6$`kU3MA z#}Ogg7aG7=BN;R{hd@kJc76p}sYKE7*^E3=$dbj3JTjCF!kL~`sN9?q6%+J9L6OQU ztWaKdg9@xC>+brcdN(RmuZBBoWmt^n&7S@5y{1vB8vWo;UybZFeE4t;B^ZOfoCr`O zfQ|bJra>>rbCInUOrN4*1Ai)wUwUzvtS!eW%zM5j40}NfEUYMLgB9-Wt&$WMQ=rC$ zMJR%cJ2Kc;N#WiyA5ZVf6YaA$k4nc}#{8C7{pSN(H+Uyso*VaZWot?DQ#Zeobe4g)O`k!2Jr`N60 z*0fY@cJ-!QmTJ=bWLCE+^9c3ys3}7yY!C_@9NhdKGk1-`K`YB*+;s6|C+vj z`nrC0?4Z7Ra#UZwaac!#0(7Upo$GFuzCV9Lzu2}-KU>+W&nues9l`P0sZbc9TKsGwBG>zdRX6|Z~CR%xAAxVF26YokM;Hh6?&rjPGk($hQV^fo8tiSBMa zIdNF`Zk*KB>u2@uqkH=B{vCbt#(n+y`=9FDC^l)+F9SGy@e%eU0|;`hk3G`u}~py(^Qxp zCXe|Z3b1lg|N3P*QPZfUVa_VbE>dhru-qN3HEPr#jUP5z3r5e7kC~;e9oVJPg%Kn;+_09pPT6h@CX;H5#PARS1c45O?aNr^d(Kr(#~w{e39 zYCNUwAme)tpvmZ0xqteoi5fR(oMz85rw4Ucu!oPVCXJBuTswu5J^Va^w0NPT?9HZW z_UIuRZuGhXetO)ILx*V8z#%`Cw=Zyeafk_^8g44B$)GO-PytREfR%Ck=^!D%x!--^ zVg)a9Q|@9vECMLk~L&vh|fJ+R62eXpK6`QLs2Yui@qIETx* zfB^k0JyX9gsL-SJoqCVV^K8#%y<1zYpPxIbS5F_&t+Qvff7^EL+Oa!2g zvcOoiF7ndNmZkc3Q$QK!2CeVypmc52>h=~@@qw%W+JCJR;rPT1leu0ULc^1lJn&O^oIob z?6H$HX4nW>n9b8db9?#lI~L8DDZ4o{gMh1Opz)vWw@%Kr? zCUF3a1-Jqo=64O`zF{wq0|Wv@`uG0xrvNp2$m~LMDZ)NUYdN3nEufKB6^!3W+^Z(t?eRyGwz9@~-!4Oxi za|tFR`D(p`vwD4;wLO|rkt}$)Z>{=^>%b+J>+r_)dh^_A9m&eo$$$`jLjQOnC`fPb z-KvkSU(hGl>i%&)35v^>EcHee>#T`qc;T>+PfabSff2H^Eh2J#a`ry#J;iZrY;P zYuj`qGf#K3Gqu;#OM9aewT4;nw!&OJK6OC<^t;b>f5RHR+PzH6eM58`tmWUn`I+85 zvq!%R7q zw^#J&y&bLkCw-@X{^y_RotAQ4Z?D%5%HZcJag6}IzUzqAZQ7`=mNvCj*Q>j=RjWF? z)zQ+Z9sribPIiDQ{tEE|(ezy`8#^o6GILurZ@%1Ioz+~~q*@x|)ROaF$&~XSJkPsj1oDT%~f7}k{WVy6=i0o*hNmVwz4w?*Z}%aO^WL+|-kx>n>$H;bLC_%>!8KW^HC&^*{LOIzw$zs$P z&7L$t-cFt%%YO2q4RM$|TO)Xk5sX$|B2&IZscigvBH)t|a03WhqaPklkdC12HiFYA zZ+}9K4OIE3v5yg;gE=Hzt=u4H_$fO+QO%iIT9J~fGCNy!I4;n;oj-wN|Ia_?&i)jb zn|uBn`rA^P_uqZ*sZ&3F&y%w!b?MYA`uuIiSgQ(jYLSO_Czfcvr@s!Tm1wUYJ!pNq z-Z*ny*Xcb^>{_d%J6Ds{cIXZV`5nNmRyrBj7`(ct!wq&o3HDG zXE*iA=1p3=$X&;G?^SMYxd~KEq*5z(@K*;ILWixd4y4hmR^;o}>JHso+pgDW$d6AwaZ!sg=~3Sr&^m^)Z4+=)@C(;s>a8Jsf`y?S(vYd3++tvJ4YKw zxT<+diOWzvpiB`>c_Ki~^42!(0EIn9>9TYE3aww(q%9!9Uwr(DmemyL%R4a9PU0s7hy@HfY+1Z^}tmf!6T|9Gvey~F2*|}9Smrf3UG zEwNc7J6lIGC{yhLqr6hkJ4Mh-}TLt28eL5R1dZn6>h}{#x1^!Dz*5e(k^s`sa=>7W_b&~S~~o6L=YokjIkNrkpNJX8Gy=}N|A zJJZwjS}PNYs!DAIuw3O6rEOGh&lRB0@=A1R)n@J6Mcuz{lloh`)LK)ouIdK0)z+!H zus|+c#Qv^9a(D1!F1SSFN6(h0W2lPL>&c$I@^Nxk5H-8!B3Ct4)@je?Em}@_yRy5P zzP7_eM*sTb_jHKU_~+X<=*P-jMlRhtU0J54rY5avZ8Qa7OLM1eENpo^Hx)<4sWUN0 z1t4`vvB}!LychH{34}F9GbclP8;zO@^zd zsZIWXE-sWDMqqk*25O$Qt1RZb%7$`ruBC(Q?A&EbCUti5mlG$a`{EErFp-L&%uP!v zqU?>;0$4cK<`znT>l$W0N1?V3vL;9e(r=ow=D&|vOtVLBgXuGe5I{L`A(}Xhk;vc? zKaEwm#Z%J9yUj6yNP~urBuK{4XU|kek(V6jO;HG?^%S1JLFdblagdLfFI?YB#lWQv zb$3@yc8V+}jnq&B6&?f__2N+Z*qbTF*HYt08vP}Q2DjOh$H?Ey%0z@P&07C`R%@Dv z{(BE#jzum4w>_uu~h zKl}bCJDPL>pler6nf4W=>X#QU>ta^C9_|5cJ-AmlXrp#-+@zB{k5`W#&>co+SDKr& zo(#W|0PUd?y18z*KDvKTUp;$ON3)XjcdsAS<8?iH|NLov|LJ==*V(BDQ8{{#_U6Lg z^}2TJtgdWatE)w&Iub;Hg2-+O^3a8>GytbQ?aoWo>&NzyxwmUK*X@@-u+Q}Lsye$=%|%Vh3XfL-z|+x9 zM&MVfjf8V_eUJ7wbZc8VLE$>*aEvq)EiRbSJx;t$2M9RmZDhH78 zv7{uo@zmS}Zu0bC@bBm=vpEi0WDgJ%nqUHj5)uG~!V=}-5h6d|CQ}Jn?qk} zR4t*No-!XdQnSVmHDyqvv^EZh$)La1Ge&Em!DgazFqP6qd2RH)+-Lmmzk)>u^XRYT z?$E(QX+(5-$q^8zDHX@WzUk?4sswHK;TuzCmZAF z{k=l8$`gPQMEN>c$ES~9)$MCXbZJY!uE+Z8hZEcMo40T3^T#)Icv+(k`UmI>62qrg z4(U(7{8VpJF27Mxu1~1+K2OfpZQlT$are}tv^3q}-#>r#wto5b*ZT16C4CDB`dM~` zKD~ND|McSzx^rNU?ok!~nrr+0eH--4$M^KX_4B&9eY4&K9o~?VuAGc?r6gx4)-O

r{(ino^#CdG`CcZl#+cA6xtdf4Xj+P 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� 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 Ef+R#mqyPW_ literal 0 HcmV?d00001 diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/Exp5438Mote.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/Exp5438Mote.java new file mode 100755 index 000000000..797b285ee --- /dev/null +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/Exp5438Mote.java @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2011, 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. + */ + +package se.sics.cooja.mspmote; + +import java.io.File; + +import org.apache.log4j.Logger; + +import se.sics.cooja.Simulation; +import se.sics.mspsim.platform.ti.Exp5438Node; + +/** + * @author Fredrik Osterlind + */ +public class Exp5438Mote extends MspMote { + private static Logger logger = Logger.getLogger(Exp5438Mote.class); + + public Exp5438Node exp5438Node = null; + + public Exp5438Mote() { + super(); + } + + public Exp5438Mote(MspMoteType moteType, Simulation sim) { + super(moteType, sim); + } + + protected boolean initEmulator(File fileELF) { + try { + exp5438Node = new Exp5438Node(); + registry = exp5438Node.getRegistry(); + prepareMote(fileELF, exp5438Node); + } catch (Exception e) { + logger.fatal("Error when creating Exp5438 mote: ", e); + return false; + } + return true; + } + + public void idUpdated(int newID) { + } + + public String toString() { + return "Exp5438 " + getID(); + } + +} diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/Exp5438MoteType.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/Exp5438MoteType.java new file mode 100755 index 000000000..edd661570 --- /dev/null +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/Exp5438MoteType.java @@ -0,0 +1,211 @@ +/* + * Copyright (c) 2011, 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. + */ + +package se.sics.cooja.mspmote; + +import java.awt.Container; +import java.awt.Image; +import java.awt.MediaTracker; +import java.awt.Toolkit; +import java.io.File; +import java.net.URL; + +import javax.swing.Icon; +import javax.swing.ImageIcon; + +import org.apache.log4j.Logger; + +import se.sics.cooja.AbstractionLevelDescription; +import se.sics.cooja.ClassDescription; +import se.sics.cooja.GUI; +import se.sics.cooja.MoteInterface; +import se.sics.cooja.MoteType; +import se.sics.cooja.Simulation; +import se.sics.cooja.dialogs.CompileContiki; +import se.sics.cooja.dialogs.MessageList; +import se.sics.cooja.dialogs.MessageList.MessageContainer; +import se.sics.cooja.interfaces.IPAddress; +import se.sics.cooja.interfaces.Mote2MoteRelations; +import se.sics.cooja.interfaces.MoteAttributes; +import se.sics.cooja.interfaces.Position; +import se.sics.cooja.interfaces.RimeAddress; +import se.sics.cooja.mspmote.interfaces.Exp5438LED; +import se.sics.cooja.mspmote.interfaces.MspClock; +import se.sics.cooja.mspmote.interfaces.MspDebugOutput; +import se.sics.cooja.mspmote.interfaces.MspMoteID; +import se.sics.cooja.mspmote.interfaces.SkyByteRadio; +import se.sics.cooja.mspmote.interfaces.UsciA1Serial; + +@ClassDescription("TI MSP-EXP430F5438") +@AbstractionLevelDescription("Emulated level") +public class Exp5438MoteType extends MspMoteType { + private static Logger logger = Logger.getLogger(Exp5438MoteType.class); + + protected MspMote createMote(Simulation simulation) { + return new Exp5438Mote(this, simulation); + } + + public boolean configureAndInit(Container parentContainer, Simulation simulation, boolean visAvailable) + throws MoteTypeCreationException { + this.simulation = simulation; + + /* If visualized, show compile dialog and let user configure */ + if (visAvailable) { + + /* Create unique identifier */ + if (getIdentifier() == null) { + int counter = 0; + boolean identifierOK = false; + while (!identifierOK) { + identifierOK = true; + + counter++; + setIdentifier("exp5438#" + counter); + + for (MoteType existingMoteType : simulation.getMoteTypes()) { + if (existingMoteType == this) { + continue; + } + if (existingMoteType.getIdentifier().equals(getIdentifier())) { + identifierOK = false; + break; + } + } + } + } + + /* Create initial description */ + if (getDescription() == null) { + setDescription("Exp5438 Mote Type " + getIdentifier()); + } + + return MspCompileDialog.showDialog(parentContainer, simulation, this, "exp5438"); + } + + /* Not visualized: Compile Contiki immediately */ + if (getIdentifier() == null) { + throw new MoteTypeCreationException("No identifier"); + } + + final MessageList compilationOutput = new MessageList(); + + if (getCompileCommands() != null) { + /* Handle multiple compilation commands one by one */ + String[] arr = getCompileCommands().split("\n"); + for (String cmd: arr) { + if (cmd.trim().isEmpty()) { + continue; + } + + try { + CompileContiki.compile( + cmd, + null, + null /* Do not observe output firmware file */, + getContikiSourceFile().getParentFile(), + null, + null, + compilationOutput, + true + ); + } catch (Exception e) { + MoteTypeCreationException newException = + new MoteTypeCreationException("Mote type creation failed: " + e.getMessage()); + newException = (MoteTypeCreationException) newException.initCause(e); + newException.setCompilationOutput(compilationOutput); + + /* Print last 10 compilation errors to console */ + MessageContainer[] messages = compilationOutput.getMessages(); + for (int i=messages.length-10; i < messages.length; i++) { + if (i < 0) { + continue; + } + logger.fatal(">> " + messages[i]); + } + + logger.fatal("Compilation error: " + e.getMessage()); + throw newException; + } + } + } + + if (getContikiFirmwareFile() == null || + !getContikiFirmwareFile().exists()) { + throw new MoteTypeCreationException("Contiki firmware file does not exist: " + getContikiFirmwareFile()); + } + return true; + } + + public Icon getMoteTypeIcon() { + Toolkit toolkit = Toolkit.getDefaultToolkit(); + URL imageURL = this.getClass().getClassLoader().getResource("exp5438.png"); + Image image = toolkit.getImage(imageURL); + MediaTracker tracker = new MediaTracker(GUI.getTopParentContainer()); + tracker.addImage(image, 1); + try { + tracker.waitForAll(); + } catch (InterruptedException ex) { + } + if (image.getHeight(GUI.getTopParentContainer()) > 0 && image.getWidth(GUI.getTopParentContainer()) > 0) { + image = image.getScaledInstance((200*image.getWidth(GUI.getTopParentContainer())/image.getHeight(GUI.getTopParentContainer())), 200, Image.SCALE_DEFAULT); + return new ImageIcon(image); + } + + return null; + } + + public Class[] getAllMoteInterfaceClasses() { + return new Class[] { + Position.class, + RimeAddress.class, + IPAddress.class, + Mote2MoteRelations.class, + MoteAttributes.class, + MspClock.class, + MspMoteID.class, + SkyByteRadio.class, + UsciA1Serial.class, + Exp5438LED.class, + /*Exp5438LCD.class,*/ /* TODO */ + MspDebugOutput.class + }; + } + + public File getExpectedFirmwareFile(File source) { + File parentDir = source.getParentFile(); + String sourceNoExtension = source.getName().substring(0, source.getName().length()-2); + + return new File(parentDir, sourceNoExtension + ".exp5438"); + } + + protected String getTargetName() { + return "exp5438"; + } + +} diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/TyndallMote.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/TyndallMote.java new file mode 100755 index 000000000..6672a9399 --- /dev/null +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/TyndallMote.java @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2011, 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. + */ + +package se.sics.cooja.mspmote; + +import java.io.File; + +import org.apache.log4j.Logger; + +import se.sics.cooja.Simulation; +import se.sics.mspsim.platform.ti.Exp5438Node; +import se.sics.mspsim.platform.tyndall.TyndallNode; + +/** + * @author Fredrik Osterlind + */ +public class TyndallMote extends MspMote { + private static Logger logger = Logger.getLogger(TyndallMote.class); + + public TyndallNode tyndallNode = null; + + public TyndallMote() { + super(); + } + + public TyndallMote(MspMoteType moteType, Simulation sim) { + super(moteType, sim); + } + + protected boolean initEmulator(File fileELF) { + try { + tyndallNode = new TyndallNode(); + registry = tyndallNode.getRegistry(); + prepareMote(fileELF, tyndallNode); + } catch (Exception e) { + logger.fatal("Error when creating Tyndall mote: ", e); + return false; + } + return true; + } + + public void idUpdated(int newID) { + } + + public String toString() { + return "Tyndall " + getID(); + } + +} diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/TyndallMoteType.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/TyndallMoteType.java new file mode 100755 index 000000000..ebc62bfdd --- /dev/null +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/TyndallMoteType.java @@ -0,0 +1,210 @@ +/* + * Copyright (c) 2011, 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. + */ + +package se.sics.cooja.mspmote; + +import java.awt.Container; +import java.awt.Image; +import java.awt.MediaTracker; +import java.awt.Toolkit; +import java.io.File; +import java.net.URL; + +import javax.swing.Icon; +import javax.swing.ImageIcon; + +import org.apache.log4j.Logger; + +import se.sics.cooja.AbstractionLevelDescription; +import se.sics.cooja.ClassDescription; +import se.sics.cooja.GUI; +import se.sics.cooja.MoteInterface; +import se.sics.cooja.MoteType; +import se.sics.cooja.Simulation; +import se.sics.cooja.dialogs.CompileContiki; +import se.sics.cooja.dialogs.MessageList; +import se.sics.cooja.dialogs.MessageList.MessageContainer; +import se.sics.cooja.interfaces.IPAddress; +import se.sics.cooja.interfaces.Mote2MoteRelations; +import se.sics.cooja.interfaces.MoteAttributes; +import se.sics.cooja.interfaces.Position; +import se.sics.cooja.interfaces.RimeAddress; +import se.sics.cooja.mspmote.interfaces.MspClock; +import se.sics.cooja.mspmote.interfaces.MspDebugOutput; +import se.sics.cooja.mspmote.interfaces.MspMoteID; +import se.sics.cooja.mspmote.interfaces.SkyByteRadio; +import se.sics.cooja.mspmote.interfaces.TyndallLED; +import se.sics.cooja.mspmote.interfaces.UsciA0Serial; + +@ClassDescription("Tyndall") +@AbstractionLevelDescription("Emulated level") +public class TyndallMoteType extends MspMoteType { + private static Logger logger = Logger.getLogger(TyndallMoteType.class); + + protected MspMote createMote(Simulation simulation) { + return new TyndallMote(this, simulation); + } + + public boolean configureAndInit(Container parentContainer, Simulation simulation, boolean visAvailable) + throws MoteTypeCreationException { + this.simulation = simulation; + + /* If visualized, show compile dialog and let user configure */ + if (visAvailable) { + + /* Create unique identifier */ + if (getIdentifier() == null) { + int counter = 0; + boolean identifierOK = false; + while (!identifierOK) { + identifierOK = true; + + counter++; + setIdentifier("tyndall#" + counter); + + for (MoteType existingMoteType : simulation.getMoteTypes()) { + if (existingMoteType == this) { + continue; + } + if (existingMoteType.getIdentifier().equals(getIdentifier())) { + identifierOK = false; + break; + } + } + } + } + + /* Create initial description */ + if (getDescription() == null) { + setDescription("Tyndall Mote Type " + getIdentifier()); + } + + return MspCompileDialog.showDialog(parentContainer, simulation, this, "tyndall"); + } + + /* Not visualized: Compile Contiki immediately */ + if (getIdentifier() == null) { + throw new MoteTypeCreationException("No identifier"); + } + + final MessageList compilationOutput = new MessageList(); + + if (getCompileCommands() != null) { + /* Handle multiple compilation commands one by one */ + String[] arr = getCompileCommands().split("\n"); + for (String cmd: arr) { + if (cmd.trim().isEmpty()) { + continue; + } + + try { + CompileContiki.compile( + cmd, + null, + null /* Do not observe output firmware file */, + getContikiSourceFile().getParentFile(), + null, + null, + compilationOutput, + true + ); + } catch (Exception e) { + MoteTypeCreationException newException = + new MoteTypeCreationException("Mote type creation failed: " + e.getMessage()); + newException = (MoteTypeCreationException) newException.initCause(e); + newException.setCompilationOutput(compilationOutput); + + /* Print last 10 compilation errors to console */ + MessageContainer[] messages = compilationOutput.getMessages(); + for (int i=messages.length-10; i < messages.length; i++) { + if (i < 0) { + continue; + } + logger.fatal(">> " + messages[i]); + } + + logger.fatal("Compilation error: " + e.getMessage()); + throw newException; + } + } + } + + if (getContikiFirmwareFile() == null || + !getContikiFirmwareFile().exists()) { + throw new MoteTypeCreationException("Contiki firmware file does not exist: " + getContikiFirmwareFile()); + } + return true; + } + + public Icon getMoteTypeIcon() { + Toolkit toolkit = Toolkit.getDefaultToolkit(); + URL imageURL = this.getClass().getClassLoader().getResource("tyndall.png"); + Image image = toolkit.getImage(imageURL); + MediaTracker tracker = new MediaTracker(GUI.getTopParentContainer()); + tracker.addImage(image, 1); + try { + tracker.waitForAll(); + } catch (InterruptedException ex) { + } + if (image.getHeight(GUI.getTopParentContainer()) > 0 && image.getWidth(GUI.getTopParentContainer()) > 0) { + image = image.getScaledInstance((200*image.getWidth(GUI.getTopParentContainer())/image.getHeight(GUI.getTopParentContainer())), 200, Image.SCALE_DEFAULT); + return new ImageIcon(image); + } + + return null; + } + + public Class[] getAllMoteInterfaceClasses() { + return new Class[] { + Position.class, + RimeAddress.class, + IPAddress.class, + Mote2MoteRelations.class, + MoteAttributes.class, + MspClock.class, + MspMoteID.class, + SkyByteRadio.class, + UsciA0Serial.class, + TyndallLED.class, + MspDebugOutput.class + }; + } + + public File getExpectedFirmwareFile(File source) { + File parentDir = source.getParentFile(); + String sourceNoExtension = source.getName().substring(0, source.getName().length()-2); + + return new File(parentDir, sourceNoExtension + ".tyndall"); + } + + protected String getTargetName() { + return "tyndall"; + } + +} diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/Exp5438LED.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/Exp5438LED.java new file mode 100755 index 000000000..4bf039da3 --- /dev/null +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/Exp5438LED.java @@ -0,0 +1,170 @@ +/* + * Copyright (c) 2011, 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. + */ + +package se.sics.cooja.mspmote.interfaces; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics; +import java.util.Collection; +import java.util.Observable; +import java.util.Observer; + +import javax.swing.JPanel; + +import org.apache.log4j.Logger; +import org.jdom.Element; + +import se.sics.cooja.ClassDescription; +import se.sics.cooja.Mote; +import se.sics.cooja.interfaces.LED; +import se.sics.cooja.mspmote.Exp5438Mote; +import se.sics.mspsim.core.IOPort; +import se.sics.mspsim.core.IOUnit; +import se.sics.mspsim.core.PortListener; +import se.sics.mspsim.platform.ti.Exp5438Node; + +/** + * @author Fredrik Osterlind + */ +@ClassDescription("Exp5438 LEDs") +public class Exp5438LED extends LED { + private static Logger logger = Logger.getLogger(Exp5438LED.class); + + private Exp5438Mote mspMote; + + private boolean redOn = false; + private boolean yellowOn = false; + + private static final Color RED = new Color(255, 0, 0); + private static final Color DARK_RED = new Color(100, 0, 0); + private static final Color YELLOW = new Color(255, 255, 0); + private static final Color DARK_YELLOW = new Color(184,134,11); + + public Exp5438LED(Mote mote) { + mspMote = (Exp5438Mote) mote; + + IOUnit unit = mspMote.getCPU().getIOUnit("P1"); + if (unit instanceof IOPort) { + ((IOPort) unit).setPortListener(new PortListener() { + public void portWrite(IOPort source, int data) { + redOn = (data & Exp5438Node.LEDS_CONF_RED) != 0; + yellowOn = (data & Exp5438Node.LEDS_CONF_YELLOW) != 0; + setChanged(); + notifyObservers(); + } + }); + } + } + + public boolean isAnyOn() { + return redOn || yellowOn; + } + + public boolean isGreenOn() { + return false; /* does not exist */ + } + + public boolean isRedOn() { + return redOn; + } + + public boolean isYellowOn() { + return yellowOn; + } + + public JPanel getInterfaceVisualizer() { + final JPanel panel = new JPanel() { + private static final long serialVersionUID = 1L; + public void paintComponent(Graphics g) { + super.paintComponent(g); + + int x = 20; + int y = 25; + int d = 25; + + if (isRedOn()) { + g.setColor(RED); + g.fillOval(x, y, d, d); + g.setColor(Color.BLACK); + g.drawOval(x, y, d, d); + } else { + g.setColor(DARK_RED); + g.fillOval(x + 5, y + 5, d-10, d-10); + } + + x += 40; + + if (isYellowOn()) { + g.setColor(YELLOW); + g.fillOval(x, y, d, d); + g.setColor(Color.BLACK); + g.drawOval(x, y, d, d); + } else { + g.setColor(DARK_YELLOW); + g.fillOval(x + 5, y + 5, d-10, d-10); + } + } + }; + + Observer observer; + this.addObserver(observer = new Observer() { + public void update(Observable obs, Object obj) { + panel.repaint(); + } + }); + + // Saving observer reference for releaseInterfaceVisualizer + panel.putClientProperty("intf_obs", observer); + + panel.setMinimumSize(new Dimension(140, 60)); + panel.setPreferredSize(new Dimension(140, 60)); + + return panel; + } + + public void releaseInterfaceVisualizer(JPanel panel) { + Observer observer = (Observer) panel.getClientProperty("intf_obs"); + if (observer == null) { + logger.fatal("Error when releasing panel, observer is null"); + return; + } + + this.deleteObserver(observer); + } + + + public Collection getConfigXML() { + return null; + } + + public void setConfigXML(Collection configXML, boolean visAvailable) { + } + +} diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/MspSerial.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/MspSerial.java index ad2b0ffa5..714e33969 100644 --- a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/MspSerial.java +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/MspSerial.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2007, Swedish Institute of Computer Science. + * Copyright (c) 2011, Swedish Institute of Computer Science. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -25,8 +25,6 @@ * 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: MspSerial.java,v 1.4 2010/02/04 00:30:26 fros4943 Exp $ */ package se.sics.cooja.mspmote.interfaces; @@ -44,7 +42,6 @@ import se.sics.cooja.interfaces.SerialPort; import se.sics.cooja.mspmote.MspMote; import se.sics.cooja.mspmote.MspMoteTimeEvent; import se.sics.mspsim.core.IOUnit; -import se.sics.mspsim.core.USART; import se.sics.mspsim.core.USARTListener; import se.sics.mspsim.core.USARTSource; @@ -59,22 +56,24 @@ public class MspSerial extends SerialUI implements SerialPort { private Simulation simulation; private MspMote mote; - private USART usart; + private USARTSource usart; private Vector incomingData = new Vector(); private TimeEvent writeDataEvent; - + + public String ioConfigString() { + return "USART 1"; + } public MspSerial(Mote mote) { this.mote = (MspMote) mote; this.simulation = mote.getSimulation(); /* Listen to port writes */ - IOUnit ioUnit = this.mote.getCPU().getIOUnit("USART 1"); - if (ioUnit instanceof USART) { - usart = (USART) ioUnit; + IOUnit ioUnit = this.mote.getCPU().getIOUnit(ioConfigString()); + if (ioUnit instanceof USARTSource) { + usart = (USARTSource) ioUnit; usart.setUSARTListener(new USARTListener() { - @Override public void dataReceived(USARTSource source, int data) { MspSerial.this.dataReceived(data); } diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/TyndallLED.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/TyndallLED.java new file mode 100755 index 000000000..9d7f0b902 --- /dev/null +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/TyndallLED.java @@ -0,0 +1,180 @@ +/* + * Copyright (c) 2011, 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. + */ + +package se.sics.cooja.mspmote.interfaces; + +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Graphics; +import java.util.Collection; +import java.util.Observable; +import java.util.Observer; + +import javax.swing.JPanel; + +import org.apache.log4j.Logger; +import org.jdom.Element; + +import se.sics.cooja.ClassDescription; +import se.sics.cooja.Mote; +import se.sics.cooja.interfaces.LED; +import se.sics.cooja.mspmote.TyndallMote; +import se.sics.mspsim.core.IOPort; +import se.sics.mspsim.core.IOUnit; +import se.sics.mspsim.core.PortListener; +import se.sics.mspsim.platform.tyndall.TyndallNode; + +/** + * @author Fredrik Osterlind + */ +@ClassDescription("Tyndall LEDs") +public class TyndallLED extends LED { + private static Logger logger = Logger.getLogger(TyndallLED.class); + + private TyndallMote mspMote; + + private boolean greenOn = false; + private boolean redOn = false; + private boolean yellowOn = false; + + private static final Color RED = new Color(255, 0, 0); + private static final Color DARK_RED = new Color(100, 0, 0); + private static final Color GREEN = new Color(0, 255, 0); + private static final Color DARK_GREEN = new Color(0,100,0); + + public TyndallLED(Mote mote) { + mspMote = (TyndallMote) mote; + + IOUnit unit = mspMote.getCPU().getIOUnit("P7"); + if (unit instanceof IOPort) { + ((IOPort) unit).setPortListener(new PortListener() { + public void portWrite(IOPort source, int data) { + redOn = (data & TyndallNode.LEDS_CONF_RED) == 0; + setChanged(); + notifyObservers(); + } + }); + } + unit = mspMote.getCPU().getIOUnit("P8"); + if (unit instanceof IOPort) { + ((IOPort) unit).setPortListener(new PortListener() { + public void portWrite(IOPort source, int data) { + greenOn = (data & TyndallNode.LEDS_CONF_GREEN) == 0; + setChanged(); + notifyObservers(); + } + }); + } + } + + public boolean isAnyOn() { + return greenOn || redOn || yellowOn; + } + + public boolean isGreenOn() { + return greenOn; + } + + public boolean isRedOn() { + return redOn; + } + + public boolean isYellowOn() { + return yellowOn; + } + + public JPanel getInterfaceVisualizer() { + final JPanel panel = new JPanel() { + private static final long serialVersionUID = 1L; + public void paintComponent(Graphics g) { + super.paintComponent(g); + + int x = 20; + int y = 25; + int d = 25; + + if (isGreenOn()) { + g.setColor(GREEN); + g.fillOval(x, y, d, d); + g.setColor(Color.BLACK); + g.drawOval(x, y, d, d); + } else { + g.setColor(DARK_GREEN); + g.fillOval(x + 5, y + 5, d-10, d-10); + } + + x += 40; + + if (isRedOn()) { + g.setColor(RED); + g.fillOval(x, y, d, d); + g.setColor(Color.BLACK); + g.drawOval(x, y, d, d); + } else { + g.setColor(DARK_RED); + g.fillOval(x + 5, y + 5, d-10, d-10); + } + } + }; + + Observer observer; + this.addObserver(observer = new Observer() { + public void update(Observable obs, Object obj) { + panel.repaint(); + } + }); + + // Saving observer reference for releaseInterfaceVisualizer + panel.putClientProperty("intf_obs", observer); + + panel.setMinimumSize(new Dimension(140, 60)); + panel.setPreferredSize(new Dimension(140, 60)); + + return panel; + } + + public void releaseInterfaceVisualizer(JPanel panel) { + Observer observer = (Observer) panel.getClientProperty("intf_obs"); + if (observer == null) { + logger.fatal("Error when releasing panel, observer is null"); + return; + } + + this.deleteObserver(observer); + } + + + public Collection getConfigXML() { + return null; + } + + public void setConfigXML(Collection configXML, boolean visAvailable) { + } + +} diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/UsciA0Serial.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/UsciA0Serial.java new file mode 100755 index 000000000..37332d78b --- /dev/null +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/UsciA0Serial.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2011, 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. + */ + +package se.sics.cooja.mspmote.interfaces; + +import se.sics.cooja.ClassDescription; +import se.sics.cooja.Mote; + +/** + * @author Fredrik Osterlind + */ +@ClassDescription("Serial port") +public class UsciA0Serial extends MspSerial { + public UsciA0Serial(Mote mote) { + super(mote); + } + public String ioConfigString() { + return "USCI A0"; + } +} diff --git a/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/UsciA1Serial.java b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/UsciA1Serial.java new file mode 100755 index 000000000..0a1bba62f --- /dev/null +++ b/tools/cooja/apps/mspsim/src/se/sics/cooja/mspmote/interfaces/UsciA1Serial.java @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2011, 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. + */ + +package se.sics.cooja.mspmote.interfaces; + +import se.sics.cooja.ClassDescription; +import se.sics.cooja.Mote; + +/** + * @author Fredrik Osterlind + */ +@ClassDescription("Serial port") +public class UsciA1Serial extends MspSerial { + public UsciA1Serial(Mote mote) { + super(mote); + } + public String ioConfigString() { + return "USCI A1"; + } +} diff --git a/tools/cooja/apps/mspsim/tyndall.png b/tools/cooja/apps/mspsim/tyndall.png new file mode 100755 index 0000000000000000000000000000000000000000..c3cd3326c75bbf95433056ba875ec4b36ec9c848 GIT binary patch literal 8672 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 yg!p&wlj0000