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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.