2020年7月25日土曜日

node-red早速トラブル!

node-red-(start/stop/restart)など動いて、快適でエディターを弄ろうか、、、と思いましたが、まずはgpioの操作が出来なければ、始まらない!ということで、npm install node-red-contrib-gpioとやると、下のようなエラーが、、、。 ソースのコンパイルにcppの所で失敗しているようなので、これは拙い。  長期戦になりそうです。
何方か、解決方法教えて!
rpi gpioってのがあるので、それを使えばよさそうな、気もします。
pi@raspberrypi:~/.node-red $ npm install node-red-contrib-gpio

> serialport@6.0.5 install /home/pi/.node-red/node_modules/firmata/node_modules/serialport
> prebuild-install || node-gyp rebuild

prebuild-install WARN install No prebuilt binaries found (target=12.18.3 runtime=node arch=arm platform=linux)
make: ディレクトリ '/home/pi/.node-red/node_modules/firmata/node_modules/serialport/build' に入ります
  CXX(target) Release/obj.target/serialport/src/serialport.o
In file included from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
../../../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../../../nan/nan.h:2294:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
     , reinterpret_cast(AsyncExecuteComplete)
                                                              ^
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:41:48: error: no matching function for call to ‘v8::Value::ToString()’
   v8::String::Utf8Value path(info[0]->ToString());
                                                ^
In file included from /home/pi/.cache/node-gyp/12.18.3/include/node/node.h:67,
                 from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2668:44: note: candidate: ‘v8::MaybeLocal v8::Value::ToString(v8::Local) const’
   V8_WARN_UNUSED_RESULT MaybeLocal ToString(
                                            ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2668:44: note:   candidate expects 1 argument, 0 provided
In file included from /home/pi/.cache/node-gyp/12.18.3/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/node.h:67,
                 from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2684:31: note: candidate: ‘v8::Local v8::Value::ToString(v8::Isolate*) const’
                 Local ToString(Isolate* isolate) const);
                               ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2684:31: note:   candidate expects 1 argument, 0 provided
                 Local ToString(Isolate* isolate) const);
                               ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/serialport.cpp:48:53: error: no matching function for call to ‘v8::Value::ToObject()’
   v8::Local options = info[1]->ToObject();
                                                     ^
In file included from /home/pi/.cache/node-gyp/12.18.3/include/node/node.h:67,
                 from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2672:44: note: candidate: ‘v8::MaybeLocal v8::Value::ToObject(v8::Local) const’
   V8_WARN_UNUSED_RESULT MaybeLocal ToObject(
                                            ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2672:44: note:   candidate expects 1 argument, 0 provided
In file included from /home/pi/.cache/node-gyp/12.18.3/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/node.h:67,
                 from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2686:31: note: candidate: ‘v8::Local v8::Value::ToObject(v8::Isolate*) const’
                 Local ToObject(Isolate* isolate) const);
                               ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2686:31: note:   candidate expects 1 argument, 0 provided
                 Local ToObject(Isolate* isolate) const);
                               ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/serialport.cpp:78:69: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
   uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen);
                                                                     ^~~~~~~~~~~~~
../src/serialport.cpp: In function ‘void EIO_AfterOpen(uv_work_t*)’:
../src/serialport.cpp:95:30: warning: ‘v8::Local Nan::Callback::Call(int, v8::Local*) const’ is deprecated [-Wdeprecated-declarations]
   data->callback.Call(2, argv);
                              ^
In file included from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
../../../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local argv[]) const {
   ^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:113:53: error: no matching function for call to ‘v8::Value::ToObject()’
   v8::Local options = info[1]->ToObject();
                                                     ^
In file included from /home/pi/.cache/node-gyp/12.18.3/include/node/node.h:67,
                 from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2672:44: note: candidate: ‘v8::MaybeLocal v8::Value::ToObject(v8::Local) const’
   V8_WARN_UNUSED_RESULT MaybeLocal ToObject(
                                            ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2672:44: note:   candidate expects 1 argument, 0 provided
In file included from /home/pi/.cache/node-gyp/12.18.3/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/node.h:67,
                 from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2686:31: note: candidate: ‘v8::Local v8::Value::ToObject(v8::Isolate*) const’
                 Local ToObject(Isolate* isolate) const);
                               ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2686:31: note:   candidate expects 1 argument, 0 provided
                 Local ToObject(Isolate* isolate) const);
                               ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/serialport.cpp:135:71: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
 uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate);
                                                                     ^~~~~~~~~~~~~~~

../src/serialport.cpp: In function ‘void EIO_AfterUpdate(uv_work_t*)’:
../src/serialport.cpp:150:30: warning: ‘v8::Local Nan::Callback::Call(int, v8::Local*) const’ is deprecated [-Wdeprecated-declarations]
   data->callback.Call(1, argv);
                              ^
In file included from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
../../../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local argv[]) const {
   ^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:175:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
  uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose);
                                                                     ^~~~~~~~~~~~~~

../src/serialport.cpp: In function ‘void EIO_AfterClose(uv_work_t*)’:
../src/serialport.cpp:188:30: warning: ‘v8::Local Nan::Callback::Call(int, v8::Local*) const’ is deprecated [-Wdeprecated-declarations]
   data->callback.Call(1, argv);
                              ^
In file included from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
../../../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local argv[]) const {
   ^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:215:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
  uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush);
                                                                     ^~~~~~~~~~~~~~

../src/serialport.cpp: In function ‘void EIO_AfterFlush(uv_work_t*)’:
../src/serialport.cpp:231:30: warning: ‘v8::Local Nan::Callback::Call(int, v8::Local*) const’ is deprecated [-Wdeprecated-declarations]
   data->callback.Call(1, argv);
                              ^
In file included from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
../../../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local argv[]) const {
   ^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:250:53: error: no matching function for call to ‘v8::Value::ToObject()’
   v8::Local options = info[1]->ToObject();
                                                     ^
In file included from /home/pi/.cache/node-gyp/12.18.3/include/node/node.h:67,
                 from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2672:44: note: candidate: ‘v8::MaybeLocal v8::Value::ToObject(v8::Local) const’
   V8_WARN_UNUSED_RESULT MaybeLocal ToObject(
                                            ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2672:44: note:   candidate expects 1 argument, 0 provided
In file included from /home/pi/.cache/node-gyp/12.18.3/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/node.h:67,
                 from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2686:31: note: candidate: ‘v8::Local v8::Value::ToObject(v8::Isolate*) const’
                 Local ToObject(Isolate* isolate) const);
                               ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:2686:31: note:   candidate expects 1 argument, 0 provided
                 Local ToObject(Isolate* isolate) const);
                               ^~~~~~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/serialport.cpp:270:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
   uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet);
                                                                    ^~~~~~~~~~~~
../src/serialport.cpp: In function ‘void EIO_AfterSet(uv_work_t*)’:
../src/serialport.cpp:285:30: warning: ‘v8::Local Nan::Callback::Call(int, v8::Local*) const’ is deprecated [-Wdeprecated-declarations]
   data->callback.Call(1, argv);
                              ^
In file included from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
../../../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local argv[]) const {
   ^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:314:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
   uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet);
                                                                    ^~~~~~~~~~~~
../src/serialport.cpp: In function ‘void EIO_AfterGet(uv_work_t*)’:
../src/serialport.cpp:329:96: warning: ‘bool v8::Object::Set(v8::Local, v8::Local)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 an::New("cts").ToLocalChecked(), Nan::New(data->cts));
                                                                              ^

In file included from /home/pi/.cache/node-gyp/12.18.3/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/node.h:67,
                 from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:3499:22: note: declared here
                 bool Set(Local key, Local value));
                      ^~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/serialport.cpp:330:96: warning: ‘bool v8::Object::Set(v8::Local, v8::Local)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 an::New("dsr").ToLocalChecked(), Nan::New(data->dsr));
                                                                              ^

In file included from /home/pi/.cache/node-gyp/12.18.3/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/node.h:67,
                 from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:3499:22: note: declared here
                 bool Set(Local key, Local value));
                      ^~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/serialport.cpp:331:96: warning: ‘bool v8::Object::Set(v8::Local, v8::Local)’ is deprecated: Use maybe version [-Wdeprecated-declarations]
 an::New("dcd").ToLocalChecked(), Nan::New(data->dcd));
                                                                              ^

In file included from /home/pi/.cache/node-gyp/12.18.3/include/node/v8-internal.h:14,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:27,
                 from /home/pi/.cache/node-gyp/12.18.3/include/node/node.h:67,
                 from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
/home/pi/.cache/node-gyp/12.18.3/include/node/v8.h:3499:22: note: declared here
                 bool Set(Local key, Local value));
                      ^~~
/home/pi/.cache/node-gyp/12.18.3/include/node/v8config.h:328:3: note: in definition of macro ‘V8_DEPRECATED’
   declarator __attribute__((deprecated(message)))
   ^~~~~~~~~~
../src/serialport.cpp:336:30: warning: ‘v8::Local Nan::Callback::Call(int, v8::Local*) const’ is deprecated [-Wdeprecated-declarations]
   data->callback.Call(2, argv);
                              ^
In file included from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
../../../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local argv[]) const {
   ^~~~
../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’:
../src/serialport.cpp:362:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
  uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain);
                                                                     ^~~~~~~~~~~~~~

../src/serialport.cpp: In function ‘void EIO_AfterDrain(uv_work_t*)’:
../src/serialport.cpp:377:30: warning: ‘v8::Local Nan::Callback::Call(int, v8::Local*) const’ is deprecated [-Wdeprecated-declarations]
   data->callback.Call(1, argv);
                              ^
In file included from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
../../../../nan/nan.h:1742:3: note: declared here
   Call(int argc, v8::Local argv[]) const {
   ^~~~
../src/serialport.cpp: At global scope:
../src/serialport.cpp:383:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses]
 SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local& v8str)) {
                            ^
../src/serialport.cpp:402:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses]
 SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) {
                              ^
../src/serialport.cpp:413:17: error: variable or field ‘init’ declared void
   void init(v8::Handle target) {
                 ^~~~~~
../src/serialport.cpp:413:17: error: ‘Handle’ is not a member of ‘v8’
../src/serialport.cpp:413:34: error: expected primary-expression before ‘>’ token
   void init(v8::Handle target) {
                                  ^
../src/serialport.cpp:413:36: error: ‘target’ was not declared in this scope
   void init(v8::Handle target) {
                                    ^~~~~~
../src/serialport.cpp:413:36: note: suggested alternative: ‘tzset’
   void init(v8::Handle target) {
                                    ^~~~~~
                                    tzset
In file included from ../../../../nan/nan.h:56,
                 from ../src/./serialport.h:6,
                 from ../src/serialport.cpp:1:
../src/serialport.cpp:437:25: error: ‘init’ was not declared in this scope
 NODE_MODULE(serialport, init);
                         ^~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/node.h:608:36: note: in definition of macro ‘NODE_MODULE_X’
       (node::addon_register_func) (regfunc),                          \
                                    ^~~~~~~
../src/serialport.cpp:437:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(serialport, init);
 ^~~~~~~~~~~
../src/serialport.cpp:437:25: note: suggested alternative: ‘int’
 NODE_MODULE(serialport, init);
                         ^~~~
/home/pi/.cache/node-gyp/12.18.3/include/node/node.h:608:36: note: in definition of macro ‘NODE_MODULE_X’
       (node::addon_register_func) (regfunc),                          \
                                    ^~~~~~~
../src/serialport.cpp:437:1: note: in expansion of macro ‘NODE_MODULE’
 NODE_MODULE(serialport, init);
 ^~~~~~~~~~~
make: *** [serialport.target.mk:111: Release/obj.target/serialport/src/serialport.o] エラー 1
make: ディレクトリ '/home/pi/.node-red/node_modules/firmata/node_modules/serialport/build' から出ます
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:315:20)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:275:12)
gyp ERR! System Linux 5.4.51-v7+
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/pi/.node-red/node_modules/firmata/node_modules/serialport
gyp ERR! node -v v12.18.3
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
npm WARN node-red-project@0.0.1 No repository field.
npm WARN node-red-project@0.0.1 No license field.

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! serialport@6.0.5 install: `prebuild-install || node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the serialport@6.0.5 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/pi/.npm/_logs/2020-07-25T05_37_13_431Z-debug.log
pi@raspberrypi:~/.node-red $ 

0 件のコメント:

アンテナ切り替えの自動化 (続き)

 調子よく動いていると思っていたら、インジケータのLEDが次々と点かなくなってゆく、、、。 不精して、出力端子(14Vのon/off)にLEDを直列抵抗と入れていたのですが、これではダメっぽい。 LEDが死んでいる。 では、という事でFETのスイッチを入れて、ゲート電圧で検出して...