package device;
import java.awt.Graphics;
import java.util.LinkedList;
import radio_module.RadioStandard;
public class MultiChannels {
public static LinkedList<Channels> channelList = new LinkedList<Channels>();
public MultiChannels() {
init();
}
public static void init() {
channelList = new LinkedList<Channels>();
// Index 0 : 802.15.4
// Index 1 : WiFi
// Index 2 : Lora
channelList.add(new Channels(RadioStandard.ZIGBEE_802_15_4));
channelList.add(new Channels(RadioStandard.WIFI_802_11));
channelList.add(new Channels(RadioStandard.LORA));
}
public static void addChannel(int std){
Channels channel = new Channels(std);
channelList.add(channel);
}
public static void addPacketEvent(int type, String message, SensorNode sSensor, SensorNode rSensor) {
int stdS = sSensor.getStandard();
int stdR = rSensor.getStandard();
if(stdS==stdR) {
channelList.get(stdS-1).addPacketEvent(type, message, sSensor, rSensor);
}
}
public static void receivedMessages() {
for (Channels channel : channelList) {
channel.receivedMessages();
}
}
public static void goToTheNextTime(double min) {
for (Channels channel : channelList) {
channel.goToTheNextTime(min);
}
}
public static double getMin() {
double min = Double.MAX_VALUE;
for (Channels channel : channelList) {
if(channel != null) {
if (channel.getMin() < min)
min = channel.getMin();
}
}
return min;
}
public static void drawChannelLinks(Graphics g) {
for (Channels channel : channelList) {
channel.drawChannelLinks(g);
}
}
}