したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

■■■20レス以内で済むF-BASICの質問はこちらへ■■■

616598:2015/10/24(土) 06:34:13
>>615
Win32 APIを使ってCOM1シリアルポートに“残っている”通信条件設定を
取得するプログラムです。(ただし一部表示していない情報があります)
※なお、送受信バッファサイズなどは取得できません(別のAPI関数が必要なので)。

このプログラムを次の各段階毎に実行して、設定状態に違いがあれば、
なにか手がかりになるかもしれません。
1.Windows 起動直後
2.GW-BASICの受信サンプル実行で正常受信した後
3.F-BASICで一回オープン"COM0:(S7N2N7NNN)"クローズした後

注意:declare文は長いため途中で改行してますので、つないで
一行にして翻訳してください。


#define NULL BYVAL 0

'// fBitFields as long のビット定義
#define FBinary &H1 '//0 BINARY MODE, WINDOWSでは常に1
#define fParity &H2 '//1 パリティチェック
#define fOutxCtsFlow &H4 '//2 CTS output フロー制御
#define fOutxDsrFlow &H8 '//3 DSR output フロー制御
#define fDtrControl &H30 '//4:2 DTR フロー制御タイプ
'-DTR_CONTROL_DISABLE 0
'-DTR_CONTROL_ENABLE 1
'-DTR_CONTROL_HANDSHAKE 2
#define fDsrSensitivity &H40 '//6 DSR sensitivity
#define fTXContinueOnXoff &H80 '//7 XOFF continues Tx
#define fOutX &H100 '//8 XON/XOFF output フロー制御
#define fInX &H200 '//9 XON/XOFF input フロー制御
#define fErrorChar &H400 '//10 enable error replacement
#define fNull &H800 '//11 NULL BYTES 受信を破棄する
#define FRTSCONTROL &H3000 '//12:2 RTS フロー制御タイプ
'-RTS_CONTROL_DISABLE 0
'-RTS_CONTROL_ENABLE 1
'-RTS_CONTROL_HANDSHAKE 2
'-RTS_CONTROL_TOGGLE 3
#define fAbortOnError &H4000 '//14 abort reads/writes on error
'fDummy2 '//15:17 reserved

Type T_DCB
DCBlength As Long
BaudRate As Long
fBitFields As Long ' Bits
wReserved As Integer
XonLim As Integer
XoffLim As Integer
ByteSize As Byte
Parity As Byte
StopBits As Byte
XonChar As Byte
XoffChar As Byte
ErrorChar As Byte
EofChar As Byte
EvtChar As Byte
wReserved1 As Integer
end type

declare function CREATEFILE lib "kernel32" alias "CreateFileA" (byval LPFILENAME as string,
byval DESACC as long, byval SHAREMODE as long,
byref LPSECUATTR as any, byval CREDISPOS as long,
byval FLAGSATTR as long, byval HTEMPLFILE as long) as long

declare function CLOSEHANDLE lib "kernel32" alias "CloseHandle" (byval HOBJECT as long) as long
declare function GETCOMMSTATE lib "kernel32" alias "GetCommState" (byval NCID as long,
LPDCB as T_DCB) as long
declare function SETCOMMSTATE lib "kernel32" alias "SetCommState" (byval HCOMMDEV as long,
LPDCB as T_DCB) as long

#define GENERIC_READ (-CLNG(&HFFFFFFFF - &H80000000)-1)
#define GENERIC_WRITE &H40000000
#define OPEN_EXISTING 3
#define FILE_SHARE_READ &H1
#define FILE_SHARE_WRITE &H2
#define INVALID_HANDLE_VALUE -1


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板