kopia lustrzana https://github.com/ge0rg/aprsdroid
implement AFSK receiver
rodzic
e794871eeb
commit
4252684e4a
|
@ -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">
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../packetdroid/jni
|
|
@ -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>;
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../../packetdroid/src/com/jazzido/PacketDroid/AudioBufferProcessor.java
|
|
@ -0,0 +1 @@
|
|||
../../packetdroid/src/com/jazzido/PacketDroid/PacketCallback.java
|
|
@ -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())
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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(
|
||||
|
|
Ładowanie…
Reference in New Issue