package org.opennaas.extensions.router.model.utils; import java.io.IOException; import org.opennaas.extensions.router.model.opticalSwitch.ITUGrid; import org.opennaas.extensions.router.model.opticalSwitch.WDMChannelPlan; import org.opennaas.extensions.router.model.opticalSwitch.dwdm.proteus.ProteusOpticalSwitch; import org.opennaas.extensions.router.model.opticalSwitch.dwdm.proteus.cards.ProteusOpticalSwitchCard; public class OpticalSwitchFactory { public ProteusOpticalSwitch newPedrosaProteusOpticalSwitch() throws Exception { ProteusOpticalSwitch opticalSwitch = new ProteusOpticalSwitch(); opticalSwitch.setName("pedrosa"); /* create two cards */ OpticalSwitchCardFactory factory; try { factory = new OpticalSwitchCardFactory(); } catch (IOException e) { throw new Exception("Failed to load received data into model. Error loading card profiles file:", e); } // PSROADM DROP card int dropChasis = 0; int dropSlot = 1; int dropType = 11; int dropSubtype = 1; ProteusOpticalSwitchCard dropCard = factory.createCard(dropChasis, dropSlot, dropType, dropSubtype); opticalSwitch.addLogicalDevice(dropCard); // PSROADM ADD card int addChasis = 0; int addSlot = 17; int addType = 11; int addSubtype = 32; ProteusOpticalSwitchCard addCard = factory.createCard(addChasis, addSlot, addType, addSubtype); opticalSwitch.addLogicalDevice(addCard); factory.addHardcodedCardConnections(opticalSwitch); ITUGrid ituGrid = new ITUGrid(); double maxFreq = ituGrid.getFrequencyFromChannelNum(32); double minFreq = ituGrid.getFrequencyFromChannelNum(392); double guardInterval = 0.1; WDMChannelPlan channelPlan = new WDMChannelPlan(maxFreq, minFreq, guardInterval, ituGrid); dropCard.setChannelPlan(channelPlan); addCard.setChannelPlan(channelPlan); return opticalSwitch; } }