implement AFSK receiver

white
Georg Lukas 2012-01-15 20:11:47 +01:00
rodzic e794871eeb
commit 4252684e4a
7 zmienionych plików z 25 dodań i 4 usunięć

Wyświetl plik

@ -11,6 +11,7 @@
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.VIBRATE"/>
<application android:label="@string/app_name" android:icon="@drawable/icon">

1
jni 120000
Wyświetl plik

@ -0,0 +1 @@
../packetdroid/jni

Wyświetl plik

@ -31,6 +31,12 @@
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public class com.jazzido.PacketDroid.AudioBufferProcessor {
public void callback(byte[]);
}
-keepclassmembers class * extends com.jazzido.PacketDroid.PacketCallback {
public void received(...);
}
-keepclasseswithmembernames class * {
native <methods>;

Wyświetl plik

@ -0,0 +1 @@
../../packetdroid/src/com/jazzido/PacketDroid/AudioBufferProcessor.java

Wyświetl plik

@ -0,0 +1 @@
../../packetdroid/src/com/jazzido/PacketDroid/PacketCallback.java

Wyświetl plik

@ -2,17 +2,24 @@ package org.aprsdroid.app
import _root_.android.util.Log
import _root_.java.net.{InetAddress, DatagramSocket, DatagramPacket}
import _root_.net.ab0oo.aprs.parser.{APRSPacket, Digipeater}
import _root_.net.ab0oo.aprs.parser.{APRSPacket, Digipeater, Parser}
import com.nogy.afu.soundmodem.{Message, APRSFrame, Afsk}
class AfskUploader(prefs : PrefsWrapper) extends AprsIsUploader(prefs) {
import com.jazzido.PacketDroid.{AudioBufferProcessor, PacketCallback}
class AfskUploader(service : AprsService, prefs : PrefsWrapper) extends AprsIsUploader(prefs)
with PacketCallback {
val TAG = "APRSdroid.Afsk"
// frame prefix: bytes = milliseconds * baudrate / 8 / 1000
var FrameLength = prefs.getStringInt("afsk.prefix", 1000)*1200/8/1000
var Digis = prefs.getString("digi_path", "WIDE1-1")
val output = new Afsk()
val abp = new AudioBufferProcessor(this)
def start() = true
def start() = {
abp.start()
true
}
def update(packet : APRSPacket) : String = {
// Need to "parse" the packet in order to replace the Digipeaters
@ -27,6 +34,10 @@ class AfskUploader(prefs : PrefsWrapper) extends AprsIsUploader(prefs) {
}
def stop() {
abp.stopRecording()
}
def received(data : Array[Byte]) {
service.postSubmit(Parser.parseAX25(data).toString().trim())
}
}

Wyświetl plik

@ -27,7 +27,7 @@ object AprsIsUploader {
R.xml.backend_http,
PASSCODE_REQUIRED),
"afsk" -> new BackendInfo(
(s, p) => new AfskUploader(p),
(s, p) => new AfskUploader(s, p),
R.xml.backend_afsk,
PASSCODE_NONE),
"tcp" -> new BackendInfo(