rwth-afu / unipager Goto Github PK
View Code? Open in Web Editor NEWUniversal POCSAG transmitter controller written in Rust.
License: GNU General Public License v3.0
Universal POCSAG transmitter controller written in Rust.
License: GNU General Public License v3.0
Hallo,
ich glaube es wäre sicher sinnvoll noch eine Username/Passwortabfrage für die Einstellungen zu implementieren. Sicher im AFU soll alles offen sein, aber ich denke ein Senderbetreiber möchte nicht das jeder den Sender verstellen kann.
Vielleicht ist dieses Erweiterung auch schon angedacht, wollte es nur mal angesprochen haben.
Gruß Robert
Ich habe soeben den Commit DecentralizedAmateurPagingNetwork/Core@a749238 installiert und dazu den neuesten client-auth des Rastpagers versucht. Es kommt:
01:46:31.979 [nioEventLoopGroup-3-1] INFO org.dapnet.core.transmission.ServerHandler - Accepted new connection from /44.225.164.233:58126
01:46:31.980 [nioEventLoopGroup-3-1] ERROR org.dapnet.core.transmission.ServerHandler - Closing connection: Invalid welcome message format.
01:46:31.981 [nioEventLoopGroup-3-1] INFO org.dapnet.core.transmission.ServerHandler - Connection closed.
01:46:31.981 [nioEventLoopGroup-3-1] WARN org.dapnet.core.transmission.TransmitterManager - Client has no associated transmitter object.
Ich glaube, Philipp hatte am Format der Welcome-Message gedreht, was die Versions- und Typ-Übermittlung angeht.
Hallo zusammen,
wenn ich eine Testaussendung mit 10 Nachrichten mache kommt bei einem Alphapoc Empfänger nur noch Kauderwelsch an. Anbei die Fotos von den einzelnen Nachrichten. Ich habe die Vermutung das die Nachrichten zu schnell hintereinander ankommen für den Empfänger. Vielleicht kann man da am Timing was drehen? Mit dem Skyper scheint dieses Problem nicht aufzutreten.
INFO - Received Message { id: 19, mtype: AlphaNum, speed: Baud(1200), addr: 399881, func: AlphaNum, data: "No. 0 Long bulk paging test for the RasPagerC9000, AFU RWTH Aachen 019" }
INFO - Waiting for TimeSlot(2)...
INFO - Transmitting...
INFO - Sending data...
Wiedergabe: Rohdaten 'stdin' : Unsigned 8 bit, Rate: 48000 Hz, mono
INFO - Data sent.
INFO - Transmission completed.
INFO - Received Message { id: 20, mtype: AlphaNum, speed: Baud(1200), addr: 399881, func: AlphaNum, data: "No. 1 Long bulk paging test for the RasPagerC9000, AFU RWTH Aachen 019" }
INFO - Waiting for TimeSlot(2)...
INFO - Transmitting...
INFO - Sending data...
Wiedergabe: Rohdaten 'stdin' : Unsigned 8 bit, Rate: 48000 Hz, mono
INFO - Received Message { id: 21, mtype: AlphaNum, speed: Baud(1200), addr: 399881, func: AlphaNum, data: "No. 2 Long bulk paging test for the RasPagerC9000, AFU RWTH Aachen 019" }
INFO - Received Message { id: 22, mtype: AlphaNum, speed: Baud(1200), addr: 399881, func: AlphaNum, data: "No. 3 Long bulk paging test for the RasPagerC9000, AFU RWTH Aachen 019" }
INFO - Received Message { id: 23, mtype: AlphaNum, speed: Baud(1200), addr: 399881, func: AlphaNum, data: "No. 4 Long bulk paging test for the RasPagerC9000, AFU RWTH Aachen 019" }
INFO - Received Message { id: 24, mtype: AlphaNum, speed: Baud(1200), addr: 399881, func: AlphaNum, data: "No. 5 Long bulk paging test for the RasPagerC9000, AFU RWTH Aachen 019" }
INFO - Received Message { id: 25, mtype: AlphaNum, speed: Baud(1200), addr: 399881, func: AlphaNum, data: "No. 6 Long bulk paging test for the RasPagerC9000, AFU RWTH Aachen 019" }
INFO - Received Message { id: 26, mtype: AlphaNum, speed: Baud(1200), addr: 399881, func: AlphaNum, data: "No. 7 Long bulk paging test for the RasPagerC9000, AFU RWTH Aachen 019" }
INFO - Received Message { id: 27, mtype: AlphaNum, speed: Baud(1200), addr: 399881, func: AlphaNum, data: "No. 8 Long bulk paging test for the RasPagerC9000, AFU RWTH Aachen 019" }
INFO - Data sent.
INFO - Transmission completed.
INFO - Waiting for TimeSlot(2)...
INFO - Transmitting...
INFO - Sending data...
Wiedergabe: Rohdaten 'stdin' : Unsigned 8 bit, Rate: 48000 Hz, mono
INFO - Received Message { id: 28, mtype: AlphaNum, speed: Baud(1200), addr: 399881, func: AlphaNum, data: "No. 9 Long bulk paging test for the RasPagerC9000, AFU RWTH Aachen 019" }
INFO - Data sent.
INFO - Transmission completed.
Ich kann den Rustpager auf einen Banana Pi M1 nicht compilieren. Image ist ganz frisch:
Raspbian Lite 3.4 2016-07-12 von der Homepage installiert.
Ich habe nur GIT nachinstalliert, das passiert dann beim compilieren
......
Fresh num-integer v0.1.32
Fresh slab v0.1.3
Fresh num-iter v0.1.32
Fresh raspi v0.1.0 (file:///usr/local/src/RustPager/lib/raspi)
Fresh num v0.1.36
Fresh log v0.3.6
Fresh chrono v0.2.25
Fresh mio v0.5.1
Fresh ws v0.5.3
Fresh tiny_http v0.5.7
Compiling rustpager v0.4.0 (file:///usr/local/src/RustPager)
Running rustc --crate-name rustpager src/main.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=8dd5da31e9f 3e1fb -C extra-filename=-8dd5da31e9f3e1fb --out-dir /usr/local/src/RustPager/target/release/deps -L dependency=/usr/local/src/RustP ager/target/release/deps --extern lazy_static=/usr/local/src/RustPager/target/release/deps/liblazy_static-39d04338418c9a4e.rlib --e xtern serde=/usr/local/src/RustPager/target/release/deps/libserde-b116c413b6ec9a4b.rlib --extern serde_derive=/usr/local/src/RustPa ger/target/release/deps/libserde_derive-0b1a0eaf28eed447.so --extern serial=/usr/local/src/RustPager/target/release/deps/libserial- 2ae09162fcdfddf8.rlib --extern ws=/usr/local/src/RustPager/target/release/deps/libws-1c06afb72f34ff59.rlib --extern raspi=/usr/loca l/src/RustPager/target/release/deps/libraspi-c33bc4cdffe26395.rlib --extern net2=/usr/local/src/RustPager/target/release/deps/libne t2-8d6db02178fc0f61.rlib --extern serde_json=/usr/local/src/RustPager/target/release/deps/libserde_json-a0b08984b58def3f.rlib --ext ern log=/usr/local/src/RustPager/target/release/deps/liblog-973d2302a68c7b2e.rlib --extern tiny_http=/usr/local/src/RustPager/targe t/release/deps/libtiny_http-90c763dea07c1386.rlib
error: proc-macro derive panicked
--> src/status.rs:10:10
|
10 | #[derive(Serialize, Clone, Copy, Debug)]
| ^^^^^^^^^
|
= help: message: already mutably borrowed: BorrowError
error: Could not compile rustpager
.
Caused by:
process didn't exit successfully: rustc --crate-name rustpager src/main.rs --crate-type bin --emit=dep-info,link -C opt-level=3 -C metadata=8dd5da31e9f3e1fb -C extra-filename=-8dd5da31e9f3e1fb --out-dir /usr/local/src/RustPager/target/release/deps -L dependen cy=/usr/local/src/RustPager/target/release/deps --extern lazy_static=/usr/local/src/RustPager/target/release/deps/liblazy_static-39 d04338418c9a4e.rlib --extern serde=/usr/local/src/RustPager/target/release/deps/libserde-b116c413b6ec9a4b.rlib --extern serde_deriv e=/usr/local/src/RustPager/target/release/deps/libserde_derive-0b1a0eaf28eed447.so --extern serial=/usr/local/src/RustPager/target/ release/deps/libserial-2ae09162fcdfddf8.rlib --extern ws=/usr/local/src/RustPager/target/release/deps/libws-1c06afb72f34ff59.rlib - -extern raspi=/usr/local/src/RustPager/target/release/deps/libraspi-c33bc4cdffe26395.rlib --extern net2=/usr/local/src/RustPager/ta rget/release/deps/libnet2-8d6db02178fc0f61.rlib --extern serde_json=/usr/local/src/RustPager/target/release/deps/libserde_json-a0b0 8984b58def3f.rlib --extern log=/usr/local/src/RustPager/target/release/deps/liblog-973d2302a68c7b2e.rlib --extern tiny_http=/usr/lo cal/src/RustPager/target/release/deps/libtiny_http-90c763dea07c1386.rlib
(exit code: 101)
root@bpi-rustpager:/usr/local/src/RustPager#
Zur Nummerierung der GPIOs gibt es in verschiedenen Software-Paketen unterschiedliche Bezeichnungen. Eine Klärung, welche hier verwendet wird, wäre hilfreich. Vielleicht bauen wir sogar einen Link auf die Webseite mit einer Grafik der GPIO-Leiste?
Am schönsten natürlich eine Nagios-kompatibel formatierte Ausgabe in einer Datei (Ort siehe #5 )
MasterConnection OK - Connected to : oder
MasterConnection CRITICAL - Not connected
Nicht immer ist die Default-Karte die richtige..
DL6KL schreibt:
Wenn ich einen Restart mache kommt diese Meldung:
unname panicked at "Failad to map GPIO", /checkout/src/libcore/option.rs:785
Welche Hardwareplattform dem zugrunde liegt, ist angefragt. Evtl. ein x86?
Wir hatten da schon mal Donnerstags drüber gesprochen. Vielleicht kann man sich an der Modellbezeichnung orientieren und nicht an der CPU-Variante?
Von DL8SDL erhalten:
Hei Ralf,
eben begrüsste mich folgende Fehlermeldung (Sender db0prt,
RustPagerAudio):
INFO - Received Message { id: 81, mtype: Numeric, speed: Baud(1200),
addr: 2504, func: Numeric, data: "141800 100317" }
Playing raw data 'stdin' : Unsigned 8 bit, Rate 48000 Hz, Mono
WARN - Disconnected from master.
INFO - Trying to connect to master...
ERROR - Connection failed.
INFO - Trying to connect to master...
ERROR - Connection failed.
INFO - Trying to connect to master...
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err`
value: Error { repr: Os { code: 107, message: "Transport endpoint is not
connected" } }', /checkout/src/libcore/result.rs:860
note: Run with `RUST_BACKTRACE=1` for a backtrace.
Viele Grüsse,
Jens
Hallo,
mir ist gestern schon aufgefallen das nach einiger Laufzeit die Aussendungen einfach nicht mehr statt finden. Hatte den Server gestern dann neu gestartet, heute morgen aber das gleiche spiel.
Im log sieht man nur folgendes:
Connected to RustPager.
INFO Received Message { id: 0, mtype: AlphaNum, speed: Baud(1200), addr: 399881, func: AlphaNum, data: "test123" }
INFO Received Message { id: 68, mtype: Numeric, speed: Baud(1200), addr: 2504, func: Numeric, data: "083200 100117" }
INFO Received Message { id: 69, mtype: Numeric, speed: Baud(1200), addr: 2504, func: Numeric, data: "083400 100117" }
Es findet aber keine Aussendung mehr statt bis man den ruspager neu startet.
Ich weis jetzt nicht ob das mit der Änderung von heute Nacht behoben wurde, ich hatte gegen 23Uhr nochmal ne neue Version gebaut (0.3.1)
Danke und Gruß
Ich starte sowohl den master branch und schalte im WebIF auf Audio um. Dann kommt:
root@sdrpager:/home/pi/RustPager/target/release# ./rustpager
RustPager 0.3.3
Copyright (c) 2017 RWTH Amateurfunkgruppe
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute
and modify it under the conditions of the GNU GPL v3 or later.
https://www.gnu.org/licenses/gpl-3.0.txt
INFO - Listening for 44.225.164.3 on port 1337.
INFO - Initializing audio transmitter...
INFO - Detected Raspberry Pi 3 Model B
thread '' panicked at 'called Option::unwrap()
on a None
value', /buildslave/rust-buildbot/slave/nightly-dist-rustc-cross-host-linux/build/src/libcore/option.rs:323
note: Run with RUST_BACKTRACE=1
for a backtrace.
INFO - Client denied: 44.225.164.2
Kommt mehrfach vor, immer nach Sendungen. Ich versuche mal, das Log vom Core noch hinzuzufügen.
info Received Message { id: 0, mtype: AlphaNum, speed: Baud(1200), addr: 1234, func: AlphaNum, data: "asda shdjka hsdjkha klsdhjka hsdjkhajkhsdkla" }
info Transmitting...
info Transmission completed.
info Received Message { id: 173, mtype: Numeric, speed: Baud(1200), addr: 2504, func: Numeric, data: "173200 080217" }
info Connection closed.
info Waiting 12 seconds until TimeSlot(2)...
info Trying to connect to master...
info Connection established.
info Set TimeSlots { 2367ABEF }
info Transmitting...
info Transmission completed.
Es wäre praktisch wenn man über die Weboberfläche auch den GPIO Port einstellen könnte an dem die PTT-Leitung des Funkgerät für den SDRPager angeschlossen ist
Danke
Hallo,
(version 0.3.1)
wenn ich nach einer gewissen laufzeit (2-3h) des RustPagers eine Configänderung mache stirbt der Dienst.
Jan 10 10:40:15 raspberry.afu.ducktales.net rustpager[468]: INFO - Received Message { id: 98, mtype: AlphaNum, speed: Baud(1200), addr: 4512, func: AlphaNum, data: "1**JHGT!Jogp" }
Jan 10 10:40:15 raspberry.afu.ducktales.net rustpager[468]: INFO - Received Message { id: 99, mtype: AlphaNum, speed: Baud(1200), addr: 4512, func: AlphaNum, data: "1"*TlzqfsTqput" }
Jan 10 10:42:00 raspberry.afu.ducktales.net rustpager[468]: INFO - Received Message { id: 100, mtype: Numeric, speed: Baud(1200), addr: 2504, func: Numeric, data: "104200 100117" }
Jan 10 10:44:00 raspberry.afu.ducktales.net rustpager[468]: INFO - Received Message { id: 101, mtype: Numeric, speed: Baud(1200), addr: 2504, func: Numeric, data: "104400 100117" }
Jan 10 10:44:22 raspberry.afu.ducktales.net rustpager[468]: INFO - Config updated. Initiating restart.
Jan 10 10:44:22 raspberry.afu.ducktales.net rustpager[468]: INFO - Waiting for the scheduler to terminate...
Jan 10 10:44:22 raspberry.afu.ducktales.net rustpager[468]: thread 'main' panicked at 'called Result::unwrap()
on an Err
value: Any', /buildslave/rust-buildbot/slave/nightly-dist-rustc-cross-host-linux/build/src/libcore/result.rs:845
Jan 10 10:44:22 raspberry.afu.ducktales.net systemd[1]: rustpager.service: main process exited, code=exited, status=101/n/a
Jan 10 10:44:22 raspberry.afu.ducktales.net systemd[1]: Unit rustpager.service entered failed state.
Bitte in der Oberfläche abfangen. Siehe DecentralizedAmateurPagingNetwork/Web#43
pi@raspberrypi:~/RustPager/target/release $ ./rustpager
RustPager 0.3.3
Copyright (c) 2017 RWTH Amateurfunkgruppe
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute
and modify it under the conditions of the GNU GPL v3 or later.
https://www.gnu.org/licenses/gpl-3.0.txt
INFO - Listening for 44.225.164.3 on port 1337.
INFO - Initializing C9000 transmitter...
INFO - Detected Raspberry Pi 1 Model B Rev. 2
thread '' panicked at 'Failed to map GPIO', /buildslave/rust-buildbot/slave/nightly-dist-rustc-cross-host-linux/build/src/libcore/option.rs:715
note: Run with RUST_BACKTRACE=1
for a backtrace.
Eher nebensächlich, nur der Konsistenz wegen.
Mein Rustpager (dc2zp) läuft auf einem RPi und verbinden sich via DB0FHN OpenVPN mit dem Node DB0SDA. Wenn mein VPN-Client die IP-Adresse wechselt funktioniert Rustpager nicht mehr. In der Transmitter-Übersicht im Dapnet-Interface erscheint der Transmitter mit dem State "Error" im Webinterface des Rustpager bleibt der State aber "connected", es werden aber keine Pages mehr gesendet. Ein Neustart von Rustpager behebt das Problem.
Siehe auch DecentralizedAmateurPagingNetwork/Core#58
Wie kann ich beim Debuggen helfen? Bzw. wie kann ich herausfinden ob es ein Client oder Master Problem ist?
DL6KL schreibt:
Beim Compilieren der Software habe ich nachdem der rustpager 0.4 compiliert war folgende Meldung bekommen:
command not found
Ist das schlimm?
Hallo,
es wäre super wenn man irgendwie ein Logfile ausgeben könnte z.B. nach /var/log/rustpager.log (oder konfigurierbar)
Im moment könnte man einen Fehler der nachts passiert glaube ich nicht nachvollziehen oder?
Danke und Gruß
Ich möchte vorschlagen die Doku um ein Beispiel für iptables Regeln zu vervollständigen:
## allow DAPNET from hamnet
# TODO: restrict access only to the needed port range!
iptables -I INPUT -s 44.225.164.27 -j ACCEPT
iptables -I OUTPUT -d 44.225.164.27 -j ACCEPT
## allow rustpager web from home
iptables -A INPUT -i eth0 -p tcp -s 192.168.188.0/24 --dport 8073 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 8073 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -s 192.168.188.0/24 --dport 8055 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o eth0 -p tcp --sport 8055 -m state --state ESTABLISHED -j ACCEPT
In der Regel soll das Admin-Interface nur von Berechtigten angefasst werden dürfen und wahrscheinlich haben die meisten Hamnet-Betreiber eh eine iptables am Start, so dass ihnen dieses Beispiel bei der Einrichtung helfen kann.
Egal welche arm Variante ich ausprobiere, es kommt genau nichts.
pi@raspagerc9000:~ $ tar fxvz rustpager-armv7hf.tar.gz
rustpager
pi@raspagerc9000:~ $ sudo ./rustpager
pi@raspagerc9000:~ $
pi@raspagerc9000:~ $ ps ax | grep rustpager
28807 pts/1 S+ 0:00 grep --color=auto rustpager
cat /proc/cpuinfo
processor : 0
model name : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 697.95
Features : half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : BCM2708
Revision : 000d
Serial : 00000000c932870c
Sascha schreibt:
Die Standard-Vorgabe bei der Frequenzkorrektur im Rustpager ist "13". Ich weiss nicht, ob das Absicht oder ein Versehen ist.
Der funktionierende Wert, wie er auch im Raspager-Handbuch von DF6EF festgehalten ist, ist ja "-67", "13" wiederum ist der Standardwert für die FSK-Bandbreite. Wenn man hier nicht aufpasst, sucht man erst mal kurz, warum es nicht funktioniert.
Lieber Ralf,
leider habe ich es nicht geschafft, RustPager auf meinem RPI2 zu compilieren. Auch ein "frisches" Jessie-Image hilft nicht. Ich erhalte immer folgende Fehlermeldung:
Compiling tiny_http v0.5.8
Compiling ws v0.6.0
Compiling serde_codegen_internals v0.14.1
Compiling serde_derive v0.9.10
Compiling rustpager v0.4.0 (file:///home/pi/RustPager)
error: proc-macro derive panicked
--> src/status.rs:10:10
|
10 | #[derive(Serialize, Clone, Copy, Debug)]
| ^^^^^^^^^
|
= help: message: already mutably borrowed: BorrowError
error: Could not compile rustpager
.
To learn more, run the command again with --verbose.
Manche Sender brauchen ein TX-Delay. Die Zeit beim Zusammenbau der Aussendung von der insg. zur Verfügung stehende Zeit abgezogen werden, da sie ja Teil der Aussendung ist und nicht die ganze Sendung um den TX-Delay-Wert nach hinten verschoben werden soll. Sonst hängt das Ende der Sendung schon im nächsten, nicht-mehr-erlaubten-Zeitschlitz.
Wäre ja eine schöne Statistik. Es reicht ein Zahlenwert in einer Datei, vielleicht in /var/... ? Keine Ahnung, wo man sowas abspeichert.
Im 0.4.0 Release ist 44.225.164.227 voreingestellt. Vielleicht kann man das auf dapnet.afu.rwth-aachen.de ändern? Das ist der Produktionsserver.
Bei Aussendungen von einem Raspager kommt häufig die Meldung das der ADF7012 not ready ist:
INFO Received Message { id: 4, mtype: AlphaNum, speed: Baud(1200), addr: 4512, func: AlphaNum, data: "1!*TlzqfsMjof" }
INFO Received Message { id: 5, mtype: AlphaNum, speed: Baud(1200), addr: 4512, func: AlphaNum, data: "1+*SXUI.BGV" }
INFO Received Message { id: 6, mtype: AlphaNum, speed: Baud(1200), addr: 4512, func: AlphaNum, data: "1**JHGT!Jogp" }
INFO Received Message { id: 7, mtype: AlphaNum, speed: Baud(1200), addr: 4512, func: AlphaNum, data: "1"*TlzqfsTqput" }
WARN ADF7012 not ready
INFO Transmission completed.
INFO Received Message { id: 8, mtype: Numeric, speed: Baud(1200), addr: 2504, func: Numeric, data: "141200 130117" }
INFO Transmitting...
WARN ADF7012 not ready
INFO Transmission completed.
INFO Received Message { id: 9, mtype: Numeric, speed: Baud(1200), addr: 2504, func: Numeric, data: "141400 130117" }
INFO Transmitting...
INFO Transmission completed.
Ist das ein Bug?
Bei eingehenden Nachrichten springt das Fenster in die letzte Zeile.
Wenn man gerade in dem Log hochscrollt, um etwas nachzusehen, muss man jedes mal wieder hochscrollen.
Wäre hier eine Fuktion möglich ähnlich InvertPtt Button, ein Button Springe an Listenende bei neuen Nachrichten?
So könnte man kurzzeitig im Log scollen ohne jedesmal an das Listenende zu springen.
vy37, Stefan DK4PA
Wenn der Rustpager die Verbindung zum Master verliert, wäre eine Info an den Senderbetreiber ganz praktisch. Dazu könnte im Webinterface ein Eingabefeld für eine Zieladresse angelegt werden, die nach Ablauf einer Zeitspanne ohne Verbindung oder bei sonstigen Störungen automatisch per Funkruf benachrichtigt wird.
info Received Message { id: 0, mtype: AlphaNum, speed: Baud(1200), addr: 12345, func: AlphaNum, data: "1fsfasfhjkas hfjklahskj hfklashjkldfhajkshf jkahsjkdfhjklashdfasdfa" }
info Transmitting...
info Transmission completed.
info Received Message { id: 0, mtype: AlphaNum, speed: Baud(1200), addr: 12345, func: AlphaNum, data: "ashjk hfjkal hsdjkfhakjs lhdkfjl hasjkhfjklashjkdfhlkajl shjkflhaskjlhdjkf lhasdfasdfasdfa" }
info Transmitting...
warn ADF7012 not ready
Ein Button für eine Testsendung mit 0101010-Folge wäre schön.
Beim RasPagerDigi werden in der LC-Anzeige auch die Slots angezeigt. Um an die Info der freigeschalteten Zeitschlitze zu kommen, wäre eine Ausgabe auf der Oberfläche und damit über die websocket-Schnittstelle schön. Ebenfalls könnte man den aktuellen Zeitschlitz ausgeben.
Ganz toll wäre natürlich auch eine Balkenanzeige, im Stil:
0123456789ABCDEF,
bei der die Einträge entweder
Eine Implementierung in DAPNET, dass jeder Sender alle 10 Minuten sein Rufzeichen aussendet, erscheint mir zu kompliziert. Siehe hier: DecentralizedAmateurPagingNetwork/Core#14
Dies kann in die Eigenverantwortung des Senderbetreibers gelegt werden.
Ich schlage eine Textbox vor, in die ein Bakentext (z.B. "DB0WA FUNKRUF") eingetragen werden kann. Ein Timer prüft alle 10 Minuten, ob ein Bakentext vorhanden ist und sendet diesen an irgendeine RIC (z.B. 1234567). Daneben könnte noch ein Button sein, der die Bake sofort aussendet.
Gestartet, IP geändert, "Save config".
Log-Ausgabe
info Config updated. Initiating restart.
info Waiting for the connection to terminate...
Mehr schieht nicht.
Nachdem der Name RustPager ja nun nicht optimal ist, würde ich hier gerne mögliche Alternativen diskutieren.
Da die Software ja alle Hardware-Varianten unterstützt, würde ich etwas wie
UniversalPager oder UnifiedPager
oder ähnlich vorschlagen.
Typ ausgewählt, Save Config, Restart, sogar sudo systemctl restart rustpager, aber trotzdem wird [SDRPager... gesendet zum DAPNET-Core
Hallo zusammen,
mir ist aufgefallen das bei Aussendungen das letzte Zeichen fehlt.
INFO - Transmission completed.
INFO - Received Message { id: 0, mtype: AlphaNum, speed: Baud(1200), addr: 49872, func: AlphaNum, data: "Hallo Robert, dies ist ein Test 123123123" }
Es wäre schön, wenn man GPIO-Ports definieren könnte, mit denen man Frontplatten-LEDs ansteuern könnte. Eine freie Auswahl der GPIO-Ports oder auch "null" für "nicht vorhanden/gewünscht" wäre super. Einmal für den C9000, aber auch für die RasPagerDigi-Variante.
Gerade habe ich DB0DDE auf RustPager wechseln wollen und stelle fest, dass die Audio Variante nur GPIOs als PTT unterstützt. Wird es auch (wieder) eine DTR/CTS Pin-Steuerung per /dev/ttyUSBx geben?
Das wäre cool, weil es mir zwei weitere Gänge auf den Turm ersparen würde ;-)
Die Audio-Level Einstellung kann ja bei alsamixer bleiben. Aber die Möglichkeit der Invertierung (* -1) der Audio-Samples ist auf jeden Fall notwendig,
...aber nicht immer. Ich vermute einen Pufferüberlauf.
pi@raspagergm1200:~/RustPager $ cargo build --release
Compiling rustpager v0.3.3 (file:///home/pi/RustPager)
error: use of unstable library feature 'duration_checked_ops' (see issue #35774)
--> src/pocsag/timeslots.rs:56:21
|
56 | match start.checked_sub(now) {
| ^^^^^^^^^^^
|
= help: add #![feature(duration_checked_ops)] to the crate attributes to enable
error: aborting due to previous error
error: Could not compile rustpager
.
Hallo,
ich habe bei db0iga die Zeitschlitze AB aktiv gehabt. Hier ist es allerdings so, dass scheinbar immer nur der erste Zeitschlitz A aktiv wird. B kommt nicht zu tragen. Es müsste doch, wenn Zeitschlitz A nicht mehr aktiv, aber ein Ruf abgesetzt wird der B zu tragen kommen?
So bekomme ich immer nur "Waiting xx seconds until TimeSlot(A)...
Nun habe ich mal die Zeitschlitze angepasst db0iga (AE), dk4pa (BF).
Hier kommt nun auch der zweite Zeitschlitz zum Einsatz.
Ist das so normal, setzt man den Abstand der Zeitschlitze besser etwas auseinander?
vy73, DK4PA Stefan
Auf der Weboberfläche wäre eine "On air" Anzeige schön.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.