PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
23649 10/01/29 10:23:24 RE(4):PB7.0: シリアルポートからデータ取得 By GREENS
23648 10/01/29 10:19:11 RE(3):PB7.0: シリアルポートのオープンとクローズ By GREENS
23576 09/07/29 08:47:44 RE(2):PB7.0: シリアルポートとの通信(受信・送信) By GREENS
23575 09/07/28 17:33:07 RE(1):PB7.0: シリアルポートとの通信(受信・送信) By もけ
23574 09/07/28 14:45:08 PB7.0: シリアルポートとの通信(受信・送信) By GREENS

カテゴリ:スクリプトの記述
日付:2010年01月29日 10:19 発信者:GREENS
題名:RE(3):PB7.0: シリアルポートのオープンとクローズ

最終的に問題が解決しました。ロジックを残しますので、必要な方は参考にして下さい。
*****************************************************

long  ll_rtn
long GENERIC_READ = 2147483648 // 0x80000000
long GENERIC_WRITE = 1073741824 // 0x40000000
long OPEN_EXISTING = 3
long FILE_ATTRIBUTE_NORMAL = 128// 0x80
String ls_buffer
Long ll_read_len, ll_バッファ長
dcb01 dcb_connect
dcb02 dcb_timeout

//ポートのオープン
IF as_connect = \'OPEN\' THEN
ll_rtn = CreateFileA(gs_シリアルポート, & 
GENERIC_READ + 
GENERIC_WRITE, &
1, &
0, &
OPEN_EXISTING, &
FILE_ATTRIBUTE_NORMAL, &
0)

IF ll_rtn = -1 OR ll_rtn = 0 THEN
messagebox(\"エラー\",\"通信できません\", Exclamation!)
RETURN -1
END IF

gl_シリアル_hfile = ll_rtn  

// ポートの設定
GetCommState(gl_シリアル_hfile, dcb_connect)
dcb_connect.l_BaudRate = 9600 // 回線速度
dcb_connect.s_ByteSize = char(8) // 送受信データbit長
dcb_connect.s_Parity = char(0) // パリティ無し
dcb_connect.s_StopBits = char(0) // StopBit 1bit
dcb_connect.s_ErrorChar = char(21) // エラーキャラクタ \"!\"
ll_rtn = SetCommState(gl_シリアル_hfile, dcb_connect)

// タイムアウト設定
GetCommTimeOuts(gl_シリアル_hfile, dcb_timeout)
dcb_timeout.ReadIntervalTimeout = 250
dcb_timeout.ReadTotalTimeoutConstant = 500
SetCommTimeOuts(gl_シリアル_hfile, dcb_timeout)

END IF

//ポートのクローズ
IF as_connect = \'CLOSE\' THEN
ll_rtn = CloseHandle(gl_シリアル_hfile)
IF ll_rtn = -1 OR ll_rtn = 0 THEN
messagebox(\"エラー\",\"通信できません。\", Exclamation!)
RETURN -1
END IF
END IF

RETURN 0



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows XP
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.