VB6.0→VB.NETで、レシートプリンタは反応するが、ドロワーが反応しない。
- 題名: VB6.0→VB.NETで、レシートプリンタは反応するが、ドロワーが反応しない。
- 著者: けい
- 日時: 2012/11/03 19:55:03
- ID: 31097
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: VB6.0→VB.NETで、レシートプリンタは反応するが、ドロワーが反応しない。
- 著者: オショウ
- 日時: 2012/11/03 20:18:34
- ID: 31099
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: VB6.0→VB.NETで、レシートプリンタは反応するが、ドロワーが反応しない。
- 著者: オショウ
- 日時: 2012/11/03 20:20:48
- ID: 31100
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: VB6.0→VB.NETで、レシートプリンタは反応するが、ドロワーが反応しない。
- 著者: けい
- 日時: 2012/11/04 23:38:52
- ID: 31105
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
こんにちは。
以下、質問させてくださいませ。
従来、VB6.0で開発したソフトを使用しています。
XPのパソコンに、レシートプリンタ(スター精密製TSP700U)をシリアル接続して、レシートプリンタには、キャッシュドロワー(スター精密製、EPSON製)を接続しています。
画面上にある印刷ボタンを押すと、レシートが印字され、キャッシュドロワーが開きます。
画面上には、MSCommを置いています。
コード(サンプル)は、以下の通りです。
ポート番号は、仮に、1とします。
With Comm1
If .PortOpen = True Then Exit Sub
.CommPort = 1
.Settings = "9600,N,8,1"
.InputLen = 0
.PortOpen = True
'バッファのクリア
.InBufferCount = 0
.OutBufferCount = 0
'n値より以後のデータが有効となる。
.Output = Chr$("&H1B") & Chr$("&H3D") & Chr$("&H1")
'外部機器駆動パルス幅の設定
.Output = Chr$("&H1B") & Chr$("&H07") & Chr$("&H100") & Chr$("&H100")
'駆動命令
.Output = Chr$("&H07")
〜(印字内容)〜
'n行紙送り
.Output = Chr$("&H1B") & Chr$("&H61") & Chr$("&H8")
'パーシャルカット
.Output = Chr$("&H1B") & Chr$("&H64") & Chr$("&H31")
.PortOpen = False
End With
現在使用しているソフトを、VB.NET2003で、再開発しているところです。
上記と同じ内容を、以下のように、記述します。
「Chr$」の「$」は使えないようでして、取っております。
With Comm1
If .PortOpen = True Then
.PortOpen = False
End If
Try
.CommPort = 1
.Settings = "9600,N,8,1"
.InputLen = 0
.PortOpen = True
'バッファのクリア
.InBufferCount = 0
.OutBufferCount = 0
'n値より以後のデータが有効となる。
.Output = Chr("&H1B") & Chr("&H3D") & Chr("&H1")
'外部機器駆動パルス幅の設定
.Output = Chr("&H1B") & Chr("&H07") & Chr("&H100") & Chr("&H100")
'駆動命令
.Output = Chr("&H07")
〜(印字内容)〜
'n行紙送り
.Output = Chr("&H1B") & Chr("&H61") & Chr("&H8")
'パーシャルカット
.Output = Chr("&H1B") & Chr("&H64") & Chr("&H31")
.PortOpen = False
Catch ex As System.Runtime.InteropServices.COMException
MessageBox.Show("エラー", "CommPort",MessageBoxButtons.OK,MessageBoxIcon.Exclamation)
End Try
End With
このコードを実行しますと、エラーが起きて、レシートプリンタも、キャッシュドロワーも、反応しません。
上記中の、
'n値より以後のデータが有効となる。
.Output = Chr("&H1B") & Chr("&H3D") & Chr("&H1")
を取ると、レシートプリンタは反応して、レシートは出るのですが、
キャッシュドロワーが反応しません。
この点を、解決したいと思いまして、
ご相談させて頂きました。
お忙しい中、誠にお手数と存じますが、
何か、お分かりになられる点がございましたら、
ご教示ください。
どうぞよろしくお願い申し上げます。