DroidStar
Αυτό το λογισμικό συνδέεται με ανακλαστήρες M17, Fusion (υποστηρίζονται οι λειτουργίες YSF/FCS, DN και VW), DMR, P25, NXDN, D-STAR (REF/XRF/DCS) και κόμβοι AllStar (ως πελάτης IAX2) μέσω UDP. Είναι συμβατό με όλες τις συσκευές USB AMBE εκεί έξω (ThumbDV, DVstick 30, DVSI, κ.λπ.). Υποστηρίζει επίσης μόντεμ MMDVM και μπορεί να χρησιμοποιηθεί ως hotspot ή ως αυτόνομος πομποδέκτης μέσω απευθείας λειτουργίας στη συσκευή MMDVM. Αυτό το λογισμικό είναι ανοιχτού κώδικα και χρησιμοποιεί τη βιβλιοθήκη C++ cross platform που ονομάζεται Qt. Θα κατασκευαστεί και θα τρέχει σε Linux, Windows, MacOS, Android και iOS. Ωστόσο, δεν υπάρχει υποστήριξη συσκευής USB για iOS (φωνοκωδικοποιητής AMBE ή MMDVM). Θα πρέπει επίσης να δημιουργείται και να τρέχει σε οποιαδήποτε άλλη πλατφόρμα posix που έχει διαθέσιμο Qt (xxxBSD, Solaris, κ.λπ.). Αυτό το λογισμικό παρέχεται ως έχει και δεν υπάρχει διαθέσιμη υποστήριξη.
Αυτό το λογισμικό χρησιμοποιεί λογισμικό από διάφορα άλλα έργα λογισμικού ανοιχτού κώδικα, συμπεριλαμβανομένων των MMDVMHost, MMDVM_CM, mvoice και άλλων. Όχι μόνο χρησιμοποιείται απευθείας λογισμικό από αυτά τα έργα, αλλά η εκμάθηση για τα διάφορα πρωτόκολλα δικτύου και η κωδικοποίηση/αποκωδικοποίηση των διαφόρων πρωτοκόλλων ήταν δυνατή μόνο χάρη στους δημιουργούς όλων αυτών των έργων λογισμικού.
DudeStar, DroidStar και Qt
Η εφαρμογή DudeStar χρησιμοποιούσε το Qt Widgets UI, ενώ το DroidStar χρησιμοποιεί το Qt Quick UI. Όλος ο πηγαίος κώδικας C/C++ για τα δύο έργα ήταν πάντα πανομοιότυπος, αλλά λόγω των διαφορετικών API διεπαφής χρήστη, έπρεπε να διατηρηθούν δύο αποθετήρια για το ίδιο έργο. Παρόλο που προτιμώ τη διεπαφή χρήστη των γραφικών στοιχείων Qt έναντι της διεπαφής χρήστη Qt Quick για εφαρμογές επιτραπέζιου υπολογιστή, έχω συνδυάσει και τα δύο έργα σε μια ενιαία οντότητα που τώρα ονομάζεται απλώς «DroidStar». Το dudestar repo μου έχει αφαιρεθεί από το github, αλλά υπάρχουν πολλά forks του στο github, σε περίπτωση που κάποιος επιθυμεί να συνεχίσει την ανάπτυξη αυτής της έκδοσης.
Υποστήριξη M17
Η βιβλιοθήκη κωδικοποιητή φωνής Codec2 είναι ανοιχτού κώδικα και περιλαμβάνεται ως υλοποίηση C++ της αρχικής βιβλιοθήκης C από το έργο mvoice. Περισσότερες πληροφορίες για το M17 μπορείτε να βρείτε εδώ: https://m17project.org/
Υποστήριξη MMDVM -- εργασία σε εξέλιξη
Το DroidStar υποστηρίζει μόντεμ MMDVM και MMDVM_HS (hotspot), με βασική (πιθανώς buggy) υποστήριξη για M17, D-STAR, Fusion και DMR. Υποστήριξη για P25 και NXDN σύντομα. Όταν συνδέεστε σε έναν ανακλαστήρα ψηφιακής λειτουργίας/διακομιστή DMR και επιλέγετε μια συσκευή MMDVM στα Μόντεμ, τότε το DroidStar λειτουργεί ως hotspot/repeater. Όταν το "MMDVM Direct" (προς το παρόν μόνο M17) επιλέγεται ως κεντρικός υπολογιστής, τότε το DroidStar γίνεται αυτόνομος πομποδέκτης.
API plugin vocoder λογισμικού
Υπάρχει ένα API plugin vocoder διαθέσιμο για τη φόρτωση του λογισμικού vocoder. Οποιοδήποτε πρόσθετο κωδικοποιητή φωνής που χρησιμοποιείται με το DroidStar θα πρέπει να έχει την κατάλληλη άδεια χρήσης από τον χρήστη εάν ισχύουν πατέντες πνευματικών δικαιωμάτων. Μην χρησιμοποιείτε κανένα πατενταρισμένο πρόσθετο κωδικοποιητή φωνής που δεν έχετε άδεια χρήσης. Δεν έχω πληροφορίες σχετικά με την απόκτηση κωδικοποιητή φωνής λογισμικού.
Φόρτωση ενός πρόσθετου κωδικοποιητή φωνής
Ένα πρόσθετο κωδικοποιητή φωνής μπορεί να ληφθεί από μια διεύθυνση URL, η οποία θα τοποθετήσει τον κωδικοποιητή φωνής στη σωστή θέση για την πλατφόρμα. Προσθέστε ένα πλήρες http url, συμπεριλαμβανομένου του ονόματος αρχείου, στην επιλογή Vocoder URL στην καρτέλα ρυθμίσεων και κάντε κλικ στο κουμπί Download vocoder.
Για συσκευές Android και iOS, η μέθοδος λήψης διεύθυνσης URL φωνής είναι ο μόνος τρόπος φόρτωσης μιας προσθήκης κωδικοποιητή φωνής. Για Linux/MacOS/Windows, ένας φωνοκωδικοποιητής μπορεί επίσης να τοποθετηθεί χειροκίνητα. Αντιγράψτε την προσθήκη στη θέση του αρχείου ρυθμίσεων συστήματος. Στο Linux, αυτό είναι ~/.config/dudetronics. Είναι το ίδιο μέρος όπου βρίσκονται τα αρχεία κεντρικού υπολογιστή και αναγνωριστικού (DMRHosts.txt, DMRIDs.data, κ.λπ.).
Το όνομα αρχείου του plugin vocoder πρέπει να ονομάζεται vocoder_plugin.platform.arch όπου πλατφόρμα και τόξο μπορεί να είναι οποιοδήποτε από τα ακόλουθα: πλατφόρμα: linux, darwin, winnt, android, ios arch: x86_64, arm, arm64
Η πλατφόρμα και το τόξο για τη συσκευή σας προσδιορίζονται στην καρτέλα Πληροφορίες.
Δεν υπάρχουν διαθέσιμες προσθήκες λογισμικού φωνοκωδικοποίησης σε αυτό το αποθετήριο και δεν έχω πληροφορίες σχετικά με την απόκτησή τους. ΜΗΝ ΡΩΤΑΤΕ!
Προαιρετική κατασκευή FLite Text-to-Speech
Πρόσθεσα την ικανότητα Flite TTS TX, ώστε να μην χρειάζεται να μιλάω στον εαυτό μου όλη την ώρα κατά την ανάπτυξη και τη δοκιμή. Για να δημιουργήσετε το DroidStar με υποστήριξη Flite TTS, αφαιρέστε το σχόλιο της γραμμής 'DEFINES += USE_FLITE' από την κορυφή του DroidStar.pro (και εκτελέστε/επανεκτελέστε το qmake). Θα χρειαστείτε τη βιβλιοθήκη Flite και τα αρχεία κεφαλίδας ανάπτυξης εγκατεστημένα στο σύστημά σας. Όταν κατασκευάζεται με υποστήριξη Flite, 3 επιλογές TTS και μια επιλογή Mic in θα είναι διαθέσιμες στο κάτω μέρος του παραθύρου. Το TTS1-TTS3 είναι 3 επιλογές φωνής και το μικρόφωνο απενεργοποιεί το TTS και χρησιμοποιεί το μικρόφωνο για είσοδο. Το κείμενο που πρόκειται να μετατραπεί σε ομιλία και να μεταδοθεί βρίσκεται στο πλαίσιο κειμένου κάτω από τις επιλογές TTS.
Χρήση
Οι χρήστες Linux με dongles USB AMBE ή/και MMDVM θα πρέπει να βεβαιωθούν ότι έχουν άδεια χρήσης της σειριακής συσκευής USB και να απενεργοποιήσουν την αρχαϊκή υπηρεσία ModeManager που εξακολουθεί να υπάρχει σε πολλά συστήματα Linux. Στα περισσότερα συστήματα αυτό σημαίνει ότι προσθέτετε τον χρήστη σας στην ομάδα "dialout" και εκτελείτε το "sudo systemctl disable ModemManager.service" και επανεκκίνηση. Αυτή είναι μια απαίτηση για πρόσβαση σε οποιαδήποτε σειριακή συσκευή.
Host/Mod: Επιλέξτε τον επιθυμητό κεντρικό υπολογιστή και μονάδα (για D-STAR και M17) από τις επιλογές.
Callsign: Εισαγάγετε το διακριτικό κλήσης του ραδιοερασιτέχνη. Απαιτείται έγκυρη άδεια χρήσης για τη χρήση αυτού του λογισμικού.
DMRID: Απαιτείται έγκυρο αναγνωριστικό DMR για σύνδεση με διακομιστές DMR. Γεωγραφικό πλάτος/Μήκος/Τοποθεσία/Περιγραφή: Πρόκειται για επιλογές διαμόρφωσης DMR, που αποστέλλονται στον διακομιστή DMR κατά τη σύνδεση. Ορισμένοι διακομιστές απαιτούν συγκεκριμένες τιμές εδώ, άλλοι όχι. Αυτό αφορά συγκεκριμένα τον διακομιστή στον οποίο συνδέεστε, επομένως μην ρωτάτε ποιες θα πρέπει να είναι αυτές οι τιμές.
DMR+ IPSC2 hosts: Η μορφή για τη συμβολοσειρά επιλογών DMR+ είναι η πλήρης συμβολοσειρά συμπεριλαμβανομένου του 'Options='. Δημιουργήστε τη συμβολοσειρά επιλογών σας και επιλέξτε "Αποστολή επιλογών DMR+ κατά τη σύνδεση" πριν συνδεθείτε. Μια περιγραφή της συμβολοσειράς επιλογών DMR+ μπορείτε να βρείτε εδώ: https://github.com/g4klx/MMDVMHost/blob/master/DMRplus_startup_options.md .
Ομάδα συζήτησης: Για DMR, εισαγάγετε τον αριθμό ID της ομάδας συζήτησης. Ένα πολύ ενεργό TG για τη δοκιμή λειτουργικότητας στο Brandmeister είναι το 91 (Brandmeister Worldwide). Πρέπει να κάνετε TX με μια ομάδα συζήτησης που έχει εισαχθεί για να συνδεθείτε σε αυτήν την ομάδα συζήτησης, ακριβώς όπως ένα πραγματικό ραδιόφωνο. Τυχόν στατικά που έχετε ορίσει στο BM selfcare θα λειτουργούν με τον ίδιο τρόπο που λειτουργούν αν χρησιμοποιούσατε hotspot/ραδιόφωνο.
Το MYCALL/URCALL/RPTR1/RPTR2 είναι για λειτουργίες Dstar REF/DCS/XRF. Αυτά τα πεδία πρέπει να εισαχθούν σωστά πριν επιχειρήσετε να κάνετε TX σε οποιονδήποτε ανακλαστήρα DSTAR. Όλα τα πεδία συμπληρώνονται με προτεινόμενες τιμές κατά τη σύνδεση, αλλά μπορούν ακόμα να τροποποιηθούν για προχωρημένους χρήστες. Το RPT2 αντικαθίσταται πάντα με τον ανακλαστήρα ρεύματος όταν συνδεθεί.
IAX Client για AllStar
Το DroidStar μπορεί να συνδεθεί σε έναν κόμβο AllStar ως πελάτης IAX(2). Δείτε το wiki του AllStar και άλλους ιστότοπους που σχετίζονται με το πρωτόκολλο AllStar, Asterisk και IAX2 για τις τεχνικές λεπτομέρειες του IAX2 για το AllStar. Αυτός είναι ένας βασικός πελάτης και προς το παρόν υποστηρίζεται μόνο ο κωδικοποιητής ήχου uLaw. Αυτός είναι ο προεπιλεγμένος κωδικοποιητής στους περισσότερους κόμβους AllStar.
Όνομα χρήστη: Καθορίζεται στο αρχείο iax.conf των κόμβων σας, συνήθως iaxclient
Κωδικός πρόσβασης: Ορίζεται ως «μυστικός» στο iax.conf
Node[@Context]: Αναγνωριστικό και περιβάλλον του κόμβου AllStar. Το περιβάλλον είναι προαιρετικό και εάν δεν έχει καθοριστεί, ορίζεται από προεπιλογή στο iax-client.
Κεντρικός υπολογιστής: όνομα κεντρικού υπολογιστή ή διεύθυνση IP του κόμβου.
Θύρα: Θύρα UDP του κόμβου, συνήθως 4569.
Προσθέστε εντολές DTMF όπως 3node, 1node, *70, κ.λπ. στο πλαίσιο IAX DTMF και πατήστε αποστολή για να στείλετε τη συμβολοσειρά DTMF. Λεπτομέρειες για διάφορες εντολές μπορείτε να βρείτε στο wiki του AllStar και σε άλλα.
Γενικές οδηγίες κατασκευής
Αυτό το λογισμικό είναι γραμμένο κυρίως σε C++ σε Linux και απαιτεί Qt6 >= Qt6.4, και φυσικά τα πακέτα ανάπτυξης για την κατασκευή. Java, QML (βασισμένο σε Javascript) και κώδικας C# χρησιμοποιούνται επίσης όπου χρειάζεται. Ο προτιμώμενος τρόπος για να αποκτήσετε το Qt είναι να χρησιμοποιήσετε το διαδικτυακό πρόγραμμα εγκατάστασης ανοιχτού κώδικα Qt από τον ιστότοπο του Qt. Εκτελέστε αυτό το πρόγραμμα εγκατάστασης ως χρήστης (όχι ως root) για να διατηρήσετε την εγκατάσταση Qt ξεχωριστά από τις lib του συστήματός σας. Επιλέξτε την επιλογή όπως φαίνεται σε αυτήν την εικόνα https://imgur.com/i0WuFCY που θα εγκαταστήσει τα πάντα κάτω από το ~/Qt.
Σε μια προσπάθεια να ενθαρρύνουμε άλλους να δημιουργήσουν από την πηγή σε πολλές πλατφόρμες, δεν υπάρχουν πλέον εξαρτήσεις εξωτερικής κατασκευής. Για να δημιουργήσετε το DroidStar χωρίς εσωτερικό κωδικοποιητή φωνής AMBE, αφαιρέστε το σχόλιο της ακόλουθης γραμμής στο αρχείο DroidStar.pro:
DEFINES+=VOCODER_PLUGIN
Η οικοδόμηση του DroidStar με αυτή τη γραμμή σχολιασμένη θα κατασκευαστεί με εσωτερική υποστήριξη AMBE. Εάν επιλέξετε να το κάνετε αυτό, είναι δική σας ευθύνη να καθορίσετε εάν θα παραβιάσετε τυχόν διπλώματα ευρεσιτεχνίας στην περιοχή σας.
Σημείωση για τη δημιουργία σε RaspiOS (Ισχύει και για επιτραπέζιους υπολογιστές Linux που βασίζονται στο debian)
Οι ακόλουθες εντολές θα πρέπει να εγκαταστήσουν όλα τα απαραίτητα για τη δημιουργία και εκτέλεση του DroidStar:
sudo apt install libqt6*
sudo apt install qml6*
sudo apt install qt6-*-dev
Στη συνέχεια για την κατασκευή:
git clone https://github.com/nostar/DroidStar.git
cd DroidStar
mkdir build
cd build
qmake6 ../DroidStar.pro
make
Εάν κατασκευάζετε μια πλατφόρμα που βασίζεται σε βραχίονα όπως το rpi, μπορεί να χρησιμοποιηθεί ο κωδικοποιητής φωνής md380. Για να δημιουργήσετε με αυτό, αφαιρέστε το σχόλιο της ακόλουθης γραμμής στο DroidStar.pro:
#DEFINES += USE_MD380_VOCODER
Αυτό απαιτεί την εγκατάσταση της βιβλιοθήκης md380_vocoder: https://github.com/nostar/md380_vocoder Πρέπει να βεβαιωθείτε ότι δεν παραβιάζετε οποιονδήποτε νόμο περί διπλωμάτων ευρεσιτεχνίας στην περιοχή σας, εάν αποφασίσετε να το χρησιμοποιήσετε.
Η κύρια πλατφόρμα ανάπτυξης μου είναι το Fedora Linux. Με ένα κατάλληλο περιβάλλον κατασκευής, οι οδηγίες κατασκευής ισχύουν για όλες τις άλλες πλατφόρμες/διανομές, συμπεριλαμβανομένων των Windows και του macOS.
Όλα τα αρχεία gradle build παρέχονται για τη δημιουργία ενός αρχείου APK έτοιμο για εγκατάσταση σε μια συσκευή Android. Απαιτείται ένα σωστό σύστημα κατασκευής Android, συμπεριλαμβανομένου του Android NDK και πέρα από το πεδίο εφαρμογής αυτού του εγγράφου.
Δεν υπάρχουν διαθέσιμες εκδόσεις στο Github
Σε αυτόν τον ιστότοπο του Github δεν υπάρχουν διαθέσιμες εκδόσεις για καμία πλατφόρμα. Αυτό είναι και θα είναι πάντα ένα έργο ανοιχτού κώδικα, που θα χρησιμοποιείται μόνο για εκπαιδευτικούς και αναπτυξιακούς σκοπούς. Αυτήν τη στιγμή παρέχω μια έκδοση των Windows που δεν πρέπει να συγχέεται με οποιαδήποτε επίσημη έκδοση οποιουδήποτε είδους. Δεν θα παρέχεται καμία υποστήριξη για οποιαδήποτε κατασκευή ανά πάσα στιγμή.
DroidStar για iOS
Το DroidStar ήταν διαθέσιμο για iOS μέσω του προγράμματος TestFlight. Βαρέθηκα με την Apple και τις πολιτικές προγραμματιστών της (για να μην αναφέρουμε το κόστος), οπότε ακύρωσα τον επί πληρωμή λογαριασμό προγραμματιστή μου. Το DroidStar μπορεί τώρα να εγκατασταθεί σε μια συσκευή iOS χρησιμοποιώντας ένα θαυμάσιο πρόγραμμα που ονομάζεται Sideloadly:
Οι οδηγίες εδώ είναι αρκετά αναλυτικές. Είναι σημαντικό να διαβάσετε την ενότητα Συνήθεις Ερωτήσεις του ιστότοπου για να κατανοήσετε πώς λειτουργεί το sideloading. Προτείνω να ενεργοποιήσετε την ανάπτυξη Wifi στη συσκευή iOS, όπως εξηγείται στον ιστότοπο. Αυτό σας επιτρέπει να φορτώσετε/επαναφορτώσετε το DroidStar χωρίς να συνδεθείτε σε USB.
Υπάρχουν στατικές εκδόσεις για όλες τις πλατφόρμες εκεί έξω σε μερικούς ιστότοπους τρίτων, όπως αυτός:
Το αρχείο ipa είναι το πακέτο iOS.