プロパティ名 | 内容 |
Active | 通信ポートのオープン/クローズ |
PortName | 使用する RS-232C の COM ポート名 |
LastError | プロパティ設定時、メソッド呼び出し時のエラー状態を表す値 |
メソッド名 | 内容 |
FindPort | アロハPC1に接続している通信ポートの検索 |
Open | 通信ポートのオープン |
Close | 通信ポートのクローズ |
ReadMemory | アロハPC1のメモリ読み出し |
ReadMemory2 | アロハPC1のメモリ読み出し |
WriteMemory | アロハPC1のメモリ書き込み |
イベント名 | 内容 |
OnPhoneDetect | 電話着信時 |
OnCommError |
電話着信時のRS-232Cの通信回線エラー |
OnError | 電話着信時のアロハPC1との通信エラー |
VB の場合) Set aloha = New NDAAlohaPC1.AlohaPC1CommX VBScript の場合) Set aloha = Server.CreateObject("NDAAlohaPC1.AlohaPC1CommX") Delphi の場合 varAloha: Variant; Aloha := CreateOleObject('NDAAlohaPC1.AlohaPC1CommX'); または varAloha: IAlohaPC1CommX; Aloha := CreateOleObject('NDAAlohaPC1.AlohaPC1CommX') as IAlohaPC1CommX; ※ ラッパコンポーネントを作ればコンポーネントをフォームに貼り付けるだけで使えます。 |
Active |
[アクセス] Read and Write [データ型] IDL: VARIANT_BOOL VB: Boolean Delphi: WordBool [初期値] False [解説] 通信ポートのオープン/クローズを設定します。 True に設定するとオープン(Open メソッド呼び出し)、False に設定するとクローズ(Close メソッド呼び出し)します。 オープンするCOMポートは PortName プロパティで設定されたものになります。 エラーがあると LastError プロパティにエラーコードが設定されます。 オープンするまで通信できません。 |
||||||||||||||||||||||
PortName |
[アクセス] Read and Write [データ型] IDL: BSTR* VB: String Delphi: WideString [初期値] "COM1" [解説] オープンするCOMポート名 を設定します。 COMポート名は通常、"COM1", "COM2" などの文字列で指定します。 通信ポートオープンしている状態では設定変更できないのでエラーになります。エラーがあったかどうかは LastError プロパティを参照して下さい。 FindPort メソッドを使えば、アロハPC1と接続されているCOMポート名を自動設定することもできます。 |
||||||||||||||||||||||
LastError |
[アクセス] Read Only [データ型] IDL: long VB: Long Delphi: Integer [解説] 直前に実行したメソッド、またはプロパティの設定でのエラー状態を表すエラーコードが格納されています。 エラーコード表)
|
FindPort |
[解説] アロハPC1に接続している通信ポートを自動検索します。 見つかった場合は True を返し、PortName プロパティに見つかったCOMポート名が設定されます。 見つからなかった場合は、または通信ポートオープン時は False を返し、LastError プロパティにエラーコードが設定されます。 [備考] アロハPC1に接続しているかどうかは以下のように処理して調べています。 (1) COMポートをオープンする (2) アロハPC1のメモリ読み出しコマンドを送り、COMポートに接続されておいる接続機器の反応を調べる (3) COMポートをクローズする この (1) から (3) をPC上の全COMポートを対象に総当りしています。 PC上のCOMポートは以下のレジストリキーを参照しています。 HKEY_LOCAL_MACHINE\Hardware\DeviceMap\SerialComm アロハPC1に接続しているにも関わらず「見つからない」となる場合もあります。これは、アロハPC1からのCTS(CS)信号がOFFになっていると通信できないため、その結果「見つからない」と判断しているからです。 このCTS=OFFの状態とは、 ・RS-232Cに接続されていない状態 (あるいは接続されていても、アロハPC1の電源がOFFの状態) ・アロハPC1の操作パネルの [△] [▽] ボタンを押して着信履歴などが表示されている間 ・電話着信の瞬間 などです。 特にリトライ処理はしていないので、アプリケーション側で対応することになります。 |
||||||
Open |
[解説] 通信ポートをオープンします。これは Active=True と同じです。 正常にオープンできた場合、または既にオープンしている場合は True を返します。 オープンできない場合は False を返し、LastError プロパティにエラーコードが設定されます。 オープンするCOMポートは PortName プロパティで設定したポートになります。 オープンして初めて通信することができるようになります。 |
||||||
Close |
[解説] 通信ポートをクローズします。これは Active=False と同じです。 クローズしている間は通信できません。 |
||||||
ReadMemory |
[解説] アロハPC1のメモリを読み出します。 Addr には読み出すメモリアドレス(1 ~ 30)を指定します。PhoneNumber は出力パラメータなので値の設定はしません。 正常に読み出せた場合は True を返し、さらに PhoneNumber に読み出した電話番号データがセットされます。 エラーの場合は False を返し、LastError プロパティにエラーコードが設定されます。 VB のコード例) ------------------------------------------- Dim aloha As NDAAlohaPC1.AlohaPC1CommX Dim phoneNumber As NDAAlohaPC1.PhoneNumber ... ' アドレス1を読み出す If aloha.ReadMemory(1, phoneNumber) Then ' ここに正常に読み出せた場合の処理 Else ' エラー時の処理 End If ------------------------------------------- Delphi のコード例) ------------------------------------------- var Aloha: IAlohaPC1CommX; PhoneNumber: IPhoneNumber; begin // オブジェクトの生成 Aloha := CreateOleObject('NDAAlohaPC1.AlohaPC1CommX') as IAlohaPC1CommX; ... if Aloha.ReadMemory(1, PhoneNumber) // ここに呼び出せた場合の処理 else // エラー時の処理 end; ------------------------------------------- なお、VBScript からはこのメソッドは呼び出せないので、代わりに ReadMemory2 メソッドを使って下さい。 |
||||||
ReadMemory2 |
[解説] アロハPC1のメモリを読み出します。機能自体は ReadMemory メソッドと同じですが呼び出し方が異なります。 Addr には読み出すメモリアドレス(1 ~ 30)を指定します。 正常に読み出せた場合は NDAAlohaPC1CommX.PhoneNumber オブジェクト(正確には IPhoneNumber インターフェースポインタ)を返します。 エラーの場合は LastError プロパティにエラーコードが設定され、呼び出し側にCOM(Component Object Model)エラーを返します。そのため呼び出し側でエラー(例外)ハンドリングする必要があります。 VB のコード例) ------------------------------------------- Dim aloha As NDAAlohaPC1.AlohaPC1CommX Dim phoneNumber As NDAAlohaPC1.PhoneNumber ... ' アドレス1を読み出す On Error Resume Next Set phoneNumber = aloha.ReadMemory2(1) ' エラーの場合は Error オブジェクトにエラー内容が設定されている ' (Error.Number が 0 以外ならエラー) If Error.Number <> 0 Then ' エラー処理 End If ------------------------------------------- VBScript のコード例) ------------------------------------------- ' オブジェクト作成 Set aloha = Server.CreateObject("NDAAlohaPC1.PhoneNumber") ... ' アドレス1を読み出す On Error Resume Next Set phoneNumber = aloha.ReadMemory2(1) ' エラーの場合は Err オブジェクトにエラー内容が設定されている ' (Err.Number が 0 以外ならエラー) If Err.Number <> 0 Then ' エラー処理 End If ------------------------------------------- Delphi のコード例) ------------------------------------------- var Aloha: IAlohaPC1CommX; PhoneNumber: IPhoneNumber; begin // オブジェクトの生成 Aloha := CreateOleObject('NDAAlohaPC1.AlohaPC1CommX') as IAlohaPC1CommX; ... try // アドレス1を読み出す PhoneNumber := Aloha.ReadMemory2(1); except on E: EOleException do // ここにエラー時の処理を書く end; end; ------------------------------------------- |
||||||
WriteMemory |
[解説] アロハPC1のメモリに電話番号を書き込みます。 Number パラメータには書き込む電話番号(数字のみ)を指定します。 正常に書き込めた場合は True を返します。 エラーの場合は False を返し、LastError プロパティにエラーコードが設定されます。 |