use ab0oo APRSPacket in backend

remotes/nogy/master
Georg Lukas 2011-06-18 22:06:19 +02:00
rodzic db5ce6e21a
commit c9153b1c6d
7 zmienionych plików z 19 dodań i 14 usunięć

Wyświetl plik

@ -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 = {

Wyświetl plik

@ -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 =>

Wyświetl plik

@ -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)

Wyświetl plik

@ -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()
}

Wyświetl plik

@ -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/"

Wyświetl plik

@ -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"

Wyświetl plik

@ -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()