Liebe Stack Overflow-Community,
Ich schreibe in der Hoffnung, dass Sie mir vielleicht helfen können, mit C # oder C ++ eine Verbindung zu einem drahtlosen 802.15.4-Transceiver herzustellen. Lassen Sie mich ein wenig über mein Projekt erklären. In diesem Semester habe ich einige Zeit damit verbracht, eine drahtlose Sensorplatine zu entwickeln, die Licht-, Temperatur-, Feuchtigkeits- und Bewegungserkennungsebenen alle 8 Sekunden an einen drahtlosen USB-Transceiver weiterleitet. Jetzt habe ich den USB-Transceiver nicht entwickelt. Einer der TA's für den Kurs hat es getan, und er hat mir während des gesamten Entwicklungsprozesses für meine Sensorplatine geholfen (es war meine erste echte PCB).
Jetzt habe ich die Sensorplatine programmiert und ich weiß, dass sie die Daten an den Transceiver sendet. Der Grund, warum ich das weiß, ist, dass dieser TA ein einfaches Python-Modul geschrieben hat, das das neueste Informationspaket aus dem Transceiver holt (wann immer es empfangen wurde), die Hex-Nachricht entpackt und einige der Sensordaten in Arbeitseinheiten umwandelt Celsius,% relative Luftfeuchtigkeit usw.)
Das Problem ist, dass das Python-Modul auf seinem Computer (Mac) funktioniert, aber nicht auf meinem (Windows 7). Im Grunde verwendet er eine Bibliothek namens Zigboard, um die Sensornachricht sowie pyusb- und pyserial-Bibliotheken in der Skizze auszupacken. Der drahtlose 802.15.4-Transceiver zählt sich selbst auf einem Mac automatisch auf, führt jedoch bei der Ausführung auf einem PC zu größeren Problemen. Grundsätzlich glaube ich, dass das Problem darin liegt, dass es keinen signierten Fahrer gibt. Ich benutze libusb, um die INF-Datei für dieses spezielle Gerät zu erzeugen ... und ich weiß, dass es auf meinem Computer funktioniert, weil eine LED auf meiner Sensorplatine und auf dem Transceiver blinkt, wenn eine Nachricht gesendet / empfangen wird. Wenn ich jedoch dasselbe Python-Modul ausführe, das dieser TA auf seinem Computer ausführt, erhalte ich eine Fehlermeldung über fehlende Windows-Backend-Binärdateien und es kommt nie wirklich zu dem Stadium, in dem es die Daten zurückgibt.
Aber das größere Problem ist nicht mit diesem Python-Modul. Das größere Problem ist, dass ich Python nicht verwenden möchte. Diese Sensorplatine wird Teil eines größeren Projekts sein, in dem ich eine Software-Schnittstelle in C # oder C ++ entwerfe, um viele verschiedene Dinge zu tun (von denen einige mit diesen Sensordaten zu tun haben). Letztendlich möchte ich in der Lage sein, in .NET zu arbeiten, um auf die Daten von diesem Transceiver zuzugreifen. Alles was ich noch machen muss, ist diese Python-Skizze (die nicht einmal auf meinem Rechner läuft). Ich weiß, dass es am einfachsten wäre, wenn ich dem TA weitere Fragen stellen würde, wie man das an meiner Maschine erledigen kann ... aber ich habe dieses Semester schon eine Menge Zeit mit diesem Projekt verbracht und außerdem ist er momentan nicht mehr da Stadt, Dorf. Auch seine Präferenz ist Python, wobei ich mich in C # oder C ++ am wohlsten fühle und diese Umgebung für dieses Projekt verwenden möchte. Jetzt würde ich sagen, ich bin kompetent in Elektronik und Programmierung (aber sicherlich kein Experte ... mein Hintergrund ist eigentlich in der Architektur). Aber, wenn jemand mir helfen könnte, etwas Code zu entwickeln, damit ich die Sensormeldung entpacken konnte, die vom Brett gesandt wurde, würde es sehr geschätzt werden. Ich habe unten die Python-Skizze angehängt, mit der der TA seine Sensornachrichten auf seinem Rechner auspackt (aber wie ich schon sagte ... ich hatte Probleme auf meinem Windows-Rechner). Hat jemand irgendwelche Vorschläge?
Nochmals vielen Dank.
%Vor%Danke für die Hilfe. Der Schlüssel zu allem war LibUSBDotNet . Nachdem ich das in meinem Projekt installiert und darauf verwiesen hatte, konnte ich ein Konsolenfenster erstellen, das die eingehenden Sensordaten verarbeiten konnte. Ich musste einige der Funktionen aus der ursprünglichen Zigboard-Bibliothek portieren ... aber auf
Ich bin nicht 100% sicher, wie ich das genau machen soll, aber nachdem ich mich kurz umgeschaut habe, sehe ich, dass der Kern des Problems darin besteht, etwas wie die ZigBoard-Bibliothek in C # zu implementieren.
Die ZigBoard-Lib verwendet eine Python-USB-Lib, um über eine API mit dem USB-Gerät zu kommunizieren. Sie sollten LibUsbDotNet haben um dies in C # zu replizieren und wenn Sie den ZigBoard libs Code lesen, sollten Sie in der Lage sein, die API auszuarbeiten.