質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Alexa

Alexa(アレクサ)は、米アマゾンが開発したクラウドベースのAIアシスタント。Amazon EchoやEcho dotに搭載され、話かけると音楽を再生したり、天気予報やスケジュールなど様々な情報を提供します。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

解決済

1回答

1040閲覧

esp32のWemoライブラリでコンパイルエラー

KIDATAKAYUKI

総合スコア0

Alexa

Alexa(アレクサ)は、米アマゾンが開発したクラウドベースのAIアシスタント。Amazon EchoやEcho dotに搭載され、話かけると音楽を再生したり、天気予報やスケジュールなど様々な情報を提供します。

コンパイルエラー

コンパイルのフェーズで生成されるエラーです。よく無効なシンタックスやタイプが含まれているとき発生します。

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2021/05/15 16:22

aideepenのesp32開発ボードを使ってalexaからledをコントロールするテストを行いたいのですが、
esp32-alexa-wemo-emulatorのサンプルプログラムをコンパイルすると、
no matching function for call to 'WemoSwitch::WemoSwitch(const char [4], int, void (&)(), void (&)())'
というエラーが出ます。
関数の引数エラー?のようですが引数は正しいように思えます。
解決方法をご教授願えれば幸いです。

動作環境
ARDUINO1.8.15
esp32-alexa-wemo-emulator-masterライブラリ

プログラム
https://github.com/igorantolic/esp32-alexa-wemo-emulator/tree/master/examples/SingleSwitch

参考にしたサイト
https://qiita.com/Teppei_s/items/524523017868e0e623a0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/05/15 21:38

あなたがいくら正しいと思ってても、コンパイラさんはそうは言ってません。 コードを提示しよう
thkana

2021/05/15 23:29

1.8.15が出てたのか...もう少し様子をみて導入しよう。それはともかく。 てもとのArduino IDE 1.8.13ですが、 esp32-alexa-wemo-emulater ライブラリをダウンロード、インストールして サンプルSingleSwitchをビルドしてみましたがエラーは出ませんでした。 ざっと見たところ、見落としがなければWemoSwitchのコンストラクタが明示的に呼ばれているのはSingleSwitchの49行目 light = new WemoSwitch("DESK lights", 80, lightOn, lightOff); だけのようなので、引数リストがconst char [4], int, void (&)(), void (&)()となるのは相当異常な事態だと思います。 環境設定に問題があるのでしょうか...? エラーメッセージの詳細(発生場所等)を提示できますか?
KIDATAKAYUKI

2021/05/16 00:38

Arduino:1.8.15 (Windows 10), ボード:"ESP32 Dev Module, Disabled, Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS), 240MHz (WiFi/BT), QIO, 80MHz, 4MB (32Mb), 115200, None" C:\Users\takayuki\Documents\Arduino\sketch_may15a\sketch_may15a.ino: In function 'void setup()': sketch_may15a:50:62: error: no matching function for call to 'WemoSwitch::WemoSwitch(const char [12], int, void (&)(), void (&)())' light = new WemoSwitch("DESK lights", 80, lightOn, lightOff); ^ In file included from C:\Users\takayuki\Documents\Arduino\sketch_may15a\sketch_may15a.ino:4:0: C:\Users\takayuki\Documents\Arduino\libraries\esp32-alexa-wemo-emulator-master\src/WemoSwitch.h:31:9: note: candidate: WemoSwitch::WemoSwitch(String, unsigned int, CallbackFunction, CallbackFunction, CallbackFunction) WemoSwitch(String alexaInvokeName, unsigned int port, ^ C:\Users\takayuki\Documents\Arduino\libraries\esp32-alexa-wemo-emulator-master\src/WemoSwitch.h:31:9: note: candidate expects 5 arguments, 4 provided C:\Users\takayuki\Documents\Arduino\libraries\esp32-alexa-wemo-emulator-master\src/WemoSwitch.h:30:9: note: candidate: WemoSwitch::WemoSwitch() WemoSwitch(); ^ C:\Users\takayuki\Documents\Arduino\libraries\esp32-alexa-wemo-emulator-master\src/WemoSwitch.h:30:9: note: candidate expects 0 arguments, 4 provided C:\Users\takayuki\Documents\Arduino\libraries\esp32-alexa-wemo-emulator-master\src/WemoSwitch.h:11:7: note: candidate: WemoSwitch::WemoSwitch(const WemoSwitch&) class WemoSwitch { ^ C:\Users\takayuki\Documents\Arduino\libraries\esp32-alexa-wemo-emulator-master\src/WemoSwitch.h:11:7: note: candidate expects 1 argument, 4 provided 「WiFi.h」に対して複数のライブラリが見つかりました 使用済:C:\Users\takayuki\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.6\libraries\WiFi 未使用:C:\Users\takayuki\Downloads\arduino-1.8.15\libraries\WiFi exit status 1 no matching function for call to 'WemoSwitch::WemoSwitch(const char [12], int, void (&)(), void (&)())' 「ファイル」メニューの「環境設定」から 「より詳細な情報を表示する:コンパイル」を有効にすると より詳しい情報が表示されます。 エラーメッセージの詳細です。 スクリーンショット↓ https://photos.app.goo.gl/dn8Y3azQWo6hFNV79
thkana

2021/05/16 01:21

追加の情報は質問を編集して記入したほうがベターかと思います。画像も貼れるし。 それはそれとして、 https://github.com/igorantolic/esp32-alexa-wemo-emulator/blob/master/src/WemoSwitch.h と C:\Users\takayuki\Documents\Arduino\libraries\esp32-alexa-wemo-emulator-master\src/WemoSwitch.h が一致しているかどうか確認してみてください。 WemoSwitch(String alexaInvokeName, unsigned int port, CallbackFunction onCallback, CallbackFunction offCallback); が WemoSwitch::WemoSwitch(String, unsigned int, CallbackFunction, CallbackFunction, CallbackFunction) に変わっちゃってるような?
KIDATAKAYUKI

2021/05/16 01:47

解決いたしました。 追加情報の件、ありがとうございます、以後気を付けます。 ご指摘の通り WemoSwitch(); WemoSwitch(String alexaInvokeName, unsigned int port, CallbackFunction onCallback, CallbackFunction offCallback, CallbackFunction statusCallback); ~WemoSwitch(); となっていました。 修正後もほかのエラーが出るので、確認したところ原因は以下の通り。 原因: https://github.com/mongonta0716/esp32-alexa-wemo-emulator からインストールしたパッケージが加工されたものだった 対処: https://github.com/igorantolic/esp32-alexa-wemo-emulator こちらからダウンロードすることで解決 諸々、ありがとうございました。
thkana

2021/05/16 01:55

まずは解決してなにより。結果をまとめて「自己解決」として回答しておいてください。 > 以後気を付けます この質問からそうしてもいいんですよ?
guest

回答1

0

自己解決

解決いたしました。
追加情報の件、ありがとうございます、以後気を付けます。
ご指摘の通り
WemoSwitch();
WemoSwitch(String alexaInvokeName, unsigned int port,
CallbackFunction onCallback, CallbackFunction offCallback, CallbackFunction statusCallback);
~WemoSwitch();
となっていました。
修正後もほかのエラーが出るので、確認したところ原因は以下の通り。
原因:
https://github.com/mongonta0716/esp32-alexa-wemo-emulator
からインストールしたパッケージが加工されたものだった

対処:
https://github.com/igorantolic/esp32-alexa-wemo-emulator
こちらからダウンロードすることで解決

諸々、ありがとうございました。

投稿2021/05/16 01:57

KIDATAKAYUKI

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問