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 |
カテゴリ:スクリプトの記述
日付:2009年07月28日 14:45 発信者:GREENS
題名:PB7.0: シリアルポートとの通信(受信・送信)
シリアルポートを通じて機器と通信し、データの送受信を行う方法で行き詰っています。
過去ログ(007941-011127、022185-022211など)を確認し、外部関数の設定とスクリプト記述まで
以下のような感じでおこなったのですが、データを変数に入れる事ができません。
/*外部関数内容*/
FUNCTION long CreateFileA (string lpFileName, long dwDesiredAccess, long dwShareMode, &
long lpSecurityAttributes, long dwCreationDisposition, &
long dwFlagsAndAttributes, long hTemplateFile) LIBRARY \"kernel32\"
FUNCTION long ReadFile (long hFile, string lpBuffer, long nNumberOfBytesToRead, &
ref long lpNumberOfBytesRead, long lpOverlapped) library \"kernel32.dll\"
FUNCTION long WriteFile (long hFile, string lpBuffer, long nNumberOfBytesToWrite, &
long lpNumberOfBytesWritten, long lpOverlapped) LIBRARY \"kernel32\"
FUNCTION long CloseHandle (long hFile) LIBRARY \"kernel32\"
/*スクリプト内容*/
Constant Long l_GENERIC_READ = 2147483648
Constant Long l_GENERIC_WRITE = 1073741824
Constant Long l_OPEN_EXISTING = 3
Constant Long l_FILE_ATTRIBUTE_NORMAL = 128
ll_handle = CreateFileA(\"COM1\", l_GENERIC_READ + l_GENERIC_WRITE, 0, 0, &
l_OPEN_EXISTING, l_FILE_ATTRIBUTE_NORMAL, 0)
ls_buffer = space(36)
ll_rtn = ReadFile(ll_handle, ls_buffer, 36, ll_read_len, 0)
ls_read_data= left(ls_buffer, ll_read_len)
ll_rtn = CloseHandle(ll_handle)
/*変数に入っていた値*/
ll_handle:728
ls_buffer:\" \"
ll_read_len:0
ll_rtn(1回目):1
ls_read_data:\"\"
ll_rtn(2回目):1
どなたかご教授いただけませんでしょうか?
よろしくお願いします。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows XP
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.