added serial output for MicaZ
This commit is contained in:
parent
9ea19b4e81
commit
29f6ee7e98
|
@ -26,7 +26,7 @@
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: MicaZMote.java,v 1.5 2009/03/19 14:47:36 joxe Exp $
|
* $Id: MicaZMote.java,v 1.6 2009/03/19 18:58:19 joxe Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package se.sics.cooja.avrmote;
|
package se.sics.cooja.avrmote;
|
||||||
|
@ -43,6 +43,7 @@ import se.sics.cooja.MoteMemory;
|
||||||
import se.sics.cooja.MoteType;
|
import se.sics.cooja.MoteType;
|
||||||
import se.sics.cooja.Simulation;
|
import se.sics.cooja.Simulation;
|
||||||
import se.sics.cooja.avrmote.interfaces.MicaClock;
|
import se.sics.cooja.avrmote.interfaces.MicaClock;
|
||||||
|
import se.sics.cooja.avrmote.interfaces.MicaSerial;
|
||||||
import se.sics.cooja.avrmote.interfaces.MicaZLED;
|
import se.sics.cooja.avrmote.interfaces.MicaZLED;
|
||||||
import se.sics.cooja.avrmote.interfaces.MicaZRadio;
|
import se.sics.cooja.avrmote.interfaces.MicaZRadio;
|
||||||
import se.sics.cooja.interfaces.Position;
|
import se.sics.cooja.interfaces.Position;
|
||||||
|
@ -273,8 +274,10 @@ public class MicaZMote implements Mote {
|
||||||
moteInterfaceHandler.addInterface(new MicaZLED(micaZ));
|
moteInterfaceHandler.addInterface(new MicaZLED(micaZ));
|
||||||
// Add Radio interface
|
// Add Radio interface
|
||||||
moteInterfaceHandler.addInterface(new MicaZRadio(this));
|
moteInterfaceHandler.addInterface(new MicaZRadio(this));
|
||||||
// Add Radio interface
|
// Add Clock interface
|
||||||
moteInterfaceHandler.addInterface(new MicaClock(this));
|
moteInterfaceHandler.addInterface(new MicaClock(this));
|
||||||
|
// Add Serial interface
|
||||||
|
moteInterfaceHandler.addInterface(new MicaSerial(this));
|
||||||
|
|
||||||
|
|
||||||
return moteInterfaceHandler;
|
return moteInterfaceHandler;
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
package se.sics.cooja.avrmote.interfaces;
|
||||||
|
|
||||||
|
import avrora.sim.mcu.AtmelMicrocontroller;
|
||||||
|
import avrora.sim.platform.MicaZ;
|
||||||
|
import se.sics.cooja.Mote;
|
||||||
|
import se.sics.cooja.avrmote.MicaZMote;
|
||||||
|
import se.sics.cooja.dialogs.SerialUI;
|
||||||
|
|
||||||
|
public class MicaSerial extends SerialUI {
|
||||||
|
|
||||||
|
Mote mote;
|
||||||
|
|
||||||
|
public MicaSerial(MicaZMote micaZMote) {
|
||||||
|
mote = micaZMote;
|
||||||
|
MicaZ micaZ = micaZMote.getMicaZ();
|
||||||
|
/* this should go into some other piece of code for serial data */
|
||||||
|
AtmelMicrocontroller mcu = (AtmelMicrocontroller) micaZ.getMicrocontroller();
|
||||||
|
avrora.sim.mcu.USART usart = (avrora.sim.mcu.USART) mcu.getDevice("usart0");
|
||||||
|
if (usart != null) {
|
||||||
|
usart.connect( new avrora.sim.mcu.USART.USARTDevice() {
|
||||||
|
public avrora.sim.mcu.USART.Frame transmitFrame() {
|
||||||
|
return null;
|
||||||
|
// return new avrora.sim.mcu.USART.Frame((byte)'a', false, 8);
|
||||||
|
}
|
||||||
|
public void receiveFrame(avrora.sim.mcu.USART.Frame frame) {
|
||||||
|
dataReceived(frame.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
System.out.println("*** Warning MicaZ: could not find usart1 interface...");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Mote getMote() {
|
||||||
|
return mote;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* not yet implemented ...*/
|
||||||
|
public void writeArray(byte[] s) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void writeByte(byte b) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public void writeString(String s) {
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,7 +26,7 @@
|
||||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
* $Id: MicaZLED.java,v 1.2 2009/03/19 14:47:37 joxe Exp $
|
* $Id: MicaZLED.java,v 1.3 2009/03/19 18:58:19 joxe Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package se.sics.cooja.avrmote.interfaces;
|
package se.sics.cooja.avrmote.interfaces;
|
||||||
|
@ -65,26 +65,6 @@ public class MicaZLED extends LED {
|
||||||
avrora.sim.platform.LED.LEDGroup leds =
|
avrora.sim.platform.LED.LEDGroup leds =
|
||||||
(avrora.sim.platform.LED.LEDGroup) micaZ.getDevice("leds");
|
(avrora.sim.platform.LED.LEDGroup) micaZ.getDevice("leds");
|
||||||
|
|
||||||
/* this should go into some other piece of code for serial data */
|
|
||||||
AtmelMicrocontroller mcu = (AtmelMicrocontroller) micaZ.getMicrocontroller();
|
|
||||||
avrora.sim.mcu.USART usart = (avrora.sim.mcu.USART) mcu.getDevice("usart0");
|
|
||||||
if (usart != null) {
|
|
||||||
System.out.println("MicaZ: connecting to USART1");
|
|
||||||
usart.connect( new avrora.sim.mcu.USART.USARTDevice() {
|
|
||||||
char[] stream = {'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd'};
|
|
||||||
int count;
|
|
||||||
public avrora.sim.mcu.USART.Frame transmitFrame() {
|
|
||||||
System.out.println("MicaZ: transmitting to micaz...");
|
|
||||||
return new avrora.sim.mcu.USART.Frame((byte)stream[count++ % stream.length], false, 8);
|
|
||||||
}
|
|
||||||
public void receiveFrame(avrora.sim.mcu.USART.Frame frame) {
|
|
||||||
System.out.println("MicaZ: usart output: " + frame.toString());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
System.out.println("MicaZ: could not find usart1 interface...");
|
|
||||||
}
|
|
||||||
|
|
||||||
leds.leds[0].getFSM().insertProbe(new FiniteStateMachine.Probe() {
|
leds.leds[0].getFSM().insertProbe(new FiniteStateMachine.Probe() {
|
||||||
public void fireAfterTransition(int old, int newstate) {
|
public void fireAfterTransition(int old, int newstate) {
|
||||||
redOn = newstate > 0;
|
redOn = newstate > 0;
|
||||||
|
|
Loading…
Reference in a new issue