ページ 11

RS-232Cのプログラムをしていますが・・・

Posted: 2006年5月21日(日) 14:21
by いとちゃん
バーコードリーダーがRS-232C用なので実験しているのですが
まずハイパーターミナルできちんとデータが表示される環境で
Ver262にて試しています。

COM OPENして、INPUT#1 して表示しても、データが出ません。

どなたか、includeなどの初期設定に関してご存知の方ご教示願います。

自己レス&質問>

Posted: 2006年5月22日(月) 21:50
by いとちゃん
いろいろ試してみて分かりました。
BASICの初期画面で、設定を行ったときだけうまくいきました。
結局、プログラムの中で設定するOPEN文でパラメータを設定したいのですが
それができません。

9600ボー、偶数パリティ、7ビットの設定をOPEN文の中で
行う方法をどなたか教えてください。

OPEN ”COM:9600・・・・<ここ>  ” AS #1

Posted: 2006年5月23日(火) 11:00
by Tako
別の所で、下記の書き込みをしていますが・・・

>ボーレート等の設定は、AB2コンパイラで行うか、レジストリの操作になります。

つまり、プログラムで制御するにはレジストリの操作が必要です。
注意点として、プログラム起動前にレジストリの設定が完了している必要があります。
別プログラムでレジストリを設定しExecで目的のプログラムを起動してください。

昔書いたプログラムを少し修正したので、動作確認はしていません。
エラーが出なければ良いけど・・・

コード: 全て選択


	hKey = HKEY_CURRENT_USER
	lpSubKey = "Software\Discoversoft\ActiveBasic"
	lpValueName = "RS232C"

	lpSubKey = lpSubKey + chr$(NULL)
	lpValueName = lpValueName + chr$(NULL)

	samDesired = KEY_ALL_ACCESS
	phkResult = 0
	rc = RegOpenKeyEx(hKey,lpSubKey,0,samDesired,phkResult)
	If rc = ERROR_SUCCESS Then
		lpType = REG_SZ
		drReserved = 0
		'キーの内容について
		'○○○○○○○
		'││││││└─フロー制御 0:無し 1:RTS,CTS制御
		'│││││└──フロー制御 0:無し 1:XON,XOFF制御
		'││││└───ストップビット 0:1bit 1:1.5bit 2:2bit 
		'│││└────パリティ 0:無し 1:奇数 2:偶数
		'││└─────キャラクタ長 7:7bit 8:8bit
		'│└──────ボーレート0:110 1:300 2:600 3:1200 4:2400 5:4800 6:9600 7:14400 8:19200
		'│ 9:38400 10:56000 11:57600 12:115200 13:128000 14:256000
		'└───────Port 1:1 2:2 3:3

		SetRSSpeed$ = "1 6 7 2 0 0 0"
		regstr$ = SetRSSpeed$ + chr$(NULL)
		lpcbData = Len(regstr$)
		rc = RegSetValueEx(phkResult,lpValueName,drReserved,lpType,regstr$,lpcbData)

		If rc = ERROR_SUCCESS Then
			rc = RegCloseKey(phkResult)
			If rc = ERROR_SUCCESS Then
				Else
				Print "クローズ失敗"
			EndIf
		Else
		Print "書き込みに失敗"
		EndIf
	Else
	Print "オープン失敗"
	EndIf

うまく行かないなら、コードをUpすれば、レスが付きやすいと思いますよ。