Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
@xXSkyWalkerXx1: Hast Du denn eine Beschreibung des Protokolls über das man mit dem Gerät kommunizieren muss?
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Das kann dir hier keiner sagen. Prinzipiell kannst du https://github.com/trezor/cython-hidapi benutzen, um mit dem Ding zu reden. Nur musst du deine Skripte ja kompilieren, und dann auf das Ding bekommen. Das geht mit deren IDE, aber generisch ist da nix. Entweder hartes reverse engineering von allem, oder du hast Glueck und die haben zB einen compiler, den du einfach benutzen kannst. Und dann ist es "nur" das HID device ansprechen um das Skript draufzukriegen. Aber auch das ist kein Standardweg.
__blackjack__ hat geschrieben: Montag 2. Juli 2018, 16:52
@xXSkyWalkerXx1: Hast Du denn eine Beschreibung des Protokolls über das man mit dem Gerät kommunizieren muss?
Habe mal nachgeschaut und nichts gefunden.
Und ich selbst kenne mich da noch nicht aus.
__deets__ hat geschrieben: Montag 2. Juli 2018, 17:01
Das kann dir hier keiner sagen. Prinzipiell kannst du https://github.com/trezor/cython-hidapi benutzen, um mit dem Ding zu reden. Nur musst du deine Skripte ja kompilieren, und dann auf das Ding bekommen. Das geht mit deren IDE, aber generisch ist da nix. Entweder hartes reverse engineering von allem, oder du hast Glueck und die haben zB einen compiler, den du einfach benutzen kannst. Und dann ist es "nur" das HID device ansprechen um das Skript draufzukriegen. Aber auch das ist kein Standardweg.
Warte mal, ich glaube die haben ne API hochgeladen - da müsste doch was stehen oder?
Denn CronusPro enthält ein Compiler.
Was heisst "CronusPro enthaelt einen Compiler"? Das USB-Geraet selbst? Ganz bestimmt nicht, das ist ein popeliger AVR-Kern mit 16MHz. Da laeuft kein Compiler drauf. Sondern nur ein Interpreter fuer deine Skripte. Das die Software fuer den CronusPro die Skript compiliert ist klar. Das meinte ich mit "IDE". Ob *du* die Skripte von deinem Python-Programm aus selbst uebersetzen kannst, ohne die IDE benutzen zu muessen, das kann ich so nicht sagen. Wenn die eine Api "hochgeladen" haben, dann steht da vielleicht was dazu, ja. Ich hab' da nix gefunden.
__deets__ hat geschrieben: Montag 2. Juli 2018, 17:20
Was heisst "CronusPro enthaelt einen Compiler"? Das USB-Geraet selbst? Ganz bestimmt nicht, das ist ein popeliger AVR-Kern mit 16MHz. Da laeuft kein Compiler drauf. Sondern nur ein Interpreter fuer deine Skripte. Das die Software fuer den CronusPro die Skript compiliert ist klar. Das meinte ich mit "IDE". Ob *du* die Skripte von deinem Python-Programm aus selbst uebersetzen kannst, ohne die IDE benutzen zu muessen, das kann ich so nicht sagen. Wenn die eine Api "hochgeladen" haben, dann steht da vielleicht was dazu, ja. Ich hab' da nix gefunden.
CronusPro ist ja das Programm, nicht das Gerät.
Das Gerät ist der CronusMax.
Kurz:
CronusMax = Gerät
CronusPro = Compiler mit weiteren Features
Achso. Wie kann man denn sowas übersetzen?
Was müsste das Programm machen?
Wo/Was hast nichts gefunden - die API oder nützliche Infos aus der API?
Kann ja die API hier hochladen wenn du sie nicht haben solltest.
Es muss ein Programm geben wie zb cl.exe bei VisualStudio, das dort C++ nach Maschinensprache uebersetzt. Nur eben fuer dein GDC. Ob es das gibt, oder ob die den eingebaut haben in CronusPro so das man ohne die komplette IDE nix machen kann, kann ich dir nicht sagen. Dazu muesstest du mal deine Installation durchforsten, was da so drin is, und mit Task-Manager und Debugger schauen, was die Anwendung macht, wenn du auf den compile-Button drueckst.
__deets__ hat geschrieben: Montag 2. Juli 2018, 17:46
Es muss ein Programm geben wie zb cl.exe bei VisualStudio, das dort C++ nach Maschinensprache uebersetzt. Nur eben fuer dein GDC. Ob es das gibt, oder ob die den eingebaut haben in CronusPro so das man ohne die komplette IDE nix machen kann, kann ich dir nicht sagen. Dazu muesstest du mal deine Installation durchforsten, was da so drin is, und mit Task-Manager und Debugger schauen, was die Anwendung macht, wenn du auf den compile-Button drueckst.
In der API Datei sind 3 "interessante" Datein, die wie das Herz des Programmes aussehen - sind aber auch leider verschlüsselt.
Ich glaube wir beide haben sehr unterschiedliche Ansichten darueber, was eine API ist... was ich damit meine weiss ich. Was DU damit meinst leider nicht. Kannst du das mal erklaeren?
__deets__ hat geschrieben: Montag 2. Juli 2018, 17:49
Ich glaube wir beide haben sehr unterschiedliche Ansichten darueber, was eine API ist... was ich damit meine weiss ich. Was DU damit meinst leider nicht. Kannst du das mal erklaeren?
@xXSkyWalkerXx1: API meint für Programmierer das es da eine Dokumentation gibt die einem sagt wie die Schnittstelle für den Programmierer aussieht. Das können per Definition keine ”interessanten” verschlüsselten Dateien sein. Ich bin mir auch nicht sicher ob Du den Begriff „verschlüsselt“ hier richtig verwendest. Wahrscheinlich sind es Kompilate. Nur weil Du etwas nicht lesen kannst, ist es ja nicht verschlüsselt.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Achsu, die ... aber ne, die 3 Dateien sind wirklich verschlüsselt - zeigte mir mein RasPi an, beim Versuch es zu öffnen.
Sowas eben lerne ich noch - die Begriffe und so...
EDIT: In der API lässt sich allerdings nichts über die Compilierung finden.
@xXSkyWalkerXx1: Was zeigte Dir Dein RasPi an, und wie hast Du versucht die Dateien zu öffnen?
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
Ich hab' nicht oeffnen geschrieben. Ich habe ausfuehren geschrieben. Das ist Programmcode.
Den du so ohne weiteres nicht ausfuehren kannst. Theoretisch kannst du die DLLs in Python laden mit ctypes, und die darin enthaltenen Funktionen aufrufen. Praktisch kann das sehr schwer werden, weil es davon abhaengt, was genau in den DLLs ist, und ob das verstaendlich genug ist, um das ohne API-Dokumentation zu nutzen. Und wenn es sich dabei um C++ handelt, das darin enthalten ist, wuerde ich sogar so weit gehen zu sagen, dass es praktisch nicht machbar ist.
Vor allem aber stellt sich mir die Frage: warum? Da du noch nicht mal weisst, was eine DLL *ist*, ist es doch fraglich, ob du die ueberhaupt *brachst* fuer dein Vorhaben? Woher weisst du das denn?
@xXSkyWalkerXx1: Was meinst Du mit ”öffnen”? Da ist Maschinensprache drin die Dein Prozessor ausführen kann, und eventuell auch Daten. Wobei es heutzutage auch möglich wäre das .NET-Bytecode für die .NET-VM enthalten ist. Dann könnte man den Code *vielleicht* auch auf einem Raspi verwenden. Auf jeden Fall bräuchte man eine API-Beschreibung, denn an den exportierten Symbolen alleine wird man wohl nur in seltenen/einfachen Fällen raten können wie man die API benutzt.
Werkzeug für native DLLs wäre beispielsweise Dependency Walker. Für .NET gibt's sicher auch irgendwas was da ein wenig Reflection betreibt.
“The best book on programming for the layman is »Alice in Wonderland«; but that's because it's the best book on anything for the layman.” — Alan J. Perlis
__deets__ hat geschrieben: Montag 2. Juli 2018, 21:36
Ich hab' nicht oeffnen geschrieben. Ich habe ausfuehren geschrieben. Das ist Programmcode.
Den du so ohne weiteres nicht ausfuehren kannst. Theoretisch kannst du die DLLs in Python laden mit ctypes, und die darin enthaltenen Funktionen aufrufen. Praktisch kann das sehr schwer werden, weil es davon abhaengt, was genau in den DLLs ist, und ob das verstaendlich genug ist, um das ohne API-Dokumentation zu nutzen. Und wenn es sich dabei um C++ handelt, das darin enthalten ist, wuerde ich sogar so weit gehen zu sagen, dass es praktisch nicht machbar ist.
Vor allem aber stellt sich mir die Frage: warum? Da du noch nicht mal weisst, was eine DLL *ist*, ist es doch fraglich, ob du die ueberhaupt *brachst* fuer dein Vorhaben? Woher weisst du das denn?
Naja, ob ich die brauch, weiß ich nicht 100%, allerdings habe ich alle anderen Datein durchforstet - nichts was zur Übertragung der Daten zum CronusMax ist enthalten.
Und da ist es sehr wahrscheinlich, dass dann nur noch in der DLL was stehen kann.