kopia lustrzana https://github.com/ge0rg/aprsdroid
refactor APRS-IS TNC protocol
rodzic
e29a1a3206
commit
8d8021345a
|
@ -57,8 +57,7 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUpl
|
|||
val TAG = "APRSdroid.TcpSocketThread"
|
||||
var running = true
|
||||
var socket : Socket = null
|
||||
var reader : BufferedReader = null
|
||||
var writer : PrintWriter = null
|
||||
var tnc : TncProto = null
|
||||
|
||||
def init_socket() {
|
||||
Log.d(TAG, "init_socket()")
|
||||
|
@ -72,12 +71,9 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUpl
|
|||
socket = new Socket(host, port)
|
||||
socket.setKeepAlive(true)
|
||||
socket.setSoTimeout(so_timeout*1000)
|
||||
reader = new BufferedReader(new InputStreamReader(
|
||||
socket.getInputStream()), 256)
|
||||
writer = new PrintWriter(new OutputStreamWriter(
|
||||
socket.getOutputStream()), true)
|
||||
Log.d(TAG, login + setupFilter())
|
||||
writer.println(login + setupFilter())
|
||||
tnc = new AprsIsProto(socket.getInputStream(), socket.getOutputStream(),
|
||||
login + setupFilter())
|
||||
}
|
||||
Log.d(TAG, "init_socket() done")
|
||||
}
|
||||
|
@ -101,7 +97,7 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUpl
|
|||
}
|
||||
Log.d(TAG, "waiting for data...")
|
||||
var line : String = null
|
||||
while (running && { line = reader.readLine(); line != null }) {
|
||||
while (running && { line = tnc.readPacket(); line != null }) {
|
||||
Log.d(TAG, "recv: " + line)
|
||||
if (line(0) != '#')
|
||||
service.postSubmit(line)
|
||||
|
@ -128,7 +124,7 @@ class TcpUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUpl
|
|||
|
||||
def update(packet : APRSPacket) : String = {
|
||||
if (socket != null && socket.isConnected()) {
|
||||
writer.println(packet)
|
||||
tnc.writePacket(packet)
|
||||
"TCP OK"
|
||||
} else "TCP disconnected"
|
||||
}
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
package org.aprsdroid.app
|
||||
import _root_.java.io.{BufferedReader, InputStream, InputStreamReader, OutputStream, OutputStreamWriter, PrintWriter}
|
||||
|
||||
import _root_.net.ab0oo.aprs.parser._
|
||||
|
||||
class AprsIsProto(is : InputStream, os : OutputStream, login : String) extends TncProto(is, os) {
|
||||
|
||||
val reader = new BufferedReader(new InputStreamReader(is), 256)
|
||||
val writer = new PrintWriter(new OutputStreamWriter(os), true)
|
||||
|
||||
writer.println(login)
|
||||
|
||||
def readPacket() : String = reader.readLine()
|
||||
def writePacket(p : APRSPacket) = writer.println(p)
|
||||
}
|
Ładowanie…
Reference in New Issue