kopia lustrzana https://github.com/ge0rg/aprsdroid
use ab0oo APRSPacket in backend
rodzic
db5ce6e21a
commit
c9153b1c6d
|
@ -54,12 +54,12 @@ object AprsPacket {
|
|||
}
|
||||
|
||||
def formatLoc(callssid : String, toCall : String, symbol : String,
|
||||
status : String, location : Location) : String = {
|
||||
callssid + ">" + toCall + ",TCPIP*:" + new PositionPacket(
|
||||
status : String, location : Location) = {
|
||||
new APRSPacket(callssid, toCall, null, new PositionPacket(
|
||||
new Position(location.getLatitude, location.getLongitude, 0,
|
||||
symbol(0), symbol(1)),
|
||||
formatCourseSpeed(location) + formatAltitude(location) +
|
||||
" " + status)
|
||||
" " + status))
|
||||
}
|
||||
|
||||
def formatLogin(callsign : String, ssid : String, passcode : String, version : String) : String = {
|
||||
|
|
|
@ -222,9 +222,9 @@ class AprsService extends Service with LocationListener {
|
|||
val result = try {
|
||||
val status = poster.update(packet)
|
||||
i.putExtra(STATUS, status)
|
||||
i.putExtra(PACKET, packet)
|
||||
i.putExtra(PACKET, packet.toString)
|
||||
val prec_status = "%s (±%dm)".format(status, location.getAccuracy.asInstanceOf[Int])
|
||||
addPost(StorageDatabase.Post.TYPE_POST, prec_status, packet)
|
||||
addPost(StorageDatabase.Post.TYPE_POST, prec_status, packet.toString)
|
||||
prec_status
|
||||
} catch {
|
||||
case e : Exception =>
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.aprsdroid.app
|
|||
|
||||
import _root_.android.util.Log
|
||||
import _root_.java.net.{InetAddress, DatagramSocket, DatagramPacket}
|
||||
import _root_.net.ab0oo.aprs.APRSPacket
|
||||
import com.nogy.afu.soundmodem.{Message, APRSFrame, Afsk}
|
||||
|
||||
class AfskUploader(prefs : PrefsWrapper) extends AprsIsUploader(prefs) {
|
||||
|
@ -13,11 +14,11 @@ class AfskUploader(prefs : PrefsWrapper) extends AprsIsUploader(prefs) {
|
|||
def start() {
|
||||
}
|
||||
|
||||
def update(packet : String) : String = {
|
||||
def update(packet : APRSPacket) : String = {
|
||||
// Need to "parse" the packet in order to replace the Digipeaters
|
||||
val Array(from, to_data) = packet.split(">", 2)
|
||||
val Array(to_digis, data) = to_data.split(":", 2)
|
||||
val Array(to, digis) = to_digis.split(",", 2)
|
||||
val from = packet.getSourceCall()
|
||||
val to = packet.getDestinationCall()
|
||||
val data = packet.getAprsInformation().toString()
|
||||
val msg = new APRSFrame(from,to,Digis,data,FrameLength).getMessage()
|
||||
val mod = new Afsk()
|
||||
mod.sendMessage(msg)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package org.aprsdroid.app
|
||||
|
||||
import _root_.net.ab0oo.aprs.APRSPacket
|
||||
|
||||
object AprsIsUploader {
|
||||
val DEFAULT_CONNTYPE = "tcp"
|
||||
|
@ -17,7 +18,7 @@ abstract class AprsIsUploader(prefs : PrefsWrapper) {
|
|||
|
||||
def start()
|
||||
|
||||
def update(packet : String) : String
|
||||
def update(packet : APRSPacket) : String
|
||||
|
||||
def stop()
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@ package org.aprsdroid.app
|
|||
|
||||
import _root_.android.location.Location
|
||||
import _root_.android.util.Log
|
||||
import _root_.net.ab0oo.aprs.APRSPacket
|
||||
import _root_.org.apache.http._
|
||||
import _root_.org.apache.http.entity.StringEntity
|
||||
import _root_.org.apache.http.impl.client.DefaultHttpClient
|
||||
|
@ -25,7 +26,7 @@ class HttpPostUploader(prefs : PrefsWrapper) extends AprsIsUploader(prefs) {
|
|||
"HTTP " + response.getStatusLine().getReasonPhrase()
|
||||
}
|
||||
|
||||
def update(packet : String) : String = {
|
||||
def update(packet : APRSPacket) : String = {
|
||||
var hostname = host
|
||||
if (hostname.indexOf(":") == -1) {
|
||||
hostname = "http://" + hostname + ":8080/"
|
||||
|
|
|
@ -5,6 +5,7 @@ import _root_.android.location.{Location, LocationManager}
|
|||
import _root_.android.util.Log
|
||||
import _root_.java.io.{BufferedReader, InputStreamReader, OutputStreamWriter, PrintWriter}
|
||||
import _root_.java.net.{InetAddress, Socket}
|
||||
import _root_.net.ab0oo.aprs.APRSPacket
|
||||
|
||||
class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUploader(prefs) {
|
||||
val TAG = "TcpUploader"
|
||||
|
@ -33,7 +34,7 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUpl
|
|||
conn.start()
|
||||
}
|
||||
|
||||
def update(packet : String) : String = {
|
||||
def update(packet : APRSPacket) : String = {
|
||||
Log.d(TAG, "TcpUploader.update: " + packet)
|
||||
conn.update(packet)
|
||||
}
|
||||
|
@ -110,7 +111,7 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUpl
|
|||
Log.d(TAG, "TcpSocketThread.terminate()")
|
||||
}
|
||||
|
||||
def update(packet : String) : String = {
|
||||
def update(packet : APRSPacket) : String = {
|
||||
if (socket != null && socket.isConnected()) {
|
||||
writer.println(packet)
|
||||
"TCP OK"
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.aprsdroid.app
|
|||
import _root_.android.location.Location
|
||||
import _root_.android.util.Log
|
||||
import _root_.java.net.{InetAddress, DatagramSocket, DatagramPacket}
|
||||
import _root_.net.ab0oo.aprs.APRSPacket
|
||||
|
||||
class UdpUploader(prefs : PrefsWrapper) extends AprsIsUploader(prefs) {
|
||||
val TAG = "AprsUdp"
|
||||
|
@ -12,7 +13,7 @@ class UdpUploader(prefs : PrefsWrapper) extends AprsIsUploader(prefs) {
|
|||
def start() {
|
||||
}
|
||||
|
||||
def update(packet : String) : String = {
|
||||
def update(packet : APRSPacket) : String = {
|
||||
val (h, port) = AprsPacket.parseHostPort(host, 8080)
|
||||
val addr = InetAddress.getByName(h)
|
||||
val pbytes = (login + "\r\n" + packet + "\r\n").getBytes()
|
||||
|
|
Ładowanie…
Reference in New Issue