Forum: PC-Programmierung Mit C# Logic2 von Saleae via gRPC fernsteuern


von Flunder (flunder)


Lesenswert?

Hallo, ich versuche gerade das schon im Betreff genannte. Saleae sieht 
eigentlich vor, das in Python zu machen und gibt da auch Beispiele vor. 
Ich würde aber lieber C# nehmen, weil ich das besser kenne. Eine 
Webseite hat mich überzeugt, das neuere grpc-dotnet zu verwenden.
Ich habe in Visual Studio bereits ein Projekt aufsetzen können, in dem 
ich mit Hilfe von Nuget gRPC Client Geraffel eingebunden habe. Ich 
konnte auch die .proto Datei von Saleae ins Projekt einbinden. Das ganze 
lässt sich jetzt auch fehlerlos zu einer .exe compilieren. Es macht halt 
noch nix. Wie stelle ich jetzt in der Software die Verbindung zum Server 
her ? Und wie schicke ich die festgelegten Kommandos ? Damit verbunden, 
wie gebe ich den Kommandos die Parameter mit und wie werte ich 
Rückgabewerte aus ? Was da geht, ist nach meinem Verständnis in der 
.proto Datei festgelegt. Da muss doch eine Art Precompiler C# Klassen 
draus gemacht haben, oder ?

Siehe auch
https://saleae.github.io/logic2-automation/getting_started.html

von Bertram S. (bschall)


Lesenswert?


von Monk (roehrmond)


Lesenswert?

Das GRPC Protokoll ist von Google. Es funktioniert so ähnlich wie REST, 
allerdings über HTTP/2 Protokoll und mit einer kompakteren Darstellung 
als das sonst übliche JSON (oder XML).
https://grpc.io/docs/languages/csharp/

Konkret für C# verweist Google dort auf die Doku von Microsoft.

Zum Testen empfehle ich Kreya. Damit kannst du GRPC Services manuell 
aufrufen und die Antworten sehen. Kreya stellt Requests und Responses im 
JSON Format dar. Behalte dabei im Hinterkopf, das die Kommunikation auf 
der Leitung jedoch ein anderes Format verwendet.
https://kreya.app/downloads/

In dem Zusammenhang magst du vielleicht auch gpcurl verwenden. Das 
Programm funktioniert so ähnlich wie curl, nur halt für GRPC. Es eignet 
sich sehr gut dafür, GRPC Aufrufe in Shell Scripte (bzw. Batch Dateien) 
einzubetten. Auch dieses Programm benutzt zur Darstellung das JSON 
Format.
https://github.com/fullstorydev/grpcurl

: Bearbeitet durch User
von Flunder (flunder)


Lesenswert?

Bertram S. schrieb:
> Google ist toll...
>
> => https://github.com/saleae/SaleaeSocketApi
> ==>

Zählen ist toll. Das ist für Logic1, die alte Version der PC-Software 
von Saleae. Ich suche was für die aktuelle Logic2.

von Flunder (flunder)


Angehängte Dateien:

Lesenswert?

Danke für den Tip mit Kreya. Damit konnte ich zumindest schonmal mit der 
Schnittstelle von Logic2 spielen und sehen, dass die läuft.

Mit dem ersten C# Projekt zum Ausprobieren bin ich auch schon ein Stück 
weiter. Leider wirft eine von den eingebundenen Komponenten eine 
Exception. Was muss ich machen, damit das nicht passiert ?

In dem angehängten Archiv ist mein Projekt und 2 Captures von Wireshark. 
"Selber" ist das, was geschickt wird, wenn mein Programm anfragt, 
"Kreya" ist das, was geschickt wird, wenn ich per Kreya die Anfrage 
schicke.

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.