package radio_module; import java.io.PrintStream; import device.SensorNode; import utilities.UColor; public class RadioModule_Lora extends RadioModule { protected int spreadingFactor = 7; public RadioModule_Lora(SensorNode sensorNode, String name) { super(sensorNode, name); init(); } public void init() { frequency = 868e5; //868 MHz for Europe //915 MHz for North America //433 MHz band for Asia radioRangeColor1 = UColor.BLUE_TTRANSPARENT; radioRangeColor2 = UColor.BLUE_TRANSPARENT; setRadioRangeRadius(1000); setRadioRangeRadiusOri(1000); } public int getStandard() { return RadioStandard.LORA; } @Override public String getStandardName() { return "LORA"; } public double getTransmitPower() { double tpW = (Math.pow(10, transmitPower/10.))/1000.; double nTpW = tpW * 1e6; nTpW = nTpW * pl /100.; double nTpDbm = 10*Math.log10(nTpW/1000.); return nTpDbm; } @Override public RadioModule duplicate(SensorNode sensorNode) { RadioModule nRadioModule = new RadioModule_Lora(sensorNode, name); nRadioModule.setMy(getMy()); nRadioModule.setCh(getCh()); nRadioModule.setNId(getNId()); nRadioModule.setRadioRangeRadius(getRadioRangeRadius()); nRadioModule.setETx(getETx()); nRadioModule.setERx(getERx()); nRadioModule.setESleep(getESleep()); nRadioModule.setEListen(getEListen()); nRadioModule.setRadioDataRate(getRadioDataRate()); nRadioModule.setSpreadingFactor(getSpreadingFactor()); return nRadioModule; } public static String getPayLoad(String data) { return ""; } @Override public void save(PrintStream fos, RadioModule currentRadioModule) { if (currentRadioModule.getName().equals(getName())) fos.println("current_radio_name:"+ getName()); else fos.println("radio_name:"+ getName()); fos.println("radio_standard:" + getStandardName()); fos.println("radio_my:" + getMy()); fos.println("radio_channel:" + getCh()); fos.println("radio_network_id:" + getNId()); fos.println("radio_radius:" + getRadioRangeRadius()); fos.println("radio_etx:" + getETx()); fos.println("radio_erx:" + getERx()); fos.println("radio_esleep:" + getESleep()); fos.println("radio_elisten:" + getEListen()); fos.println("radio_data_rate:" + getRadioDataRate()); fos.println("spreading_factor:" + getSpreadingFactor()); } public int getSpreadingFactor() { return spreadingFactor; } public void setSpreadingFactor(int spreadingFactor) { this.spreadingFactor = spreadingFactor ; } }