PSLab-Android-App
Repository für die PSLab-Android-App zur Durchführung von Experimenten mit der offenen Hardwareplattform Pocket Science Lab.
Dieses Repository enthält die Android-App zur Durchführung von Experimenten mit PSLab. PSLab ist ein kleines wissenschaftliches Taschenlabor, das eine Reihe von Geräten für die Durchführung wissenschaftlicher und technischer Experimente bereitstellt. Es kann als Oszilloskop, Wellenformgenerator, Frequenzzähler, programmierbare Spannungs- und Stromquelle und auch als Datenlogger fungieren. Unsere Website ist unter https://pslab.io.
Melden Sie sich für die neuesten Updates an und testen Sie neue Funktionen frühzeitig, indem Sie hier unserem Beta-Programm beitreten.
Kaufen
- Ein Pocket Science Lab-Gerät erhalten Sie im FOSSASIA Shop.
- Weitere Wiederverkäufer sind auf der PSLab-Website aufgeführt.
Kommunikation
- Der PSLab-Chatkanal ist auf Gitter.
- Bitte tragen Sie sich auch in die PSLab-Mailingliste ein.
Roadmap
Screenshots
Videodemo
- Übersicht über die PSLab-Android-App.
- Beobachten von Schallwellenformen mit dem PSLab-Gerät.
- Echtzeit-Sensordatenprotokollierung mit Pocket Science Lab.
- Erzeugen und Beobachten von Wellenformen mit Pocket Science Lab.
Merkmale
Besonderheit | Beschreibung | Status |
---|
Startbildschirm | Status und Version des PSLab-Geräts anzeigen | ✔️ |
Instrumente | Zeigt PSLab-Instrumente wie Oszilloskope usw. an | ✔️ |
Oszilloskop | Zeigt die Variation analoger Signale | ✔️ |
Multimeter | Misst Spannung, Strom, Widerstand und Kapazität | ✔️ |
Logischer Analysator | Erfasst und zeigt Signale vom digitalen System an | ✔️ |
Wellengenerator | Erzeugt beliebige analoge und digitale Wellenformen | ✔️ |
Stromquelle | Erzeugt programmierbare Spannungen und Ströme | ✔️ |
Luxmeter | Misst die Intensität des Umgebungslichts | ✔️ |
Barometer | Misst den Druck | ✔️ |
Beschleunigungsmesser | Misst die Beschleunigung des Geräts | ✔️ |
Gyrometer | Misst die Rotationsgeschwindigkeit | ✔️ |
Kompass | Misst die absolute Rotation relativ zu den Erdmagnetpolen | ✔️ |
Thermometer | Misst die Umgebungstemperatur | ✔️ |
Gassensor | Erkennt Gase, einschließlich NH3, NOx, Alkohol, Benzol, Rauch und CO2 | ✔️ |
Roboterarm-Controller | Ermöglicht die unabhängige Steuerung von 4 Servomotoren des Roboterarms | ✔️ |
So richten Sie die Android-App in Ihrer Entwicklungsumgebung ein
Anwendungsaromen
Es gibt zwei Varianten (Build-Varianten) der PSLab-Android-Anwendung.
Play Store-Geschmack
- Die Play Store-Variante verwendet Google Maps, um den in Protokollen im Datenlogger gespeicherten Standort anzuzeigen.
Fdroid-Geschmacksrichtungen
- Die Fdroid-Variante verwendet Open Street Maps, um den in Protokollen im Datenlogger gespeicherten Standort anzuzeigen.
Entwicklungs-Setup
Bevor Sie beginnen, sollten Sie das Android Studio SDK bereits heruntergeladen und korrekt eingerichtet haben. Eine Anleitung dazu finden Sie hier: Android Studio einrichten
Einrichten des Android-Projekts
Zum Einrichten des PSLab-Android-Projekts können Sie eine der beiden unten aufgeführten Methoden anwenden, d. h. Sie können die Repository-Zip-Datei herunterladen oder das Repository direkt in Android Studio klonen.
Durch Herunterladen der ZIP-Datei
Laden Sie die pslab-android- Projektquelle herunter. Sie können dies entweder durch Forken und Klonen des Repositorys tun (empfohlen, wenn Sie Änderungen per Push übertragen möchten) oder indem Sie es als ZIP-Datei herunterladen und extrahieren.
Öffnen Sie Android Studio. Sie sehen ein Willkommen bei Android- Fenster. Wählen Sie unter „Schnellstart“ die Option „Projekt importieren (Eclipse ADT, Gradle usw.)“ aus. Um über WLAN zu debuggen, befolgen Sie die in diesem Blog angegebenen Schritte.
- Hinweis: Wenn Sie Ihre eigene Hardware gebaut haben, ändern Sie VendorID und/oder ProductID in CommunicationHandler.java.
Durch direktes Klonen
- Öffnen Sie Android Studio. Sie sehen ein Willkommen bei Android- Fenster. Wählen Sie unter „Schnellstart“ die Option „Projekt aus der Versionskontrolle auschecken“.
- Wählen Sie „git“ aus dem angezeigten Dropdown-Menü aus.
- Gehen Sie zum Repository und klicken Sie auf die Schaltfläche „Klonen“ oder „Herunterladen“.
- Kopieren Sie den Link aus dem angezeigten Dropdown-Menü.
- Fügen Sie die kopierte URL ein und klicken Sie auf „Klonen“.
- Android Studio sollte nun mit der Erstellung des Projekts mit Gradle beginnen.
- Sobald dieser Vorgang abgeschlossen ist und Android Studio geöffnet wird, überprüfen Sie die Konsole auf etwaige Buildfehler.
- Hinweis: Wenn Sie einen Gradle-Synchronisierungsfehler mit dem Titel „Fehler beim Finden ...“ erhalten, sollten Sie auf den Link unter der Fehlermeldung (falls verfügbar) klicken, der besagt: „Fehlende Plattform(en) installieren und Projekt synchronisieren und Android Studio erlauben, dies zu tun.“ Hol dir, was fehlt.
- Sobald alle Build-Fehler behoben sind, sollten Sie bereit sein, die App zu erstellen und zu testen.
- Um die App zu erstellen, gehen Sie zu Erstellen > Projekt erstellen (oder klicken Sie alternativ auf das Symbol „Projekt erstellen“ in der Symbolleiste).
- Wenn die App erfolgreich erstellt wurde, können Sie sie testen, indem Sie sie entweder auf einem echten oder einem emulierten Gerät ausführen, indem Sie auf „Ausführen“ > „App“ ausführen oder auf das Symbol „Ausführen“ in der Symbolleiste klicken.
Wenn Sie nur eine APK erstellen möchten, gehen Sie zu Erstellen>Apk erstellen. Die APK wird dann erstellt und das Verzeichnis, in dem die APK generiert wird, wird von Android Studio angefordert.
Sie können nicht auf die übliche Weise debuggen, da das PSLab-Gerät über ein OTG-Kabel mit dem Micro-USB-Anschluss verbunden ist. Das Android-Gerät ist also nicht über ein USB-Kabel mit dem PC verbunden.
Befolgen Sie zum Debuggen über WLAN die in diesem Blog angegebenen Schritte.
- Hinweis: Wenn Sie Ihre eigene Hardware gebaut haben, ändern Sie VendorID und/oder ProductID in CommunicationHandler.java.
Berechtigungen erforderlich
- Record_Audio: Es ist erforderlich, dass das Oszilloskop Eingaben vom eingebauten Mikrofon des Telefons akzeptiert. Die Implementierung finden Sie in AudioJack.java.
- Access_Fine_Location und Internet: Wird für die Verwendung in Luxmeter und Kompass benötigt, um die Koordinaten zum Markieren der Daten auf der Karte zu erhalten. Die Implementierung finden Sie in GPSLogger.java.
- Write_External_Storage: Wird zum Speichern von Protokolldateien von Instrumenten benötigt, die für zukünftige Analysen übertragen werden können.
- Read_External_Storage: Beim Schreiben von Protokollen in den Speicher prüft CSVLogger.java zunächst, ob ein CSVLogger-Verzeichnis vorhanden ist oder nicht, für das diese Leseberechtigung erforderlich ist.
Einrichtung zur Verwendung von PSLab mit der Android-App
Um das PSLab-Gerät mit Android zu verwenden, benötigen Sie lediglich ein OTG-Kabel, ein Android-Gerät mit aktivierter USB-Host-Funktion (die meisten modernen Telefone verfügen über OTG-Unterstützung) und die PSLab-Android-App. Verbinden Sie das PSLab-Gerät über ein OTG-Kabel mit dem Android-Telefon. Der Rest wird von der App selbst erledigt.
Beiträge Best Practices
Kodexpraktiken
Bitte helfen Sie uns, die Best Practices einzuhalten, um es sowohl dem Rezensenten als auch dem Mitwirkenden zu erleichtern. Wir möchten uns mehr auf die Codequalität konzentrieren als auf die Verwaltung der Pull-Request-Ethik.
- Einzelnes Commit pro Pull-Anfrage.
- Verweisen Sie auf die Issue-Nummern in der Commit-Nachricht. Folgen Sie dem Muster
Fixes #<issue number> <commit message>
- Befolgen Sie einheitliche Designpraktiken. Die Designsprache muss in der gesamten App einheitlich sein.
- Die Pull-Anfrage wird erst zusammengeführt, wenn die Commits gequetscht wurden. Falls es mehrere Commits auf dem PR gibt, muss der Commit-Autor diese zerquetschen und nicht die Betreuer, die sich Rosinen herauspicken und die Squashs zusammenführen.
- Wenn die PR mit einer Frontend-Änderung zusammenhängt, fügen Sie bitte relevante Screenshots in der Pull-Request-Beschreibung bei.
Wie git squash
?
Als Tipp für neue Entwickler, die Schwierigkeiten haben, Commits in einem zusammenzufassen: In Ihrem Pull-Request können mehrere Commits erscheinen, hauptsächlich aus folgenden Gründen.
- Bewusstes Hinzufügen mehrerer Commit-Nachrichten nach jeder Änderung, ohne nur
git add
. - Aktualisieren des aktuellen Zweigs mit dem Remote-Zweig, damit ein Merge-Commit stattfindet.
Befolgen Sie aus irgendeinem Grund die unten aufgeführten Schritte, um alle Commits unter Einhaltung unserer Best Practices zu einem einzigen zusammenzufassen.
- Richten Sie Remote zum Upstream-Zweig ein, falls dies nicht zuvor festgelegt wurde
$ git remote add upstream https://github.com/fossasia/pslab-android.git
- Checken Sie in den Zweig ein, der sich auf die Pull-Anfrage bezieht
$ git checkout <branch-name>
- Führen Sie einen Soft-Reset durch, um die Änderungen beizubehalten und gleichzeitig alle Commit-Details zu entfernen
$ git reset --soft upstream/development
- Fügen Sie Dateien zum Staging-Bereich hinzu
$ git add <file paths or "." to add everything>
- Erstellen Sie einen neuen Commit mit einer geeigneten Nachricht gemäß den Richtlinien für Commit-Nachrichten
$ git commit -m "tag: commit message"
- Wenn Sie bereits eine Pull-Anfrage gestellt haben
$ git push -f origin <branch-name>
Filialpolitik
Wir haben die folgenden Filialen
- Entwicklung Die gesamte Entwicklung findet in diesem Zweig statt. Wenn Sie einen Beitrag leisten, sollten Sie eine Pull-Anfrage an die Entwicklung stellen. Stellen Sie sicher, dass es den Build-Check von Travis besteht.
- master Dies enthält den stabilen Code. Nachdem sich in der Entwicklung wichtige Funktionen/Fehlerbehebungen angesammelt haben, verschieben wir sie in den Master-Bereich.
- apk Dieser Zweig enthält eine automatisch generierte APK-Datei zum Testen.
Codestil
Bitte befolgen Sie beim Schreiben und Einreichen Ihres Codes die genannten Richtlinien, da dies für den Prüfer und andere Entwickler das Verständnis erleichtert.
- Stellen Sie beim Benennen der Layoutdateien sicher, dass die Konvention (activity/fragment) _ (name).xml eingehalten wird,
activity_oscilloscope.xml
fragment_control_main.xml
- Benennen Sie die in den Layoutdateien definierten Ansichten und Widgets als (Ansichtstyp/Widget) _ (Fragment-/Aktivitätsname) _ (Nr. in der Datei) wie
spinner_channel_select_la1
, button_activity_oscilloscope1
. - Der Name der Aktivitäts-/Fragmentdatei, die den Layoutdateien entspricht, sollte als (Aktivitäts-/Fragmentname)(aktivität/fragment).java benannt werden, wie
ChannelsParameterFragment.java
entsprechend der Layoutdatei fragment_channels_parameter.xml
. - Die entsprechenden Widgets für Schaltflächen, Textfelder, Kontrollkästchen usw. in Aktivitätsdateien sollten wie folgt benannt werden: (Ansichtstyp/Widget)(Fragment-/Aktivitätsname)(Nr. in der Datei) wie
spinnerChannelSelect1
entsprechend spinner_channel_select1
.
Entwickler
Betreuer
Das Projekt wird betreut von
- Padmal (@CloudyPadmal)
- Mario Behling (@mariobehling)
- Lorenz Gerber (@lorenzgerber)
- Wei Tat (@cweitat)
- Wai Gie (@woshikie)
Alumni
- Neel Trivedi (@neel1998)
- Akarshan Gandotra (@akarshan96)
- Asitava Sarkar (@asitava1998)
- Vivek Singh Bhadauria (@viveksb007)
- Avjeet (@Avjeet)
- Abhinav (@abhinavraj23)
- Hart (@harsh-2711)
- Yatri (@yatri1609)
Lizenz
Dieses Projekt ist derzeit unter der Apache-Lizenz 2.0 lizenziert. Eine Kopie der LIZENZ muss zusammen mit dem Quellcode vorhanden sein. Um die Software unter einer anderen Lizenz zu erhalten, wenden Sie sich bitte an FOSSASIA.