Serial-IO

#555085
Lesenswert?

Da es in einem anderen Thread intresse an dem Programm gibt mach ich 
hier mal einen neuen auf.

"Serial-IO-Manager is a simple program to send and receive data from a 
serial interface. The GUI is designed like a chat window with a 
transmitter/receiver textfield and a command line to send characters and 
integer values."

http://sourceforge.net/projects/serial-io/

Wünsche und sonstige Vorschläge sind erwünscht und willkommen.

Gast #555107
Lesenswert?

Hallo Wilfried,

wie im anderen Thread schon angekündigt hätte ich ein paar 
Erweiterungsvorschläge:

1. Ablegen einer/mehrerer "Sendesequenz(en)" (ein oder auch mehrere 
Bytes pro Sequenz) und Senden der Sequenz auf Knopfdruck.
2. evtl. automatische Berechnung einer Prüfsumme bzw. CRC.
3. automatisches Auffinden von vorher definierten Patterns in den 
empfangenen Daten.

Gruß und noch ein schönes Wochenende,
Christian
Gast #555527
Lesenswert?

Guten Morgen Wilfried,

>Das heißt Du gibts im Prinzip einen Buffer an "01 02 03" und wenn diese
>Sequenz auftaucht dann soll das gemeldet werden?
Ja genau. Oder einfach diese gefundene Sequenz farbig/fett hervorheben.

Ich hatte gestern das Problem, dass ich mit serial-io keine Daten 
empfangen konnte. Senden funktioniert, aber sobald meine Zielhardware 
was zurückschickt geht die CPU auf Volllast und nach ~30sec wird 
serial-io gekillt. An was könnte das liegen?

Gruß,
Christian
Gast #584129
Lesenswert?

Ich habs geschaft an dem Projekt werter zu arbeiten, mir ist allerdings 
leider schon aufgefallen, das ich vergessen habe die Checksumme zu 
berechnen. Das mach ich dann morgen wohl morgen abend. Aber um einen 
ersten Eindruck von der Version 0.2 zu bekommen sollte es schon mal 
reichen.

Die Daten aus den Buffer werden abhängig von den Einstellungen wie bei 
der Komandozeile auch übertragen. Die Daten in den Events werden zur 
Zeit als Bytes interpretiert. Hier nehm ich noch Wünsche engegen, ob das 
erstmal so ok ist oder was sinnvoller wäre.
Gast #584633
Lesenswert?

Hallo Wilfried,

vielen Dank schon mal für deine Mühe!
Könntest du bitte noch eine kompilierte Version ablegen, oder mir sagen 
wie ich das selbst machen kann. Ich konnte im neuen Verzeichnis keine 
ausführbare Datei finden. Leider habe ich nicht den geringsten Schimmer 
wie ich die ganzen .cpp Datein kompiliere, bzw. was man da alles dazu 
braucht.

Gruß,
Christian
Gast #585507
Lesenswert?

Hallo Wilfried,

"make" klar, hätte man draufkommen können :)

nur das Kompilieren haut nicht so ganz hin:

/usr/bin/qmake -unix -o Makefile serial-io.pro
g++ -c -pipe -g -O0 -O2 -Wall -W -D_REENTRANT  -DQT_NO_DEBUG 
-DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. 
-I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore 
-I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. 
-I. -I. -o DeviceDialog.o DeviceDialog.cpp
g++ -c -pipe -g -O0 -O2 -Wall -W -D_REENTRANT  -DQT_NO_DEBUG 
-DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. 
-I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore 
-I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. 
-I. -I. -o main.o main.cpp
SerialReceiveThread.h:41: Fehler: zusätzliche Qualifizierung 
»SerialReceiveThread::« an Element »sendData«
mainwindow.h:112: Fehler: zusätzliche Qualifizierung »MainWindow::« an 
Element »maybeSave«
make: *** [main.o] Fehler 1


Was könnte da sein?

Gruß,
Christian
Gast #586509
Lesenswert?

Hallo Wilfried,

also nun läufts, danke!
Sieht ganz gut aus. Großes Lob!

Empfangen funktioniert mit der neuen Version einwandfrei, es stürzt also 
nichts mehr ab :)

konstruktive Kritik:

+ die "Verbindungseinstellungen" der letzten "Session" werden 
gespeichert

+ insgesamt sehr übersichtliches Layout. Gute Idee sind die Karteikarten 
für Konsole, Buffer, Events

- das "Terminalfenster" ist recht klein im Verhältnis zu den restlichen 
Einstellungen, d.h. man muss die gesendeten/empfangenen Daten in dem 
kleinen Fensterchen suchen.
Die Messages werden auch direkt hintereinander ohne Trennung 
geschrieben, dies ist etwas unübersichtlich

- die Buffer werden nicht editiert. Wenn man auf den Button "Edit" 
drückt, wird ein neuer Buffer angelegt.

- ein gesendeter Buffer erscheint nicht im Terminalfenster

- Wie funktioniert das Highlighting? Hat irgendwie nicht funktioniert.


Wünsche:
- Anzeige der gesendeten/empfangenen Daten im Terminalfenster auch in 
HEX (evtl mit Time-stamp)
- Abspeichermöglichkeit der verschiedenen Buffer ala "Project" (.txt 
oder XML Datei?)


Viele Grüße,
Christian
Gast #588179
Lesenswert?

Hallo Wilfried,

ja ok, aber mach dir keinen Stress!

Was mir gerade aufgefallen ist:
Bei deinen Screenshots auf sourceforge.net sind Buttons für Vollbild, 
Verkleinerung und ein Fragezeichen vorhanden. Is bei der von mir 
kompilierten Version nicht so. Hast du das geändert, oder ist da was 
schief gelaufen?

Gruß,
Christian
Angehängte Dateien:
Gast #596352
Lesenswert?

So, es gibt mal wieder eine neue Version. Das fenster sollte man nun 
größer machen können und somit die gesendeten bzw. empfangenen Daten 
auch besser sehen. Editieren von Buffer/Events geht auch. Die Checksumme 
wird berechnet und das Highligting hat bei mir auch funktioniert.

Trennung der Daten und anzeige in Hex mit Timestamp sowie das 
Abspeichern und Laden von Buffern/Events kommt dann in der nächsten 
Version.
Gast #596397
Lesenswert?

Hallo Wilfried,

what's wrong?

1
ch@bastelbude: serial-io> make
2
g++ -c -pipe -O0 -O2 -Wall -W -D_REENTRANT  -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o main.o main.cpp
3
In file included from main.cpp:22:
4
mainwindow.h:24:26: error: SerialStream.h: No such file or directory
5
SerialReceiveThread.h:28: Fehler: »LibSerial« ist kein Namensbereichs-Name
6
SerialReceiveThread.h:28: Fehler: expected namespace-name before »;« token
7
SerialReceiveThread.h:39: Fehler: »SerialStream« wurde nicht deklariert
8
SerialReceiveThread.h:54: Fehler: ISO-C++ verbietet Deklaration von »SerialStream« ohne Typ
9
SerialReceiveThread.h:54: Fehler: expected »;« before »*« token
10
mainwindow.h:33: Fehler: »LibSerial« ist kein Namensbereichs-Name
11
mainwindow.h:33: Fehler: expected namespace-name before »;« token
12
mainwindow.h:88: Fehler: »SerialStream« wurde nicht deklariert
13
make: *** [main.o] Fehler 1

Gruß,
Christian
Gast #596521
Lesenswert?

"ldconfig" habe ich ausgeführt, danach "ldd serial-io"


        linux-gate.so.1 =>  (0xffffe000)
        libserial.so.0 => not found
        libQtGui.so.4 => /usr/lib/libQtGui.so.4 (0xb78e2000)
        libQtCore.so.4 => /usr/lib/libQtCore.so.4 (0xb775c000)
        libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 
(0xb7745000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb765b000)
        libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7634000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7628000)
        libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb74e7000)
        libaudio.so.2 => /usr/lib/libaudio.so.2 (0xb74d0000)
        libXt.so.6 => /usr/lib/libXt.so.6 (0xb747f000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0xb745c000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0xb7453000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0xb743b000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb7427000)
        libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0 (0xb7421000)
        librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7418000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7383000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0xb737b000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0xb7375000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0xb7370000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0xb7366000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0xb7363000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb72f8000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb72cd000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0xb72bf000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0xb71ce000)
        libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb71c9000)
        /lib/ld-linux.so.2 (0xb7fdf000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb71a9000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0xb71a6000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0xb71a1000)

"libserial.so.0 => not found" wird komischerweise nicht gefunden
Gast #596558
Lesenswert?

Das Problem ist, das der Linker die Datei anscheinend findet, aber die 
Datei nicht im Lib-Cache ist. "ldconfig -v | grep libserial" sollte 
eigentlich unter anderem "libserial.so.0 -> libserial.so.0.0.0" 
ausgeben. Welche Distribution verwendest Du? Da könntest Du dann mal in 
den Foren gucken was man macht wenn eine LIb nicht gefunden wird. An 
meinem Programm liegts soweit erstmal nicht.
Gast #598024
Lesenswert?

So Version 0.3 beta ist fertig. Buffer/Events können nun gespeichert und 
geladen werden.

Für die nächste(n) Version(en) plane ich unter anderem:
 - Timestamps, Hex Darstellung
 - Speichern der Transmitter-Receiver-Daten
 - Löschen des TR-Fensters
 - Limit des TR-Buffers
 - Einstellmöglichkeit des Thread-Timings
 - Eine Möglichkeit einen Buffer mit Werten zu belegen,
    z.B. Startwert = 1, Increment = 2, 5 Werte: 1 3 5 7 9
 - Limitierung der Event-Werte auf 0..255

Soweit so gut =).
Gast #598049
Lesenswert?

Hallo Wilfried,

boah, wird ja richtig nobel! Weiter so!
Dann fehlt ja nur noch Darstellung in "Bin" und Anzeige der 
gesendeten/empfangenen Daten in einem separaten Fenster, dann hast du 
Do****ght für Linux geproggt :)

Was heißt ...?
> - Einstellmöglichkeit des Thread-Timings
> - Eine Möglichkeit einen Buffer mit Werten zu belegen,
>   z.B. Startwert = 1, Increment = 2, 5 Werte: 1 3 5 7 9
kann ich mir grad keinen Reim drauf machen.

Heut Abend werde ich die neue Version gleich mal testen.

Gruß,
Christian
Gast #598058
Lesenswert?

Die Anzeige Möglichkeit werde ich dann als Option festlegen: Dez, Hex, 
Bin, ist dann kein Problem.

Die Daten wollte ich eigentlich alle in einem Fenster haben, ich kann 
aber gern eine Split-Option einbauen =).

Die Abfrage der Daten von der seriellen Schnittstelle läuft in einem 
separaten Thread. Dieser wird zu bestimmten Zeiten aufgerufen. Sollte es 
mal wieder zu Problemem kommen, kann man daran dann etwas 
experimentieren. Vielleicht ist das zur Zeit für einige Rechner etwas zu 
schnell, aber das muss man dann sehen.

zum Buffer: Wenn ich z.B. einen Buffer mit Daten füllen will und z.B. 
500 Werte auf Null setzen möchte, ist das von Hand schon etwas schwer. 
Dann würde ich sagen: Startwert 0, Inc. = 0, und alle werte sind auf 
Null. Wenn du z.B. 10 20 30 40 50 übertragen willst, würdest Du Start: 
10, Inc 10, Buffergröße 5 setzen.


Gast #599017
Lesenswert?

Hallo Wilfried,

eine "kosmetische" Sache ist mir noch aufgefallen:
bei "Edit Buffer" heißen die Schaltflächen "Cancel" und "Edit"
bei "Edit Event" heißen die Schaltflächen "Cancel" und "Change"

Fenster anpassen funktioniert genauso wie Projekt speichern/laden 
wunderbar.
Serial-IO läuft absolut stabil, hatte seit 0.2.1 keine Abstürze mehr.

Gruß und ein schönes Wochenende!
Christian
Gast #602078
Lesenswert?

So hab zwischen durch mal folgendes eingebaut (version 0.3.1):
 - Eine Möglichkeit einen Buffer mit Werten zu belegen,
    z.B. Startwert = 1, Increment = 2, 5 Werte: 1 3 5 7 9
 - Limitierung der Event-Werte auf 0..255
    (falsche werte werden rot hinterlegt)

Bleibt also noch:
 - Timestamps,
 - Hex Darstellung,
 - Speichern der Transmitter-Receiver-Daten
 - Löschen des TR-Fensters
 - Limit des TR-Buffers
 - Einstellmöglichkeit des Thread-Timings

=)
Gast #610297
Lesenswert?

Ich grübel da gerade über ein paar Sachen...

Wie soll der Timestamp aussehen?

20070721-10:44:37...?

Und mit den Aufteilung der Daten ist mir noch eine Idee bekommen um die 
Übersichtlichkeit zu erhöhen. Wie wäre es wenn die Tabelle in der ersten 
Spalte den Timestamp enthält, die weiteren 8 Spalten die gesendeten 
Daten und dann weitere 8 Spalten mit den empfangenen Daten?

Was das Thread-Timing angeht habe ich dafür auch noch eine 
Anwendungsmöglichkeit gefunden. Wenn der Wert zu klein ist, also der 
Thread häufig aufgerufen wird, dann kommt das Benutzer-Interface mit 
vielen neuen Daten nicht zurecht.
Gast #610322
Lesenswert?

Den Timestamp finde ich ok so.
Ich würde nur für gesendete/empfangene Daten jeweils einen separaten 
Timestamp spendieren.
Es kann ja auch sein, dass die Antwort erst etwas verzögert ankommt, 
weil die Elektronik vorher irgendetwas zu tun hat (Sensoren auslesen, 
rechnen, etc...)

Wie machst du das dann mit größeren Antworten als 8 Bytes? Die passen ja 
dann nicht mehr in die Tabelle, oder verstehe ich da was falsch?

Das mit dem Threadtiming klingt logisch - kann ich aber nicht 
beurteilen.

Gruß,
Christian
Gast #610337
Lesenswert?

Also ich stelle mir das so vor:

20070721-11:30:30   80 80 80 _ __ __ __ __   __ __ __ __ __ __ __ _
20070721-11:30:45   _ __ __ __ __ __ __ __   08 08 08 __ __ __ __ _
20070721-11:31:00   FF FF FF _ __ __ __ __   __ __ __ __ __ __ __ _
20070721-11:31:15   _ __ __ __ __ __ __ _   FF FF FF 00 00 00 FF FF
20070721-11:31:15   _ __ __ __ __ __ __ __   FF 00 00 00 __ __ __ _

Bedeutet:

zu erst 3x 0x80 gesendet, dann 15 Sekunden später 3x 0x80 empfangen,
weitere 15 Sekunden später 3x 0xff gesendet... dann wieder 15 sekunden 
später  "FF FF FF 00 00 00 FF FF FF 00 00 00" (hex) empfangen.
Gast #612925
Lesenswert?

So, Version 0.4 beta ist raus =).

Neue Features:
 - Timestamps,
 - Hex Darstellung,
 - Löschen des TR-Fensters
 - Limit des TR-Buffers
 - Einstellmöglichkeit des Thread-Timings

Die Daten werden aber zur Zeit erstmal noch hintereinander geschrieben, 
meine obige Idee, war mir von der Programmierung her zu komplex. Falls 
erwünscht werde ich bei Gelegenheit noch mal einen Split auf zwei 
Tabellen einbauen. Außerdem kommt auch noch das Abspeichern des Rx/Tx 
Buffers.

Naja soweit erstmal, ich hoffe ich hab nicht zuviele Bugs eingebaut ;).
Gast #613011
Lesenswert?

Hallo Wilfried,

cool, vielen Dank!

Hab gleich mal etwas ausprobiert und mir ist folgendes aufgefallen:

- Beim Umschalten zwischen dez und hex passieren anscheinend noch 
ungewünschte Nebeneffekte. Irgendwas wird da falsch 
umgerechnet/dargestellt.

- Wenn ein Buffer mit Hex-Werten gefüllt ist und Anzeigemodus HEX 
gewählt ist, dann werden die Bytes aus dem Buffer zwar richtig gesendet, 
aber im Anzeigefenster falsch interpretiert, d.h. obwohl es schon Hex 
ist, wird praktisch nochmal nach Hex konvertiert.

- Highlighting funktioniert bei mir immer noch nicht, ist aber absolut 
unwichtig.

persönliche Anmerkungen von mir:

- Wäre es möglich die Pfeile für Connection open/close zu entfernen? 
Dies würde mehr Platz für's IO-Fenster bringen und die Funtionalität 
gibt's ja über das Menü "Connection" bzw. Tastenkombination

- Besteht die Möglichkeit das IO-Fenster immer zu aktualisieren (nach 
jedem Senden/Empfangen)? Momentan ist es etwas umständlich immer wieder 
manuell zu den aktuellen Daten hinzuscrollen.

So wie die Daten dargestellt werden ist es meiner Meinung nach voll ok. 
Wegen mir brauchst du dir die Arbeit mit dem Split nicht machen.

Sonst ist das Program schon richtig gut und es macht voll Spaß damit zu 
arbeiten :)
Läuft bei mir schon unter der Kategorie "Standardprogramme".

Viele Grüße,
Christian
Gast #613168
Lesenswert?

So... ich hab jetzt noch mal ein paar Sachen programmiert.

Zunächst gibt es jetzt ein Menupunkt "View", darin kannst Du die Toolbar 
und die Elemente "Send Type" ... "Byte Order" ausblenden. Außerdem hab 
ich zwischen dem Rx/Tx-Fenster und dem unter Tab-Bereich ein Splitter 
eingebaut, Du kannst also die Aufteilung frei wählen.

Desweiteren hab ich noch den Save-Buffer Dialog eingebaut. Je nach wahl 
werden die Bytes aus dem Rx/tx Buffer hintereinander weg gespeichert.

Um im rx/tx Fenster immer automatisch nach unten zu scrollen gibts jetzt 
eine neue Option im Options-Dialog.

Die Problematik bei der Umwandlung der Daten konnte ich leider noch 
nicht nachvollziehen, aber auch das werden wir noch hinbekommen. Es wäre 
toll, wenn Du ein paar Screenshots machen könntest und mir die dann 
schicken.

Das Highlighting hat bei mir funktioniert, ich werde dazu noch mal ein 
paar Screenshots fertig machen, vielleicht hab ich das noch nicht 
richtig erklärt oder es hat tatsächlich noch bugs.

Desweiteren freut es mich natürlich das das Programm regelmäßigen 
einsatz findet =))).
Gast #613232
Lesenswert?

Guten Morgen Wilfried,

so, jetzt hast du's geschafft - mir fällt nix mehr ein, bin begeistert! 
:-D
Vielen Dank für die superschnelle Ergänzung!


>Die Problematik bei der Umwandlung der Daten konnte ich leider noch
>nicht nachvollziehen, aber auch das werden wir noch hinbekommen. Es wäre
>toll, wenn Du ein paar Screenshots machen könntest und mir die dann
>schicken.
Hab dir mal den Screenshot angehängt. Im Buffer sind die Daten als HEX 
abgelegt (werden zumindest hex gesendet). Die Anzeige wird dann im 
IO-Fenster nach DEC konvertiert obwohl es schon Hex ist.

>Das Highlighting hat bei mir funktioniert, ich werde dazu noch mal ein
>paar Screenshots fertig machen, vielleicht hab ich das noch nicht
>richtig erklärt oder es hat tatsächlich noch bugs.
ok, vielleicht bin ICH auch einfach nur unfähig und kann's nicht 
bedienen...

>Desweiteren freut es mich natürlich das das Programm regelmäßigen
>einsatz findet =)))
Gerne doch!

Viele Grüße,
Christian
Angehängte Dateien:
#662426
Lesenswert?

Hallo Wilfried,

ich hätte einen kleinen Wunsch und einen Bug zu melden :)

Bug:
Bei der Arbeit mit zwei Bildschirmen ist mir aufgefallen, dass wenn 
serial-io im "Nebenbildschirm" platziert ist und z.B. der Button 
"connection-open" gedrückt wird, dann erscheint das kleine Menü nicht im 
Zweitschirm, sondern im Hauptbildschirm. Ebenso mit den Options etc.

Wunsch:
Wäre es viel Aufwand die letzte empfangene message irgendwie grafisch 
z.B. fett hervorzuheben?
Wenn man die empfangenen Daten über längere Zeit "nebenbei" beobachtet, 
dann füllt sich ja das Fenster und wird schnell unübersichtlich wenn man 
nicht dauernd reinschaut, deshalb der Gedanke die letzte message 
irgendwie hervorzuheben, damit der "kurze Blick" gleich da landet wo er 
soll. Wäre als option manchmal "nice to have".

Viele Grüße,
Christian
#667698
Lesenswert?

Wilfried,

prinzipiell habe ich nichts dagegen wenn ihr die SUSE-RPMs auch im 
Projekt hochlädt. Allerdings frage ich mich, ob das Vorgehen wirklich 
sinnvoll ist. Am Ende habt ihr 20 Binärpakete für 5 Architekturen (evtl. 
kommt z.B. im BuildService PPC dazu), und das kann's auch nicht sein.

Stattdessen ist es normalerweise sinnvoll, ein Binary-RPM und ein 
Binary-DEB zu erstellen, das auf möglichst vielen Distris läuft (d.h. 
exotische Sachen statisch gelinkt, mit älterer Compiler/glibc-Version 
übersetzt, etc.) und den Rest den Distris selber zu überlassen.

Je nachdem wie sich das entwickelt kann ich das Programm auch in die 
SUSE-Distribution (also den FTP-Tree, auf der DVD ist kein Platz mehr 
für so "exotische" Sachen) aufnehmen.
Gast #668050
Lesenswert?

@ Bernhard: ok, bleibe ich erstmal bei den sourcen und bau ggf. noch mal 
was für Debian.

@ Christian: Geht mir mehr darum wie die Bildschirm konfiguriert sind, 
also die X Config. Ich kann mir vorstellen das es als ein breiter Screen 
läuft und da er das Programm irgendwann mal rüber geschoben hat. Da ich 
die Position speichere wird das Programm immer wieder dort hin 
geschoben, allerdings die Dialoge nicht. Das könnte ich, falls das so 
ist wie ich denke, wohl ändern.
Gast #670210
Lesenswert?

Hi,

Ich habe natürlich einen SF-Account. Allerdings finde ich die Option 
nicht (ich weiß, dass es sie gibt), also wenn du mir sagst wo ich da 
klicken muss ... :) SF ist mittlerweile so unübersichtlich geworden, 
IMO.


Gruß,
Bernhard

PS: Freshmeat ist ja keine Seite wo Projekte gehostet werden, steht also 
nicht in Konkurrenz zu Sourceforge (das wäre Berlios oder Savannah) 
sondern im Wesentlichen nur eine Softwaredatenbank. Also wenn du willst 
dass serial-io bekannt wird, dann ist Sourceforge eine gute 
Anlaufstelle.
Gast #671419
Lesenswert?

Sooooooooo =)... 0.4.3_beta ist raus:

Änderungen:
 - Stopbits können eingestellt werden (default ist "1", wie bisher)
 - Die Position der Dialoge wird gespeichert, bei dem dualhead
   setup sollte man maximal einmal den Dialog verschieben müssen.
 - Ein paar doppelte unrelevante Codezeilen entfernt
 - Weitere Dokumentation des Quellcodes (Doxyfile)...
   eher interessant für Leute die sich den Quellcode angucken

Außerdem hab ich mich bei freshmeat angemeldet =).
#680948
Lesenswert?

Also: Du verwendest QDialog als Hauptfenster. Zwar setzt du 
richtigerweise die
WindowFlags, aber trotzdem scheint Qt irgendeinen Bug zu haben so dass 
das
Fenster trotzdem dem Windowmanager als Dialog präsentiert wird. Zwar 
wird der
Fenstertyp (_NET_WM_WINDOW_TYPE) richtig gesetzt 
(_NET_WM_WINDOW_TYPE_NORMAL),
aber die Motif-Hints deuten auf einen Dialog hin.

Vergleiche

        xprop _MOTIF_WM_HINTS -name "Serial I/O Manager"

mit einem anderen (Qt-)Programm und du wirst feststellen, dass du genau 
die
Ausgabe erhältst die ein Dialog hat.

Der Fix ist einfach QMainWindow zu nehmen das ohnehin besser für ein
Hauptfenster geeignet ist. Wenn du den Patch anwendest, sehen Toolbar,
Menüleiste und Statusleiste nicht mehr so komisch aus (was mich schon 
immer
gewundert hat), sondern wie bei jedem anderen Programm, d.h. ohne Rand 
und die
Toolbar ist verschiebbar.

Siehe Patch und Screenshot als Vergleich.
Angehängte Dateien:
Gast #692952
Lesenswert?

Hi,

Ich hab in der letzten Woche mal wieder mehr mit Serial-Io gearbeitet 
und dabei sind mir einige Verbesserungen eingefallen:

Der letzte Name und Pfad unter dem man den TX/RX-Buffer abspeichert wird 
jetzt beim nächsten Programm start wieder geladen.

Für die Buffer kann man jetzt die Attribute Type,Width,Signed und 
ByteOrder fest einstellen.

Wenn man Daten in der Commando Zeile eingibt und überträgt kann man 
danach einen Buffer anhängen lassen, z.B. wenn man hinter Zeichenketten 
noch ein linefeed senden will/muss.
Gast #1633249
Lesenswert?

Hallo Zusammen,
weiß zwar nicht ob so ein alter thread noch als Anlaufstelle für 
Probleme geeignet ist aber Probier es trotzdem mal auf diesem Weg.

Hab heute mal die Sourcen, der Version 1.0, geladen. Beim kompilieren 
erhalte ich aber immer folgenden Fehler :
1
mainwindow.cpp: In member function ‘void MainWindow::openDevice()’:
2
mainwindow.cpp:1049: error: ‘class SerialPort’ has no member named ‘GetDtr’
3
mainwindow.cpp:1050: error: ‘class SerialPort’ has no member named ‘GetDsr’
4
mainwindow.cpp:1051: error: ‘class SerialPort’ has no member named ‘GetCts’
5
mainwindow.cpp:1052: error: ‘class SerialPort’ has no member named ‘GetRts’
6
mainwindow.cpp: In member function ‘void MainWindow::setSerialStreamAttributes(SerialPort&, int, int, int, int, int)’:
7
mainwindow.cpp:1108: error: ‘FLOW_CONTROL_SOFT’ is not a member of ‘SerialPort’
8
mainwindow.cpp: In member function ‘void MainWindow::viewTools()’:
9
mainwindow.cpp:2942: warning: suggest parentheses around assignment used as truth value
10
mainwindow.cpp: In member function ‘void MainWindow::viewSendType()’:
11
mainwindow.cpp:2947: warning: suggest parentheses around assignment used as truth value
12
mainwindow.cpp: In member function ‘void MainWindow::viewWidth()’:
13
mainwindow.cpp:2952: warning: suggest parentheses around assignment used as truth value
14
mainwindow.cpp: In member function ‘void MainWindow::viewSign()’:
15
mainwindow.cpp:2957: warning: suggest parentheses around assignment used as truth value
16
mainwindow.cpp: In member function ‘void MainWindow::viewByteOrder()’:
17
mainwindow.cpp:2962: warning: suggest parentheses around assignment used as truth value
18
mainwindow.cpp: In member function ‘void MainWindow::viewCRC()’:
19
mainwindow.cpp:2967: warning: suggest parentheses around assignment used as truth value
20
mainwindow.cpp: In member function ‘void MainWindow::viewSignals()’:
21
mainwindow.cpp:2972: warning: suggest parentheses around assignment used as truth value
22
make: *** [mainwindow.o] Fehler 1

Achso benutze Ubuntu 9.10 in der amd64 Version. Falls das hilfreich ist.


MfG Alex
Gast #1633598
Lesenswert?

Vielen Dank,
dass hat mich ein Stück weiter gebracht. Leider beendet er das 
Kompillieren nun mit folgenden Fehlern:
1
mainwindow.o: In function `MainWindow::openDevice()':
2
mainwindow.cpp:(.text+0x91e2): undefined reference to `SerialPort::GetDtr() const'
3
mainwindow.cpp:(.text+0x91f9): undefined reference to `SerialPort::GetDsr() const'
4
mainwindow.cpp:(.text+0x9210): undefined reference to `SerialPort::GetCts() const'
5
mainwindow.cpp:(.text+0x9227): undefined reference to `SerialPort::GetRts() const'
6
SerialReceiveThread.o: In function `SerialReceiveThread::startThread(SerialPort*, unsigned int)':
7
SerialReceiveThread.cpp:(.text+0x31d): undefined reference to `SerialPort::GetDsr() const'
8
SerialReceiveThread.cpp:(.text+0x329): undefined reference to `SerialPort::GetCts() const'
9
SerialReceiveThread.o: In function `SerialReceiveThread::setDTR(bool)':
10
SerialReceiveThread.cpp:(.text+0x3c1): undefined reference to `SerialPort::SetDtr(bool)'
11
SerialReceiveThread.o: In function `SerialReceiveThread::setRTS(bool)':
12
SerialReceiveThread.cpp:(.text+0x4a1): undefined reference to `SerialPort::SetRts(bool)'
13
SerialReceiveThread.o: In function `SerialReceiveThread::run()':
14
SerialReceiveThread.cpp:(.text+0x647): undefined reference to `SerialPort::GetCts() const'
15
SerialReceiveThread.cpp:(.text+0x655): undefined reference to `SerialPort::GetCts() const'
16
SerialReceiveThread.cpp:(.text+0x66c): undefined reference to `SerialPort::GetDsr() const'
17
SerialReceiveThread.cpp:(.text+0x67a): undefined reference to `SerialPort::GetDsr() const'
18
collect2: ld returned 1 exit status
19
make: *** [serial-io] Fehler 1

Ich werde daraus nicht schlau. Vielleicht ja einer von euch ;)

MfG Alex
Gast #1634161
Lesenswert?

Bei mir liegt sie auch dort. Wird dort auch von ld gelinkt. Siehe 
Ausgabe "ldconfig -v | grep libserial" :
1
/sbin/ldconfig.real: Can't stat /lib/x86_64-linux-gnu: No such file or directory
2
  libserial.so.0 -> libserial.so.0.0.0
3
/sbin/ldconfig.real: Cannot stat /usr/lib/libinotifytools.so: No such file or directory
4
  libserial.so.0 -> libserial.so.0.0.0

Installiert hab ich sie, da bei ubuntu nicht in den Paketquellen, über 
eine von mir kompillierte Quell-Version von sourceforge. Also mit
1
./configure
2
make
3
sudo checkinstall

Weiß allerdings nicht ob das meine Version 0.5.2 aus den Quellen 
überschrieben hat.


MfG Alex
Gast #2096229
Lesenswert?

Hi Leute,

vielleicht könnt ihr mir ja weiter helfen...
das Kompillieren wird mit dieser Fehlermeldung beendet:

g++ -c -pipe -O0 -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_XML_LIB 
-DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED 
-I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore 
-I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4 -I. 
-I. -o main.o main.cpp
In file included from main.cpp:22:
mainwindow.h:24: fatal error: SerialPort.h: Datei oder Verzeichnis nicht 
gefunden
compilation terminated.
make: *** [main.o] Fehler 1

Gruß,
Tobi

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren