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
This commit is contained in:
parent
8e264badb7
commit
9929cc2a10
5 changed files with 39 additions and 11 deletions
|
@ -39,6 +39,8 @@ package se.sics.cooja.interfaces;
|
|||
*/
|
||||
public interface CustomDataRadio {
|
||||
|
||||
public boolean canReceiveFrom(CustomDataRadio radio);
|
||||
|
||||
public void receiveCustomData(Object data);
|
||||
|
||||
public Object getLastCustomDataTransmitted();
|
||||
|
|
|
@ -341,8 +341,8 @@ public abstract class AbstractRadioMedium extends RadioMedium {
|
|||
}
|
||||
|
||||
for (Radio dstRadio : connection.getAllDestinations()) {
|
||||
|
||||
if (!radio.getClass().equals(dstRadio.getClass()) || !(radio instanceof CustomDataRadio)) {
|
||||
if (!(dstRadio instanceof CustomDataRadio) ||
|
||||
!((CustomDataRadio) dstRadio).canReceiveFrom((CustomDataRadio)radio)) {
|
||||
/* Radios communicate via radio packets */
|
||||
continue;
|
||||
}
|
||||
|
@ -383,11 +383,14 @@ public abstract class AbstractRadioMedium extends RadioMedium {
|
|||
}
|
||||
|
||||
for (Radio dstRadio : connection.getAllDestinations()) {
|
||||
|
||||
if (radio.getClass().equals(dstRadio.getClass()) && radio instanceof CustomDataRadio) {
|
||||
/* Radios instead communicate via custom data objects */
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((radio instanceof CustomDataRadio) &&
|
||||
(dstRadio instanceof CustomDataRadio) &&
|
||||
((CustomDataRadio) dstRadio).canReceiveFrom((CustomDataRadio)radio)) {
|
||||
/* Radios instead communicate via custom data objects */
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
/* Forward radio packet */
|
||||
if (connection.getDestinationDelay(dstRadio) == 0) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue