Nachdem ich den Punkt erreicht hatte, an dem ich alle meine eigenen GPIO -Probleme gelöst hatte, hatte ich gegangen, um eine Bibliothek eines anderen zu bewältigen, das ein Upgrade benötigte. Ich könnte natürlich einfach meine eigene Gabelung ihres Projekts nehmen und jetzt, wo ich Arbeitscode habe, meinen eigenen Weg gehen, aber ich möchte anbieten, was ich als Pull -Anfrage getan habe.
Es gibt jetzt eine Sache, die ein Knackpunkt sein könnte, was ich nach Möglichkeit vermeiden möchte. Ich habe eine neue Abhängigkeit von der libgpiod Bibliothek eingeführt. Ich möchte, dass dieser neue Code auf einem Raspberry Pi 3 oder 4 kompiliert wird, ohne dass libgpiod installiert wurde, aber nutzen Sie die libgpiod, wenn vorhanden. < /p>
Code: Select all
{
"targets": [
{
"variables": {
"dht_verbose%": "false"
},
"target_name": "node_dht_sensor",
"sources": [
"src/bcm2835/bcm2835.c",
"src/node-dht-sensor.cpp",
"src/dht-sensor.cpp",
"src/util.cpp",
"src/abstract-gpio.cpp", //
Hier ist der Beginn meines abstrakt-gpio.cpp: < /p>
#include "abstract-gpio.h"
#include
#include "bcm2835/bcm2835.h"
#include
#include //
Meine C ++ -Fertigkeiten sind bestenfalls verrostet. Bis jetzt hatte ich meinen eigenen C ++-Code seit fünf Jahren nicht mehr berührt, und vor fünf Jahren hatte ich C ++ seit über einem Jahrzehnt nicht mehr berührt. Ich habe zu diesem Zeitpunkt lediglich Beispiele und einfache Rezepte verfolgt. Ich möchte nicht und vielleicht, wenn nötig, dummy libgpiod c ++ stubs (das nicht die reale libgpiod stört), die dieses [url=viewtopic.php?t=11587]Problem[/url] für mich lösen kann?
Update: < /p>
Hier ist eine etwas, aber nicht vollständig zufriedenstellende Lösung, bei der ein Benutzer das Modul wie folgt installieren muss: < /p>
npm install node-dht-sensor --use_libgpiod=true
...Wenn sie benötigen (oder wollen ... funktioniert dies auch auf einem RPI 4), um libgpiod zu verwenden, sodass die Standardinstallation ohne zusätzlichen Parameter auferlegt werden kann Keine neuen Bibliotheksabhängigkeiten.
Code: Select all
{
"targets": [
{
"variables": {
"dht_verbose%": "false",
"use_libgpiod%" : "false"
},
"target_name": "node_dht_sensor",
"sources": [
"src/bcm2835/bcm2835.c",
"src/node-dht-sensor.cpp",
"src/dht-sensor.cpp",
"src/util.cpp",
"src/abstract-gpio.cpp",
],
"include_dirs": [
" durch etwas automatisches, dem moralischen Äquivalent, zu ersetzen, das moralische Äquivalent von "verfügbar (libgpiod)" oder "existiert ('/usr/include/gpiod.h')" , falls eine solche Knoten-GYP-Fähigkeit vorhanden ist, die einfach nicht einfach in in der Lage ist Die Dokumentation.