kopia lustrzana https://github.com/sh123/codec2_talkie
Third party packets handling
rodzic
ef7f4a8dcd
commit
2c7e3e80b5
|
@ -22,6 +22,7 @@ import java.util.Timer;
|
|||
import java.util.TimerTask;
|
||||
|
||||
import com.radio.codec2talkie.R;
|
||||
import com.radio.codec2talkie.protocol.aprs.tools.AprsIsData;
|
||||
import com.radio.codec2talkie.protocol.message.TextMessage;
|
||||
import com.radio.codec2talkie.storage.log.LogItem;
|
||||
import com.radio.codec2talkie.storage.log.LogItemRepository;
|
||||
|
@ -375,17 +376,25 @@ public class AppWorker extends Thread {
|
|||
}
|
||||
};
|
||||
|
||||
void storeLogData(String logData, boolean isTransmit) {
|
||||
// TODO, parse through aprs data
|
||||
String[] callsignData = logData.split(">");
|
||||
if (callsignData.length >= 2) {
|
||||
private void storeLogData(String logData, boolean isTransmit) {
|
||||
AprsIsData aprsIsData = AprsIsData.fromString(logData);
|
||||
if (aprsIsData != null) {
|
||||
LogItem logItem = new LogItem();
|
||||
logItem.setTimestampEpoch(System.currentTimeMillis());
|
||||
logItem.setSrcCallsign(callsignData[0]);
|
||||
logItem.setLogLine(logData);
|
||||
logItem.setIsTransmit(isTransmit);
|
||||
logItem.setSrcCallsign(aprsIsData.src);
|
||||
logItem.setLogLine(logData);
|
||||
_logItemRepository.insertLogItem(logItem);
|
||||
_stationItemRepository.upsertStationItem(logItem.toStationItem());
|
||||
if (aprsIsData.hasThirdParty()) {
|
||||
LogItem logItemThirdParty = new LogItem();
|
||||
logItemThirdParty.setTimestampEpoch(System.currentTimeMillis());
|
||||
logItemThirdParty.setIsTransmit(isTransmit);
|
||||
logItemThirdParty.setSrcCallsign(aprsIsData.thirdParty.src);
|
||||
logItemThirdParty.setLogLine(aprsIsData.thirdParty.convertToString(true));
|
||||
_logItemRepository.insertLogItem(logItemThirdParty);
|
||||
_stationItemRepository.upsertStationItem(logItemThirdParty.toStationItem());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -127,7 +127,7 @@ public class AprsIs implements Protocol, Runnable {
|
|||
if (_isSelfEnabled) {
|
||||
AprsIsData aprsIsData = new AprsIsData(src, dst, path, new String(data));
|
||||
synchronized (_toAprsIsQueue) {
|
||||
String rawData = aprsIsData.toString() + "\n";
|
||||
String rawData = aprsIsData.convertToString(false) + "\n";
|
||||
_toAprsIsQueue.put(rawData.getBytes());
|
||||
}
|
||||
}
|
||||
|
@ -152,7 +152,7 @@ public class AprsIs implements Protocol, Runnable {
|
|||
private byte[] thirdPartyWrap(AprsIsData aprsIsData) {
|
||||
// wrap into third party, https://aprs-is.net/IGateDetails.aspx
|
||||
aprsIsData.digipath = "TCPIP," + _callsign + "*";
|
||||
String txData = "}" + aprsIsData.toString();
|
||||
String txData = "}" + aprsIsData.convertToString(false);
|
||||
return txData.getBytes();
|
||||
}
|
||||
|
||||
|
@ -208,7 +208,7 @@ public class AprsIs implements Protocol, Runnable {
|
|||
if (aprsIsData.hasThirdParty()) {
|
||||
aprsIsData = aprsIsData.thirdParty;
|
||||
}
|
||||
String rawData = aprsIsData.toString() + "\n";
|
||||
String rawData = aprsIsData.convertToString(false) + "\n";
|
||||
synchronized (_toAprsIsQueue) {
|
||||
_toAprsIsQueue.put(rawData.getBytes());
|
||||
}
|
||||
|
|
|
@ -32,11 +32,13 @@ public class AprsIsData {
|
|||
}
|
||||
|
||||
@NonNull
|
||||
public String toString() {
|
||||
public String convertToString(boolean useRawPath) {
|
||||
String result = src + ">";
|
||||
if (dst != null && dst.length() > 0)
|
||||
result += dst;
|
||||
if (digipath != null && digipath.length() > 0)
|
||||
if (useRawPath && rawDigipath != null && rawDigipath.length() > 0)
|
||||
result += "," + rawDigipath;
|
||||
else if (digipath != null && digipath.length() > 0)
|
||||
result += "," + digipath;
|
||||
result += ":" + data;
|
||||
return result;
|
||||
|
|
|
@ -33,7 +33,8 @@ public class LogItemHolder extends RecyclerView.ViewHolder implements View.OnCli
|
|||
DateTools.epochToIso8601(timestamp),
|
||||
isTransmitting ? "→" : "←",
|
||||
srcCallsign));
|
||||
_logItemViewMessage.setText(TextTools.addZeroWidthSpaces(text));
|
||||
if (text != null)
|
||||
_logItemViewMessage.setText(TextTools.addZeroWidthSpaces(text));
|
||||
}
|
||||
|
||||
static LogItemHolder create(ViewGroup parent, boolean isClickable) {
|
||||
|
|
Ładowanie…
Reference in New Issue