C# 为什么斑马QLn220';s media.sense_mode var不能设置为与此代码的间隙?

C# 为什么斑马QLn220';s media.sense_mode var不能设置为与此代码的间隙?,c#,zebra-printers,printer-control-language,C#,Zebra Printers,Printer Control Language,我需要在Zebra QLn220皮带打印机上设置两个VAR,以使其按照我们的应用程序所需的方式工作。下面的第一个命令(keepPrinterOn)现在可以工作了: const string quote = "\""; string keepPrinterOn = string.Format("! U1 setvar {0}power.dtr_power_off{0} {0}off{0}\r\n", quote); string advanceToBlackBar = string.Format(

我需要在Zebra QLn220皮带打印机上设置两个VAR,以使其按照我们的应用程序所需的方式工作。下面的第一个命令(keepPrinterOn)现在可以工作了:

const string quote = "\"";
string keepPrinterOn = string.Format("! U1 setvar {0}power.dtr_power_off{0} {0}off{0}\r\n", 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);

PrintUtils.SendCommandToPrinter(keepPrinterOn);

if (radbtnBar.Checked)
{
    //MessageBox.Show("setting label type to bar");
    AppSettings.WriteSettingsVal("labelType", "bar");
    PrintUtils.SendCommandToPrinter(advanceToBlackBar);
}
else if (radbtnGap.Checked)
{
    //MessageBox.Show("setting label type to gap"); <= This is reached, although printer is not being changed to gap mode at any rate
    AppSettings.WriteSettingsVal("labelType", "gap");
    PrintUtils.SendCommandToPrinter(advanceToGap);
}
…在Zebra设置实用程序中(即使在选择“gap”后也会返回“bar”)

我以前在使用这些命令时遇到问题,因为我忽略了将crlfs(\r\n)附加到命令中,正如这里所讨论的[,但现在在发送上述命令后立即打印标签(前提是选择了“bar”,并且bar(背面的黑色条带)标签加载到皮带打印机中

有人能从这里可能出现的问题中找出头尾(条子或缝隙)吗

更新 我想知道电池电量不足是否会导致发送到打印机的命令无法“接收”。我在QLn220上收到一条“电池故障”消息(现在重新充电)。一旦我能够这样做,我将测试它,看看我现有的代码是否能工作(电池已充电)。如果不能,我将在下面的回答中尝试banno的替代命令

更新2 因此,我现在准备好了这段代码(后两段),可以在必要时尝试(打印机当前已停止运行,甚至无法测试):

第二对比第一对更可取,还是它们只是同义词/当另一对不起作用时可以尝试的东西?

尝试:

!U1 setvar“ezpl.media_类型”“标记”

我认为另一个是:


!U1 setvar“ezpl.media_type”“web”

我可能缺少一些东西,但此方法的代码是什么
AppSettings.WriteSettingsVal(“labelType”,“bar”);
?WriteSettingsVal只会写入INI类型文件。但这不是问题,因为我在Zebra安装实用程序中看到,即使设置为“gap”,该值仍保持为“bar”“mark”和“web”意味着什么?我愿意尝试一下(一旦我为目前电池电量不足的QLn220购买了新电池),但这两个名称与“bar”和“gap”的对应关系似乎没有任何意义…???Mark和bar是一样的,web是gap。有机会我会尝试一下,但到目前为止,打印机不工作。我耗尽了电池,得到一个“电池故障”消息。即使在插入充电器并将电池指示灯变为绿色后,它仍然会给我一个明亮的空屏幕,并且不会响应发送给它的命令。Zebra设置实用程序也无法识别它是否已插入。在“!”和“setvar”之间不需要“U1”?不知道这是怎么从我的脚本上掉下来的-编辑它以更正它。至于电池故障消息,我会打电话给技术支持。
! U1 getvar "media.sense_mode"
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);
// Alternates added 7/29/2014 in case need to attempt them (see https://stackoverflow.com/questions/24966070/why-would-the-zebra-qln220s-media-sense-mode-var-not-be-set-to-gap-with-this-co)
string advanceToBlackBarAlternate = string.Format("! U1 setvar {0}ezpl.media_type{0} {0}mark{0}\r\n", quote);
string advanceToGapAlternate =      string.Format("! U1 setvar {0}ezpl.media_type{0} {0}web{0}\r\n\r\n", quote);