1

レシートプリンターに接続されたキャッシュドロワーを開いたVB.Netで作成されたソフトウェアがあります。数日前に問題が発生しました。プリンターのモデルが変更されたため、キャッシュ ドロワーをコンピューターの rj11 ポートに接続する必要があります。このポートについては何も知りません。これは COM ポートでもモデムでもありません。

誰もこの問題に直面したことがありますか?

前もって感謝します

4

1 に答える 1

0

私はVB.netの経験があまりありませんが、Delphiでこれらのポートと通信したことがあるので、これが私が知っていることです。

これらのポートが通常機能する方法は、IRQの場所が固定されていることです。これらの詳細は、製造元のマニュアルに記載されています。

キャッシュドローを開くプロセスは次のとおりです。

  1. ポートのメモリ(IRQ)を取得します(これについては、製造元のマニュアルで詳しく説明されています)。
  2. ポートから現在の8ビット(短い)値を取得します(設定を混乱させないようにします)
  3. ORを使用して関連するビットをオンまたはオフ(1または0)に切り替えてオンにし、ANDをオフにしてドローを開きます
  4. ドローが開くのを1秒待ちます(ドローが応答する前にビットが反転します)
  5. ORを使用して関連するビットをオンまたはオフ(1または0)に切り替えてオンにし、ANDをオフにしてドローのロッキングピンを再度オンにします(そうでない場合、ドローを閉じると再びスプリングが開きます)*

    • 注:プログラムを元の位置に戻す前にプログラムがクラッシュした場合、再起動せずに描画をロックすることはできないため、元の値にANDまたはORを使用すると、値を最初に取得した値に戻すだけではありません。値は、1が0またはその逆であることを保証します。

最大の問題は、Windowsでこれらのポートにアクセスするのが少し面倒なことです。これは、ほとんどのコマンドが制限されている(つまり、特権命令として分類されている)ためですが、これをバイパスできるサードパーティのDLL(Inpout32など)があります。 dll)-VB.netにはこの制限がない場合がありますが。


Tysso5700ユーザーマニュアルから

キャッシュドロワーコントローラレジスタ
レジスタ位置:I / Oポート280h
サイズ:8ビット
ビット0〜3、5〜7:予約
ビット4:キャッシュドロワー「DIOOUTPUT」、ピン出力制御。1:キャッシュドロワーを開く0:キャッシュドロワーを閉じる

于 2012-11-12T14:03:07.573 に答える