Merge branch 'featureMessagefilter' into main

This commit is contained in:
praktimarc
2024-05-02 23:16:05 +02:00
committed by GitHub
15 changed files with 4130 additions and 85 deletions

View File

@@ -1,2 +1,4 @@
do5sa
##12390780900ß9'++++2e0NEY#####
##12390780900ß9'++++2e0NEY#####
on8tt
dl2rmc

View File

@@ -9,7 +9,7 @@ public class ApplicationConstants {
/**
* Name of file to store preferences in.
*/
public static final double APPLICATION_CURRENTVERSIONNUMBER = 1.0;
public static final double APPLICATION_CURRENTVERSIONNUMBER = 1.21;
public static final String VERSIONINFOURLFORUPDATES_KST4CONTEST = "https://do5amf.funkerportal.de/kst4ContestVersionInfo.xml";
public static final String VERSIONINFDOWNLOADEDLOCALFILE = "kst4ContestVersionInfo.xml";

View File

@@ -644,14 +644,17 @@ category = new ChatCategory(2);
if (chatMessage.getReceiver().getCallSign().equals(getChatPreferences().getLoginCallSign())) {
return true; //messages addressed to you
}
if (chatMessage.getSender().getCallSign().equals(getChatPreferences().getLoginCallSign())) {
return true; //your own echo
if ((chatMessage.getSender().getCallSign().equals(getChatPreferences().getLoginCallSign())) && (!chatMessage.getReceiver().getCallSign().equals("ALL"))){
return true; //your own echo except texts to all (CQ)
}
String ignoreCaseString = chatMessage.getMessageText();
if (chatMessage.getMessageText().contains(chatPreferences.getLoginCallSign().toLowerCase()) || (chatMessage.getMessageText().contains(chatPreferences.getLoginCallSign().toUpperCase()))) {
return true; //if someone writes about you, you will get the mail, too!
if ((chatMessage.getMessageText().contains(chatPreferences.getLoginCallSign().toLowerCase()) || (chatMessage.getMessageText().contains(chatPreferences.getLoginCallSign().toUpperCase())))
&& (!chatMessage.getSender().getCallSign().equals(getChatPreferences().getLoginCallSign()))) {
return true; //if someone writes about you, you will get the mail, too, except you are the sender...!
}
else {
@@ -1120,6 +1123,24 @@ category = new ChatCategory(2);
chatMember.setWorked5600(getWorkedDataFromDb.get(chatMember.getCallSign()).isWorked5600());
;
chatMember.setWorked10G(getWorkedDataFromDb.get(chatMember.getCallSign()).isWorked10G());
/**
* v1.2 since here
* TODO: Change that, this ins not generative
*/
chatMember.setQrv144(getWorkedDataFromDb.get(chatMember.getCallSign()).isQrv144());
;
chatMember.setQrv432(getWorkedDataFromDb.get(chatMember.getCallSign()).isQrv432());
;
chatMember.setQrv1240(getWorkedDataFromDb.get(chatMember.getCallSign()).isQrv1240());
;
chatMember.setQrv2300(getWorkedDataFromDb.get(chatMember.getCallSign()).isQrv2300());
;
chatMember.setQrv3400(getWorkedDataFromDb.get(chatMember.getCallSign()).isQrv3400());
;
chatMember.setQrv5600(getWorkedDataFromDb.get(chatMember.getCallSign()).isQrv5600());
;
chatMember.setQrv10G(getWorkedDataFromDb.get(chatMember.getCallSign()).isQrv10G());
;
}
@@ -1169,6 +1190,13 @@ category = new ChatCategory(2);
chatMember -> chatMember.resetWorkedInformationAtAllBands());
}
public void resetQRVInfoInGuiLists() {
this.chatController.getLst_chatMemberList().forEach(
chatMember -> chatMember.resetQRVInformationAtAllBands());
}
/**
* Setting the initial parameters at the chat

View File

@@ -104,9 +104,76 @@ public class DBController {
}
});
versionUpdateOfDBCheckAndChangeV11ToV12(); //TODO: newer version DB update should be called here
}
/**
* While the first version of this software has other needs to the db tables than the 1.2 and following versions
* this method will check if the database file of the user is compatible and make it compatible if it´s not.
* <br/>
* v1.1 -> v1.2: Chatmember entities will get additional fields for not-QRV-band-info
* <br/>
* I check only the first field "notqrv144", if it does not exist, I creating all fields neccessarry for v1.2
*/
public void versionUpdateOfDBCheckAndChangeV11ToV12() {
try {
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery(
"SELECT * FROM ChatMember where notQRV144 != 0;");
stmt.close();
} catch (SQLException ex) {
System.out.println("DBH, Info: updating DB fields for version change v1.1 -> v1.2");
try {
PreparedStatement ps = connection.prepareStatement(
"ALTER TABLE ChatMember ADD notQRV144 BOOLEAN DEFAULT 0" + ";");
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement(
"ALTER TABLE ChatMember ADD notQRV432 BOOLEAN DEFAULT 0" + ";");
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement(
"ALTER TABLE ChatMember ADD notQRV1240 BOOLEAN DEFAULT 0" + ";");
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement(
"ALTER TABLE ChatMember ADD notQRV2300 BOOLEAN DEFAULT 0" + ";");
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement(
"ALTER TABLE ChatMember ADD notQRV3400 BOOLEAN DEFAULT 0" + ";");
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement(
"ALTER TABLE ChatMember ADD notQRV5600 BOOLEAN DEFAULT 0" + ";");
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement(
"ALTER TABLE ChatMember ADD notQRV10G BOOLEAN DEFAULT 0" + ";");
ps.addBatch();
ps.executeBatch();
connection.setAutoCommit(false);
connection.setAutoCommit(true);
} catch (SQLException e) {
}
}
}
// private void handleDB() {
// try {
// Statement stmt = connection.createStatement();
@@ -172,6 +239,7 @@ public class DBController {
* "worked3400" BOOLEAN,<br/>
* "worked5600" BOOLEAN,<br/>
* "worked10G" BOOLEAN,<br/>
* <br/><b>!!! since v1.2 there is a not-qrv info for each band, too !!!</b>
*
* @throws SQLException
*/
@@ -184,7 +252,7 @@ public class DBController {
// if (!rs.next()) {
PreparedStatement ps = connection.prepareStatement(
"INSERT OR IGNORE INTO ChatMember VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(callsign) DO UPDATE SET qra = '"
"INSERT OR IGNORE INTO ChatMember VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) ON CONFLICT(callsign) DO UPDATE SET qra = '"
+ chatMemberToStore.getQra() + "', name = '" + chatMemberToStore.getName()
+ "', lastActivityDateTime = '" + chatMemberToStore.getLastActivity()
+ "' where callsign = '" + chatMemberToStore.getCallSign() + "';");
@@ -201,6 +269,16 @@ public class DBController {
ps.setInt(10, helper_booleanIntConverter(chatMemberToStore.isWorked3400()));
ps.setInt(11, helper_booleanIntConverter(chatMemberToStore.isWorked5600()));
ps.setInt(12, helper_booleanIntConverter(chatMemberToStore.isWorked10G()));
/**
* Here starts v1.2
*/
ps.setInt(13, helper_booleanIntConverter(!chatMemberToStore.isQrv144()));
ps.setInt(14, helper_booleanIntConverter(!chatMemberToStore.isQrv432()));
ps.setInt(15, helper_booleanIntConverter(!chatMemberToStore.isQrv1240()));
ps.setInt(16, helper_booleanIntConverter(!chatMemberToStore.isQrv2300()));
ps.setInt(17, helper_booleanIntConverter(!chatMemberToStore.isQrv3400()));
ps.setInt(18, helper_booleanIntConverter(!chatMemberToStore.isQrv5600()));
ps.setInt(19, helper_booleanIntConverter(!chatMemberToStore.isQrv10G()));
ps.addBatch();
@@ -220,7 +298,7 @@ public class DBController {
} catch (SQLException e) {
System.err.println("[DBH, ERROR:] Chatmember could not been stored.");
e.printStackTrace();
connection.close();
// connection.close(); //Todo commented out due to errors
}
}
@@ -273,6 +351,18 @@ public class DBController {
updateWkdData.setWorked5600(helper_IntToBooleanConverter(rs.getInt("worked5600")));
updateWkdData.setWorked10G(helper_IntToBooleanConverter(rs.getInt("worked10G")));
/**
* v1.2 since here
*/
updateWkdData.setQrv144(!helper_IntToBooleanConverter(rs.getInt("notQRV144")));
updateWkdData.setQrv432(!helper_IntToBooleanConverter(rs.getInt("notQRV432")));
updateWkdData.setQrv1240(!helper_IntToBooleanConverter(rs.getInt("notQRV1240")));
updateWkdData.setQrv2300(!helper_IntToBooleanConverter(rs.getInt("notQRV2300")));
updateWkdData.setQrv3400(!helper_IntToBooleanConverter(rs.getInt("notQRV3400")));
updateWkdData.setQrv5600(!helper_IntToBooleanConverter(rs.getInt("notQRV5600")));
updateWkdData.setQrv10G(!helper_IntToBooleanConverter(rs.getInt("notQRV10G")));
fetchedWorkeddata.put(updateWkdData.getCallSign(), updateWkdData);
// System.out.println(
@@ -333,6 +423,18 @@ public class DBController {
checkForThis.setWorked5600(helper_IntToBooleanConverter(rs.getInt("worked5600")));
checkForThis.setWorked10G(helper_IntToBooleanConverter(rs.getInt("worked10G")));
/**
* v1.2 since here
*/
checkForThis.setWorked144(helper_IntToBooleanConverter(rs.getInt("notQRV144")));
checkForThis.setWorked432(helper_IntToBooleanConverter(rs.getInt("notQRV432")));
checkForThis.setWorked1240(helper_IntToBooleanConverter(rs.getInt("notQRV1240")));
checkForThis.setWorked2300(helper_IntToBooleanConverter(rs.getInt("notQRV2300")));
checkForThis.setWorked3400(helper_IntToBooleanConverter(rs.getInt("notQRV3400")));
checkForThis.setWorked5600(helper_IntToBooleanConverter(rs.getInt("notQRV5600")));
checkForThis.setWorked10G(helper_IntToBooleanConverter(rs.getInt("notQRV10G")));
System.out.println(
"[DBH, Info:] providing callsign wkd info, wkd, 144, 432, ... for UA5 new chatmember : "
+ checkForThis.toString());
@@ -367,7 +469,9 @@ public class DBController {
* <b>Usage: User triggered after User clicked the reset-wkd button, may in each
* new contest period</b> <br/>
* <br/>
*
*
* modified for work with v1.2
*
* @return true if reset was successful
*
* @throws SQLException
@@ -377,7 +481,8 @@ public class DBController {
try {
Statement stmt = connection.createStatement();
int affected = stmt.executeUpdate("update ChatMember set worked = 0, worked144 = 0, worked432 = 0, worked1240 = 0, worked2300 = 0, worked3400 = 0, worked5600 = 0, worked10G = 0;");
int affected = stmt.executeUpdate("update ChatMember set worked = 0, worked144 = 0, worked432 = 0, worked1240 = 0, worked2300 = 0, worked3400 = 0, worked5600 = 0, worked10G = 0" +
", notQrv144 = 0, notQrv432 = 0, notQrv1240 = 0, notQrv2300 = 0, notQrv3400 = 0, notQrv5600 = 0, notQrv10G = 0;");
stmt.close();
@@ -517,6 +622,77 @@ public class DBController {
}
}
public boolean updateNotQRVInfoOnChatMember(ChatMember chatMemberToStore) throws SQLException {
try {
Statement stmt = connection.createStatement();
/**
* at first, mark the station as worked, always
*/
PreparedStatement ps = connection.prepareStatement("UPDATE ChatMember set notQrv144 = ? WHERE CallSign = ?");
ps.setInt(1, helper_booleanIntConverter(!chatMemberToStore.isQrv144()));
ps.setString(2, chatMemberToStore.getCallSign());
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement("UPDATE ChatMember set notQrv432 = ? WHERE CallSign = ?");
ps.setInt(1, helper_booleanIntConverter(!chatMemberToStore.isQrv432()));
ps.setString(2, chatMemberToStore.getCallSign());
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement("UPDATE ChatMember set notQrv1240 = ? WHERE CallSign = ?");
ps.setInt(1, helper_booleanIntConverter(!chatMemberToStore.isQrv1240()));
ps.setString(2, chatMemberToStore.getCallSign());
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement("UPDATE ChatMember set notQrv2300 = ? WHERE CallSign = ?");
ps.setInt(1, helper_booleanIntConverter(!chatMemberToStore.isQrv2300()));
ps.setString(2, chatMemberToStore.getCallSign());
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement("UPDATE ChatMember set notQrv3400 = ? WHERE CallSign = ?");
ps.setInt(1, helper_booleanIntConverter(!chatMemberToStore.isQrv3400()));
ps.setString(2, chatMemberToStore.getCallSign());
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement("UPDATE ChatMember set notQrv5600 = ? WHERE CallSign = ?");
ps.setInt(1, helper_booleanIntConverter(!chatMemberToStore.isQrv5600()));
ps.setString(2, chatMemberToStore.getCallSign());
ps.addBatch();
ps.executeBatch();
ps = connection.prepareStatement("UPDATE ChatMember set notQrv10G = ? WHERE CallSign = ?");
ps.setInt(1, helper_booleanIntConverter(!chatMemberToStore.isQrv10G()));
ps.setString(2, chatMemberToStore.getCallSign());
ps.addBatch();
ps.executeBatch();
connection.setAutoCommit(false);
connection.setAutoCommit(true);
stmt.close();
} catch (SQLException e) {
System.err.println("[DBH, ERROR:] Couldn't handle DB-Query");
e.printStackTrace();
connection.close();
return false;
}
return true;
}
private int helper_booleanIntConverter(boolean convertToInt) {
if (convertToInt) {
@@ -545,11 +721,15 @@ public class DBController {
dummy.setName("Team Test");
dummy.setLastActivity(new Utils4KST().time_generateActualTimeInDateFormat());
dummy.setWorked5600(true);
// dbc.versionUpdateOfDBCheckAndChangeV11ToV12();
// dbc.fetchChatMemberNOTQRVBandInfoForOnlyOneCallsignFromDB();
// dbc.updateNOTQRVBandInfoOnChatMember();
// dummy.setWorked432(true);
// dbc.storeChatMember(dummy);
dbc.updateWkdInfoOnChatMember(dummy);
// dbc.updateWkdInfoOnChatMember(dummy);
// dbc.handleDB();
}

View File

@@ -12,6 +12,8 @@ import java.util.regex.Pattern;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.ObservableList;
import kst4contest.ApplicationConstants;
import kst4contest.locatorUtils.DirectionUtils;
import kst4contest.locatorUtils.Location;
import kst4contest.model.AirPlaneReflectionInfo;
import kst4contest.model.ChatMember;
@@ -475,7 +477,7 @@ public class MessageBusManagementThread extends Thread {
ChatMessage newMessage = new ChatMessage();
newMessage.setChatCategory(this.client.getCategory());
newMessage.setMessageGeneratedTime(splittedMessageLine[2]); // TODO: insert readable time?
newMessage.setMessageGeneratedTime(splittedMessageLine[2]);
if (splittedMessageLine[3].equals("SERVER")) {
ChatMember dummy = new ChatMember();
@@ -512,6 +514,11 @@ public class MessageBusManagementThread extends Thread {
// if someone sent a message without being in the userlist (cause
// on4kst missed implementing....), callsign will be marked
} else {
//that means, message was by own station, broadcasted to all other
ChatMember dummy = new ChatMember();
dummy.setCallSign("ALL");
newMessage.setReceiver(dummy);
AirPlaneReflectionInfo preventNullpointerExc = new AirPlaneReflectionInfo();
preventNullpointerExc.setAirPlanesReachableCntr(0);
sender.setAirPlaneReflectInfo(preventNullpointerExc);
@@ -526,7 +533,7 @@ public class MessageBusManagementThread extends Thread {
newMessage.setMessageText(splittedMessageLine[6]);
if (splittedMessageLine[7].equals("0")) {
// message is not directed to anyone, move it to the cq messages
// message is not directed to anyone, move it to the cq messages!
ChatMember dummy = new ChatMember();
dummy.setCallSign("ALL");
newMessage.setReceiver(dummy);
@@ -535,6 +542,7 @@ public class MessageBusManagementThread extends Thread {
this.client.getLst_globalChatMessageList().add(0, newMessage); // sdtout to all message-List //TODO: change, moved to globalmessagelist
} else {
//message is directed to another chatmember, process as such!
ChatMember receiver = new ChatMember();
receiver.setCallSign(splittedMessageLine[7]);
@@ -544,7 +552,7 @@ public class MessageBusManagementThread extends Thread {
if (index != -1) {
newMessage.setReceiver(this.client.getLst_chatMemberList().get(index));// -1: Member left Chat
// before...
} else {
} else { //found in active member list
if (receiver.getCallSign().equals(client.getChatPreferences().getLoginCallSign())) {
@@ -596,10 +604,11 @@ public class MessageBusManagementThread extends Thread {
System.out.println("message directed to me: " + newMessage.getReceiver().getCallSign() + ".");
} else if (newMessage.getSender().getCallSign().toUpperCase()
.equals(this.client.getChatPreferences().getLoginCallSign().toUpperCase())) {
/**
* message sent by me!
* message from me will appear in the PM window, too, with (>CALLSIGN) before
*/
.equals(this.client.getChatPreferences().getLoginCallSign().toUpperCase())) {
String originalMessage = newMessage.getMessageText();
newMessage
.setMessageText("(>" + newMessage.getReceiver().getCallSign() + ")" + originalMessage);
@@ -610,13 +619,41 @@ public class MessageBusManagementThread extends Thread {
// the "to me message list" with modified messagetext, added rxers callsign
} else {
=======
//message sent to other user
// this.client.getLst_toOtherMessageList().add(0, newMessage); //TODO: change, moved to globalmessagelist, original
if (DirectionUtils.isInAngleAndRange(client.getChatPreferences().getLoginLocator(),
newMessage.getSender().getQra(),
newMessage.getReceiver().getQra(),
client.getChatPreferences().getStn_maxQRBDefault(),
client.getChatPreferences().getStn_antennaBeamWidthDeg())) {
if (this.client.getChatPreferences().isNotify_playSimpleSounds()) {
//play only tick sound if the sender was not set directedtome before
if (!newMessage.getSender().isInAngleAndRange()) {
this.client.getPlayAudioUtils().playNoiseLauncher('-');
}
}
newMessage.getSender().setInAngleAndRange(true);
System.out.println(">>>>>>>>>> Anglewarning <<<<<<<<<< " + newMessage.getSender().getCallSign() + ", " + newMessage.getSender().getQra() + " -> " + newMessage.getReceiver().getCallSign() + ", " + newMessage.getReceiver().getQra() + " = " +
new Location(newMessage.getSender().getQra()).getBearing(new Location(newMessage.getReceiver().getQra())) +
" / sender bearing to me: " + new Location(newMessage.getSender().getQra()).getBearing(new Location(client.getChatPreferences().getLoginLocator())));
} else {
System.out.println("-notinangle- " + newMessage.getSender().getCallSign() + ", " + newMessage.getSender().getQra() + " -> " + newMessage.getReceiver().getCallSign() + ", " + newMessage.getReceiver().getQra() + " = " +
new Location(newMessage.getSender().getQra()).getBearing(new Location(newMessage.getReceiver().getQra())) +
" ; sender bearing to me: " + new Location(newMessage.getSender().getQra()).getBearing(new Location(client.getChatPreferences().getLoginLocator())));
newMessage.getSender().setInAngleAndRange(false);
}
this.client.getLst_globalChatMessageList().add(0, newMessage);
// System.out.println("MSGBS bgfx: tx call = " + newMessage.getSender().getCallSign() + " / rx call = " + newMessage.getReceiver().getCallSign());
}
} catch (NullPointerException referenceDeletedByUserLeftChatDuringMessageprocessing) {
System.out.println("MSGBS bgfx, <<<catched error>>>: referenced user left the chat during messageprocessing or message got before user entered chat message: ");
referenceDeletedByUserLeftChatDuringMessageprocessing.printStackTrace();
System.out.println("MSGBS bgfx, <<<catched error>>>: referenced user left the chat during messageprocessing or message got before user entered chat message: " + referenceDeletedByUserLeftChatDuringMessageprocessing.getStackTrace());
// referenceDeletedByUserLeftChatDuringMessageprocessing.printStackTrace();
}
// sdtout to me message-List
@@ -658,9 +695,10 @@ public class MessageBusManagementThread extends Thread {
/**
* CH|2|1664663240|IK7LMX|Gilberto QRO|0|pse ant to jn80|YT5W| Caused this line
*/
System.out.println("[MSGBUSMGT:] ERROR, Frequency for " + splittedMessageLine[3]
System.out.println("[MSGBUSMGT <<<catched ERROR>>>]:, Frequency for " + splittedMessageLine[3]
+ " is not settable, Callsign is not in the Member-list!");
//create dummy user to display the message but it wont be hit the user object
ChatMember newMember = new ChatMember();
newMember.setCallSign(splittedMessageLine[3]);
newMember.setName(splittedMessageLine[4]);

View File

@@ -37,13 +37,13 @@ public class UpdateChecker {
System.out.println("[Updatechecker: checking for updates...]");
double currentVersionNumber = ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER;
// double currentVersionNumber = ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER;
}
String versionInfoDownloadedFromServerFileName = ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, ApplicationConstants.VERSIONINFDOWNLOADEDLOCALFILE);
String versionInfoXMLURLAtServer = ApplicationConstants.VERSIONINFOURLFORUPDATES_KST4CONTEST;
double currentVersion = ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER;
// double currentVersion = ApplicationConstants.APPLICATION_CURRENTVERSIONNUMBER;
//DOWNLOAD from URL, then parse, then do anything with it...
/**
@@ -230,7 +230,7 @@ public class UpdateChecker {
public String toString() {
String toString = "";
toString += this.currentVersion;
// toString += this.currentVersion;
return toString;
}

View File

@@ -0,0 +1,43 @@
package kst4contest.locatorUtils;
public class TestLocatorUtils {
public static void main(String[] args) {
// isInAngle(myLocation, location1, location2);
System.out.println(isInAngleAndRange("JN49FL", "jo43xm", "jo30sa", 900, 50));
System.out.println(isInAngleAndRange("JN49FL", "jo51ij", "jn39oc", 900, 50));
System.out.println(isInAngleAndRange("JN49FL", "jn39oc", "jo51ij", 1100, 50));
}
public static boolean isInAngleAndRange(String myLocator, String locatorOfSkedSender, String locatorOfSekdReceiver, double maxRangeKm, double hisAntennaBeamWidth) {
Location myLocation = new Location(myLocator);
Location skedSenderLocation = new Location(locatorOfSkedSender);
Location skedReceiverLocation = new Location(locatorOfSekdReceiver);
double distanceFromMeToLocSender = new Location(myLocator).getDistanceKm(new Location(locatorOfSkedSender));
// Check if distance exceeds my setted maximum range
if (distanceFromMeToLocSender > maxRangeKm) {
System.out.println("too far, " + distanceFromMeToLocSender + " km");
return false;
}
//check bearing of sender to receiver
double bearingOfSekdSenderToSkedReceiver = skedSenderLocation.getBearing(skedReceiverLocation);
System.out.println("skedTX -> skedRX deg: " + bearingOfSekdSenderToSkedReceiver);
double bearingOfSekdSenderToMe = skedSenderLocation.getBearing(myLocation);
System.out.println("skedTX -> me deg: " + bearingOfSekdSenderToMe);
if (DirectionUtils.isAngleInRange(bearingOfSekdSenderToSkedReceiver, bearingOfSekdSenderToMe, hisAntennaBeamWidth)) {
//may I should get "/2" because of 50% of the 3dB opening angle if txer is directed to sender exactly
return true;
} else return false;
}
}

View File

@@ -3,6 +3,25 @@ package kst4contest.model;
public class AirPlane {
String apCallSign, apSizeCategory;
String potencialDescriptionAsWord;
public String getPotencialDescriptionAsWord() {
if (this.getPotential() <=50) {
return "small AP";
} else if (this.getPotential() <=75 && this.getPotential() > 50) {
return "big AP";
} else if (this.getPotential() > 75) {
return "very big AP";
}
return potencialDescriptionAsWord;
}
public void setPotencialDescriptionAsWord(String potencialDescriptionAsWord) {
this.potencialDescriptionAsWord = potencialDescriptionAsWord;
}
int distanceKm, potential, arrivingDurationMinutes;
public String getApCallSign() {
return apCallSign;

View File

@@ -11,6 +11,9 @@ public class ChatMember {
String callSign;
String qra;
String name;
boolean isInAngleAndRange; //if he tries a sked in my dir, he is in range, will process that in the messages
// String frequency; // last known qrg of the station
StringProperty frequency = new SimpleStringProperty();
@@ -37,6 +40,28 @@ public class ChatMember {
boolean worked5600;
boolean worked10G;
/**
* Chatmember is qrv at all band except we initialize anything other, depending to user entry
*/
boolean qrv144 = true;
boolean qrv432 = true;
boolean qrv1240 = true;
boolean qrv2300 = true;
boolean qrv3400 = true;
boolean qrv5600 = true;
boolean qrv10G = true;
boolean qrvAny = true;
public boolean isInAngleAndRange() {
return isInAngleAndRange;
}
public void setInAngleAndRange(boolean inAngleAndRange) {
isInAngleAndRange = inAngleAndRange;
}
public AirPlaneReflectionInfo getAirPlaneReflectInfo() {
return airPlaneReflectInfo;
}
@@ -117,6 +142,70 @@ public class ChatMember {
worked10G = worked10g;
}
public boolean isQrv144() {
return qrv144;
}
public void setQrv144(boolean qrv144) {
this.qrv144 = qrv144;
}
public boolean isQrv432() {
return qrv432;
}
public void setQrv432(boolean qrv432) {
this.qrv432 = qrv432;
}
public boolean isQrv1240() {
return qrv1240;
}
public void setQrv1240(boolean qrv1240) {
this.qrv1240 = qrv1240;
}
public boolean isQrv2300() {
return qrv2300;
}
public void setQrv2300(boolean qrv2300) {
this.qrv2300 = qrv2300;
}
public boolean isQrv3400() {
return qrv3400;
}
public void setQrv3400(boolean qrv3400) {
this.qrv3400 = qrv3400;
}
public boolean isQrv5600() {
return qrv5600;
}
public void setQrv5600(boolean qrv5600) {
this.qrv5600 = qrv5600;
}
public boolean isQrv10G() {
return qrv10G;
}
public void setQrv10G(boolean qrv10G) {
this.qrv10G = qrv10G;
}
public boolean isQrvAny() {
return qrvAny;
}
public void setQrvAny(boolean qrvAny) {
this.qrvAny = qrvAny;
}
public int[] getWorkedCategories() {
return workedCategories;
}
@@ -169,12 +258,6 @@ public class ChatMember {
QTFdirection = qTFdirection;
}
// public int getWorkedCategory() {
// return workedCategory;
// }
// public void setWorkedCategory(int workedCategory) {
// this.workedCategory = workedCategory;
// }
public String getCallSign() {
return callSign;
}
@@ -242,6 +325,22 @@ public class ChatMember {
this.setWorked10G(false);
}
/**
* Sets all worked information of this object to false. Scope: GUI, Reset Button
* for worked info, called by appcontroller
*/
public void resetQRVInformationAtAllBands() {
this.setQrvAny(true);
this.setQrv144(true);
this.setQrv432(true);
this.setQrv1240(true);
this.setQrv2300(true);
this.setQrv3400(true);
this.setQrv5600(true);
this.setQrv10G(true);
}
@Override
public String toString() {
String chatMemberSerialization = "";

View File

@@ -145,6 +145,15 @@ public class ChatPreferences {
ChatCategory loginChatCategory = new ChatCategory(2);
IntegerProperty actualQTF = new SimpleIntegerProperty(360); // will be updated by user at runtime!
boolean stn_bandActive144;
boolean stn_bandActive432;
boolean stn_bandActive1240;
boolean stn_bandActive2300;
boolean stn_bandActive3400;
boolean stn_bandActive5600;
boolean stn_bandActive10G;
/**
* Log Synch preferences
@@ -205,15 +214,96 @@ public class ChatPreferences {
String unwkd_unworkedStnRequesterBeaconsText;
String unwkd_beaconUnworkedstationsPrefix;
// public String getMYQRG() {
// return MYQRG;
// }
//
// public void setMYQRG(String mYQRG) {
//
// MYQRG = mYQRG;
// }
/*********************************************************************************
*
* GUI SETTING VARIABLES WILL BE BUFFERED HERE, DEFAULTS TOO
*
*********************************************************************************/
private double[] GUIscn_ChatwindowMainSceneSizeHW = new double[] {768, 1234};
private double[] GUIclusterAndQSOMonStage_SceneSizeHW = new double[] {700, 500};
private double[] GUIstage_updateStage_SceneSizeHW = new double[] {640, 480};
private double[] GUIsettingsStageSceneSizeHW = new double[] {720, 768};
private double[] GUIselectedCallSignSplitPane_dividerposition = {0.55};
private double[] GUImainWindowLeftSplitPane_dividerposition = {0.51};
private double[] GUImessageSectionSplitpane_dividerposition = {0.62, 0.7, 0.75}; //3 deviders now //TODO: more should be possible?
private double[] GUImainWindowRightSplitPane_dividerposition = {0.72};
private double[] GUIpnl_directedMSGWin_dividerpositionDefault = {0.8};
public double[] getGUIscn_ChatwindowMainSceneSizeHW() {
return GUIscn_ChatwindowMainSceneSizeHW;
}
public void setGUIscn_ChatwindowMainSceneSizeHW(double[] GUIscn_ChatwindowMainSceneSizeHW) {
this.GUIscn_ChatwindowMainSceneSizeHW = GUIscn_ChatwindowMainSceneSizeHW;
}
public double[] getGUIclusterAndQSOMonStage_SceneSizeHW() {
return GUIclusterAndQSOMonStage_SceneSizeHW;
}
public void setGUIclusterAndQSOMonStage_SceneSizeHW(double[] GUIclusterAndQSOMonStage_SceneSizeHW) {
this.GUIclusterAndQSOMonStage_SceneSizeHW = GUIclusterAndQSOMonStage_SceneSizeHW;
}
public double[] getGUIstage_updateStage_SceneSizeHW() {
return GUIstage_updateStage_SceneSizeHW;
}
public void setGUIstage_updateStage_SceneSizeHW(double[] GUIstage_updateStage_SceneSizeHW) {
this.GUIstage_updateStage_SceneSizeHW = GUIstage_updateStage_SceneSizeHW;
}
public double[] getGUIsettingsStageSceneSizeHW() {
return GUIsettingsStageSceneSizeHW;
}
public void setGUIsettingsStageSceneSizeHW(double[] GUIsettingsStageSceneSizeHW) {
this.GUIsettingsStageSceneSizeHW = GUIsettingsStageSceneSizeHW;
}
public double[] getGUIselectedCallSignSplitPane_dividerposition() {
return GUIselectedCallSignSplitPane_dividerposition;
}
public void setGUIselectedCallSignSplitPane_dividerposition(double[] GUIselectedCallSignSplitPane_dividerposition) {
this.GUIselectedCallSignSplitPane_dividerposition = GUIselectedCallSignSplitPane_dividerposition;
}
public double[] getGUImainWindowLeftSplitPane_dividerposition() {
return GUImainWindowLeftSplitPane_dividerposition;
}
public void setGUImainWindowLeftSplitPane_dividerposition(double[] GUImainWindowLeftSplitPane_dividerposition) {
this.GUImainWindowLeftSplitPane_dividerposition = GUImainWindowLeftSplitPane_dividerposition;
}
public double[] getGUImessageSectionSplitpane_dividerposition() {
return GUImessageSectionSplitpane_dividerposition;
}
public void setGUImessageSectionSplitpane_dividerposition(double[] GUImessageSectionSplitpane_dividerposition) {
this.GUImessageSectionSplitpane_dividerposition = GUImessageSectionSplitpane_dividerposition;
}
public double[] getGUImainWindowRightSplitPane_dividerposition() {
return GUImainWindowRightSplitPane_dividerposition;
}
public void setGUImainWindowRightSplitPane_dividerposition(double[] GUImainWindowRightSplitPane_dividerposition) {
this.GUImainWindowRightSplitPane_dividerposition = GUImainWindowRightSplitPane_dividerposition;
}
public double[] getGUIpnl_directedMSGWin_dividerpositionDefault() {
return GUIpnl_directedMSGWin_dividerpositionDefault;
}
public void setGUIpnl_directedMSGWin_dividerpositionDefault(double[] GUIpnl_directedMSGWin_dividerpositionDefault) {
this.GUIpnl_directedMSGWin_dividerpositionDefault = GUIpnl_directedMSGWin_dividerpositionDefault;
}
public double getStn_antennaBeamWidthDeg() {
return stn_antennaBeamWidthDeg;
@@ -598,6 +688,35 @@ public class ChatPreferences {
stn_qtfDefault.setTextContent(this.stn_qtfDefault+"");
station.appendChild(stn_qtfDefault);
Element stn_bandActive144 = doc.createElement("stn_bandActive144");
stn_bandActive144.setTextContent(this.stn_bandActive144+"");
station.appendChild(stn_bandActive144);
Element stn_bandActive432 = doc.createElement("stn_bandActive432");
stn_bandActive432.setTextContent(this.stn_bandActive432+"");
station.appendChild(stn_bandActive432);
Element stn_bandActive1240 = doc.createElement("stn_bandActive1240");
stn_bandActive1240.setTextContent(this.stn_bandActive1240+"");
station.appendChild(stn_bandActive1240);
Element stn_bandActive2300 = doc.createElement("stn_bandActive2300");
stn_bandActive2300.setTextContent(this.stn_bandActive2300+"");
station.appendChild(stn_bandActive2300);
Element stn_bandActive3400 = doc.createElement("stn_bandActive3400");
stn_bandActive3400.setTextContent(this.stn_bandActive3400+"");
station.appendChild(stn_bandActive3400);
Element stn_bandActive5600 = doc.createElement("stn_bandActive5600");
stn_bandActive5600.setTextContent(this.stn_bandActive5600+"");
station.appendChild(stn_bandActive5600);
Element stn_bandActive10G = doc.createElement("stn_bandActive10G");
stn_bandActive10G.setTextContent(this.stn_bandActive10G+"");
station.appendChild(stn_bandActive10G);
// Element salary = doc.createElement("salary");
// salary.setAttribute("currency", "USD");
// salary.setTextContent("5000");
@@ -765,8 +884,7 @@ public class ChatPreferences {
Element beaconUnworkedstations = doc.createElement("beaconUnworkedstations");
rootElement.appendChild(beaconUnworkedstations);
Element beaconUnworkedstationsText = doc.createElement("beaconUnworkedstationsText");
beaconUnworkedstationsText.setTextContent(this.getUnwkd_unworkedStnRequesterBeaconsText());
beaconUnworkedstations.appendChild(beaconUnworkedstationsText);
@@ -782,10 +900,62 @@ public class ChatPreferences {
Element beaconUnworkedstationsPrefix = doc.createElement("beaconUnworkedstationsPrefix");
beaconUnworkedstationsPrefix.setTextContent(this.getUnwkd_beaconUnworkedstationsPrefix());
beaconUnworkedstations.appendChild(beaconUnworkedstationsPrefix);
writeXml(doc, System.out);
/****************************
* GUI BEHAVIOUR
***************************/
/**
* window sizes
*/
Element guiOptions = doc.createElement("guiOptions");
rootElement.appendChild(guiOptions);
Element GUIscn_ChatwindowMainSceneSizeHW = doc.createElement("GUIscn_ChatwindowMainSceneSizeHW");
GUIscn_ChatwindowMainSceneSizeHW.setTextContent(this.getGUIscn_ChatwindowMainSceneSizeHW()[0]+";"+this.getGUIscn_ChatwindowMainSceneSizeHW()[1]);
guiOptions.appendChild(GUIscn_ChatwindowMainSceneSizeHW);
Element GUIclusterAndQSOMonStage_SceneSizeHW = doc.createElement("GUIclusterAndQSOMonStage_SceneSizeHW");
GUIclusterAndQSOMonStage_SceneSizeHW.setTextContent(this.getGUIclusterAndQSOMonStage_SceneSizeHW()[0]+";"+this.getGUIclusterAndQSOMonStage_SceneSizeHW()[1]);
guiOptions.appendChild(GUIclusterAndQSOMonStage_SceneSizeHW);
Element GUIstage_updateStage_SceneSizeHW = doc.createElement("GUIstage_updateStage_SceneSizeHW");
GUIstage_updateStage_SceneSizeHW.setTextContent(this.getGUIstage_updateStage_SceneSizeHW()[0]+";"+this.getGUIstage_updateStage_SceneSizeHW()[1]);
guiOptions.appendChild(GUIstage_updateStage_SceneSizeHW);
Element GUIsettingsStageSceneSizeHW = doc.createElement("GUIsettingsStageSceneSizeHW");
GUIsettingsStageSceneSizeHW.setTextContent(this.getGUIsettingsStageSceneSizeHW()[0]+";"+this.getGUIsettingsStageSceneSizeHW()[1]);
guiOptions.appendChild(GUIsettingsStageSceneSizeHW);
/************************************
* save splitpanel divider positions
************************************/
Element GUIselectedCallSignSplitPane_dividerposition = doc.createElement("GUIselectedCallSignSplitPane_dividerposition");
GUIselectedCallSignSplitPane_dividerposition.setTextContent(doubleArrayToCSVString(getGUIselectedCallSignSplitPane_dividerposition()));
guiOptions.appendChild(GUIselectedCallSignSplitPane_dividerposition);
Element GUImainWindowLeftSplitPane_dividerposition = doc.createElement("GUImainWindowLeftSplitPane_dividerposition");
GUImainWindowLeftSplitPane_dividerposition.setTextContent(doubleArrayToCSVString(getGUImainWindowLeftSplitPane_dividerposition()));
guiOptions.appendChild(GUImainWindowLeftSplitPane_dividerposition);
Element GUImessageSectionSplitpane_dividerposition = doc.createElement("GUImessageSectionSplitpane_dividerposition");
GUImessageSectionSplitpane_dividerposition.setTextContent(doubleArrayToCSVString(getGUImessageSectionSplitpane_dividerposition()));
guiOptions.appendChild(GUImessageSectionSplitpane_dividerposition);
Element GUImainWindowRightSplitPane_dividerposition = doc.createElement("GUImainWindowRightSplitPane_dividerposition");
GUImainWindowRightSplitPane_dividerposition.setTextContent(doubleArrayToCSVString(getGUImainWindowRightSplitPane_dividerposition()));
guiOptions.appendChild(GUImainWindowRightSplitPane_dividerposition);
Element GUIpnl_directedMSGWin_dividerpositionDefault = doc.createElement("GUIpnl_directedMSGWin_dividerpositionDefault");
GUIpnl_directedMSGWin_dividerpositionDefault.setTextContent(doubleArrayToCSVString(getGUIpnl_directedMSGWin_dividerpositionDefault()));
guiOptions.appendChild(GUIpnl_directedMSGWin_dividerpositionDefault);
/****************************************************************************************
****************************** now write this XML! *************************************
****************************************************************************************/
writeXml(doc, System.out);
// write dom document to a file
try (FileOutputStream output =
@@ -850,6 +1020,7 @@ public class ChatPreferences {
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(xmlConfigFile);
/**
* case station settings
*
@@ -897,10 +1068,106 @@ public class ChatPreferences {
stn_qtfDefault = qtfDefault;
try {
String stnUses144 = element
.getElementsByTagName("stn_bandActive144").item(0)
.getTextContent();
if (stnUses144.equals("true")) {
stn_bandActive144 = true;
} else {
stn_bandActive144 = false;
}
String stnUses432 = element
.getElementsByTagName("stn_bandActive432").item(0)
.getTextContent();
if (stnUses432.equals("true")) {
stn_bandActive432 = true;
} else {
stn_bandActive432 = false;
}
String stnUses1240 = element
.getElementsByTagName("stn_bandActive1240").item(0)
.getTextContent();
if (stnUses1240.equals("true")) {
stn_bandActive1240 = true;
} else {
stn_bandActive1240 = false;
}
String stnUses2300 = element
.getElementsByTagName("stn_bandActive2300").item(0)
.getTextContent();
if (stnUses2300.equals("true")) {
stn_bandActive2300 = true;
} else {
stn_bandActive2300 = false;
}
String stnUses3400 = element
.getElementsByTagName("stn_bandActive3400").item(0)
.getTextContent();
if (stnUses3400.equals("true")) {
stn_bandActive3400 = true;
} else {
stn_bandActive3400 = false;
}
String stnUses5600 = element
.getElementsByTagName("stn_bandActive5600").item(0)
.getTextContent();
if (stnUses5600.equals("true")) {
stn_bandActive5600 = true;
} else {
stn_bandActive5600 = false;
}
String stnUses10G = element
.getElementsByTagName("stn_bandActive10G").item(0)
.getTextContent();
if (stnUses10G.equals("true")) {
stn_bandActive10G = true;
} else {
stn_bandActive10G = false;
}
} catch (NullPointerException tooOldConfigFileOrFormatError) {
/**
* In program version 1 there had not been these settings in the xml and not founding em
* would cause an exception and dumb values for the preferences. So we have to initialize
* these variables and later write a proper configfile which can be used correctly then.
*/
stn_bandActive144 = true;
stn_bandActive432 = true;
stn_bandActive1240 = true;
stn_bandActive2300 = true;
stn_bandActive3400 = true;
stn_bandActive5600 = true;
stn_bandActive10G = true;
}
System.out.println("[ChatPreferences, info]: Current Element: " + node.getNodeName()
+ " --> call: " + call + " / " + password + " / " + loginDisplayedName + " / " + qra
+ " / " + category + " / " + antennaBeamWidthDeg + " / " + maxQRBDefault + " / " + qtfDefault);
+ " / " + category + " / " + antennaBeamWidthDeg + " / " + maxQRBDefault + " / " + qtfDefault + " qrv144: " + stn_bandActive144);
}
}
@@ -1287,6 +1554,105 @@ public class ChatPreferences {
+ unwkd_unworkedStnRequesterBeaconsText);
}
/***********************************************
*
* case read GUI options
*
***********************************************/
list = doc.getElementsByTagName("guiOptions");
if (list.getLength() != 0) {
for (int temp = 0; temp < list.getLength(); temp++) {
Node node = list.item(temp);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
try{
String GUIscn_ChatwindowMainSceneSizeHW = element.getElementsByTagName("GUIscn_ChatwindowMainSceneSizeHW").item(0)
.getTextContent();
for (int i = 0; i < (GUIscn_ChatwindowMainSceneSizeHW.split(";").length); i++) {
this.getGUIscn_ChatwindowMainSceneSizeHW()[i] =
Double.parseDouble(GUIscn_ChatwindowMainSceneSizeHW.split(";")[i]);
}
System.out.println(
"[ChatPreferences, info]: Set the GUIscn_ChatwindowMainSceneSizeHW size to " + GUIclusterAndQSOMonStage_SceneSizeHW);
String GUIclusterAndQSOMonStage_SceneSizeHW = element.getElementsByTagName("GUIclusterAndQSOMonStage_SceneSizeHW").item(0)
.getTextContent();
for (int i = 0; i < (GUIclusterAndQSOMonStage_SceneSizeHW.split(";").length); i++) {
this.getGUIclusterAndQSOMonStage_SceneSizeHW()[i] =
Double.parseDouble(GUIclusterAndQSOMonStage_SceneSizeHW.split(";")[i]);
}
String GUIselectedCallSignSplitPane_dividerposition = element.getElementsByTagName("GUIselectedCallSignSplitPane_dividerposition").item(0)
.getTextContent();
this.setGUIselectedCallSignSplitPane_dividerposition(csvStringToDoubleArray(GUIselectedCallSignSplitPane_dividerposition));
String GUImainWindowLeftSplitPane_dividerposition = element.getElementsByTagName("GUImainWindowLeftSplitPane_dividerposition").item(0)
.getTextContent();
this.setGUImainWindowLeftSplitPane_dividerposition(csvStringToDoubleArray(GUImainWindowLeftSplitPane_dividerposition));
String GUImessageSectionSplitpane_dividerposition = element.getElementsByTagName("GUImessageSectionSplitpane_dividerposition").item(0)
.getTextContent();
this.setGUImessageSectionSplitpane_dividerposition(csvStringToDoubleArray(GUImessageSectionSplitpane_dividerposition));
String GUImainWindowRightSplitPane_dividerposition = element.getElementsByTagName("GUImainWindowRightSplitPane_dividerposition").item(0)
.getTextContent();
this.setGUImainWindowRightSplitPane_dividerposition(csvStringToDoubleArray(GUImainWindowRightSplitPane_dividerposition));
String GUIpnl_directedMSGWin_dividerpositionDefault = element.getElementsByTagName("GUIpnl_directedMSGWin_dividerpositionDefault").item(0)
.getTextContent();
this.setGUIpnl_directedMSGWin_dividerpositionDefault(csvStringToDoubleArray(GUIpnl_directedMSGWin_dividerpositionDefault));
// System.out.println(
// "[ChatPreferences, info]: Set the GUIclusterAndQSOMonStage_SceneSizeHW size to " + GUIclusterAndQSOMonStage_SceneSizeHW);
}
catch (NullPointerException tooOldConfigFileOrFormatError) {
/**
* In program version 1.2 there had not been these settings in the xml and not founding em
* would cause an exception and dumb values for the preferences. So we have to initialize
* these variables and later write a proper configfile which can be used correctly then.
*
* So THESE ARE DEFULTS
*/
tooOldConfigFileOrFormatError.printStackTrace();
GUIscn_ChatwindowMainSceneSizeHW = new double[] {768, 1234};
GUIclusterAndQSOMonStage_SceneSizeHW = new double[] {700, 500};
GUIstage_updateStage_SceneSizeHW = new double[] {640, 480};
GUIsettingsStageSceneSizeHW = new double[] {720, 768};
GUIselectedCallSignSplitPane_dividerposition = new double[]{0.9};
setGUImainWindowLeftSplitPane_dividerposition(new double[]{0.7});
GUImessageSectionSplitpane_dividerposition = new double[]{0.5};
GUImainWindowRightSplitPane_dividerposition = new double[]{0.8};
GUIpnl_directedMSGWin_dividerpositionDefault = new double[]{0.8};
// GUImainWindowLeftSplitPane_dividerposition
}
}
}
}
} catch (ParserConfigurationException | SAXException | IOException e) {
e.printStackTrace();
System.out.println(e.getCause());
@@ -1297,6 +1663,96 @@ public class ChatPreferences {
}
/**
*
* @return double array with separated values for each doublevalue, seperated by ";", empty array if none
*/
private double [] csvStringToDoubleArray(String csvStringWithDoubles){
String separator = ";";
double[] result = new double[csvStringWithDoubles.split(separator).length];
for (int i = 0; i < (csvStringWithDoubles.split(separator).length); i++) {
result[i] =
Double.parseDouble(csvStringWithDoubles.split(separator)[i]);
// System.out.println("EXTRACTED " + result[i]);
}
return result;
}
private String doubleArrayToCSVString(double[] doubleArrayToCSVConvert){
String separator = ";";
String result = "";
for (int i = 0; i < (doubleArrayToCSVConvert.length); i++) {
result += doubleArrayToCSVConvert[i];
if (i+1<doubleArrayToCSVConvert.length) {
result += separator;
}
}
return result;
}
public boolean isStn_bandActive144() {
return stn_bandActive144;
}
public void setStn_bandActive144(boolean stn_bandActive144) {
this.stn_bandActive144 = stn_bandActive144;
}
public boolean isStn_bandActive432() {
return stn_bandActive432;
}
public void setStn_bandActive432(boolean stn_bandActive432) {
this.stn_bandActive432 = stn_bandActive432;
}
public boolean isStn_bandActive1240() {
return stn_bandActive1240;
}
public void setStn_bandActive1240(boolean stn_bandActive1240) {
this.stn_bandActive1240 = stn_bandActive1240;
}
public boolean isStn_bandActive2300() {
return stn_bandActive2300;
}
public void setStn_bandActive2300(boolean stn_bandActive2300) {
this.stn_bandActive2300 = stn_bandActive2300;
}
public boolean isStn_bandActive3400() {
return stn_bandActive3400;
}
public void setStn_bandActive3400(boolean stn_bandActive3400) {
this.stn_bandActive3400 = stn_bandActive3400;
}
public boolean isStn_bandActive5600() {
return stn_bandActive5600;
}
public void setStn_bandActive5600(boolean stn_bandActive5600) {
this.stn_bandActive5600 = stn_bandActive5600;
}
public boolean isStn_bandActive10G() {
return stn_bandActive10G;
}
public void setStn_bandActive10G(boolean stn_bandActive10G) {
this.stn_bandActive10G = stn_bandActive10G;
}
/**
*

View File

@@ -20,11 +20,13 @@ public class PlayAudioUtils {
*/
public PlayAudioUtils() {
ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/NOISESTARTUP.mp3", "NOISESTARTUP.mp3");
ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/NOISECQWINDOW.mp3", "NOISECQWINDOW.mp3");
ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/NOISEPMWINDOW.mp3", "NOISEPMWINDOW.mp3");
ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/NOISEERROR.mp3", "NOISEERROR.mp3");
ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/NOISENOTIFY.mp3", "NOISENOTIFY.mp3");
ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/tick.mp3", "tick.mp3");
ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRA.mp3", "LTTRA.mp3");
ApplicationFileUtils.copyResourceIfRequired(ApplicationConstants.APPLICATION_NAME, "/LTTRB.mp3", "LTTRB.mp3");
@@ -119,6 +121,7 @@ public class PlayAudioUtils {
*<br/>
*
* case '!': Startup<br/>
* case '-': tick<br/>
* case 'C': CQ Window new entry<br/>
* case 'P': PM Window new entry<br/>
* case 'E': Error occured<br/>
@@ -134,6 +137,9 @@ public class PlayAudioUtils {
switch (actionChar){
case '-':
musicList.add(new Media(new File (ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/tick.mp3")).toURI().toString()));
break;
case '!':
musicList.add(new Media(new File (ApplicationFileUtils.getFilePath(ApplicationConstants.APPLICATION_NAME, "/NOISESTARTUP.mp3")).toURI().toString()));
break;

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<praktiKST>
<station>
<LoginCallSign>DO5SA</LoginCallSign>
<LoginCallSign>DO5AMF</LoginCallSign>
<LoginPassword>kst4contest.test</LoginPassword>
<LoginDisplayedName>Paule</LoginDisplayedName>
<LoginLocator>JO51DI</LoginLocator>
<LoginDisplayedName>Marc</LoginDisplayedName>
<LoginLocator>JN49GL</LoginLocator>
<ChatCategory>2</ChatCategory>
<stn_antennaBeamWidthDeg>50</stn_antennaBeamWidthDeg>
<stn_maxQRBDefault>900</stn_maxQRBDefault>

BIN
src/main/resources/tick.mp3 Normal file

Binary file not shown.

View File

@@ -6,4 +6,616 @@ DM5M;Marc;JO51JL;StringProperty [value: null];true;true;true;false;false;false;f
DM5M;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF0GEB;Marc;JO51IJ;StringProperty [value: 144.174 ];true;true;false;false;false;false;false;false
DF0GEB;Marc;JO51IJ;StringProperty [value: 144.174 ];true;true;true;false;false;false;false;false
DF9QX;Matthias;JO42HD;StringProperty [value: null];true;false;false;false;false;false;false;false
DF9QX;Matthias;JO42HD;StringProperty [value: null];true;false;false;false;false;false;false;false
DF9QX;Matthias;JO42HD;StringProperty [value: null];true;false;false;false;false;false;false;false
DF9QX;Matthias;JO42HD;StringProperty [value: null];true;true;false;false;false;false;false;false
DF9QX;Matthias;JO42HD;StringProperty [value: null];true;true;true;false;false;false;false;false
9A1AAY;RKNG;JN85PJ;StringProperty [value: null];true;true;false;false;false;false;false;false
DO5AMF;Marc;JO51IJ;StringProperty [value: null];true;false;true;false;false;false;false;false
;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DM2EUN;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2ALF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6KDS;Klaus;JO50KQ;StringProperty [value: null];true;true;false;false;false;false;false;false
DF0YY;Berlin 432.240;JO62GD;StringProperty [value: null];true;false;true;false;false;false;false;false
DL2AKT;Jens;JO50NV;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5AAJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL0HBS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK0NA;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DD6YR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OE5D;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DM3F;Fred 70/23cm;JO60OM;StringProperty [value: null];true;false;true;false;false;false;false;false
DG3RAP;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OL3Z;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DF0YY;Berlin 432.240;JO62GD;StringProperty [value: 432.240 ];true;false;true;false;false;false;false;false
OE5D;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DM3F;Fred 70/23cm;JO60OM;StringProperty [value: null];true;false;true;false;false;false;false;false
OL3Z;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL4NWM/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OL3Z;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DN4DI;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF0WF;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL5MO;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK5OA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1X;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DG7NBE;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
OL7C;Club 2m;JO60JJ;StringProperty [value: null];true;true;false;false;false;false;false;false
DO3BST;Sven 2x9 /2x16;JO51KW;StringProperty [value: null];true;true;false;false;false;false;false;false
DR2L;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DR7C;3cm up;JO50WB;StringProperty [value: 377 ];true;true;false;false;false;false;false;false
DL6ON;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5DAW;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DK2LB;Torsten;JO53LQ;StringProperty [value: null];true;true;false;false;false;false;false;false
DK4VW;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DG2ON;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK5OA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF7NX;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL3LAR;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DG3AWN;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2TN;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DN5PW;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL1YDI;Dirk 2m/9Ele;JO42FA;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2WC;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ3QB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO3LGI;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DF2KD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2YCT;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6AA;Sven;JO43JH;StringProperty [value: 165 ];true;false;true;false;false;false;false;false
DL6ZEJ/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2RMC;Tom 70 + 23cm;JO50WB;StringProperty [value: 432.179.4 ];true;false;true;false;false;false;false;false
DK7SG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF1AK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8NAS;Sigi-70cm;JN59LE;StringProperty [value: null];true;false;true;false;false;false;false;false
DJ9FC;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG2YIQ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL3NGN/P;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL9OLI;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6MHG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1AXC;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2BQC;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO4HBK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2ALF;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL0ARN;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO6JH;Julian 2 70 3cm;JO51TX;StringProperty [value: null];true;true;false;false;false;false;false;false
DF5EM/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH1NAS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO3UKW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2BK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK5AJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO3LGI;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO3BST;Sven 2x9 /2x16;JO51KW;StringProperty [value: null];true;true;true;false;false;false;false;false
DJ1OB;Olli - 2m;JN48UG;StringProperty [value: null];true;true;false;false;false;false;false;false
DG6ME;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM5D;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DK5EZ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO1NPF/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL7GA/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO1AYJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1RDO;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL2NDL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6UJH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DA2R;Hans-Jürgen;JN69EM;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4HMS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5DWF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8ZT;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5HQ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8LR;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL4MA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM2CF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2HTI;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH1AKY;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6ABB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK0KTL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF6RI;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK2L;Team 2m;JN99BN;StringProperty [value: 144.230 ];true;true;false;false;false;false;false;false
OR6T;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DF1ASG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1RLB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1RWO;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL0HAL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2AKT;Jens;JO50NV;StringProperty [value: null];true;true;true;false;false;false;false;false
DL9AAA/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM5F;Marcel 2/70/23;JO71ES;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5ANS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL0NF;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DO4SKH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL9BBD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1HSF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1RMR;Club;JO60QC;StringProperty [value: null];true;true;false;false;false;false;false;false
DG4UF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DR5W;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6CNG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL7ZN;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK4RL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM3ZF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO1OHL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DB3LO;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO1XRK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH0HD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2YDS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH7ACI;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM2D;2x8 QRO SSB/CW;JO64ND;StringProperty [value: 180 ];true;true;false;false;false;false;false;false
DH1GSD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2LBK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1MJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ3AK;Detlef;JO52GJ;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ3AX;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6ZXG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5OU;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM2EV;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM6AT;Andreas;JO52JG;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1UF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5XAT;Holger 2m only;JO53CN;StringProperty [value: null];true;true;false;false;false;false;false;false
DO2PSW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OZ6TY;Henning;JO55XE;StringProperty [value: null];true;true;false;false;false;false;false;false
DG4OP;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4WK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ6OL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO3VE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH0LS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2JST;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DN5PW;Philipp 2m SSB;JO50LQ;StringProperty [value: null];true;true;true;false;false;false;false;false
DC7EF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL3LAR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DC7BK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH8GHH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL0BQ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8AMB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO8THW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2LSM;Guenter;JO61GH;StringProperty [value: 144.065 ];true;true;false;false;false;false;false;false
DL5ZA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2AKV;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4MW;Ralf 2m;JO50KQ;StringProperty [value: null];true;true;false;false;false;false;false;false
DF8CV;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2NDL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ5NE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL0DLE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6NBS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH6DAO;Ray;JO41CN;StringProperty [value: null];true;true;false;false;false;false;false;false
DH0CF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH1PAL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2MDU;Chris;JN58RF;StringProperty [value: null];true;true;false;false;false;false;false;false
DK7AW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG2SER;Carsten;JN58OH;StringProperty [value: 337 ];true;true;false;false;false;false;false;false
DC9UN;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4MN;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ2FR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2WU;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5MO;Thomas 2m/7023;JO50LQ;StringProperty [value: null];true;true;true;false;false;false;false;false
9A1MC;Mladen 144;JN85QJ;StringProperty [value: null];true;true;false;false;false;false;false;false
DK5AJ;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL2MHO;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6KDS;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DJ2DA;Hans 432;JO61PG;StringProperty [value: null];true;false;true;false;false;false;false;false
DM5GG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO1AYJ;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL9AAA/P;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL3BUA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK6AC;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
SP7VVB;Maciek;JO91VQ;StringProperty [value: 340 ];true;true;false;false;false;false;false;false
SP6CPF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DD6OM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG5BRE;Ronny 70/23/13/9;JO62VM;StringProperty [value: 185 ];true;true;false;false;false;false;false;false
DG5BRE;Ronny 70/23/13/9;JO62VM;StringProperty [value: 185 ];true;true;true;false;false;false;false;false
DH5BS;erni 6/2/70;JO63UW;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6EB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH1GSD;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DO1MEW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1HSF;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL3RHN;Rüdiger 2m;JO63PM;StringProperty [value: null];true;true;false;false;false;false;false;false
DL3HXS;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DK0FWS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DC5IMM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8OAZ/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2HSX;Heiko 2m/70cm;JO51XC;StringProperty [value: 300 ];true;false;true;false;false;false;false;false
DJ2NR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1VRY;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK2RAS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8QS;Heiko;JO43KH;StringProperty [value: 432288 ];true;false;true;false;false;false;false;false
OE3NHW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8SAM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2FFW;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL9MKA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OE3FKS/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1AWD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK6R;144 only;JO70HG;StringProperty [value: 144.176 ];true;true;false;false;false;false;false;false
DH9NFM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DB5SM;Klaus-2m;JN59LE;StringProperty [value: 144.200 ];true;true;false;false;false;false;false;false
DL0GM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OL4N;club 2m;JO60VR;StringProperty [value: 144.232.8 ];true;true;false;false;false;false;false;false
DL2NBU;Peter;JN59KQ;StringProperty [value: 144.239 ];true;true;false;false;false;false;false;false
DM5D;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1DSX;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1KCB;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
S57O;Frank;JN86DT;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1KKI;OK1KKI 144MHz;JN79NF;StringProperty [value: 144310 ];true;true;false;false;false;false;false;false
OL7M;OL7M;JO80FG;StringProperty [value: 144.341 ];true;true;false;false;false;false;false;false
OK1KQH;Radioclub;JN79GO;StringProperty [value: 144.351 ];true;true;false;false;false;false;false;false
DQ2C;2m only;JN48WM;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1JHR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK7AC;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2TX;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OM6DN;2x12ele 950asl;JN99FI;StringProperty [value: 144.155 ];true;true;false;false;false;false;false;false
DL5ALW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG3FFM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG3FFM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM1PIO;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK2C;70cm-76GHz;JN99AJ;StringProperty [value: 432,333 ];true;false;true;false;false;false;false;false
DF0YY;Berlin.240;JO62GD;StringProperty [value: 432.240 ];true;true;true;false;false;false;false;false
DD2ML;Ulli 4x10 QRO;JN68GI;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2CB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1ATI;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF0LU;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK2C;70cm-76GHz;JN99AJ;StringProperty [value: 432 333.000 ];true;false;true;false;false;false;false;false
DM5B;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK5T;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OE2M;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL9DX;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO5OMH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DR1T;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK2UPG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8MEM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1KKP;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6MR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5OCD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1HXL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5C;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF8TM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO7WM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF2AJ;Andy 2/4/6m;JN48MW;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2FFW;FRANK 2m;JO50LQ;StringProperty [value: 203 ];true;true;true;false;false;false;false;false
9A1N;Radio klub;JN85LI;StringProperty [value: 216 ];true;false;true;false;false;false;false;false
DL6NEJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2MAJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG7SCB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DP9X;Pom 144SSB;JO42SC;StringProperty [value: null];true;true;false;false;false;false;false;false
DL0OB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5BL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH0LS;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DR6T;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ6QS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO6NI;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6FBK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL0GL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2PZ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DB7MM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8EAY;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG1E;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2PZ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
PC2K;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO8HK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK6FE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
G2N;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5ZBS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
PA3FVE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH7FFE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK0PU;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1MF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
PA0GSM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO1KUB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5CAT;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL8PA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK5HQ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH8IAB;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL1SUZ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1FY;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4MW;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DM4KCS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG9FBA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL3NCR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4YAJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2OY;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL1AVF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5OCD;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DO2NFS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8SDQ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8LR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1X;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL3LE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO1OIB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1LDZ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO4OFR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG0OGJ;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL5OAZ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ8AK;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
HB9TTY;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF1ASG;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL9FBF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF9LW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL9NDP;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5ALW;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DF4HA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK5IR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
IQ4KD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO6NI;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DB1RUL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG5DJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OM3KOM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
HG7M;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OM5AW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK2KRT;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK3TFA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK7PY;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG8LG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK2KJU;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF1HF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DC8RI;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DK9TF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM2FLY;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2R;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG0OGJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF8OI;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DN7OMB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM5F;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DQ55DIG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2TN;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
SQ1GU;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL7LTM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DD5DX;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL0PP;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DD9FJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5AAJ;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
S53O;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2LSM;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL2FQ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK3ZQ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO1PR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8NSB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
HB9IAB/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL8RH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG7NBE;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DK6NJ;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL7PV;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1RDO;ok1rdo;JN69KL;StringProperty [value: null];true;true;true;false;false;false;false;false
DL4M;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2YL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL3SFB;Martin 70cm;JN48WM;StringProperty [value: 432.224 ];true;false;true;false;false;false;false;false
F8KID;Club;JN38AT;StringProperty [value: 144 254 ];true;true;false;false;false;false;false;false
DL2DHM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2IT;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF8XC;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4ZBG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH1AKY;Jens 70;JO50LQ;StringProperty [value: null];true;true;true;false;false;false;false;false
OE5LHM/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL7AVZ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1NPF;Roman 2/70;JO70UK;StringProperty [value: 144.351 ];true;true;false;false;false;false;false;false
F6KFH;RC 70cm;JN39OC;StringProperty [value: 267 ];true;false;true;false;false;false;false;false
OK2O;club;JN89IW;StringProperty [value: 144,317 ];true;true;false;false;false;false;false;false
DL0WX;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
TM5R;Didier;JN19BQ;StringProperty [value: null];true;true;false;false;false;false;false;false
DL9NDP;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
ON8TT/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
HB9GF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1KAD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL7AX;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK2KAA;Club 2m;JN79QJ;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1DMP;Milan 2m/70cm;JN79IX;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5JTS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1IME;Ota 2m;JO70FB;StringProperty [value: null];true;true;false;false;false;false;false;false
G3XDY;John;JO02OB;StringProperty [value: 144.214 ];true;true;false;false;false;false;false;false
OK1KCR;BIG GUN;JN79VS;StringProperty [value: 144.162 ];true;true;false;false;false;false;false;false
OK1WAV;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2RZ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL9NM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OL3Z;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
SP9KDA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
IQ5NN;MonteNerone144;JN63GN;StringProperty [value: 144.100 ];true;true;false;false;false;false;false;false
DL9NM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL7ACN;Jens, 144;JN49JC;StringProperty [value: 284 ];true;true;false;false;false;false;false;false
DL0NF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DD7PA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OL7W;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
HB9NE;Contest Team;JN37JC;StringProperty [value: 273.4 ];true;true;false;false;false;false;false;false
DL6GCK;Konrad;JN47OR;StringProperty [value: 338 ];true;true;false;false;false;false;false;false
OK1KCB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK0GFF/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM3D;Club;JO62IH;StringProperty [value: null];true;true;false;false;false;false;false;false
DF0A;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
S59P;Club JN86AO;JN86AO;StringProperty [value: 144108 ];true;true;false;false;false;false;false;false
OL7C;Radio Club;JO60JJ;StringProperty [value: 144.211 ];true;true;false;false;false;false;false;false
OE5D;ARGE Braunau;JN68PC;StringProperty [value: 328 ];true;true;true;false;false;false;false;false
OK2R;70cm;JN89JM;StringProperty [value: 240 ];true;true;false;false;false;false;false;false
9A0V;RC Vukovar;JN95PE;StringProperty [value: 144.155 ];true;true;false;false;false;false;false;false
HG1Z;Team 2m;JN86KU;StringProperty [value: 335 ];true;true;false;false;false;false;false;false
9A8D;radio klub Dalj;JN95LM;StringProperty [value: 144060 ];true;true;false;false;false;false;false;false
OK2KCN;Club, 2m only;JN89OI;StringProperty [value: 144,049 ];true;true;false;false;false;false;false;false
S50L;mt. Slivnica;JN75ES;StringProperty [value: null];true;true;false;false;false;false;false;false
DD5M;franta;JN58VC;StringProperty [value: 144110 ];true;true;false;false;false;false;false;false
DK0A;Club (1140m asl);JN48CO;StringProperty [value: 144236 ];true;true;false;false;false;false;false;false
OK1RW;144 only;JO70HG;StringProperty [value: 144.177 ];true;true;false;false;false;false;false;false
OK5Y;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DR1H;144320 8*12el;JN59OP;StringProperty [value: 144.320 ];true;true;false;false;false;false;false;false
OK1VDJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL3AAV;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1TV;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ9MH;Hajo;JO50FA;StringProperty [value: 144.070 ];true;true;false;false;false;false;false;false
DL1QC;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF0XX;Contest Club;JO52BO;StringProperty [value: null];true;true;false;false;false;false;false;false
DF2BR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF4AJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
ON4KHG;Gaetan 2m/3cm;JO10XO;StringProperty [value: null];true;true;false;false;false;false;false;false
PD4R;dennis;JO32CD;StringProperty [value: null];true;true;false;false;false;false;false;false
DG6YID;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG0ONW;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DF6LH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH4JQ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
PA1T;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
ON4EI/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL9MKA;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DG0ONW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DD0PX;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF1QR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF0MU;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL0MI;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2HXE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM3JAN;Janek 2m QRO;JO60OM;StringProperty [value: 350 ];true;true;false;false;false;false;false;false
9A3DF;Zeljko;JN86HF;StringProperty [value: 144233 ];true;true;false;false;false;false;false;false
DL2DRG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG0JMB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
SP6FXF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH2UHE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5ME;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL0HG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG4VW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4OCF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF1HC;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ3WE;Rudolf;JN57WS;StringProperty [value: 432241,3 ];true;false;true;false;false;false;false;false
DL1HTL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DD6ULF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5AWE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2PK;Peter 2m 750W;JO31IK;StringProperty [value: null];true;true;false;false;false;false;false;false
G3M;432.237;JO01QD;StringProperty [value: 432.237 ];true;true;false;false;false;false;false;false
DF7JU;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
PE1ITR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2ZO;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK4VW;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DK2BO;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM3AW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM2CHK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK5WMA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO1GPP;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2RSF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL0TZ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
SP6ZHP/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2HWA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1RS;432.323 only;JO60MM;StringProperty [value: 432.323 ];true;false;true;false;false;false;false;false
PE1OBL;Hans 12 EL ZL;JO21ET;StringProperty [value: 162 ];true;true;false;false;false;false;false;false
OK1DOY;Zdeno 2m;JO60UQ;StringProperty [value: 144.326 ];true;true;false;false;false;false;false;false
DJ8MS;Tor_70cm;JO54VC;StringProperty [value: 282 ];true;false;true;false;false;false;false;false
DO9OM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK4IN;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1EIP;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG7BBP/P;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DK6AO;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
OK1HCU;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF0PW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO1MLH;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL2AWR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2YDS;Stefan;JO42HG;StringProperty [value: null];true;true;true;false;false;false;false;false
DR6R;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF8KVK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1KC/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH8NAS;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DR7B;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4MHT;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG3AWN;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL4NAZ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK2KOJ;70 & 23 cm;JN79UG;StringProperty [value: 233 ];true;false;true;false;false;false;false;false
OK2KYJ;2/70 1kW/500W;JN89QQ;StringProperty [value: 305 ];true;true;false;false;false;false;false;false
DO1JKO;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM3DG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH1DX;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DN5KA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG6ME;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DG1HQK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1OA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG0LFG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1KAD;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DH1AKY;Jens 2m;JO50LQ;StringProperty [value: null];true;true;true;false;false;false;false;false
OK7MH;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
SM7FMX;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK0TU;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK6M;Martin;JN99CR;StringProperty [value: 177 ];true;false;true;false;false;false;false;false
DL2LMS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF1KA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2L;Volker;JN68DT;StringProperty [value: 312 ];true;true;false;false;false;false;false;false
DO2LNJ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DB7AD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1YEG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK5WN;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DR7B;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
OZ1JMN;Allan;JO46VE;StringProperty [value: 262 250 ];true;true;false;false;false;false;false;false
DB0DH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK1DCS;Vaclav;JN78CS;StringProperty [value: null];true;true;false;false;false;false;false;false
SN7L;Team 144.236;JO91QF;StringProperty [value: 144.240 ];true;true;false;false;false;false;false;false
DH6AD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4M;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
OK1AUO;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DD7MH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OP5Y/P;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DK9TF;Juergen 23+13;JO31NF;StringProperty [value: 1296.233 ];true;true;true;false;false;false;false;false
DL8DAU;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL8SCD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF6KB;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DC6HG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ1AA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ6JJ;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
OK1FPQ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6MHG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM7KN/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK5KK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK5WN;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL6ZEJ/P;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL2ZA;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL0BBK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM8MM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5BAW/P;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF0GC;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG4MH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG6YGE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG1YBN;Harald;JO31VX;StringProperty [value: null];true;true;false;false;false;false;false;false
DF0AP;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1PZ;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DF2QZ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK2PU;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DD5DD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK9ZQ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG0PF;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DK9AM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OE4WHG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO5HMK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
F6GYH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF7WL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
HB9YBQ;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1WB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
S57M;Bojan 432285;JN76PO;StringProperty [value: 390 ];true;false;true;false;false;false;false;false
DG1HP;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DC2TH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
HB9OOH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF2CD;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL9DBF;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4ASK;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DJ7AQ;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DJ3AM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1EHG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DG5YL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL2MAJ;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DR1T;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DC6HG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DF2AP;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DB0AI;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL6DBN;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5NUA;Klaus(70cm);JO63PO;StringProperty [value: 190 ];true;false;true;false;false;false;false;false
PI4ADH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1FY;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL5NUA;Klaus(70cm);JO63PO;StringProperty [value: 190 ];true;false;true;false;false;false;false;false
DF3TE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DC6CX/P;Chris 2/70/23;JO31SE;StringProperty [value: null];true;true;false;false;false;false;false;false
DK5WO;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1SE;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL1AG;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DB3LO;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
OK1MBT;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DJ1AA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DO4SSH;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH1PS;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL3YCW;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OK5ET;Martin LP 9elY;JO70WE;StringProperty [value: 268 ];true;true;false;false;false;false;false;false
OE5JWL;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DK1PZ;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DK5TI;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DO1ARR;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH8GHH;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL1SE;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
OK1VQC;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5AWE;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
OK1PMA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DH2PA;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DM5CB;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OE5FLM;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
DL4MN;unknown;unknown;StringProperty [value: null];true;false;true;false;false;false;false;false
OE6V;Werner 72 el kW;JN76VT;StringProperty [value: 078 ];true;true;false;false;false;false;false;false
DL6CWM;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL4ASK;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
DL5SE;Dan 70cm;JO50XL;StringProperty [value: null];true;false;true;false;false;false;false;false
DJ6VX;unknown;unknown;StringProperty [value: null];true;true;false;false;false;false;false;false
OM3W;Club 2m;JN99CH;StringProperty [value: 302 ];true;true;false;false;false;false;false;false