
このデバイスのプロトコルは公開されており、 メーカーから親切に提供されています
デバイスを操作するためのドライバーは、有料で非常に古いことがわかりました。 実際、これは記事の執筆を促しました。
在庫あり:COMポートを備えた古いネットブック。 最初にしたことは、パテを実行して接続を確認することでした。 汗設定パリティ:偶数。 ストップビット:2; 速度:57600は2つの文字「U」を渡し、「READY」を取得します。 プロトコルは機能し、ポートは有効です。 以前の実験のネットブックにmscomctl.ocxをインストールしました。 このセットは、Maryのサービスコンソールを作成するのに十分です。
トランスポートプロトコル:
1.コマンド:<start> <command_oparameters> <length> <end>;
2.回答:<開始> <情報> <長さ> <終了>、
ここで、<start> = chr(253)、<end> = chr(254)。 コマンドの長さは255文字以下にする必要があります。
プリンターは、「WAIT」、「DONE」、「READY」でコマンドに応答します。 「準備完了」-次のチームを受け入れる準備ができていることを意味します。 応答にエラーがある可能性があります。 たとえば、「 'HARDTXD'」接続タイプが間違ったタイプのパリティを指定している場合、または「 'SOFTPROTOC」はシーケンスエラーコマンドです...
一般に、Mariaの構成を取得するvbscriptは次のようになります。
dim MSComm1 dim txt function fillcmd(txtma) ret = chr(253) & txtma & chr(len(txtma)+1) & chr(254) fillcmd = ret end function function sendCmd(cmdTxt) ret = "" txt.writeline "cmd="+txtcmd MSComm1.Output = fillcmd(txtcmd) WScript.Sleep(100) ret = MSComm1.Input txt.writeline "answ="+ret sendCmd = ret end function function initMaria() txt.writeline "init" MSComm1.Output="U" WScript.Sleep(1) MSComm1.Output="U" WScript.Sleep(20) rez = MSComm1.Input txt.writeline "answ="+rez initMaria = rez end function function initComm() Set MSComm1=CreateObject("MSCOMMLib.MSComm") MSComm1.Settings = "57600,e,8,2" MSComm1.CommPort = 2 MSComm1.InBufferCount = 0 MSComm1.PortOpen = True MSComm1.DTREnable = True set fso = CreateObject("Scripting.FileSystemObject") set txt = fso.CreateTextFile("maria.log") initComm = "Ready" end function sub closePort() MSComm1.DTREnable = False MSComm1.PortOpen = False Set MSComm1 = Nothing txt.close Set txt = Nothing end sub res = initComm() res = initMaria() 'get maria configurarion txtcmd="CONF" res = sendCmd(txtcmd) closePort()
便利な機能:
initComm()-ポートとログファイルを開きます
fillcmd(txtma)-テキストコマンドを特別なプロトコル文字でフレーム化します
小切手の印刷:
res = initComm() res = initMaria() 'user login txtcmd="UPAS111111111112345" res = sendCmd(txtcmd) 'cancel check txtcmd="CANC" res = sendCmd(txtcmd) 'open check txtcmd="PREP0" res = sendCmd(txtcmd) 'add line txtcmd="FISC"&" "&"000003000"&"000001000"&"00003"&"10"&_ "02000"&"000000"&"000000"&"000000"&"000000"&"000000"&"000000"&"000000"&"0001" '+"&'" "&" "&"" res = sendCmd(txtcmd) 'close check txtcmd="COMP"&"0000003000"&"0000000000"&"0000000000"&"0000000000"&"0000000000"&"0000003000" res = sendCmd(txtcmd) closePort()
このコードは、小切手、1C、ACES、EXCELからのレポートを印刷するのに十分です
nativ-APIを使用して古いOLE32を置き換えるドライバーを作成すると思います...