Какие настройки Zebra QLn220 мне нужно установить (и какое значение [s]), чтобы получить настройку для «прилипания»?

Я пытаюсь программно настроить принтер Zebra QLn220, чтобы установить для его «media.sense_mode» значение «bar» или «gap» (в зависимости от того, что выбрал пользователь).

Надежность работы этих команд, тем не менее, кажется очень низкой (иногда это работает, иногда нет).

Чтобы проверить различные возможные команды, я использовал служебные программы установки Zebra, разумеется, с подключенным к принтеру ПК.

Я отправил эту команду из утилиты:

! U1 setvar "media.sense_mode" "gap"

Это сработало; Я знаю это, потому что тестирую это с:

! U1 getvar "media.sense_mode"

... показал мне ожидаемый / ожидаемый "разрыв" (это был "бар" до отправки команды выше).

Но попытка выполнить то же самое в коде работает для «бара» (почти всегда), но вряд ли когда-либо для «пробела»

Вот код:

const string quote = "\"";
string advanceToBlackBar = string.Format("! U1 setvar {0}media.sense_mode{0} {0}bar{0}\r\n", quote);
string advanceToGap = string.Format("! U1 setvar {0}media.sense_mode{0} {0}gap{0}\r\n", quote);
. . .
if (radbtnBar.Checked)
{
    PrintUtils.SendCommandToPrinter(advanceToBlackBar);
}
else if (radbtnGap.Checked)
{
    PrintUtils.SendCommandToPrinter(advanceToGap);
}

Итак, как вы можете видеть, код точно такой же, за исключением «бар» против «пробел»

Возможно ли, что добавленная "\ r \ n" вызывает проблемы? Кажется, что добавление тех было необходимо или сделало команды более надежными, но я готов ко всему на этом этапе разочарования.

Я всегда проверял альтернативные команды для выполнения одной и той же вещи, чтобы увидеть, будут ли они более надежными, но ни одна из двух других альтернатив не сработала, а именно эта:

! U1 setvar "ezpl.media_type" "web"

-не этот:

{} {"media.sense_mode" "gap"}

... проверка val через getvar продолжала показывать «bar» после отправки этих команд на принтер (после возврата обратно в «bar» значение «media.sense_mode» остается «bar» после отправки этих двух команд).

Может ли быть так, что некоторые другие параметры принтера должны быть установлены для того, чтобы принтер был более чувствителен к отправленным им командам? Установка команд не только ненадежна программно, но даже с помощью служебной программы установки Zebra, иногда она будет работать в «песочных часах» в течение ДЛИННОГО времени, прежде чем команда будет отправлена ​​и возвращена - и в других случаях это быстрее, чем Джонни Квик и Flash вместе взятые.

Просматривая объемный вывод этой команды:

! U1 getvar "allcv"

.... следующие наиболее интересные / вероятные кандидаты. Какие, если таковые имеются, должны быть изменены, и на какие значения?

wlan.ip.dhcp.request_timeout : 2 , Choices: 2-30
wlan.ip.dhcp.session_interval : 10 , Choices: 0-60
. . .
wlan.ip.timeout.enable : on , Choices: on,off
wlan.ip.timeout.value : 300 , Choices: 1-3600
. . .
wlan.keep_alive.enable : on , Choices: on,off
wlan.keep_alive.timeout : 15 , Choices: 5-300
. . .
netmanage.avalanche.interval : 60000 , Choices: 0-4294967295
netmanage.avalanche.startup_update : off , Choices: on,off
netmanage.avalanche.interval_update : off , Choices: on,off
. . .
netmanage.avalanche.udp_timeout : 3000 , Choices: 0-4294967295
netmanage.avalanche.tcp_connection_timeout : 3000 , Choices: 0-4294967295
. . .
netmanage.avalanche.realtime_update_int : 300 , Choices: 0-4294967295
. . .
zpl.zpl_mode : zpl II , Choices: zpl II,zpl
. . .
internal_wired.ip.arp_interval : 0 , Choices: 0-30
. . .
internal_wired.ip.dhcp.requests_per_session : 2 , Choices: 1-10
internal_wired.ip.dhcp.request_timeout : 2 , Choices: 2-30
internal_wired.ip.dhcp.session_interval : 10 , Choices: 0-60
. . .
internal_wired.ip.timeout.enable : on , Choices: on,off
internal_wired.ip.timeout.value : 300 , Choices: 1-3600
. . .
internal_wired.ip.wins.permanent_source : off , Choices: on,off
. . .
interface.network.active.arp_interval : 0 
. . .
interface.network.active.speed : 0 
. . .
weblink.printer_reset_required : no 
. . .
weblink.ip.conn1.retry_interval : 10 , Choices: 1-600
. . .
weblink.ip.conn1.maximum_simultaneous_connections : 10 , Choices: 1-100
. . .
weblink.ip.conn1.test.retry_interval : 900 , Choices: 1-1800
weblink.ip.conn1.num_connections : 0 
. . .
capture.channel1.port : off , Choices: serial,usb,bt,parallel,off
capture.channel1.count : 0 , Choices: 0-4294967295

Кто-нибудь там с подсказкой?

ОБНОВИТЬ

Вот код, который отправляет команды:

public static bool SendCommandToPrinter(string cmd)
{
    bool success; // init'd to false by default
    try
    {
        using (SerialPort serialPort = new SerialPort())
        {
            serialPort.BaudRate = 19200;
            serialPort.Handshake = Handshake.XOnXOff;
            serialPort.Open();
            serialPort.Write(cmd);
            serialPort.Close(); // <= should be redundant within a using statement, but still getting "File 55" err...
        }
        success = true;
    }
    catch // may not need a try/catch block, as success defaults to false
    {
        success = false;
    }
    MessageBox.Show(success.ToString()); //TODO: Remove after testing
    return success;
}

Рассматриваемый SerialPort взят из OpenNETCF.IO.Ports.SerialPort

НОТА: SerialPort.Write () возвращает void.

Команда:

! U1 getvar "appl.name" 

возвращаетсяV68.19.7Z"в служебной программе установки Zebra.

Значит ли это, что моя прошивка обновлена ​​(V68.19.7Z> v68.18.0Z), или это значит, что мой appl новее, мне нужно обновить прошивкув V68.19.7Z? Если яделать нужно обновить прошивку, как мне это сделать? Это вопрос поиска и загрузки последней версии прошивки на мой компьютер, а затем запуска его установочного приложения, когда ПК и принтер подключены через USB, или ... ???

ОБНОВЛЕНИЕ 2

ОтВотИща QLn220, я вижу V68.18.0Z как единственную версию прошивки, доступную для скачивания. Поэтому, поскольку на моем принтере установлена ​​более новая версия, я запутался ... почему они не предлагают то, что представляется более новой версией (V68.19.7Z)?

ОБНОВЛЕНИЕ 3

Если я нажму "самораспаковывающийся архивссылку на страницу, указанную выше, я просто получаюстраница с некоторыми общими, но бездействующими (так кажется) направлениями.

Если я нажму на ссылку для скачивания там, я получу страницу с надписью «Эта веб-страница имеет цикл перенаправления»

ОБНОВЛЕНИЕ 4

Это работает после добавления некоторых строк отладки; в коде печати:

MessageBox.Show(success.ToString()); //TODO: Remove after testing
return success;

... и в коде настройки:

if (radbtnBar.Checked)
{
    MessageBox.Show(advanceToBlackBar);
    PrintUtils.SendCommandToPrinter(advanceToBlackBar);
}
else if (radbtnGap.Checked)
{
    MessageBox.Show(advanceToGap);
    PrintUtils.SendCommandToPrinter(advanceToGap);
}

Может ли быть так, что этот маленький «перерыв в действии» как-то выгоден?

ОБНОВЛЕНИЕ 5

Замечания: Там нет "SerialPort.Flush" Может быть:

serialPort.Close();

... выполняет то же самое?

Ответы на вопрос(3)

Ваш ответ на вопрос