自作パーツライブラリのテンプレートについて



  • マイページから新規作成で「Parts/Util - 自分のパーツライブラリやUtilのためのjsファイル」を選択した時に展開されるテンプレート(ソースコード)が実行時に下記のエラーとなります。

    [Error] ReferenceError: Can't find variable: PartsRegistrate   (private_work.js:26)
    

    private_work.jsの内容は以下の通り(展開されたテンプレートからクラス名だけを「LED」から「LEDEx」に変更しています)。

    class LEDEx {
      constructor() {
        this.keys = ["anode","cathode"];
        this.requiredKeys = ["anode"];
      }
    
      wired(obniz) {
        this.obniz = obniz;
        this.io_anode = obniz.getIO(this.params.anode);
        if (this.params.cathode) {
          this.io_cathode = obniz.getIO(this.params.cathode);
          this.io_cathode.output(false);
        }
      }
    
      on() {
        this.io_anode.output(true);
      }
    
      off() {
        this.io_anode.output(false);
      };
    };
    
    if (PartsRegistrate) {  //ここでエラー
      PartsRegistrate("LEDEx", LEDEx);
    }
    

    PartsRegistrate()はstaticメソッドなので、Obniz.を付けました。

    if (Obniz.PartsRegistrate) {
      Obniz.PartsRegistrate("LEDEx", LEDEx);
    }
    

    しかし、今度は下記のエラー。

    [Error] Error: unknown parts [LEDEx]
    Parts — obniz.js:8168
    wired — obniz.js:8174
    :  :
    

    PartsRegistrate()内で、第2引数arg1の型がfunctionの場合を考慮していないことが原因では?

    とりあえず、テンプレートにinfo()の実装を追加して、PartsRegistrate()呼び出しの引数を変えました。

    :   :
    static info() {
      return {
        name: 'LEDEx',
      };
    }
    :   :
    if (Obniz.PartsRegistrate) {
      Obniz.PartsRegistrate(LEDEx);
    }
    

  • administrators

    @nak435 ご連絡ありがとうございます。

    テンプレートが古いobniz.js対応のままだったのが原因でした。
    修正しました。

    partsregistrateも入れようかと思ったのですが、
    https://obniz.io/doc/lessons_newparts

    で、partsregistrateは自分のプログラム内で行うことにしているので、削除するのみにしました。


 

Recent Projects

  • @nak435 かしこまりました。よろしくお願いします。

    read more
  • @Yuki-Sato さん、

    外部の3.3vを使うとはいえ普通にvccやgndを供給して問題なくうごくのであれば、弊社での動作確認後Flick Hatのライブラリとして公開できればと思っているのですがいかがでしょう。

    今週末に確認しますので、お待ちください。

    read more
  • @nak435 時間がかかってすいません、

    なんとか3.3vをgndにつないでFlick Largeを動かしたかったのですが、うまく動かすことができなかったです。
    3.3vをgndを繋がずに接続するというのはライブラリで推奨して伝えることは難しいと思ってます。

    Flick LargeでなくFlick Hatの方で、外部の3.3vを使うとはいえ普通にvccやgndを供給して問題なくうごくのであれば、弊社での動作確認後Flick Hatのライブラリとして公開できればと思っているのですがいかがでしょう。

    よろしくお願い致します。

    read more
  • @nak435 ありがとうございます。
    接続は3.3vのgnd以外同じでした。
    エラーはそのせいかもしれませんが、しかし電気的にはgndを繋がない場合3.3vとしてうまく供給できないはずなのでそこが不思議です。

    教えていただいたプログラムの部分を修正して試してみたいと思います。
    また少し時間がかかりそうなのですが、早めに試したいと思います。

    引き続きよろしくお願い致します。

    read more