-
印刷する
I/O Gatewayの汎用シリアルドライバーの使用方法
I/Oゲートウェイと任意のシリアルデバイスとの通信を可能にする方法について説明します。
**2021年11月1日をもって、チューリップはI/O Gatewayデバイスの販売を終了します。Edge IO、Edge MCデバイスは引き続き販売しています。詳しくはこちら
EdgeIOシリアルガイド
EdgeMC シリアルセットアップガイド
この記事では、I/O Gatewayの汎用シリアルドライバーを使用して、ほとんどのシリアルデバイスと通信する方法について説明します。この記事は、Edge MCや Edge IOなど、他のTulip Edgeデバイスにも汎用的に適用できます。
この記事は、I/Oゲートウェイのセットアップが完了していることを前提にしています。
なお、このドライバーは、現在WindowsのTulip Playerでのみ利用可能なシリアルドライバー(Player Only)とは異なります。
汎用シリアルドライバーとは?
汎用シリアルドライバーは、I/Oゲートウェイが他のデバイスと共通のシリアルプロトコルで通信できるようにするものです。これらのデバイスは、以下のようなものがあります。
- Arduino
- ラズベリーパイ
- その他のTulip Edgeデバイス
- マイクロコントローラー
- その他多くのデバイス
このドライバは多機能なため、複雑な設定になっています。この設定は、他のデバイスの設定と正確に一致させる必要があります。
このドライバは、一度に複数のデバイスとの通信をサポートします。
注:チューリップ社では、汎用シリアルドライバーに接続するデバイスのカスタムコードは書きません。
汎用シリアルドライバーを起動する
I/Oゲートウェイが作成するローカルネットワークにログインし、コンピュータをI/Oゲートウェイに接続します。
デバイスポータルを開きます。ダッシュボード・ページで、ページの左側にある「ドライバの設定」ボタンをクリックします。
ドライバ設定ページで、「Generic Serial」オプションをクリックします。
デフォルトでは、「Generic Serial」オプションはすでに緑色(有効)になっており、いくつかの一般的な設定がされているはずです。
Windowsでは、キャリッジリターンに⽯を使う傾向があります。
汎用シリアルドライバは、ドライバをオンにするためにいくつかの設定が必要です。
以下は、各フィールドのオプションです。
サフィックスを書き込む
- 期待される入力任意の文字列 - I/O Gateway がデバイスに送信するメッセージに付加され、通常は改行( \n) またはキャリッジリターン( \n\r)です。
- 必須No
パスマッチャー
- 期待される入力デバイスのシステムパス - 未使用のシリアルデバイスにマッチするように * を指定します (USB-to-serialアダプタを使用する場合に便利です)
- 必須:はい
名前
- 期待される入力このデバイスの名前(アプリケーションからデバイスを参照するために使用されます)。
- 必須:はい
デリミタ
- 入力必須項目です。任意の文字列(デバイスからのメッセージをチャンクに分割し、チューリップのアカウントに送信するために使用されます。)
- 必須:はい
ボーレート
- 入力必須。デバイスが通信に使用するボーレート
- 必須:はい
ネイティブDB9ポート
I/O GatewayのネイティブDB9ポートを使用する場合、パスマッチャーに /dev/ttyO4という
パスを使用する必要があります。これは、大文字のOで、ゼロではありません。
シリアルドライバーで動作するアプリを作る
ここでは、ドライバをテストするためのアプリを作成する方法を説明します。
まず、新しいアプリを作成し、ボタンを追加します。
そのボタンにトリガーを追加して、ドライバの設定に使用した名前を持つ汎用シリアルデバイスを呼び出します。
以下は、"Then "ステートメントに必要なフィールドです。
- "デバイス関数の実行"
- "汎用シリアルデバイス"
- "シリアルデバイスに文字列を送信"
- "このステーション "で
- 送信先のデバイス"テキスト" "RS232"
- 送信するメッセージ"text" "testing generic serial"
そのアプリにトリガーを追加して、汎用シリアルドライバーがデータを出力したときに変数にデータを記録するようにします。正しいデバイスがデータを出力した場合のみデータを保存するよう、"If "ステートメントを使用します。
とします。
- "Device" "Generic Serial Device" が "this station" で出力した場合
もし
- "デバイス出力"
- "名前"
- "="
- "テキスト" "RS232"
Then
- "データ操作"
- "保存"
- "デバイス出力" "データ"
- の場所を指定します。"汎用シリアル" (これは変数の名前です)
その変数をアプリに追加してください。name "と "data "プロパティを持つオブジェクトになります。
アプリのテスト
ヌルモデムとUSB-RS232変換器を使用して、アプリをテストします。
USBをコンピュータに接続します。次にヌルモデムアダプターをRS232アダプターに接続し、I/O GatewayのDB9ポートに接続します
から起動します。
Windowsの場合は、Puttyを使って接続をテストします。デバイスマネージャーを使用して、ポート番号を取得します。
Speed "欄にCOMポート番号を入力し、"Connection Type "に "Serial "を選択する。
Putty端末は、起動しているアプリのボタンをクリックしたときのみ、I/O Gatewayにメッセージを出力します。
メッセージ'Tulip'をタイプしてエンターキーを押すことで、Puttyを通して送信してください。
Node.jsを使ってLinuxやMacで汎用シリアルドライバをテストする方法
node.jsとnpmが必要です。そして、npmを通してserialport
パッケージをインストールします。
const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')。
const port = new SerialPort('/dev/ttyUSB0', { baudRate: 19200 })
const parser = new Readline()
port.pipe(parser)
parser.on('data', line => {)
console.log(> ${line})
});
let test = false;
setInterval(()=>{
if (test){
port.write('outputn');
test = false
}
else {
port.write('other outputxxn');
test = true
}
},1000)