Mscomm32.ocx を使用してシリアル ポートに送信する

この記事では、Mscomm32.ocx コントロールを使用してシリアル ポートに情報を送信する方法について説明します。

元の製品バージョン: Visual FoxPro
元の KB 番号: 139526

概要

この記事では、Mscomm32.ocx を使用してシリアル ポートにデータを送信するために必要な設定について説明します。 Mscomm32.ocx には、Microsoft Visual FoxPro Professional Edition が付属しています。 これは、Microsoft Windows 95 以降のバージョンの Windows を実行しているコンピューターで使用できます。

詳細

mscomm コントロールを使用してシリアル ポートにデータを送信するために最も頻繁に使用されるプロパティは次のとおりです。

CommPort

プロパティは CommPort 、通信ポート番号を指定します。 Comm ポートに対応する数値プロパティ。 既定では、このプロパティは com1 に対応する 1 に設定されています。 有効な値は、コンピューターにインストールされているシリアル ポートとその構成に応じて、1、2、3、または 4 です。

Settings

プロパティは Settings 、シリアル ポートのボー レート、パリティ、データ ビット、およびストップ ビットを構成します。 Settings プロパティは、個々のコンマ区切り値を含む文字列です。 既定では、Settings プロパティは次のとおりです。9600、N、8、1 このプロパティは、9600 ボー、パリティなし、8 データ ビット、1 ストップ ビットに対応します。

次のボー レート値は有効です。110、 300、600、1200、2400、4800、9600 (既定値)、14400、19200、28800、38400、56000、57600、115200、128000、256000。

PortOpen

プロパティは PortOpen 、シリアル ポートが開いてアクティブかどうかを制御する論理値を指定します。 前のプロパティがシリアル ポートの使用を開始するように設定されたら、このプロパティを true に設定できます。

出力

Output プロパティには、シリアル ポートに送信される文字の文字列が割り当てられます。 前のプロパティが設定された後に文字列 "Hello World" をシリアル ポートに出力するには、次のコマンドを使用します。

 myform.mycomm.output = "Hello World"

アプリケーションに応じて必要になる可能性があるその他のプロパティは次のとおりです。

CommEvent

CommEventプロパティには、最新の通信イベントまたはエラーを表す値が含まれています。

Sthreshold

プロパティは Sthreshold 、送信される出力バッファー内の最小文字数を指定します。

OutBufferCount

OutBufferCount コントロールは、送信バッファーで待機している文字数を返します。 プロパティが 0 の場合は、常に Sthreshold 0 にする必要があります。 プロパティを OutBufferCount 0 に設定すると、送信バッファーがクリアされます。

OutBufferSize

プロパティは OutBufferSize 、送信バッファーのサイズを指定します。 既定では、このバッファーは 512 バイトです。 送信バッファーが大きいほど、他のアプリケーションで使用できるメモリが少なくなります。 低速ボー レートとシリアル ポートに書き込まれる大きなテキスト文字列は、この値を大きくする必要があることを意味する場合があります。

次に示すのは、comm コントロールを設定し、標準の Hayes モデム コマンドを使用して電話番号 555-1234 にダイヤルする方法を示すサンプルです。

 PUBLIC ComForm
 ComForm = CREATEOBJECT('Form')
 ComForm.AddObject("Testcom","Olecontrol","MSCOMMLib.MSComm")
 ComForm.Testcom.CommPort = 2 && Use Comm2, The second Serial Port.
 ComForm.Testcom.Settings = "14400,N,8,1" && 14.4 Kbaud, No Parity,
 && 8 data Bits, 1 Stop Bit
 ComForm.Testcom.PortOpen = .T.
 ComForm.Testcom.Output = "ATDT555-1234" + chr(13) && Dialing the number
 * The chr(13) is needed to complete the modem command sequence
 ComForm.Testcom.PortOpen = .F.
 ***** End Code *****

注:

これをアプリケーションで使用し、Visual FoxPro セットアップ ウィザードを使用してアプリケーションを配布すると、アプリケーションの実行時に次のエラーが表示されることがあります。

プログラム エラー OLE エラー コード 0x80040112: このクラスの適切なライセンスが見つかりません。