Commit graph

500 commits

Author SHA1 Message Date
Atis Elsts
c7c3ef3b9c Cooja: add Msp802154BitErrorRadio interface
The interface more accurately models bit errors due to signal fading as observed in IEEE 802.15.4-compatible radios, such as CC2420 and CC2520.
2016-03-31 13:41:16 +03:00
Rémy Léone
60acf7de98 fix SerialSocketServer when run without GUI 2016-03-16 18:48:09 +01:00
Simon Duquennoy
10bd49a71a Merge pull request #756 from sieben/dos2unix
dos2unix fix
2015-10-18 20:26:07 +02:00
Fredrik Österlind
88f8d25070 Merge pull request #1122 from cetic/pr-always-add-crc
Add CRC to packets send by CoojaMote
2015-09-23 09:10:44 +02:00
Rémy Léone
7a5071dd30 Adding a gitattributes and correcting line-endings
https://help.github.com/articles/dealing-with-line-endings/
2015-09-07 15:40:02 +02:00
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
Sebastian Schinabeck
ef779d4fc1 settingsObservable superseded by radioMediumObserver
Wasn't used anyway
2015-08-31 14:59:53 +02:00
Sebastian Schinabeck
c1a275f0b2 Refactored RadioMediumObservable and added new Observable
Refactored RadioMediumObservable to RadioTransmissionObservable because of its function
Added correct RadioMediumObservable and updating in AbstractRadioMedium, DirectedGraphMedium and MRM
Added some documentation
2015-08-31 14:59:47 +02:00
Sebastian Schinabeck
42077adbb1 Add ScnObservable class with setChangedAndNotify() function
The ScnObservable extends the normal Observable with the combined setChangedAndNotify() function
2015-08-31 14:40:39 +02:00
Laurent Deru
68c284b955 Do not add a CRC to packet incoming from RfListener 2015-06-16 10:36:33 +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
Fredrik Österlind
d1f976886f Merge pull request #1040 from atiselsts/cooja_multichannel
Improve multichannel support in Cooja
2015-05-19 08:59:06 +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
cb6759c0a9 Time deviation support for Mica Motes 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
Atis Elsts
67427b9b86 Improve multichannel support for Cooja.
* Fix CCA detection in Cooja in the case when the receiver swicthes on the right channel during an ongoing transmission. Always add a connection on transmission, even when the channel is not correct. Initially the connection is in a dormant state; this mimics what Cooja is doing when the receiver radio is turned off;
when the receiver is turned on and switched to the right channel, `updateSignalStrengths()` is called, and the connection starts to recieve PHY-level traffic.

* Add "channel" property for DGRM edges.

* Avoid cross-channel interference on DGRM and MRM radio mediums
2015-04-28 18:43:55 +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
133311b427 [cooja/serialsocket] SeriaSocketClient: Fixed position of pack() call 2014-08-29 00:55:07 +02:00
Enrico Joerns
db2f4e6818 [cooja/serialsocket] Write serial data only on simulation thread 2014-08-29 00:54:57 +02:00
Enrico Joerns
894a88d08e [cooja/serialsocket] SeriaSocketServer: Moved Observer and Handler to inner classes and let handler thread join before notifying server terminated 2014-08-29 00:35:26 +02:00
Enrico Joerns
dea03493bd [cooja/serialsocket] Support for xml import/export 2014-08-29 00:35:26 +02:00
Enrico Joerns
6c0e7ae15e [cooja/serialsocket] Allow to stop server / disconnect client 2014-08-29 00:35:26 +02:00
Enrico Joerns
f419274050 [cooja/serialsocket] SerialSocketClient: ClientListener interface decouples client implementation
and visualization
2014-08-29 00:35:26 +02:00
Enrico Joerns
b31818521d [cooja/serialsocket] SerialSocketServer: Allow only a single client,
reject further
2014-08-29 00:35:26 +02:00
Enrico Joerns
a18a7fa717 [cooja/serialsocket] SerialSocketServer: Fixed and improved server
implementation. Added visual feedback for new user interface.
2014-08-29 00:35:26 +02:00
Enrico Joerns
585db7df96 [cooja/serialsocket] SerialSocketServer: Applied some renames 2014-08-29 00:35:26 +02:00
Enrico Joerns
0d9698b908 [cooja/serialsocket] SerialSocketServer: New visual appearance with
status bar, port setting, and start button
2014-08-29 00:35:26 +02:00
Enrico Joerns
153457a151 [cooja/serialsocket] SerialSocketClient: Status bar and improved
action/event handling and visualization
2014-08-29 00:35:26 +02:00
Enrico Joerns
d90aec2376 [cooja/serialsocket] SerialSocketClient: New visual appearance with
input for server hostname and address including connect button
2014-08-29 00:35:26 +02:00
Enrico Joerns
404fd82399 [cooja/serialsocket] Added @Override annotations 2014-08-29 00:35:25 +02:00
Enrico Joerns
af7f9ced81 [cooja/serialsocket] Moved to package org.contikios.cooja.serialsocket 2014-08-29 00:35:25 +02:00
Enrico Joerns
434c4db1a2 [cooja] Implementation of former MspMoteMemory dummy functions 2014-07-31 21:20:08 +02:00
Enrico Joerns
e5a35821c3 [cooja] Implementation of former AvrMoteMemory 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