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 检索结果。您需要使用套接字进行双向通信。

更新:有一个可用的 inpout32 库,它允许双向 lpt 端口通信。

使用 Inpout32.dll 从并行端口读取

将使用 inpout32.dll 的 Visual Basic 并行端口应用程序转换为 Delphi

下载 inpout32 二进制文件和源代码

于 2013-05-27T15:07:10.667 回答