'
'
'
' 本プログラムはVB6で書かれたVFD2002Eのサンプルプログラムです。
'
'
'
' (C)Copyright by Techno Veins Co.,Ltd.
' All right reserved. 2009
'
'
' このプログラムの著作権はテクノベインズが保有します。
' 独自開発プログラムへソースの組込使用については自由に参考利用してかまいません。(費用・登録等不要。)
' VFD2002E販売の際、商品に添付して配布することはご自由に行ってください。
'
' 直接ソースの全部または一部を販売することは禁止します。
' ソースの全部または一部を再配布や書籍・Web等への許可なき転載は禁止します。
'
' 本プログラムは参考用であり、すべてのお客様の環境で動作を保証するものではありません。
'
' 多くのメッセージは1行で記述できますが,説明のために分解して使用しています。
' サンプルでは最低限の処理しかおこなっていません。
' 実運用ではエラー処理や、ハンドシェークなどを考慮してください。
'
Private Sub Form_Load()
' COM1選択
Combo1.ListIndex = 0
End Sub
'
' 本サンプルではComポートの存在/空き自体は確認していません。
'
Private Sub SendVfd(ByVal mesTxt As String)
On Error GoTo SendVfd_Error
' 通常はVFD2002Eの受信バッファだけで問題ないが,連続して高速に表示データを
' 送る場合,文字落ちを防ぐために、DTR制御ハンドシェークモードを指定したほうが良い。
' 連続して文字列を送信しない用途では、VFD2002Eの受信バッファで足りるのでハンドシェークは不要です。
If MSComm1.PortOpen Then MSComm1.PortOpen = False
' COM1 を使用します。
MSComm1.CommPort = Combo1.ListIndex + 1
' 9600bps、パリティなし、データ長 8 ビット、およびストップ ビット長 1。
MSComm1.Settings = "9600,N,8,1"
' Input プロパティ使用時に、バッファ全体を読み取るように設定します。
MSComm1.InputLen = 0
' ポートのオープンクローズは時間を要するため、一般のアプリケーションでは
' あらかじめポートをオープンし、終了時にクローズするほうが高速に動作します。
MSComm1.PortOpen = True
MSComm1.Output = mesTxt
MSComm1.PortOpen = False
SendVfd_Exit:
Exit Sub
SendVfd_Error:
MsgBox (Err.Description)
Resume SendVfd_Exit
End Sub
Private Sub btnExit_Click()
If MSComm1.PortOpen Then MSComm1.PortOpen = False
Unload Me
End Sub
'
' 初期化
'
' VFD2002EのDIPスイッチの設定がカナになっていない場合でも、文字コードセットを初期化するとカタカナが出力できます。
'
Private Sub btnHardwareInit_Click()
Dim Mes As String
Mes = Chr$(27) & "@" ' ハード初期化
' 文字コードをセットする。
Mes = Mes & Chr$(27) & "t" & Chr$(1) ' 文字コードテーブル
Mes = Mes & Chr$(27) & "R" & Chr$(8) ' 国際文字コードセット
Mes = Mes & "HH"
SendVfd Mes
End Sub
'
' VFD2002E画面クリア
'
Private Sub btnCls_Click()
SendVfd Chr$(&HC)
End Sub
'
' 単純文字列表示例
'
Private Sub btnUriage_Click()
' 表示用ダミーカウント このボタンは、押すたびに異なるメッセージがサイクルする
Static MsgCount As Integer
MsgCount = MsgCount + 1
MsgCount = MsgCount Mod 3
' 画面原点移動(&HB)と文字表示(半角40文字 20桁2行分)
' 表示データをあらかじめ構成しておき、半角40文字として送信する
' 画面をクリアするよりも、表示原点をホームポジションに移動して画面全てを書き換えたほうが高速に表示できる
' ホームポジションを入れなくとも40文字出力により毎回同じ位置に表示するが、
' 通信エラーなど異常表示により表示がずれることを防ぐために、ホーム(&hB)を行っている
Select Case MsgCount
Case 0
SendVfd Chr$(&HB) & "トマトケチャップ \120ケイ: 3テン \12,345"
Case 1
SendVfd Chr$(&HB) & "キャベツ \100ケイ: 1テン \5,545"
Case Else
SendVfd Chr$(&HB) & "マグロブツ \1,500ケイ: 1テン \12,545"
End Select
End Sub
Private Sub btnAzukari_Click()
SendVfd Chr$(&HB) & "ケイ 10テン \8,500オツリ: \1,500"
End Sub
|