Проверка тегов кодирования на принтере Zebra RZ400

Ниже приведена функция C#, которая отправляет команду ZPL через последовательный порт. Команда 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();

    }

person user1986570    schedule 27.05.2013    source источник


Ответы (1)


Вероятно, вы не сможете получить результат с помощью LPT и CreateFile. Вам необходимо использовать двустороннюю связь с использованием сокетов.

Обновление: доступна библиотека inpout32, которая обеспечивает двустороннюю связь через порт lpt.

Чтение из параллельного порта с использованием Inpout32.dll

Преобразование приложения параллельного порта Visual Basic с использованием inpout32 .dll в Delphi

Загрузить двоичные файлы и исходные коды inpout32

person Alexander    schedule 27.05.2013
comment
Спасибо за быстрый повтор, но мой принтер Zebra (RZ 400) не поддерживает сетевое подключение. есть ли способ получить результат с помощью LPT? - person user1986570; 27.05.2013
comment
Обновленный ответ. Не уверен, что эта библиотека будет работать, она сильно устарела. Также вы можете попробовать прочитать данные так же, как вы их пишете - откройте файл LPT1 и прочитайте из него. - person Alexander; 27.05.2013
comment
Zebra RZ400 имеет последовательный порт (вам понадобится нуль-модемный кабель). Также можно добавить карту ZebraNet Ethernet. Любой из этих вариантов хорош. На веб-сайте Zebra есть образец сокета: Пример сокета Zebra - person Elton Saunders; 28.05.2013