Commit Graph

387 Commits

Author SHA1 Message Date
Fredrik Österlind
dde83500c9 Merge pull request #1056 from tim-ist/packet_sync
[Cooja/cc2420] Check the frame preamble and MPDU length before parsing an outgoing packet
2015-09-07 14:36:15 +02:00
Timofei Istomin
eb4bdde9ca Finish the transmission at the end of a correct packet
This patch restores the original behaviour of Cooja when
the transmitted packet is correct (which is true in a vast majority
of cases).

In case of a wrong outgoing packet (wrong length, wrong preamble)
the transmission will end when the radio changes its state (which
should always happen after transmitting a packet).

Benchmarks with RPL (33 runs, 50 nodes, 3 hours of simulated time each)
yield the same results (PDR, delay, number of transmitted packets)
as with the unmodified Cooja.
2015-06-05 15:13:45 +02:00
Timofei Istomin
034a97eed2 Don't generate a zero-length packet in case of errors.
The packet converter used to generate packets of length zero
when it encountered errors during conversion. This caused
exceptions in packet analyzers.

Now the converter returns null in case of error. Appropriate
checks have been added to the code that uses the return value.
2015-05-28 22:11:50 +02:00
Timofei Istomin
eae25d622d Check the frame preamble and MPDU length before parsing
Due to errors in mspsim and/or radio drivers, packets of incorrect
length are sometimes transmitted. The length might be larger than
the 127-byte maximum (considered negative in the current code)
or not matching the actual number of transmitted bytes.
This leads to wrong packet delimiting when converting from
the mspsim-level stream of bytes to Cooja-level packets
causing unhandled exceptions that terminate the simulation.

This patch checks the frame preamble (0000007A) and the length field.
If they are wrong, no decoding attempt is done.

The transmitted bytes are still delivered to the receivers untouched.
The connection is terminated when the radio state is changed (which alway
s happens when TX is done).
2015-05-08 18:52:34 +02:00
Andreas Löscher
abe8e024ce fixed a bug where the scheduled time is not the executed one 2015-05-07 13:24:30 +02:00
Andreas Löscher
44c317ce1c Fix: the last execution time must be carried over when skipping 2015-05-07 13:24:30 +02:00
Andreas Löscher
2bd50bcbdc better implementation of the drifting 2015-05-07 13:24:30 +02:00
Andreas Löscher
21a22caf33 Added GUI and config file handling for Clock 2015-05-07 13:24:30 +02:00
Andreas Löscher
efbd170733 standart deviation is 1.0 2015-05-07 13:24:30 +02:00
Andreas Löscher
97da226255 time deviation for MSP based nodes 2015-05-07 13:24:30 +02:00
Andreas Löscher
ff4aee68bd Support in the mote clock interface for time deviation 2015-05-07 13:24:30 +02:00
Enrico Joerns
bc6b7535d0 Buttons: use non-deprecated MSPSim button api 2014-11-04 01:48:12 +01:00
Enrico Joerns
b5d119babd Buttons: Some minor cleanups
Removed imports not required anymore and made some class members final
2014-11-04 01:48:12 +01:00
Enrico Joerns
b28c593776 Buttons: Added missing @Override annotations 2014-11-04 01:48:12 +01:00
Enrico Joerns
0a63922fa2 Buttons: Move implementation of button routines to Button class
The implementation of clickButton(), pressButton(), and releaseButton()
can be shared accross the several node-dependent implementations as
they use the node-dependent doPressButton() doReleaseButton() routines.
2014-11-04 01:48:12 +01:00
Enrico Joerns
be88a4fc52 Button: Add doPressButton() and doReleaseButton() to Button class
As every Button has a node-specific implementation part, this should be
the minimal interface to the backend node emulator for pressing and
releasing a button.
2014-11-04 01:48:11 +01:00
Enrico Joerns
378ca2629d Button: None of the buttons will saves its state
Saving a buttons state in simulation file is not required as its state
is much too volatile.
2014-11-04 01:48:11 +01:00
Enrico Joerns
82d30ef2e3 SkyButton: Reduce dependency on SkyMote
Placed call to setButton() in implementation-specific functions
doPressButton() and doReleaseButton() as in ContikiButton.
2014-11-04 01:48:11 +01:00
Enrico Joerns
d99708ba08 Button: Move common interface visualization to Button class
The implementation of a simple JPanel with a JButton was only code
duplication accross the several button implementations.
2014-11-04 01:48:11 +01:00
Enrico Joerns
9d27b181c1 [cooja/mspsim] Msp802154Radio: Fix maximum power indicator
Previously getOutputPowerIndicatorMax() returned the fixed value 31.
This is valid for e.g. the mspsim CC2420 radio implementation but not for the CC2520 implementation where the maximum returned value is 9.

Thus to fix transmission range issues (for example for Wismote node) the maxium value provided by the radio implementaiton must be used.
2014-10-05 00:38:49 +02:00
Enrico Joerns
434c4db1a2 [cooja] Implementation of former MspMoteMemory dummy functions 2014-07-31 21:20:08 +02:00
Enrico Joerns
44767324a5 [cooja] memory: Removed AddressMemory class including all references 2014-07-31 21:20:01 +02:00
Enrico Joerns
482dab5d16 [cooja] memory: Removed MoteMemory class including all references 2014-07-31 21:08:18 +02:00
Enrico Joerns
9dd29d56c9 [cooja] getMemory() now returns MemoryInterface
Including code adaptions based on new memory methods to keep code compilable
2014-07-31 21:08:18 +02:00
Enrico Joerns
d1c05300a9 [cooja] memory: AvrMoteMemory and MspMoteMemory dummy implementation of MemoryInterface 2014-07-31 16:30:05 +02:00
Enrico Joerns
579f0a9a93 [cooja] Added MemoryLayout class to represent basic information about
motes memory such as word size or endianess
2014-07-31 13:32:06 +02:00
Enrico Joerns
c6f8a2d558 [cooja] Added @Override annotations for relevant files 2014-07-31 13:32:06 +02:00
Enrico Joerns
418c51a7d5 [cooja/mspsim] a single sky mote in cooja.config should be sufficient 2014-03-08 01:18:07 +01:00
Fredrik Osterlind
51e62e8cb3 Cooja backwards compatibility with simulation files that uses non-Contiki Java package names 2013-11-20 16:43:28 +01:00
Fredrik Osterlind
b5c94910ac Renamed Java packages to match our contiki-os.org domain. Note that this commit does not affect external dependencies
like /tools/mspsim.

This is a very simple modification that affects a very large number of files in Contiki: Cooja,
/platform/cooja, Collect-view, Coffe-manager, and Cooja simulation files (.csc).

I've gone through Contiki to update all references I could find. Nevertheless, this commit will likely
break external dependencies, like saved Cooja simulation files.
2013-11-20 16:43:27 +01:00
Fredrik Osterlind
2a9283884c renamed getGUI() method to getCooja(), to better reflect its purpose 2013-11-20 16:43:20 +01:00
Fredrik Osterlind
625537158f renamed main Java class of Cooja from GUI to Cooja.
se.sics.cooja.GUI -> se.sics.cooja.Cooja

this commit does not contain any functional changes, but may require external scripts to be updated
such as Makefiles.
2013-11-20 16:43:18 +01:00
Moritz 'Morty' Strübe
d05b03108a Decent error if mspsim cant be built 2013-11-14 18:14:03 +01:00
Adam Dunkels
71eea754d6 Added mspsim as a submodule instead of as a binary mspsim.jar file 2013-11-07 17:28:50 +01:00
Moritz 'Morty' Strübe
2b5f3bc6bd Add MSPSim Logging 2013-08-20 10:43:32 +02:00
Fredrik Osterlind
96968cb35e bugfix: only write to infomem if empty 2013-08-16 15:02:08 +02:00
Fredrik Osterlind
7c125ced9a a set of new cooja-mspsim mote types 2013-08-16 12:02:16 +02:00
Fredrik Osterlind
92655159c8 added a set of new mspsim-based mote types using CC1120, CC1101 and the Enc28j60 ethernet chip
minor changes: removed some obsolete stack monitoring code, improved mspsim-cooja window handler
integration
2013-08-15 11:46:29 +02:00
Fredrik Osterlind
9929cc2a10 added new mote type method that returns the by default used mote interfaces, as opposed to all compatible mote
interfaces

this allows a user to override default settings in the create-new-mote-type dialogs
2013-08-14 13:30:15 +02:00
Fredrik Osterlind
8e264badb7 added new mote type method that returns the by-default used mote interfaces, as opposed to all compatible mote
interfaces

this allows the user to override default settings in the create-new-mote-type dialogs
2013-08-14 13:25:53 +02:00
Fredrik Osterlind
8a084926e2 re-implemented stack overflow monitoring, and user can now manually override the stack addresses for use with
custom linker scripts
2013-08-14 13:03:15 +02:00
Fredrik Osterlind
1842fae903 write node id to infomem 2013-08-14 12:56:25 +02:00
Rémy Léone
e6bd4f1dde Rename to md 2013-03-26 23:15:37 +01:00
Rémy Léone
7b40a568a6 Update to markdown
- Spellchecking
- Update plain text to github markdown
2013-03-26 16:55:19 +01:00
Robert Quattlebaum
1d113f52ad core/net/uip: Rename uip_ethaddr to uip_lladdr.
There isn't really a good reason I can think of for these
to be different between IPv4 and IPv6.
2013-03-10 11:39:11 -07:00
Fredrik Österlind
150cb33b94 Merge pull request #16 from cmorty/COOJA_DGRM
DGRM-Related Patches
2012-11-21 02:44:13 -08:00
Moritz 'Morty' Strübe
80e7a6fd8c Cooja: Add LQI-Support to DGRM 2012-10-31 16:36:06 +01:00
Adam Dunkels
944537fccf Removed all old RCS tags in the Contiki source tree. Those RCS tags are not used any more, as we are now using git to manage the Contiki source tree 2012-10-26 15:54:49 +02:00
Fredrik Osterlind
8947c7a3bb reverted previous plugin name changes, instead build displayed names when menu is created 2012-06-11 15:31:39 +02:00
Adam Dunkels
5a87f2ae7c Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-06-08 14:31:36 +02:00