基礎編

最終更新日 2010/10/26
  • LEDを点灯するだけのライブラリ。ライブラリの雛形として使ってください。
  • ProtoTypingLabのレシピ35「Arduino用ライブラリを作りたい」よりも簡単で単純です。
  • arduino.ccのLibraryTutorialより少し簡単で単純で「日本語」で書かれています。

  1. ライブラリ開発時はkeyword.txtをlibraries内にライブラリ名と同じ名前のフォルダを作って入れおき、ライブラリはサンプルスケッチのフォルダの中に入れておくとタブでソースを切り替えられて便利
  2. コンストラクタを呼び出してライブラリを初期化する人と、コンストラクタを呼び出してインスタンスを作っておき、初期化する公開関数を後で呼び出す人もいる。ライブラリを作る人それぞれの方針があるようだ。
  3. ProtoTypingLabとLibraryTutorialではヘッダファイルの非公開メンバ変数名の先頭にはアンダーバー(_)を付けている。
  4. ライブラリが完成したらサンプルスケッチの先頭の#include "xxxxx"を#include <xxxxx>に変更して、ライブラリフォルダに移動

ライブラリ作成中によく出るエラー

  • declaration of 'void クラス名::メンバ関数' outside of class is not definition ・・・メンバ関数がクラス外で宣言されていません
    ちゃんと宣言してるじゃん!! と言いたくなるエラーだが、ついついセミコロンをメンバ関数の宣言の後に入れてしまうのが原因
  • '変数名' was not declared in this scope ・・・'このスコープの中で変数名'は宣言されていません
    ちゃんと宣言してるし、他のメンバ関数でも使っていてエラー出てないじゃん!! と言いたくなりますが、クラス名を書くのを忘れているのでスコープ外なんです。
  • 'インスタンス名' was not declared in this scape ・・・このスコープ中で'インスタンス名'は宣言されていません
    スケッチをライブラリ化している移行段階でテストをしていると、ライブラリの中に入った関数をスケッチから呼び出すことがあります。最終的に、呼び出しているスケッチもライブラリに入れてしまうわけですが、元のスケッチのインスタンス名.メンバ関数という呼び出しからインスタンス名を削除し忘れるとエラーが発生します。インスタンス名を削除しましょう。


Č
ċ
ď
LedTest.cpp
(0k)
webmaster .,
2010/10/24 7:57
ċ
ď
LedTest.h
(0k)
webmaster .,
2010/10/24 7:57
ċ
ď
LedTestSample.pde
(0k)
webmaster .,
2010/10/24 8:21
ċ
ď
keywords.txt
(1k)
webmaster .,
2010/10/24 7:57