0

以下は、シリアル ポート経由で ZPL コマンドを送信する C# 関数です。ZPL コマンドは ~RVE で始まります (RFID エンコードの成功または失敗の結果を送信するようにプリンターに指示します)。

コードのコンテキストでエンコーディング結果を受け取り、エンコーディング プロセスが成功したことを確認するにはどうすればよいですか?

    private void Print()
    {
        // Command to be sent to the printer
        string command = "~RVE^XA^RFw,H^FD033B2E3C9FD0803CE8000001^FS ^XZ";

        // Create a buffer with the command
        Byte[] buffer = new byte[command.Length];
        buffer = System.Text.Encoding.ASCII.GetBytes(command);
        // Use the CreateFile external func to connect to the LPT1 port
        SafeFileHandle printer = CreateFile("LPT1:", FileAccess.ReadWrite,
        0, IntPtr.Zero, FileMode.Open, 0, IntPtr.Zero);
        // Aqui verifico se a impressora é válida
        if (printer.IsInvalid == true)
        {
            return;
        }

        // Open the filestream to the lpt1 port and send the command
        FileStream lpt1 = new FileStream(printer, FileAccess.ReadWrite);

        Byte[] ResultBuffer = new byte[255];
        lpt1.Write(buffer, 0, buffer.Length);

        // Close the FileStream connection
        lpt1.Close();

    }
4

1 に答える 1

0

おそらく、LPT と CreateFile を使用して結果を取得することはできません。ソケットを使用して、双方向通信を使用する必要があります。

更新: 双方向の lpt ポート通信を可能にする inpout32 ライブラリが利用可能です。

Inpout32.dll を使用したパラレル ポートからの読み取り

inpout32.dll を使用して Visual Basic パラレル ポート アプリを Delphi に変換する

input32 のバイナリとソースをダウンロードする

于 2013-05-27T15:07:10.667 に答える