INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Anregungen für eine Debug Console für Kunden-Software



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

29.08.2013, 09:04
Beitrag #1

dali4u Offline
LVF-Stammgast
***


Beiträge: 298
Registriert seit: Aug 2008

12SP1, 14SP1
2007
DE


Deutschland
Anregungen für eine Debug Console für Kunden-Software
Hi,

ich möchte gerne für die neue Version einer Kunden-Software eine Debug Console einbauen.
Diese soll eingeblendet werden, wenn sich ein entsprechender Eintrag in der Registry befindet.
Ich suche Anregungen für die Erstellung dieser Bibliothek...

Idee:
+ Consolenfenster mit einfacher Textausgabe
+ Protokollierung in Textdatei
+ Bedienelemente (Start, Stop, Email, Exit)
- Start und Stop sind wohl klar
- Email -> Ruft den Standard Emailclient auf und hängt die Textdatei an und trägt die Emailadressse ein, mehr nicht
- Exit schließt das Consolen Fenster

   

Umsetzung (Idee):
+ Queue mit Namen (dann sollte diese Queue auch in anderen VIs zu finden sein, oder?)
Ich bin nur uneinig was den Elementdatentyp angeht, bisher einfach ein String.
Es sollen nicht nur Nachrichten etc. ausgegeben werden, sondern z.B. auch Inhalte von Variablen oder Arrays.
Es bleibt wohl nichts über, als dann die Inhalte von Variablen und Arrays entsprechend als String darzustellen.

Fragen dazu:
1.) Gibt es evtl. schon sowas? Ich konnte mit Google nichts finden, denn eine Suche mit "Debug" gibt immer Treffer
für das Debugging mit der Entwicklerumgebung, die aber ja nicht beim Kunden installiert ist.
2.) Ist der Datentyp String für die Queue hier sinnvoll? Was würdet Ihr nehmen? Cluster mit zusätzlichen Inhalten z.B. Error, Variant?
Eine Umwandlung der auszugebenen Daten in einen String ist wohl notwendig. Es geht auch um COM Events, Send/Received Strings etc.
3.) In LV2012 gibt es ein paar Beispiel-Projekte, z.B. "Kontinuierliche Messung und Protokollierung". Ok, hier werden Messdaten
erfasst, aber es geht um den prinzipiellen Aufbau. Wäre das eine mögliche Aufbauvariante oder ist das für eine
"einfache Debug Console" zu übertrieben.

Bin sehr interessiert an Euer Feedback... egal ob positiv oder negativ Big Grin
Gruß
Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
29.08.2013, 14:24 (Dieser Beitrag wurde zuletzt bearbeitet: 29.08.2013 14:27 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Anregungen für eine Debug Console für Kunden-Software
Hallo Stefan,

ich habe mir für unsere Prüfstandssoftware eine "SysLog"-Bibliothek programmiert, die alle Statusmeldungen, die intern erzeugt werden, in einer Datei abspeichert und die letzten 100 Meldungen (o.ä.) für eine Anzeige in einer Queue bereithält. Die Meldungen werden über ein subVI in die Queue eingetragen, dieses subVI ist dann jeweils dort zu platzieren, wo man die Meldung absetzen will. (Ähnliche Konzepte sind auch bei NI.com im Entwicklerbereich zu finden. Stichwort wäre SystemLog; es gab auch mal einen Programmierwettbewerb, wo eine solche Bibliothek teilnahm.)
Ich verwende intern einen Cluster pro Meldung, um (u.a.) Timestamp, ErrorCode & Text zu speichern.

Dies würde deinem Konzept sehr ähnlich sein. Nur für das "Email senden" musst du dir selbst was überlegen, spontan würde mir nur einfallen, irgendwie über DotNet den Email-Standardclient aufzurufen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.08.2013, 15:29
Beitrag #3

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Anregungen für eine Debug Console für Kunden-Software
Hallo Stefan,

bei uns läuft es auch über so ein "SystemLog"-File.
Als Hinweis fällt mir dabei noch ein: Vorsicht bei Datei(Schreib-)Operationen in zeitkritischen Algorithmen! Am besten nur asynchron auf das LogFile zugreifen, damit zur Not gepuffert wird. Aber das hast du ja quasi schon vorgesehen, wenn du eine Queue verwenden willst.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.09.2013, 09:40
Beitrag #4

BastiFantasti Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 77
Registriert seit: Sep 2007

7.1 - 2013
2007
DE

73527
Deutschland
RE: Anregungen für eine Debug Console für Kunden-Software
Hallo,

wir haben in unseren Applikationen Syslog implementiert (grundlegende VIs können über VI Package Manager installiert werden).
Vorteile:
- Es gibt fertige Software die diese Logs auswerten und darstellen kann
- Man kann leicht unterschiedliche Log Level implementieren (Debug, Error, ...)
- Je nach "Ort" im Quellcode kann man eine unterschiedliche Kennung zur Identifikation verwenden
- Es können mehrere Systeme mit einem Syslog-Server "überwacht" werden
- Der Log Server muss nicht auf dem gleichen System installiert sein wie die eigentliche Applikation

Ich verwende diesen Syslog Server: TFTPD32
Der Loggt die Meldungen in ein Textfile und stellt die Logs tabellarisch dar.

Du kannst natürlich auch in LabVIEW einen Syslog Server schreiben, der dir dann die Möglichkeit gibt auch den Log dann per Mail zu verschicken.

Grüße
Bastian
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2013, 07:56
Beitrag #5

dali4u Offline
LVF-Stammgast
***


Beiträge: 298
Registriert seit: Aug 2008

12SP1, 14SP1
2007
DE


Deutschland
RE: Anregungen für eine Debug Console für Kunden-Software
Also, erstmal vielen Dank an alle.
Das mit dem Syslog ist eine interessante Variante. Hatte mich bereits
nach den ersten Posts hier für eine TCP Variante entschieden, weil die
Console als unabhängige EXE laufen kann und von jeder meiner Software
angesprochen werden kann.

Ich habe meine Variante mal als LV2012 VIs gezippt angefügt. Ist natürlich
noch nicht fertig, aber vielleicht kann das ja jemand gebrauchen.
Feedback zu meiner Umsetzung ist natürlich gerne gesehen.

Zur Geschwindigkeit kann ich bisher sagen, dass ca. 300kB Daten in 600ms
übertragen werden, dass reicht für mich vollkommen aus. Das, was die Console
bremst, ist die ständige Aktualisierung des Ausgabestrings. Das habe ich durch
eine Zeitschleife begrenzt, was aus meiner Sicht so ok ist.

Gruß
Stefan


Angehängte Datei(en)
0.0 .zip  Debug Console TCP.zip (Größe: 85,26 KB / Downloads: 188)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2013, 09:05 (Dieser Beitrag wurde zuletzt bearbeitet: 09.09.2013 09:11 von eb.)
Beitrag #6

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Anregungen für eine Debug Console für Kunden-Software
Guten Morgen,

das ist eine kleine und feine Implementierung. Laufen Debug-Console und Hauptprogramm immer auf dem selben Computer? (Weil keine IP/Hostname für TCP spezifiziert)
Erweitern ließe sich das durch mehr Struktur-Info im anzeigenden Element im MainVI, ich denke da an eine Tabelle, oder eine Funktion zum filtern von Error-Code oä.

jetzt werde ich mir mal diese Syslog-Geschichte anschauen...

Gruß

€dit: kleine Frage: welche Pakete meine ihr wenn ihr vom "Syslog" im VIPM redet? Ich finde keines das so oder ähnlich heißt. Meint ihr "Message Queue Library"?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.09.2013, 10:30
Beitrag #7

dali4u Offline
LVF-Stammgast
***


Beiträge: 298
Registriert seit: Aug 2008

12SP1, 14SP1
2007
DE


Deutschland
RE: Anregungen für eine Debug Console für Kunden-Software
(09.09.2013 09:05 )eb schrieb:  Laufen Debug-Console und Hauptprogramm immer auf dem selben Computer? (Weil keine IP/Hostname für TCP spezifiziert)

Du kannst natürlich auch IPs angeben, dann sollte das eigentlich auch an andere PCs übertragen werden.
Ich werde in unserer Kundensoftware beim Inizialisieren eine Option einfügen, ob unsere Debug Console
als EXE bereits läuft (also in der Taskliste gefunden wurde) und wenn ja wird der Debug-Output aktiviert.
Das ist für den Kunden am einfachsten, da er die Konsole einfach nur zuerst starten muss und dann
das eigentliche Programm. Immer an die DAUs denken :-)

Stefan
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Software Defined Radio ansteuern MarcelXX 1 2.967 04.02.2019 11:18
Letzter Beitrag: Freddy
  Papierfach auswählen über Software Tobi Wan Kenobi 0 2.486 21.11.2018 13:02
Letzter Beitrag: Tobi Wan Kenobi
Question Infos zu Software Engineering mit LabVIEW MaxP 1 3.069 21.07.2018 12:34
Letzter Beitrag: BNT
  Debug-Auswertung mijarena 20 13.973 24.03.2016 09:40
Letzter Beitrag: Lucki
  Debug Tools gesucht Mrindfleisch 6 4.598 15.02.2013 07:34
Letzter Beitrag: Mrindfleisch
  System Exec - was in der normalen Console funktioniert, geht mit der LV vi nicht MartinLoreck 16 12.867 12.10.2012 11:30
Letzter Beitrag: SeBa

Gehe zu: