Binarix FL-net Library for Windows

マニュアル>アプリケーション開発ガイド .NET編>メッセージ伝送

メッセージ伝送

メッセージ伝送の概要

コモンメモリによるデータ交信とは別にメッセージ伝送機能があり、特定のノード間でメッセージの送受信、または全ノードにメッセージを同報送信することができます。メッセージで一度に送信できるデータは、最大で1024バイトです。
メッセージには、要求メッセージ、応答メッセージ、透過形メッセージがあります。要求メッセージと応答メッセージは対になっていて、FL-net(OPCN-2)の仕様で用途が定義されています。要求メッセージを受信したノードは、送信元へ対の応答メッセージを送信します。但し、同報送信された要求メッセージを受信した時は、応答メッセージを送信しません。透過形メッセージは、ユーザーが用途を定義できるメッセージです。

メッセージの送受信権

コモンメモリは複数のユーザーアプリケーションからアクセスできますが、メッセージ伝送ができるユーザーアプリケーションは1つだけです。メッセージ伝送を行うには、メッセージ用イベントハンドラを定義しておく必要があります。FL-netネットワークをオープンする時に、他のユーザーアプリケーションが既にメッセージ用イベントハンドラを定義してオープンしている場合は、オープンに失敗します。最初にメッセージ用イベントハンドラを定義してFLnet.Openメソッドを呼び出したユーザーアプリケーションだけが、メッセージの送受信権を持ち、メッセージ伝送を行うことができます。

応答メッセージの送信

自ノード宛の(同報送信でない)要求メッセージを受信した時は、ユーザーアプリケーションが応答メッセージを送信する必要があります。要求メッセージに対応するイベントハンドラが定義されていない時は、FL-net通信エンジンが要求メッセージ送信元に対して非実装を示す応答メッセージを自動的に送信します。

メッセージ送受信キュー

FL-net通信エンジンは、メッセージ送受信キュー(FIFOバッファ)を持っています。メッセージを連続で送受信しても、キューに空きがある間は正常に処理できます。メッセージ送信キューが満杯の状態でメッセージ送信メソッドを呼び出した時は、エラーを返します。メッセージ受信キューが満杯の状態でメッセージを受信した時は、送信元にバッファ満杯を表すACKデータを送信します。メッセージ送受信キューの数は、下表の通りです。

メッセージ送信キューの数8
メッセージ受信キューの数16

ACKデータ

FL-net(OPCN-2)のメッセージ伝送は、メッセージを受信したノードが送信元にACKデータを送信することで、メッセージの通達確認をする仕様になっています。本製品では、FL-net通信エンジンがACKデータを自動的に送信します。ユーザーアプリケーションがACKデータを送信する必要はありません。