接続方法
Obniz
クラスはobnizIDを元に作成される1つのデバイスを表すクラスですが、インスタンス化と同時に自動的に接続が開始され、接続が成功するとonconnectに指定した関数が、切断でoncloseに指定した関数が呼ばれます。切断後も自動的に再接続を試みます。
Obnizクラスに指定できるデバイス指定は以下のとおりです。
Type | Example | Description |
---|---|---|
obniz ID | new Obniz('1234-5678') |
obnizIDを文字列で指定します。ハイフンは無視されます。 |
obniz ID | new Obniz('sn_AAAABBB') |
シリアルナンバーを指定します。sn_ を先頭に付ける必要があります。 |
IP | new Obniz('192.168.0.100') |
デバイスのIP(IPv4)を指定します。オンプレミスでの利用設定がされているデバイスのみ可能です。 |
// Javascript Full Example
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
}
obniz.onclose = async function() {
}
部品の操作やioの操作など、デバイスに対する操作は接続した後でのみ行えるため、onconnect後に操作するように指定します。oncloseは切断後に呼び出される関数です。そのため「デバイスとの接続が切れたのでモーターをOFFにする」という処理は既に接続が切れているのでoncloseにプログラムで書くことはできません。詳しくはこのページの「切断」をご覧ください。
// Javascript Full Example
var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
obniz.io0.output(true);
}
obniz.onclose = async function() {
}
プロパティ
obnizに対する初期設定を引数で指定することができます。
// Javascript Full Example
new Obniz('1234-5678', { /* option here */ })
アクセストークン
デバイスにアクセストークンが発行されている場合、そのアクセストークンやそのデバイスを保有しているアカウントのAPI Keyなどが接続に必要となります。
それら接続用のキーは以下のようにaccess_token
として指定します。
// Javascript Full Example
new Obniz('1234-5678', {access_token: 'your token here'})
指定されていない場合はWebsocketは接続できず400系エラーとなります。ブラウザでは
HTTP Authentication faild
などのエラーがコンソールに表示されます。
自動プロンプト
ブラウザ上で実行している場合にobniz idとして正しくない場合は自動的にpromptが表示されます。そこでidを入れることでそのデバイスに接続することが可能です。
これはidとして正しくない形式の場合にのみ表示されます。正しくても存在しないobniz idを入れた場合には表示されません。
接続状態
接続状態はconnectionStateにて取得することができます。
// Javascript Full Example
var obniz = new Obniz('1234-5678');
console.log(obniz.connectionState) // => === "connecting" or "closed"
obniz.onconnect = async function() {
console.log(obniz.connectionState) // => === "connected"
}
登録済みデバイス
obniz.jsではデバイスに初めて接続するときにハードウェア情報を取得し、ioがいくつあるのか、bleはあるのか、内蔵センサーはあるのかなどを元にobnizインスタンスを構成します。
// Javascript Full Example
var obniz = new Obniz("1234-5678")
obniz.io0 // => undefined
obniz.onconnect = async function() {
obniz.io0 => exist if device has io0
}
この他に事前にobniz.jsに登録されているデバイスの場合はペリフェラルや内蔵センサーのための関数が用意されているものを利用できます。利用可能なものは以下のobnizクラスのリファレンスより見つけられます。
https://obniz.github.io/obniz/obnizjs/classes/obnizcore.obniz.html
obnizBoardはもちろん、他にもM5StickCなどが事前登録されています。
https://obniz.github.io/obniz/obnizjs/classes/obnizcore.hardware.m5stickc.html
以下のように記載することで利用できます。引数はnew Obniz()と同じです。
// Javascript Full Example
var obniz = new Obniz.M5StickC("1234-5678")
これにより内部に登録されているbuttonや赤外線LEDも登録済みの状態で利用できます。