mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-04-03 06:25:44 +02:00
Compare commits
7 Commits
featureAud
...
featureMes
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1663b0fd7f | ||
|
|
3e8783d7cd | ||
|
|
8bea4111f0 | ||
|
|
136cf08f08 | ||
|
|
eb04ad3f33 | ||
|
|
51712a1f85 | ||
|
|
4a605f54ba |
@@ -1,2 +1,4 @@
|
||||
do5sa
|
||||
##12390780900ß9'++++2e0NEY#####
|
||||
##12390780900ß9'++++2e0NEY#####
|
||||
on8tt
|
||||
dl2rmc
|
||||
@@ -9,7 +9,7 @@ public class ApplicationConstants {
|
||||
/**
|
||||
* Name of file to store preferences in.
|
||||
*/
|
||||
public static final double APPLICATION_CURRENTVERSIONNUMBER = 0.9;
|
||||
public static final double APPLICATION_CURRENTVERSIONNUMBER = 1.17;
|
||||
|
||||
public static final String VERSIONINFOURLFORUPDATES_KST4CONTEST = "https://do5amf.funkerportal.de/kst4ContestVersionInfo.xml";
|
||||
public static final String VERSIONINFDOWNLOADEDLOCALFILE = "kst4ContestVersionInfo.xml";
|
||||
|
||||
@@ -11,15 +11,16 @@ import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
import java.util.concurrent.LinkedBlockingQueue;
|
||||
|
||||
import javafx.beans.property.SimpleStringProperty;
|
||||
import javafx.beans.value.ObservableStringValue;
|
||||
import javafx.collections.FXCollections;
|
||||
import javafx.collections.ObservableList;
|
||||
import javafx.collections.transformation.FilteredList;
|
||||
import javafx.collections.transformation.SortedList;
|
||||
import kst4contest.ApplicationConstants;
|
||||
import kst4contest.model.*;
|
||||
import kst4contest.utils.PlayAudioUtils;
|
||||
|
||||
import java.io.*;
|
||||
import java.util.function.Predicate;
|
||||
|
||||
/**
|
||||
*
|
||||
@@ -98,6 +99,54 @@ public class ChatController {
|
||||
this.disconnected = disconnected;
|
||||
}
|
||||
|
||||
public void airScout_SendAsShowPathPacket(ChatMember remoteChatMember) {
|
||||
|
||||
DatagramSocket dsocket;
|
||||
|
||||
String prefix_asSetpath ="ASSHOWPATH: \"KST\" \"AS\" ";
|
||||
String bandString = "1440000";
|
||||
String myCallAndMyLocString = chatPreferences.getLoginCallSign() + "," + chatPreferences.getLoginLocator();
|
||||
String remoteCallAndLocString = remoteChatMember.getCallSign() +"," + remoteChatMember.getQra();
|
||||
|
||||
String host = "255.255.255.255";
|
||||
// int port = 9872;
|
||||
int port = chatPreferences.getAirScout_asCommunicationPort();
|
||||
// System.out.println("<<<<<<<<<<<<<<<<<<<<ASPERI: " + port);
|
||||
|
||||
// byte[] message = "ASSETPATH: \"KST\" \"AS\" 1440000,DO5AMF,JN49GL,OK1MZM,JN89IW ".getBytes(); Original, ging
|
||||
InetAddress address;
|
||||
|
||||
String queryStringToAirScout = "";
|
||||
|
||||
queryStringToAirScout += prefix_asSetpath + bandString + "," + myCallAndMyLocString + "," + remoteCallAndLocString;
|
||||
|
||||
byte[] queryStringToAirScoutMSG = queryStringToAirScout.getBytes();
|
||||
|
||||
try {
|
||||
address = InetAddress.getByName("255.255.255.255");
|
||||
DatagramPacket packet = new DatagramPacket(queryStringToAirScoutMSG, queryStringToAirScoutMSG.length, address, port);
|
||||
dsocket = new DatagramSocket();
|
||||
dsocket.setBroadcast(true);
|
||||
dsocket.send(packet);
|
||||
dsocket.close();
|
||||
} catch (UnknownHostException e1) {
|
||||
// TODO Auto-generated catch block
|
||||
e1.printStackTrace();
|
||||
} catch (NoRouteToHostException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
catch (SocketException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
} catch (IOException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Handles the disconnect of either the chat (Case DISCONNECTONLY) or the
|
||||
* complete application life including all threads (case CLOSEALL)<br/><br/>
|
||||
@@ -289,7 +338,7 @@ public class ChatController {
|
||||
private String chatState;
|
||||
|
||||
private String hostname = "109.90.0.130";
|
||||
private String praktiKSTVersion = "praktiKST 0.9b";
|
||||
private String praktiKSTVersion = "praktiKST 1.0";
|
||||
private String praktiKSTVersionInfo = "2022-10 - 2022-12\ndeveloped by DO5AMF, Marc\nContact: praktimarc@gmail.com\nDonations via paypal are welcome";
|
||||
|
||||
private int port = 23001; // kst4contest.test 4 23001
|
||||
@@ -334,25 +383,30 @@ public class ChatController {
|
||||
|
||||
// ******All abstract types below here are used by the messageprocessor!
|
||||
// ***************
|
||||
// private Hashtable<String, ChatMember> chatMemberTable = new Hashtable<String, ChatMember>();
|
||||
// private HashMap<String, ChatMember> chatMemberTable = new HashMap<String, ChatMember>();
|
||||
// private Hashtable<String, ChatMember> dXClusterMemberTable = new Hashtable<String, ChatMember>();
|
||||
|
||||
private ObservableList<ChatMessage> lst_toAllMessageList = FXCollections.observableArrayList(); // directed to all
|
||||
private ObservableList<ChatMessage> lst_globalChatMessageList = FXCollections.observableArrayList(); //All chatmessages will be put in there, later create filtered message lists
|
||||
// private ObservableList<ChatMessage> lst_toAllMessageList = FXCollections.observableArrayList(); // directed to all
|
||||
// (beacon)
|
||||
private ObservableList<ChatMessage> lst_toMeMessageList = FXCollections.observableArrayList(); // directed to my
|
||||
private FilteredList<ChatMessage> lst_toAllMessageList = new FilteredList<>(lst_globalChatMessageList); // directed to all
|
||||
|
||||
// private ObservableList<ChatMessage> lst_toMeMessageList = FXCollections.observableArrayList(); // directed to my
|
||||
// call
|
||||
private ObservableList<ChatMessage> lst_toOtherMessageList = FXCollections.observableArrayList(); // directed to a
|
||||
private FilteredList<ChatMessage> lst_toMeMessageList = new FilteredList<>(lst_globalChatMessageList);
|
||||
|
||||
private FilteredList<ChatMessage> lst_selectedCallSignInfofilteredMessageList = new FilteredList<>(lst_globalChatMessageList); // directed to all
|
||||
|
||||
// private ObservableList<ChatMessage> lst_toOtherMessageList = FXCollections.observableArrayList(); // directed to a
|
||||
// call but not
|
||||
// mine
|
||||
private FilteredList<ChatMessage> lst_toOtherMessageList = new FilteredList<>(lst_globalChatMessageList);
|
||||
|
||||
private ObservableList<ChatMember> chatMemberList = FXCollections.observableArrayList(); // List of active stations
|
||||
// in chat
|
||||
private ObservableList<ChatMember> lst_chatMemberList = FXCollections.synchronizedObservableList(chatMemberList); // List
|
||||
// of
|
||||
// active
|
||||
// stations
|
||||
// in
|
||||
// chat
|
||||
// of active stn in chat
|
||||
private FilteredList<ChatMember> lst_chatMemberListFiltered = new FilteredList<ChatMember>(chatMemberList);
|
||||
private SortedList<ChatMember> lst_chatMemberSortedFilteredList = new SortedList<ChatMember>(lst_chatMemberListFiltered);
|
||||
private ObservableList<Predicate<ChatMember>> lst_chatMemberListFilterPredicates = FXCollections.observableArrayList();
|
||||
private ObservableList<ClusterMessage> lst_clusterMemberList = FXCollections.observableArrayList();
|
||||
|
||||
private ObservableList<ChatMember> lst_DBBasedWkdCallSignList = FXCollections.observableArrayList();
|
||||
@@ -405,6 +459,22 @@ public class ChatController {
|
||||
|
||||
}
|
||||
|
||||
public FilteredList<ChatMessage> getLst_selectedCallSignInfofilteredMessageList() {
|
||||
return lst_selectedCallSignInfofilteredMessageList;
|
||||
}
|
||||
|
||||
public void setLst_selectedCallSignInfofilteredMessageList(FilteredList<ChatMessage> lst_selectedCallSignInfofilteredMessageList) {
|
||||
this.lst_selectedCallSignInfofilteredMessageList = lst_selectedCallSignInfofilteredMessageList;
|
||||
}
|
||||
|
||||
public ObservableList<ChatMessage> getLst_globalChatMessageList() {
|
||||
return lst_globalChatMessageList;
|
||||
}
|
||||
|
||||
public void setLst_globalChatMessageList(ObservableList<ChatMessage> lst_globalChatMessageList) {
|
||||
this.lst_globalChatMessageList = lst_globalChatMessageList;
|
||||
}
|
||||
|
||||
public String getHostname() {
|
||||
return hostname;
|
||||
}
|
||||
@@ -473,6 +543,22 @@ public class ChatController {
|
||||
this.lst_chatMemberList = lst_chatMemberList;
|
||||
}
|
||||
|
||||
public FilteredList<ChatMember> getLst_chatMemberListFiltered() {
|
||||
return lst_chatMemberListFiltered;
|
||||
}
|
||||
|
||||
public SortedList<ChatMember> getLst_chatMemberSortedFilteredList() {
|
||||
return lst_chatMemberSortedFilteredList;
|
||||
}
|
||||
|
||||
public ObservableList<Predicate<ChatMember>> getLst_chatMemberListFilterPredicates() {
|
||||
return lst_chatMemberListFilterPredicates;
|
||||
}
|
||||
|
||||
public void setLst_chatMemberListFilterPredicates(ObservableList<Predicate<ChatMember>> lst_chatMemberListFilterPredicates) {
|
||||
this.lst_chatMemberListFilterPredicates = lst_chatMemberListFilterPredicates;
|
||||
}
|
||||
|
||||
public ObservableList<ClusterMessage> getLst_clusterMemberList() {
|
||||
return lst_clusterMemberList;
|
||||
}
|
||||
@@ -485,15 +571,21 @@ public class ChatController {
|
||||
return lst_toAllMessageList;
|
||||
}
|
||||
|
||||
public void setLst_toAllMessageList(ObservableList<ChatMessage> lst_toAllMessageList) {
|
||||
this.lst_toAllMessageList = lst_toAllMessageList;
|
||||
// public void setLst_toAllMessageList(ObservableList<ChatMessage> lst_toAllMessageList) {
|
||||
// this.lst_toAllMessageList = lst_toAllMessageList;
|
||||
// }
|
||||
public void setLst_toAllMessageList(FilteredList<ChatMessage> lst_toAllMessageList) {
|
||||
this.lst_toAllMessageList = lst_toAllMessageList;
|
||||
}
|
||||
|
||||
public ObservableList<ChatMessage> getLst_toMeMessageList() {
|
||||
return lst_toMeMessageList;
|
||||
}
|
||||
|
||||
public void setLst_toMeMessageList(ObservableList<ChatMessage> lst_toMeMessageList) {
|
||||
// public void setLst_toMeMessageList(ObservableList<ChatMessage> lst_toMeMessageList) {
|
||||
// this.lst_toMeMessageList = lst_toMeMessageList;
|
||||
// }
|
||||
public void setLst_toMeMessageList(FilteredList<ChatMessage> lst_toMeMessageList) {
|
||||
this.lst_toMeMessageList = lst_toMeMessageList;
|
||||
}
|
||||
|
||||
@@ -501,7 +593,11 @@ public class ChatController {
|
||||
return lst_toOtherMessageList;
|
||||
}
|
||||
|
||||
public void setLst_toOtherMessageList(ObservableList<ChatMessage> lst_toOtherMessageList) {
|
||||
// public void setLst_toOtherMessageList(ObservableList<ChatMessage> lst_toOtherMessageList) {
|
||||
// this.lst_toOtherMessageList = lst_toOtherMessageList;
|
||||
// }
|
||||
|
||||
public void setLst_toOtherMessageList(FilteredList<ChatMessage> lst_toOtherMessageList) {
|
||||
this.lst_toOtherMessageList = lst_toOtherMessageList;
|
||||
}
|
||||
|
||||
@@ -539,6 +635,74 @@ category = new ChatCategory(2);
|
||||
updateInformation = checkForUpdates.parseUpdateXMLFile();
|
||||
};
|
||||
|
||||
lst_toMeMessageList.setPredicate(new Predicate<ChatMessage>() {
|
||||
@Override
|
||||
public boolean test(ChatMessage chatMessage) {
|
||||
|
||||
try {
|
||||
|
||||
if (chatMessage.getReceiver().getCallSign().equals(getChatPreferences().getLoginCallSign())) {
|
||||
return true; //messages addressed to you
|
||||
}
|
||||
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())))
|
||||
&& (!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 {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (Exception nullPointerExc) {
|
||||
nullPointerExc.printStackTrace();
|
||||
System.out.println("ChatController, <<<catched ERROR>>>: maybe the receiver was null, message received b4 user entered chatmessage...!" + nullPointerExc.getMessage());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
lst_toAllMessageList.setPredicate(new Predicate<ChatMessage>() {
|
||||
@Override
|
||||
public boolean test(ChatMessage chatMessage) {
|
||||
|
||||
try {
|
||||
if (chatMessage.getReceiver().getCallSign().equals("ALL")) { //TODO: ALL have to be an application-constant
|
||||
return true;
|
||||
} else return false;
|
||||
|
||||
}
|
||||
catch (Exception nullPointerExc) {
|
||||
nullPointerExc.printStackTrace();
|
||||
System.out.println("ChatController, ERROR: maybe the receiver was null, mostly like a cq message!");
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
lst_toOtherMessageList.setPredicate(new Predicate<ChatMessage>() {
|
||||
@Override
|
||||
public boolean test(ChatMessage chatMessage) {
|
||||
try {
|
||||
if ((!chatMessage.getSender().getCallSign().equals(getChatPreferences().getLoginCallSign())) &&
|
||||
(!chatMessage.getReceiver().getCallSign().equals(getChatPreferences().getLoginCallSign()))) {
|
||||
return true;
|
||||
} else return false;
|
||||
|
||||
} catch (Exception nullPointerExc) {
|
||||
nullPointerExc.printStackTrace();
|
||||
System.out.println("ChatController, <<<catched ERROR>>>: maybe the receiver was null!");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
dbHandler = new DBController();
|
||||
|
||||
chatPreferences = new ChatPreferences();
|
||||
@@ -957,6 +1121,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());
|
||||
;
|
||||
}
|
||||
|
||||
@@ -1006,6 +1188,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
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
import kst4contest.model.ChatMessage;
|
||||
@@ -362,7 +364,11 @@ public class MessageBusManagementThread extends Thread {
|
||||
newMember.setName(splittedMessageLine[3]);
|
||||
newMember.setQra(splittedMessageLine[4]);
|
||||
newMember.setState(Integer.parseInt(splittedMessageLine[5]));
|
||||
newMember.setLastActivity(new Utils4KST().time_generateActualTimeInDateFormat());
|
||||
// newMember.setQTFdirection(LocatorUtils);
|
||||
newMember.setQrb(new Location().getDistanceKmByTwoLocatorStrings(client.getChatPreferences().getLoginLocator(), newMember.getQra()));
|
||||
newMember.setQTFdirection(new Location(client.getChatPreferences().getLoginLocator()).getBearing(new Location(newMember.getQra())));
|
||||
newMember.setLastActivity(new Utils4KST().time_generateActualTimeInDateFormat());//TODO evt obsolete!
|
||||
newMember.setActivityTimeLastInEpoch(new Utils4KST().time_generateCurrentEpochTime());
|
||||
|
||||
// this.client.getChatMemberTable().put(splittedMessageLine[2], newMember); //TODO: map -> List
|
||||
|
||||
@@ -402,6 +408,9 @@ public class MessageBusManagementThread extends Thread {
|
||||
newMember.setQra(splittedMessageLine[4]);
|
||||
newMember.setState(Integer.parseInt(splittedMessageLine[5]));
|
||||
newMember.setLastActivity(new Utils4KST().time_generateActualTimeInDateFormat());
|
||||
newMember.setActivityTimeLastInEpoch(new Utils4KST().time_generateCurrentEpochTime());
|
||||
newMember.setQrb(new Location().getDistanceKmByTwoLocatorStrings(client.getChatPreferences().getLoginLocator(), newMember.getQra()));
|
||||
newMember.setQTFdirection(new Location(client.getChatPreferences().getLoginLocator()).getBearing(new Location(newMember.getQra())));
|
||||
|
||||
newMember = this.client.getDbHandler().fetchChatMemberWkdDataForOnlyOneCallsignFromDB(newMember);
|
||||
|
||||
@@ -467,7 +476,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();
|
||||
@@ -482,17 +491,33 @@ public class MessageBusManagementThread extends Thread {
|
||||
|
||||
int index = checkListForChatMemberIndexByCallSign(this.client.getLst_chatMemberList(), sender);
|
||||
|
||||
//if the user had been found in the active users list
|
||||
if (index != -1) {
|
||||
//user found in the chatmember list
|
||||
newMessage.setSender(this.client.getLst_chatMemberList().get(index)); // set sender to member of
|
||||
try {
|
||||
newMessage.setSender(this.client.getLst_chatMemberList().get(index)); // set sender to member of
|
||||
this.client.getLst_chatMemberList().get(index).setActivityTimeLastInEpoch(new Utils4KST().time_generateCurrentEpochTime());
|
||||
} catch (Exception exc) {
|
||||
ChatMember aSenderDummy = new ChatMember();
|
||||
aSenderDummy.setCallSign(splittedMessageLine[3] + "[n/a]");
|
||||
aSenderDummy.setAirPlaneReflectInfo(new AirPlaneReflectionInfo());
|
||||
newMessage.setSender(aSenderDummy);
|
||||
System.out.println("MsgBusmgtT: Catched Error! " + exc.getMessage() + " // " + splittedMessageLine[3] + " is not in the list! Faking sender!");
|
||||
exc.printStackTrace();
|
||||
}
|
||||
// b4 init list
|
||||
} else {
|
||||
//user not found in chatmember list
|
||||
//user not found in chatmember list, mark it, sender can not be set
|
||||
if (!sender.getCallSign().equals(this.client.getChatPreferences().getLoginCallSign().toUpperCase())) {
|
||||
sender.setCallSign("[n/a]" + sender.getCallSign());
|
||||
// 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);
|
||||
@@ -507,14 +532,16 @@ 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);
|
||||
|
||||
this.client.getLst_toAllMessageList().add(0, newMessage); // sdtout to all message-List
|
||||
// this.client.getLst_toAllMessageList().add(0, newMessage); // sdtout to all message-List //TODO: change, moved to globalmessagelist - original
|
||||
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]);
|
||||
@@ -524,7 +551,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())) {
|
||||
@@ -553,7 +580,8 @@ public class MessageBusManagementThread extends Thread {
|
||||
if (newMessage.getReceiver().getCallSign()
|
||||
.equals(this.client.getChatPreferences().getLoginCallSign())) {
|
||||
|
||||
this.client.getLst_toMeMessageList().add(0, newMessage);
|
||||
// this.client.getLst_toMeMessageList().add(0, newMessage); //TODO: change, moved to globalmessagelist, original
|
||||
this.client.getLst_globalChatMessageList().add(0, newMessage); //TODO: change, moved to globalmessagelist, original
|
||||
|
||||
if (this.client.getChatPreferences().isNotify_playSimpleSounds()) {
|
||||
this.client.getPlayAudioUtils().playNoiseLauncher('P');
|
||||
@@ -575,25 +603,53 @@ 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);
|
||||
this.client.getLst_toMeMessageList().add(0, newMessage);
|
||||
// this.client.getLst_toMeMessageList().add(0, newMessage); //TODO: change, moved to globalmessagelist, original
|
||||
this.client.getLst_globalChatMessageList().add(0,newMessage);//TODO: change, moved to globalmessagelist
|
||||
|
||||
// if you sent the message to another station, it will be sorted in to
|
||||
// the "to me message list" with modified messagetext, added rxers callsign
|
||||
|
||||
} else {
|
||||
this.client.getLst_toOtherMessageList().add(0, newMessage);
|
||||
//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: ");
|
||||
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
|
||||
@@ -635,9 +691,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]);
|
||||
@@ -681,6 +738,9 @@ public class MessageBusManagementThread extends Thread {
|
||||
+ splittedMessageLine[3]));
|
||||
|
||||
this.client.getLst_chatMemberList().get(index).setQra(splittedMessageLine[3]);
|
||||
this.client.getLst_chatMemberList().get(index).setQrb(new Location().getDistanceKmByTwoLocatorStrings(client.getChatPreferences().getLoginLocator(), splittedMessageLine[3]));
|
||||
this.client.getLst_chatMemberList().get(index).setQTFdirection(new Location(client.getChatPreferences().getLoginLocator()).getBearing(new Location(splittedMessageLine[3])));
|
||||
|
||||
|
||||
} else {
|
||||
System.out.println("[MSGBUSMGT:] ERROR! Locator Change of ["
|
||||
@@ -837,6 +897,8 @@ public class MessageBusManagementThread extends Thread {
|
||||
stateChangeMember.setQra(splittedMessageLine[4]);
|
||||
stateChangeMember.setState(Integer.parseInt(splittedMessageLine[5]));
|
||||
stateChangeMember.setLastActivity(new Utils4KST().time_generateActualTimeInDateFormat());
|
||||
stateChangeMember.setQrb(new Location().getDistanceKmByTwoLocatorStrings(client.getChatPreferences().getLoginLocator(), stateChangeMember.getQra()));
|
||||
stateChangeMember.setQTFdirection(new Location(client.getChatPreferences().getLoginLocator()).getBearing(new Location(stateChangeMember.getQra())));
|
||||
|
||||
this.client.getDbHandler().storeChatMember(stateChangeMember); // TODO: not clean, it should be an
|
||||
// upodate
|
||||
@@ -885,7 +947,7 @@ public class MessageBusManagementThread extends Thread {
|
||||
System.out.println("Passwort falsch!");
|
||||
|
||||
if (splittedMessageLine[2].contains("password")) {
|
||||
splittedMessageLine[2] += "pse disc- and reconnect";
|
||||
splittedMessageLine[2] += " pse disc- and reconnect";
|
||||
}
|
||||
|
||||
ChatMember server = new ChatMember();
|
||||
@@ -897,10 +959,19 @@ public class MessageBusManagementThread extends Thread {
|
||||
pwErrorMsg.setMessageGeneratedTime(client.getCurrentEpochTime()+"");
|
||||
pwErrorMsg.setSender(server);
|
||||
pwErrorMsg.setMessageText(splittedMessageLine[2]);
|
||||
|
||||
ChatMember receiverDummy = new ChatMember();
|
||||
receiverDummy.setCallSign(client.getChatPreferences().getLoginCallSign());
|
||||
receiverDummy.setQrb(0.);
|
||||
receiverDummy.setQTFdirection(0.);
|
||||
pwErrorMsg.setReceiver(receiverDummy);
|
||||
|
||||
|
||||
|
||||
for (int i = 0; i < 10; i++) {
|
||||
client.getLst_toMeMessageList().add(pwErrorMsg);
|
||||
client.getLst_toAllMessageList().add(pwErrorMsg);
|
||||
client.getLst_globalChatMessageList().add(pwErrorMsg);
|
||||
// client.getLst_toMeMessageList().add(pwErrorMsg);
|
||||
// client.getLst_toAllMessageList().add(pwErrorMsg);
|
||||
}
|
||||
|
||||
// Kst4ContestApplication.alertWindowEvent("Password was wrong. Pse check!");
|
||||
|
||||
@@ -20,6 +20,7 @@ import java.net.URL;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.StandardCopyOption;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class UpdateChecker {
|
||||
|
||||
@@ -36,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...
|
||||
|
||||
/**
|
||||
@@ -115,10 +116,113 @@ public class UpdateChecker {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Section changeLog
|
||||
*/
|
||||
|
||||
list = doc.getElementsByTagName("changeLog");
|
||||
ArrayList<String[]> changeLogArrayList = new ArrayList<String[]>();
|
||||
|
||||
if (list.getLength() != 0) {
|
||||
|
||||
for (int temp = 0; temp < list.getLength(); temp++) {
|
||||
|
||||
Node node = list.item(temp);
|
||||
|
||||
Element element = (Element) node;
|
||||
int childNodeCounter = 0; //need an extra counter due to childnodes are counted...no idea, how
|
||||
String[] aChangeLogEntry = new String[7];
|
||||
aChangeLogEntry[0] = "";
|
||||
aChangeLogEntry[1] = "Date: ";
|
||||
aChangeLogEntry[2] = "Desc: ";
|
||||
aChangeLogEntry[3] = "Added: ";
|
||||
aChangeLogEntry[4] = "Changed: ";
|
||||
aChangeLogEntry[5] = "Fixed: ";
|
||||
aChangeLogEntry[6] = "Removed: ";
|
||||
|
||||
for (int i = 0; i < element.getChildNodes().getLength(); i++) {
|
||||
|
||||
if (element.getChildNodes().item(i).getNodeType() == Node.ELEMENT_NODE) {
|
||||
// System.out.println(element.getChildNodes().item(i).getTextContent() + " <<<<<<<<<<<<<<<<<< " + i + " / " + childNodeCounter);
|
||||
// System.out.println(element.getChildNodes().item(i).getNodeName());
|
||||
aChangeLogEntry[childNodeCounter] = aChangeLogEntry[childNodeCounter] + element.getChildNodes().item(i).getTextContent();
|
||||
childNodeCounter++;
|
||||
}
|
||||
}
|
||||
changeLogArrayList.add(aChangeLogEntry);
|
||||
}
|
||||
updateInfos.setChangeLog(changeLogArrayList);
|
||||
}
|
||||
|
||||
/**
|
||||
* Section Buglist
|
||||
*/
|
||||
|
||||
list = doc.getElementsByTagName("bug");
|
||||
ArrayList<String[]> bugFixArrayList = new ArrayList<String[]>();
|
||||
|
||||
if (list.getLength() != 0) {
|
||||
|
||||
for (int temp = 0; temp < list.getLength(); temp++) {
|
||||
|
||||
Node node = list.item(temp);
|
||||
|
||||
Element element = (Element) node;
|
||||
int childNodeCounter = 0; //need an extra counter due to childnodes are counted...no idea, how
|
||||
String[] aChangeLogEntry = new String[3];
|
||||
aChangeLogEntry[0] = "";
|
||||
aChangeLogEntry[1] = "State: ";
|
||||
|
||||
|
||||
for (int i = 0; i < element.getChildNodes().getLength(); i++) {
|
||||
|
||||
if (element.getChildNodes().item(i).getNodeType() == Node.ELEMENT_NODE) {
|
||||
System.out.println(element.getChildNodes().item(i).getTextContent() + " <<<<<<<<<<<<<<<<<< " + i + " / " + childNodeCounter);
|
||||
// System.out.println(element.getChildNodes().item(i).getNodeName());
|
||||
aChangeLogEntry[childNodeCounter] = aChangeLogEntry[childNodeCounter] + element.getChildNodes().item(i).getTextContent();
|
||||
childNodeCounter++;
|
||||
}
|
||||
}
|
||||
bugFixArrayList.add(aChangeLogEntry);
|
||||
}
|
||||
updateInfos.setBugList(bugFixArrayList);
|
||||
}
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
String[] testEntry = new String[7];
|
||||
testEntry[0] = "0.99";
|
||||
testEntry[1] = "2022-09";
|
||||
testEntry[2] = "researched the Chatprotocol";
|
||||
testEntry[3] = "addednothing";
|
||||
testEntry[4] = "changedsome";
|
||||
testEntry[5] = "fixedxed";
|
||||
testEntry[6] = "removedYourMom";
|
||||
|
||||
String[] testEntry2 = new String[7];
|
||||
testEntry2[0] = "0.29";
|
||||
testEntry2[1] = "2033-09";
|
||||
testEntry2[2] = "tested";
|
||||
testEntry2[3] = "addednotashing";
|
||||
testEntry2[4] = "changeasdsome";
|
||||
testEntry2[5] = "fixedxeds";
|
||||
testEntry2[6] = "removedYosssurMom";
|
||||
|
||||
// changeLogArrayList.add(testEntry);
|
||||
// changeLogArrayList.add(testEntry2);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return updateInfos;
|
||||
}
|
||||
|
||||
@@ -126,7 +230,7 @@ public class UpdateChecker {
|
||||
public String toString() {
|
||||
String toString = "";
|
||||
|
||||
toString += this.currentVersion;
|
||||
// toString += this.currentVersion;
|
||||
|
||||
return toString;
|
||||
}
|
||||
|
||||
@@ -49,6 +49,21 @@ public class Utils4KST {
|
||||
return formatted;
|
||||
|
||||
}
|
||||
|
||||
public static long time_getSecondsBetweenEpochAndNow(String epoch1) {
|
||||
|
||||
long epoch1Long = Long.parseLong(epoch1);
|
||||
long epoch2Long = new Utils4KST().time_generateCurrentEpochTime();
|
||||
// Instant instant = Instant.ofEpochSecond(epoch);
|
||||
|
||||
Date date = new Date(epoch1Long * 1000L);
|
||||
Date date2 = new Date(epoch2Long * 1000L);
|
||||
|
||||
long seconds = Math.abs(date.getTime()-date2.getTime())/1000;
|
||||
|
||||
return seconds;
|
||||
|
||||
}
|
||||
|
||||
public Date time_generateActualTimeInDateFormat() {
|
||||
Date date = new Date(time_generateCurrentEpochTime() * 1000L);
|
||||
|
||||
110
src/main/java/kst4contest/locatorUtils/DirectionUtils.java
Normal file
110
src/main/java/kst4contest/locatorUtils/DirectionUtils.java
Normal file
@@ -0,0 +1,110 @@
|
||||
package kst4contest.locatorUtils;
|
||||
|
||||
public class DirectionUtils {
|
||||
|
||||
/**
|
||||
* Checks wheter a sked-sender writes to a sked-receiver and is in my direction due he beams to this receiver
|
||||
*
|
||||
* @param myLocator
|
||||
* @param locatorOfSkedSender
|
||||
* @param locatorOfSekdReceiver
|
||||
* @param maxRangeKm
|
||||
* @param hisAntennaBeamWidth
|
||||
* @return
|
||||
*/
|
||||
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 -> skedTX deg: " + bearingOfSekdSenderToSkedReceiver);
|
||||
|
||||
double bearingOfSekdSenderToMe = skedSenderLocation.getBearing(myLocation);
|
||||
// System.out.println("skedTX -> me deg: " + bearingOfSekdSenderToMe);
|
||||
|
||||
/**
|
||||
* simple mech works
|
||||
*/
|
||||
// if (bearingOfSekdSenderToMe >= bearingOfSekdSenderToSkedReceiver) {
|
||||
// if (bearingOfSekdSenderToMe-bearingOfSekdSenderToSkedReceiver <= hisAntennaBeamWidth/2){
|
||||
// System.out.println(bearingOfSekdSenderToMe-bearingOfSekdSenderToSkedReceiver + " <= " + hisAntennaBeamWidth);
|
||||
// return true;
|
||||
// }
|
||||
// } else if ((bearingOfSekdSenderToMe <= bearingOfSekdSenderToSkedReceiver)) {
|
||||
// if (bearingOfSekdSenderToSkedReceiver-bearingOfSekdSenderToMe <= hisAntennaBeamWidth/2){
|
||||
// return true;
|
||||
// }
|
||||
// } else return false;
|
||||
/**
|
||||
* simple mech end
|
||||
*/
|
||||
|
||||
if (DirectionUtils.isAngleInRange(bearingOfSekdSenderToSkedReceiver, bearingOfSekdSenderToMe, hisAntennaBeamWidth)) {
|
||||
//I may should get "/2" because of 50% of the 3dB opening angle if txer is directed to sender exactly
|
||||
// System.out.println("------------> isinangleandrange!");
|
||||
return true;
|
||||
} else {
|
||||
// System.out.println("not in angle and reach");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Tests, if the angle (from me to) other station is in the range of the
|
||||
* angle (qtf) in degrees where my antenna points to.
|
||||
*
|
||||
* @param toForeignAngle [degrees]
|
||||
* @param mySelectedQTFAngle [degrees]
|
||||
* @param antennaBeamwidth [degrees]
|
||||
* @return
|
||||
*/
|
||||
public static boolean isAngleInRange(double toForeignAngle,
|
||||
double mySelectedQTFAngle, double antennaBeamwidth) {
|
||||
|
||||
double beamwidth = antennaBeamwidth / 2; // half left, half right
|
||||
|
||||
double startAngle = mySelectedQTFAngle - beamwidth;
|
||||
double endAngle = mySelectedQTFAngle + beamwidth;
|
||||
|
||||
// Normalize angles to be between 0 and 360 degrees
|
||||
toForeignAngle = normalizeAngle(toForeignAngle);
|
||||
startAngle = normalizeAngle(startAngle);
|
||||
endAngle = normalizeAngle(endAngle);
|
||||
|
||||
// Check if the range wraps around 360 degrees
|
||||
if (startAngle <= endAngle) {
|
||||
return toForeignAngle >= startAngle && toForeignAngle <= endAngle;
|
||||
} else {
|
||||
// Range wraps around 360 degrees, so check if angle is within the
|
||||
// range or outside the range
|
||||
return toForeignAngle >= startAngle || toForeignAngle <= endAngle;
|
||||
}
|
||||
}
|
||||
|
||||
private static double normalizeAngle(double angle) {
|
||||
if (angle < 0) {
|
||||
angle += 360;
|
||||
}
|
||||
if (angle >= 360) {
|
||||
angle -= 360;
|
||||
}
|
||||
return angle;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -226,7 +226,6 @@ public class Location {
|
||||
|
||||
String format = decimalFormat.format(loc1.getDistanceKm(loc2));
|
||||
|
||||
// return df.format(number);
|
||||
return Double.parseDouble(format);
|
||||
}
|
||||
|
||||
@@ -340,6 +339,21 @@ public class Location {
|
||||
- Math.sin(loc1.getLatitude().getRadians())
|
||||
* Math.cos(loc2.getLatitude().getRadians())
|
||||
* Math.cos(dLon);
|
||||
return (Angle.radiansToDegrees(Math.atan2(y, x)) + 360) % 360;
|
||||
|
||||
double bearing = (Angle.radiansToDegrees(Math.atan2(y, x)) + 360) % 360;
|
||||
|
||||
// return bearing;
|
||||
|
||||
|
||||
Locale locale = new Locale("en", "UK");
|
||||
String pattern = "###.##";
|
||||
|
||||
DecimalFormat decimalFormat = (DecimalFormat)
|
||||
NumberFormat.getNumberInstance(locale);
|
||||
decimalFormat.applyPattern(pattern);
|
||||
|
||||
String format = decimalFormat.format(bearing);
|
||||
|
||||
return Double.parseDouble(format);
|
||||
}
|
||||
}
|
||||
|
||||
43
src/main/java/kst4contest/locatorUtils/TestLocatorUtils.java
Normal file
43
src/main/java/kst4contest/locatorUtils/TestLocatorUtils.java
Normal 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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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();
|
||||
@@ -19,13 +22,13 @@ public class ChatMember {
|
||||
ChatCategory chatCategory; // only used by own instance of the chatmember instance to login to the chat
|
||||
// ChatCategory chatCategory;//only used by own instance of the chatmember instance to login to the chat
|
||||
|
||||
long activityCounter; // time of last activity in epochtimesec
|
||||
long activityTimeLastInEpoch; // time of last activity in epochtimesec
|
||||
Date lastActivity; // time of last activity in epochtimesec
|
||||
Date lastActualizationTimeOfThisMember; // time of last state change if that member
|
||||
int qrb;
|
||||
Double qrb;
|
||||
int state;
|
||||
|
||||
int QTFdirection; // antenna direction in deg
|
||||
Double QTFdirection; // antenna direction in deg
|
||||
int[] workedCategories; // Chatcategory where the station is in the log, see kst4contest.model.ChatCategory
|
||||
|
||||
boolean worked; // true if the callsign is logged already - for temporary worked processing
|
||||
@@ -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;
|
||||
}
|
||||
@@ -125,8 +214,8 @@ public class ChatMember {
|
||||
this.workedCategories = workedCategories;
|
||||
}
|
||||
|
||||
public void setActivityCounter(long activityCounter) {
|
||||
this.activityCounter = activityCounter;
|
||||
public void setActivityTimeLastInEpoch(long activityTimeLastInEpoch) {
|
||||
this.activityTimeLastInEpoch = activityTimeLastInEpoch;
|
||||
}
|
||||
|
||||
public int getState() {
|
||||
@@ -153,28 +242,22 @@ public class ChatMember {
|
||||
this.lastActualizationTimeOfThisMember = lastActualizationTimeOfThisMember;
|
||||
}
|
||||
|
||||
public int getQrb() {
|
||||
public Double getQrb() {
|
||||
return qrb;
|
||||
}
|
||||
|
||||
public void setQrb(int qrb) {
|
||||
public void setQrb(Double qrb) {
|
||||
this.qrb = qrb;
|
||||
}
|
||||
|
||||
public int getQTFdirection() {
|
||||
public Double getQTFdirection() {
|
||||
return QTFdirection;
|
||||
}
|
||||
|
||||
public void setQTFdirection(int qTFdirection) {
|
||||
public void setQTFdirection(Double qTFdirection) {
|
||||
QTFdirection = qTFdirection;
|
||||
}
|
||||
|
||||
// public int getWorkedCategory() {
|
||||
// return workedCategory;
|
||||
// }
|
||||
// public void setWorkedCategory(int workedCategory) {
|
||||
// this.workedCategory = workedCategory;
|
||||
// }
|
||||
public String getCallSign() {
|
||||
return callSign;
|
||||
}
|
||||
@@ -210,12 +293,12 @@ public class ChatMember {
|
||||
this.frequency = frequency;
|
||||
}
|
||||
|
||||
public long getActivityCounter() {
|
||||
return activityCounter;
|
||||
public long getActivityTimeLastInEpoch() {
|
||||
return activityTimeLastInEpoch;
|
||||
}
|
||||
|
||||
public void setActivityCounter(int activityCounter) {
|
||||
this.activityCounter = activityCounter;
|
||||
this.activityTimeLastInEpoch = activityCounter;
|
||||
}
|
||||
|
||||
public boolean isWorked() {
|
||||
@@ -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 = "";
|
||||
|
||||
@@ -138,9 +138,22 @@ public class ChatPreferences {
|
||||
String loginName = "Marc";
|
||||
String loginLocator = "jn49fk";
|
||||
|
||||
double stn_antennaBeamWidthDeg = 50;
|
||||
double stn_maxQRBDefault = 900;
|
||||
double stn_qtfDefault = 135;
|
||||
|
||||
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
|
||||
@@ -201,17 +214,119 @@ 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;
|
||||
}
|
||||
|
||||
public void setStn_antennaBeamWidthDeg(double stn_antennaBeamWidthDeg) {
|
||||
this.stn_antennaBeamWidthDeg = stn_antennaBeamWidthDeg;
|
||||
}
|
||||
|
||||
public double getStn_maxQRBDefault() {
|
||||
return stn_maxQRBDefault;
|
||||
}
|
||||
|
||||
public void setStn_maxQRBDefault(double stn_maxQRBDefault) {
|
||||
this.stn_maxQRBDefault = stn_maxQRBDefault;
|
||||
}
|
||||
|
||||
public double getStn_qtfDefault() {
|
||||
return stn_qtfDefault;
|
||||
}
|
||||
|
||||
public void setStn_qtfDefault(double stn_qtfDefault) {
|
||||
this.stn_qtfDefault = stn_qtfDefault;
|
||||
}
|
||||
|
||||
public boolean isLoginAFKState() {
|
||||
return loginAFKState;
|
||||
@@ -560,6 +675,46 @@ public class ChatPreferences {
|
||||
ChatCategory.setTextContent(this.getLoginChatCategory().getCategoryNumber()+"");
|
||||
station.appendChild(ChatCategory);
|
||||
|
||||
Element stn_antennaBeamWidthDeg = doc.createElement("stn_antennaBeamWidthDeg");
|
||||
stn_antennaBeamWidthDeg.setTextContent(this.stn_antennaBeamWidthDeg+"");
|
||||
station.appendChild(stn_antennaBeamWidthDeg);
|
||||
|
||||
Element stn_maxQRBDefault = doc.createElement("stn_maxQRBDefault");
|
||||
stn_maxQRBDefault.setTextContent(this.stn_maxQRBDefault+"");
|
||||
station.appendChild(stn_maxQRBDefault);
|
||||
|
||||
Element stn_qtfDefault = doc.createElement("stn_qtfDefault");
|
||||
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");
|
||||
@@ -727,8 +882,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);
|
||||
@@ -744,10 +898,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 =
|
||||
@@ -812,6 +1018,7 @@ public class ChatPreferences {
|
||||
DocumentBuilder db = dbf.newDocumentBuilder();
|
||||
Document doc = db.parse(xmlConfigFile);
|
||||
|
||||
|
||||
/**
|
||||
* case station settings
|
||||
*
|
||||
@@ -851,9 +1058,111 @@ public class ChatPreferences {
|
||||
loginChatCategory = new ChatCategory(2); // TODO: Set this default at another place
|
||||
}
|
||||
|
||||
double antennaBeamWidthDeg = Double.parseDouble(element.getElementsByTagName("stn_antennaBeamWidthDeg").item(0).getTextContent());
|
||||
stn_antennaBeamWidthDeg = antennaBeamWidthDeg;
|
||||
double maxQRBDefault = Double.parseDouble(element.getElementsByTagName("stn_maxQRBDefault").item(0).getTextContent());
|
||||
stn_maxQRBDefault = maxQRBDefault;
|
||||
double qtfDefault = Double.parseDouble(element.getElementsByTagName("stn_qtfDefault").item(0).getTextContent());
|
||||
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);
|
||||
+ " / " + category + " / " + antennaBeamWidthDeg + " / " + maxQRBDefault + " / " + qtfDefault + " qrv144: " + stn_bandActive144);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1240,6 +1549,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());
|
||||
@@ -1250,6 +1658,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;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -3,11 +3,31 @@ package kst4contest.model;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class UpdateInformation {
|
||||
double latestVersionNumberOnServer;
|
||||
String adminMessage, majorChanges,latestVersionPathOnWebserver;
|
||||
ArrayList<String> needUpdateResourcesSinceLastVersion;
|
||||
ArrayList<String[]> featureRequest;
|
||||
ArrayList<String[]> bugRequests;
|
||||
double latestVersionNumberOnServer = 100; //dummy value to prevent nullpointerexc
|
||||
String adminMessage ="";
|
||||
String majorChanges ="";
|
||||
String latestVersionPathOnWebserver="";
|
||||
ArrayList<String> needUpdateResourcesSinceLastVersion = new ArrayList<String>();
|
||||
ArrayList<String[]> featureRequest = new ArrayList<String[]>();
|
||||
ArrayList<String[]> bugRequests = new ArrayList<String[]>();
|
||||
ArrayList<String[]> changeLog = new ArrayList<String[]>();
|
||||
ArrayList<String[]> bugList = new ArrayList<String[]>();
|
||||
|
||||
public ArrayList<String[]> getBugList() {
|
||||
return bugList;
|
||||
}
|
||||
|
||||
public void setBugList(ArrayList<String[]> bugList) {
|
||||
this.bugList = bugList;
|
||||
}
|
||||
|
||||
public ArrayList<String[]> getChangeLog() {
|
||||
return changeLog;
|
||||
}
|
||||
|
||||
public void setChangeLog(ArrayList<String[]> changeLog) {
|
||||
this.changeLog = changeLog;
|
||||
}
|
||||
|
||||
public double getLatestVersionNumberOnServer() {
|
||||
return latestVersionNumberOnServer;
|
||||
|
||||
@@ -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
@@ -1,11 +1,14 @@
|
||||
<?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>
|
||||
<stn_qtfDefault>135</stn_qtfDefault>
|
||||
</station>
|
||||
<logsynch>
|
||||
<logsynch_fileBasedWkdCallInterpreterFileNameReadOnly>SimpleLogFile.txt</logsynch_fileBasedWkdCallInterpreterFileNameReadOnly>
|
||||
|
||||
BIN
src/main/resources/tick.mp3
Normal file
BIN
src/main/resources/tick.mp3
Normal file
Binary file not shown.
@@ -17,7 +17,10 @@ public class TestLocatorUtils {
|
||||
// System.out.println(Location.getBearing(location, location2));
|
||||
|
||||
|
||||
System.out.println(new Location().getDistanceKmByTwoLocatorStrings("JN49FL", "Jo51ij") + "");
|
||||
System.out.println((new Location().getDistanceKmByTwoLocatorStrings("JN49FL", "kn02fx") + ""));
|
||||
// System.out.println((new Location().getBearing());
|
||||
// int test = 888.08;
|
||||
// System.out.println(test);
|
||||
|
||||
// String test = new Location().getDistanceKmByTwoLocatorStrings("JN49FL", "Jo51ij") + "";
|
||||
//
|
||||
|
||||
@@ -5,4 +5,616 @@ DM5M;Marc;JO51JL;StringProperty [value: null];true;true;false;false;false;false;
|
||||
DM5M;Marc;JO51JL;StringProperty [value: null];true;true;true;false;false;false;false;false
|
||||
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
|
||||
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;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
|
||||
Reference in New Issue
Block a user