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:23 発信者:GREENS
題名:RE(4):PB7.0: シリアルポートからデータ取得
最終的に問題が解決しました。ロジックを残しますので、必要な方は参考にして下さい。
*****************************************************
long ll_rtn, ll_read_len, ll_長さ
long GENERIC_READ = 2147483648 // 0x80000000
long GENERIC_WRITE = 1073741824 // 0x40000000
long OPEN_EXISTING = 3
long FILE_ATTRIBUTE_NORMAL = 128// 0x80
String ls_buffer, ls_readdata
Long ll_レコード長
Long ll_バッファ長
//COMポートからデータ受信
ll_バッファ長 = 99
ls_buffer = space(ll_バッファ長)
ll_rtn = ReadFile(gl_シリアル_hfile, &
ls_buffer, &
ll_バッファ長, &
ll_read_len, &
0)
IF ll_rtn = -1 OR ll_rtn = 0 THEN
messagebox(\"エラー\",\"通信出来ません。\", Exclamation!)
RETURN -1
END IF
//レコードが99以上
IF ll_read_len > (Long(ll_バッファ長 / ll_レコード長) * ll_レコード長) THEN
messagebox(\"バッファエラー\",\"バッファ量をオーバーしました。,Exclamation!)
adb_getdata = 0
RETURN -1
END IF
//出力データ形式別、データ修正
ls_readdata = left(ls_buffer, ll_read_len)
ls_readdata = Mid(ls_readdata, ((Long(ll_read_len / ll_レコード長) - 1) * ll_レコード長) + 1, ll_レ
コード長)
RETURN 0
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows XP
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.