Forum: PC-Programmierung GNU Octave Instrument Control (Serieller Port)


von Georg S. (randy)


Lesenswert?

Hallo,

ich versuche unter Linux Mint 21.2 den Seriellen Port in einem Octave 
Script zu lesen. Mit der Anwendungsverwaltung installieren sich Octave 
6.4.0 und das Package Instrument Control 0.7.1
Ziemlich alte Versionen, aber wäre mir egal solange es funktioniert. 
Allerdings bleibt das Beispiel-Skript das ich aus dem Internet geladen 
habe beim Befehl "serialport" mit Syntax Error hängen. "serialportlist" 
geht.
Laut der Doku gibt es beide Befehle. Allerdings finde ich die Doku nur 
für die aktuelle Version, nicht spezifisch für 0.7.1. Haben sich die 
Befehle geändert?Kann mir jemand weiter helfen?
https://gnu-octave.github.io/packages/instrument-control/

1
pkg load instrument-control
2
disp('SerialPort:');
3
serialportlist
4
5
s1 = serialport(“/dev/ttyUSB0”,115200);   % Open the port
6
pause(1);                    % Optional wait for device to wake up

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Georg S. schrieb:

> s1 = serialport(“/dev/ttyUSB0”,115200);   % Open the port

Schau dir mal die Anführungszeichen um den Gerätenamen genau an. Ich 
glaube nicht, dass das für Octave ein gültiges String-Literal darstellt.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Georg S. schrieb:
> Mit der Anwendungsverwaltung installieren sich Octave
> 6.4.0 und das Package Instrument Control 0.7.1

Tu dir einen Gefallen und installiere aktuelle Versionen.

> Allerdings finde ich die Doku nur
> für die aktuelle Version, nicht spezifisch für 0.7.1.

Du weißt aber schon, dass die Doku eingebaut ist? Du kennst das help 
Kommando und das doc Kommando?

von Vanye R. (vanye_rijan)


Lesenswert?

> Tu dir einen Gefallen und installiere aktuelle Versionen.

Obwohl ich wirklich sehr pro-Linux eingestellt bin und es seit anbeginn 
der Zeitrechnung mein Standardsystem ist, das ist leider nicht so 
einfach.
Wenn dein Maintainer dir nicht aktuelleres anbietet dann bedeutet es 
letztlich das du den Source selber uebersetzen musst. Sowas war in den 
90ern noch einfach. Aber heute braucht das Programm schnell mal einen 
Berg Libraries oder einen abgefahrenen Make ersatz. Natuerlich alles in 
bestimmten, neuen Versionen. Ziehst du die nach kann es sein das du 
andere Software ebenfalls modernisieren muss. Und selbstverstaendlich 
bei jeder Distribution anders!

An Linux ist sehr viel toll, aber das ist die eine grosse Leiche im 
Keller!


Bezueglich der Anfuehrungszeichen stimme ich aber zu. Das sieht sehr 
falsch aus. Ich wuesste garnicht wie ich das "andere" tippen sollte. 
Dabei dachte ich schon mit "'`´" koennte genug Verwirrung entstehen :)

Vanye

von Εrnst B. (ernst)


Lesenswert?

Vanye R. schrieb:
> Wenn dein Maintainer dir nicht aktuelleres anbietet dann bedeutet es
> letztlich das du den Source selber uebersetzen musst.

Oder du installierst dir das Teil als Flatpak.

https://flathub.org/apps/org.octave.Octave

Sollte auch auf Mint 21.1 gehen.

Evtl. musst du beim Aufrufen --device=/dev/ttyUSB0 mit angeben.

von Vanye R. (vanye_rijan)


Lesenswert?

> Oder du installierst dir das Teil als Flatpak.

Ich bin nicht der TO, das muss also jeder fuer sich entscheiden! Aber 
ich finde das schon allein deshalb inakzeptabel weil das so ist als wenn 
du einen Haufen Kacke hast und anstatt das Problem zu loesen machst du 
eine Tischdecke drueber die nett aussieht.

Man soll bitte mal die Probleme angehen und nicht immer neue 
Softwarelayer, wie man sie auch immer nennen will, dazwischen schieben. 
Und es macht ein System auch nicht besser wenn du hinterher droelfzig 
ausgelagerte Pakete hast. Und in welcher Version deiner Virtualisierung? 
Immer aktuell gehalten? Und wenn es "dein" Paket nicht als Flatpack 
gibt, sondern nur snap?

Das ist einfach eine schlechte Loesung.

Vanye

von Georg S. (randy)


Lesenswert?

> Tu dir einen Gefallen und installiere aktuelle Versionen.

Manchmal ist die Version im Repository wirklich antik. Aber wenn die nur 
alt ist und es keinen guten Grund gibt eine neuere Version zu brauchen, 
dann bleibe ich i.A. bei der VBersion vom Repository. Meistens tut sich 
ja nur in Details was.

Bei KiCAD hab ich die neueste Version per Flatpak. Das hat aber auch 
seine Nachteile (Gigabytes an Speicherverbrauch, ständig neue Versionen 
mit neuen schlecht getesteten Ärgernissen)

Ob S. schrieb:
>> s1 = serialport(“/dev/ttyUSB0”,115200);   % Open the port
>
> Schau dir mal die Anführungszeichen um den Gerätenamen genau an.

Tja, so einfach kann es sein. Das war's. Ich hatte die Fehlermeldung 
falsch interpretiert als dass er den Befehl schon nicht kennt.

> Du weißt aber schon, dass die Doku eingebaut ist? Du kennst das help
> Kommando und das doc Kommando?

Was ich nicht gefunden habe, ist eine Liste von Kommandos die ein 
"Package" mitbringt. WEil ich davon ausging dass es den Befehl nicht 
gibt, hab ich immer nach einer Liste von Befehlen des Package gesucht.

Vielen Dank an alle für die Denkanstöße.

von Εrnst B. (ernst)


Lesenswert?

Vanye R. schrieb:
> Das ist einfach eine schlechte Loesung.

Ich halte flatpak und snap auch nicht für eine schöne Lösung.
In einer "idealen Welt" wären beide nicht nötig.

Aber für den 08/15 Anwender, der einfach nur eine neue Version von 
Applikation X haben will, ohne seinen ganzen OS-Unterbau zu 
aktualisieren oder Gigabyte-Weise build-essentials, lib*-dev usw 
installieren will um selber zu compilieren, durchaus brauchbar.

Und ja, der am Compiler gesparte Plattenplatz geht dann für drölfzig 
verschiedene Versionen an KDE-Libs, Gnome-Application-Platforms, 
Mesa-Libs, JDKs usw. drauf. Aber die kommen sich dann wenigstens nicht 
in die Quere.

von Vanye R. (vanye_rijan)


Lesenswert?

> Und ja, der am Compiler gesparte Plattenplatz geht dann für drölfzig

Da kann man nichts sparen. Ein Linux ohne Compiler ist kein Linux. :-p

Vanye

von Alexander S. (alesi)


Lesenswert?

Georg S. schrieb:
> ich versuche unter Linux Mint 21.2 den Seriellen Port in einem Octave
> Script zu lesen. Mit der Anwendungsverwaltung installieren sich Octave
> 6.4.0 und das Package Instrument Control 0.7.1

Ist das Dein eigener PC und bist Du der Admin? Falls ja, warum 
aktualisierst Du Linux Mint nicht auf 22.1? Danach solltest Du 
aktuellere Versionen von octave und octave-instrument-control haben oder 
installieren können.

Bei Debian stable ist octave auf 7.3.0-2 und octave-instrument-control 
auf 0.8.0-2, bei Debian testing auf 9.4.0-1 bzw. 0.9.5-1.

Oder ist es nicht Dein PC und er wird von jemand anderen administriert?

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Vanye R. schrieb:

> Bezueglich der Anfuehrungszeichen stimme ich aber zu. Das sieht sehr
> falsch aus. Ich wuesste garnicht wie ich das "andere" tippen sollte.

Ich auch nicht. Der Quelltext wurde vermutlich irgendwo aus dem Web 
kopiert, wo ein übereifriger Typographie-Agent ihn bereits vor der 
Auslieferung an den Browser verschlimmbessert hatte. Es könnte aber auch 
ein ähnliches Teil "intelligenter" Software im Browser selber gewesen 
sein, der für den Unfug verantwortlich zeichnet.

Web-Technologien sind die Seuche, nicht abschaltbare 
Verbesserungsautomatiken ebenfalls. Und KI setzt dem allen noch das 
Sahnehäubchen auf...

von Georg S. (randy)


Lesenswert?

Alexander S. schrieb:
> Ist das Dein eigener PC und bist Du der Admin? Falls ja, warum
> aktualisierst Du Linux Mint nicht auf 22.1?

Weil: Never change a running system.

> Danach solltest Du
> aktuellere Versionen von octave und octave-instrument-control haben oder
> installieren können.

Es hat sich ja heraus gestellt dass die alten Versionen gar nicht das 
kein Problem waren.
Ich hatte eine Fehlermeldung missinterpretiert dass es den Befehl unter 
dem Namen gar nicht gibt, und dann hatte ich gesehen dass sich die 
Befehlsnamen von dem Package in der Vergangenheit ab und zu geändert 
hatten. Deswegen war ich auf der Suche nach einer Doku genau zu meinem 
Versionsstand.
Aber jetzt geht's ja...

Ob S. schrieb:
> Ich auch nicht. Der Quelltext wurde vermutlich irgendwo aus dem Web
> kopiert, wo ein übereifriger Typographie-Agent ihn bereits vor der
> Auslieferung an den Browser verschlimmbessert hatte.

Schon klar, natürlich aus dem Web kopiert ;-)
Aber die Hochkommas hat meine Wetware höchstpersönlich verbrochen. Ich 
springe wohl zu viel zwischen Python und C hin und her, und nur 
gelegentlich Matlab/Octave.

von Ob S. (Firma: 1984now) (observer)


Lesenswert?

Georg S. schrieb:

> Schon klar, natürlich aus dem Web kopiert ;-)

Was sonst? Es sein denn, du schreibst Quelltext mit WinWord/Writer o.ä.

> Aber die Hochkommas hat meine Wetware höchstpersönlich verbrochen.

???

> Ich
> springe wohl zu viel zwischen Python und C hin und her, und nur
> gelegentlich Matlab/Octave.

Keine der genannten Targetsprachen könnte mit diesen Quotes irgendwas 
Sinnvolles anfangen. Ich würde es mal für eine Schutzbehauptung (AKA: 
Lüge) halten.

von Alexander S. (alesi)


Lesenswert?

Georg S. schrieb:
> Weil: Never change a running system.

Debian stable ist ein "running system":
https://www.debian.org/doc/manuals/debian-faq/choosing.de.html#s3.1

von Georg S. (randy)


Lesenswert?

Ich hab jetzt Hochkomma und Anführungszeichen verwechselt.

> Keine der genannten Targetsprachen könnte mit diesen Quotes irgendwas
> Sinnvolles anfangen.

Aber ich denke doch dass ich da was mit Python durcheinander gebracht 
habe, denn genau in Python kann man super abwechselnd das Hochkomma oder 
Anführungszeichen für Strings benutzen:
https://w3schools.tech/de/tutorial/python/python_strings

von Ein T. (ein_typ)


Lesenswert?

Georg S. schrieb:
> Aber ich denke doch dass ich da was mit Python durcheinander gebracht
> habe, denn genau in Python kann man super abwechselnd das Hochkomma oder
> Anführungszeichen für Strings benutzen:
> https://w3schools.tech/de/tutorial/python/python_strings

Die Unicode-Quotes aus Deinem ersten Beitrag werfen allerdings auch in 
Python einen SyntaxError.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.