RasPiState (Raspberry Pi Statusanzeige)

    • Beta
    • Closed Source

    Es gibt 26 Antworten in diesem Thema. Der letzte Beitrag () ist von hellmaster159.

      RasPiState (Raspberry Pi Statusanzeige)



      Beschreibung:
      Mit RasPiState kann man sich Systeminformationen von seinem Raspberry Pi auf seinem PC über Netzwerk anzeigen lassen.

      Angezeigt werden Temperatur, Ram-Auslastung (tatsächlich belegter RAM ohne cache) und CPU-Auslastung/Takt/Spannung, GPU-Takt, GPU-Ram und letzte Aktualisierung.

      Minimiert wird das Tool ins Systray, wo bei Mouseover die Aktuelle Temperatur, CPU-Auslastung und Ram-Auslastung angezeigt wird und bei rechtsklick das Tool wieder geöffnet oder beendet werden kann (Contextmenü). Ein Linksklick aufs Systray-Icon öffnet das Tool ebenfalls wieder.
      Screenshots
      Normalansicht


      Ansicht bei augeklappten Settings


      Pi unter vollast (RaspBMC bei Full HD-3D-Wiedergabe)
      [Dieser Screenshot ist noch aus der ersten Version 1.0.0.0]



      Verwendete Programmiersprache, IDE und dlls:
      Visual Basic .NET (IDE: VB 2010 Express)
      Unix Shell
      Custom ProgressBar
      Renci.SSHNET

      Systemanforderungen:
      .NET Framework 4.0

      Download:

      RasPiState.exe (731 KB) [Version 1.0.0.2]

      Lizenz/Weitergabe:
      Freeware, weitergabe jederzeit gern unter Nennung dieses Downloadthreads.

      ToDo:

      - weitere Daten auslesen
      - Fehlermeldungen einbauen (Verlust der Verbindung, Nichterreichbarkeit des Hosts etc.)

      Changelog:
      1.0.0.2
      - automatische Sprachenerkennung des Betriebssystems eingefügt
      - Wenn Systemsprache nicht Deutsch (Deutschland), Deutsch (Österreich) oder Deutsch (Schweiz) wird das Programm automatisch auf Englisch übersetzt

      1.0.0.1
      - sh-Script nicht mehr benötigt, die Daten werden direkt vom tool per SSH abgefragt
      - Logging-Funktion integriert (Logt im eingestellten Aktualisierungsintervall)
      - Verbindung wird aufrechterhalten und die Abfragen in dauerschleife wiederholt
      - kein Setup mehr benötigt
      - Nutzung jetzt ohne Installation auch portable möglich
      - Systray-Anzeige um CPU-Auslastung und Ram-Auslastung erweitert

      Dieser Beitrag wurde bereits 17 mal editiert, zuletzt von „Scarala“ ()

      Ja, zur Zeit noch Setup in der Betaphase, später wird alles integriert sein und das sh-sript wird sich aus dem tool raus erzeugen lassen... Zur Zeit noch Setup weil die Benötigten DLL-Files, die Installationsanleitung und das Shell-Script noch einzelne Dateien sind, die werden in der nächsten Version alle integriert sein. Somit wird das Tool dann auch Portable nutzbar.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Scarala“ ()

      Soll noch Multilanguage werden ;) Ich habe übrigens in nächtlicher Schlaflosigkeit noch einiges herausgefunden, sodass das Tool später ohne Installation eines Scriptes auf dem Pi Funktionieren wird.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Scarala“ ()

      'Aktualisierungsintervall' ist falsch geschrieben (siehe Screenshot).

      Außerdem sind mir minimum 10 Sekunden zu langsam wie wäre es mit ~500ms-1Sek Minimum?

      Idee ist ganz gut, vielleicht noch ein paar Daten mehr auslesen lassen (Auflösung, Aktuelle Ausgabe -> Hdmi oder S-Video, Speicherplatz und und und) dann würde ich das auch benutzen :)

      Habs nicht getestet aber sind die 700Mhz ein Standard Label oder wird auch erkannt wenn man den Pi übertaktet?
      Wie du auf dem 3. screenshot sehen kannst erkennt er auch die übertaktung (hier ARM, GPU und Spannung übertaktet)
      Ein Aktualisierungsintervall von 500ms ist nicht umsetzbar, da die abfrage alleine schon 3-4 sekunden dauert.
      Mehr daten abfragen kommt auch bestimmt irgendwann ;)
      Das Tool kann nicht öfter abfragen, da für die zeit des Abfragevorgangs die form "gefreezt" ist. Es sei denn ich würde die Verbingung von der Form in eine klasse auslagern. Da aber für jede Abfrage eine SSH-Verbindung geöffnet werden muss hieße das, das du nach 10 sekunden mindestens 14 offene verbindungen hättest, wenn man von 4 sek bearbeitungszeit pro verbindung ausgeht. Rechne das mal auf 10 minuten laufzeit hoch... da wärest du bei mindestens 100 offenen ssh-verbindungen... der Pi würde mir leid tun.

      Alternativ müsste ich die ssh-verbindung aufrecht erhalten und die abfragen dann einfach immer wieder von vorne laufen lassen... ich mach mir mal gedanken.
      Sehe dein Problem nicht?

      VB.NET (Von C# Konvertiert) Code:

      VB.NET-Quellcode

      1. Private Sub Form1_Load(sender As Object, e As EventArgs)
      2. Dim conn = New SshClient("IP", "pi", "raspberry")
      3. conn.Connect()
      4. ' Hier schleifen / thread erstellen etc.
      5. Dim cpuLoad As Single = ReadCpuLoad(conn)
      6. conn.Disconnect()
      7. label3.Text = "CPU Usage (" & cpuLoad & "%):"
      8. drogressBar3.Maximum = 100
      9. drogressBar3.Value = CInt(Math.Floor(cpuLoad))
      10. End Sub
      11. Private Function ReadCpuLoad(conn As SshClient) As Single
      12. Dim cmd = conn.RunCommand("ps -eo pcpu | awk '{cpu_load+=$1}END {print cpu_load}'")
      13. Dim res = cmd.Execute()
      14. res = res.Replace(vbLf, "")
      15. Dim cpuLoad As Single
      16. Single.TryParse(res, NumberStyles.Any, CultureInfo.InvariantCulture, cpuLoad)
      17. Return cpuLoad
      18. End Function


      C# Code:
      Spoiler anzeigen

      C#-Quellcode

      1. private void Form1_Load(object sender, EventArgs e)
      2. {
      3. var conn = new SshClient("IP", "pi", "raspberry");
      4. conn.Connect();
      5. // Hier schleifen / thread erstellen etc.
      6. float cpuLoad = ReadCpuLoad(conn);
      7. conn.Disconnect();
      8. label3.Text = "CPU Usage (" + cpuLoad + "%):";
      9. drogressBar3.Maximum = 100;
      10. drogressBar3.Value = (int)Math.Floor(cpuLoad);
      11. }
      12. private float ReadCpuLoad(SshClient conn)
      13. {
      14. var cmd = conn.RunCommand("ps -eo pcpu | awk '{cpu_load+=$1}END {print cpu_load}'");
      15. var res = cmd.Execute();
      16. res = res.Replace("\n", "");
      17. float cpuLoad;
      18. float.TryParse(res, NumberStyles.Any, CultureInfo.InvariantCulture, out cpuLoad);
      19. return cpuLoad;
      20. }


      (Sogar ganz ohne shell script^^)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „GooMan“ ()

      Soweit das ohne shellscript hinzubekommen bin ich nun heute auch schon gekommen, trotzdem danke. Ich werd mich morgen weiter dran setzen.
      Ich bin halt ein VB-Nood, bringe mir alles selbst son bisschen bei und versuche neue herausforderungen zu finden und zu lösen, die für mich im machbaren liegen.

      Dabei lernt man immer wieder dazu ;) Ich hatte in desem fall das script z.B. gemacht weil sich über conn.RunCommand einige befehle nicht ausführen ließen, was ich jetzt aber heute hinbekommen habe.
      Meinte eigentlich:

      Das Tool kann nicht öfter abfragen, da für die zeit des Abfragevorgangs die form "gefreezt" ist. Es sei denn ich würde die Verbingung von der Form in eine klasse auslagern. Da aber für jede Abfrage eine SSH-Verbindung geöffnet werden muss hieße das, das du nach 10 sekunden mindestens 14 offene verbindungen hättest,


      Damit muss nur 1x die SSH Verbindung geöffnet werden. Ausserdem -: Neuen Thread erstellen, dann hängt die Form auch nicht mehr.

      Ausserdem sag mal wieso steht als Tag: "Open Source" ? Kann nur den Download zur Setup erkennen..^^
      Hi!
      Gutes Programm soweit. Mir ist aufgefallen, dass du die Settings als TxT-Files speicherst. Ist das nicht etwas unsicher? So könnte doch irgendjemand meinen Pi hacken und mir meine Dateien klauen(gut dürfte bei mir etwas schwerer werden...). Vielleicht kannste ja mal versuchen die Settings zu verschlüsseln, sodass nur dein Programm es lesen kann. Mir persönlich fehlen noch ein paar Daten, die ich aber entweder selber oder per App abrufen kann. Übrigens btw: Falls du nicht weißt was du noch für Daten bereitstellen sollst, dann kannste dir ja mal ein paar andere Programme dazu ansehen beispielsweise RasPi Check(Android). Dein Projekt hat auf jedenfall potenzial.

      LG