我需要设置哪些ZebraQLn220设置(以及要设置为“粘贴”的值)?我正在尝试以编程方式配置ZebraQLn220打印机以将其“media.sense_mode”设置为“bar”或“gap”(取决于用户的选择)。但是,这些命令的可靠性似乎很低(有时有效,有时无效)。为了测试各种可能的命令,我使用了ZebraSetupUtilities,当然PC已插入打印机。我从util发送了这个命令:!U1setvar"media.sense_mode""gap"有效;我知道这是因为测试它:!U1getvar"media.sense_mode"...向我展示了预期/希望的“差距”(在发送上述命令之前是“栏”)。但是试图在代码中完成同样的事情是针对“bar”(几乎总是),但几乎没有“gap”这是代码:conststringquote=""";stringadvanceToBlackBar=string.Format("!U1setvar{0}media.sense_mode{0}{0}bar{0}rn",quote);stringadvanceToGap=string.Format("!U1setvar{0}media.sense_mode{0}{0}gap{0}rn",quote);...if(radbtnBar.Checked){PrintUtils.SendCommandToPrinter(advanceToBlackBar);}elseif(radbtnGap.Checked){PrintUtils.SendCommandToPrinter(advanceToGap);}所以你可以看到,除了“bar”和“gap”,额外的“rn”会导致问题吗?似乎添加这些是必要的或使命令更可靠,但我现在很沮丧。我总是测试替代命令来完成同样的事情,看看它们是否更可靠,但其他两个替代方案都不起作用,即不是这个:!U1setvar"ezpl.media_type""web"-this:{}{"media.sense_mode""gap"}...通过getvar检查val以继续显示“bar”,然后将这些命令发送到打印机(设置后到“bar”,发送这两个命令后“media.sense_mode”的值仍然是“bar”)。是否需要设置其他一些打印机设置以使打印机更好地响应它发送的命令?不仅以编程方式设置命令不可靠,而且即使通过ZebraSetupUtility,它有时也会“沙漏”命令发送和返回之前的时间段-有时它比JohnnyQuick和Flash的总和还要快。检查此命令的大量输出:!U1getvar"allcv"....这是最有趣/最有可能的候选人。wlan.ip.dhcp.request_timeout:2,Choices:2-30wlan.ip.dhcp.session_interval:10,Choices:0-60哪些,如果有的话,需要修改,以及什么值?..wlan.ip.timeout.enable:on,选择:on,offwlan.ip.timeout.value:300,选择:1-3600。..wlan.keep_alive.enable:开,选择:开,关wlan.keep_alive.timeout:15,选择:5-300。..netmanage.avalanche.interval:60000,选择:0-4294967295netmanage.avalanche.startup_update:off,选择:on,offnetmanage.avalanche.interval_update:off,选择:on,off。..netmanage.avalanche.udp_timeout:3000,选择:0-4294967295netmanage.avalanche.tcp_connection_timeout:3000,选择:0-4294967295。..netmanage.avalanche.realtime_update_int:300,选择:0-4294967295。..zpl.zpl_mode:zplII,选择:zplII,zpl。..internal_wired.ip.arp_interval:0,选项:0-30。..internal_wired.ip.dhcp.requests_per_session:2,选择:1-10internal_wired.ip.dhcp.request_timeout:2,选择:2-30internal_wired.ip.dhcp.session_interval:10,选项:0-60。..internal_wired.ip.timeout.enable:on,选择:on,offinternal_wired.ip.timeout.value:300,选择:1-3600。..internal_wired.ip.wins.permanent_source:off,选项:on,off。..interface.network.active.arp_interval:0。..接口.network.active.speed:0。..weblink.printer_reset_required:否。..weblink.ip.conn1.retry_interval:10,选项:1-600。..weblink.ip.conn1.maximum_simultaneous_connections:10,选项:1-100。..weblink.ip.conn1.test.retry_interval:900,选择:1-1800weblink.ip.conn1.num_connections:0。..capture.channel1.port:off,Choices:serial,usb,bt,parallel,offcapture.channel1.count:0,Choices:0-4294967295那里有线索的人吗?UPDATE以下是发送命令的代码:publicstaticboolSendCommandToPrinter(stringcmd){布尔成功;//默认初始化为falsetry{using(SerialPortserialPort=newSerialPort()){serialPort.BaudRate=19200;serialPort.Handshake=Handshake.XOnXOff;串行端口.Open();串行端口.Write(cmd);串行端口.关闭();//<=在using语句中应该是多余的,但仍然得到“文件55”错误。..}成功=真;}catch//可能不需要try/catch块,因为成功默认为false{success=false;消息框。显示(成功。ToString());//TODO:测试返回成功后移除;}有问题的SerialPort来自OpenNETCF.IO.Ports.SerialPort注意:SerialPort.Write()返回void命令:!U1getvar“appl.name”在ZebraSetupUtility中返回“V68.19.7Z”。这是否意味着我的固件是最新的(V68.19.7Z>v68.18.0Z),或者这是否意味着因为我的“appl”更新,我需要将固件升级到V68.19.7Z?如果我确实需要更新固件,我应该怎么做?它会找到最新的固件并将其下载到我的PC,然后在PC和打印机通过USB连接时运行其安装程序应用程序,还是...???更新2从这里搜索QLn220,我看到V68.18.0Z是唯一可供下载的固件版本。由于我的打印机上似乎有更新的版本,我很困惑...为什么他们不提供似乎更新的版本(V68.19.7Z)?更新3如果我单击上面引用的页面上的“自解压存档”链接,我只会得到一个页面,其中包含一些一般但不可行(似乎是)的说明。如果我点击那里的下载链接,我会看到一个页面,上面写着“这个网页有一个重定向循环”更新4添加一些调试字符串后它可以工作;在打印代码中:MessageBox.Show(success.ToString());//TODO:测试返回成功后移除;...并在设置代码中:if(radbtnBar.Checked){MessageBox.Show(advanceToBlackBar);PrintUtils.SendCommandToPrinter(advanceToBlackBar);}elseif(radbtnGap.Checked){MessageBox.Show(advanceToGap);PrintUtils.SendCommandToPrinter(advanceToGap);}这个小小的“行动进展”可能在某种程度上是有益的吗?更新5注意:不可能有“SerialPort.Flush”:serialPort.Close();...正在完成同样的事情吗?SGD命令格式正确。您描述的间歇性行为使我认为问题源于打印机实际接收命令的一致性,而不是命令本身的语法。一般来说,不,您不必更改其他命令即可使其工作。由于您可以通过ZebraSetupUtilities成功发送命令并获得所需的行为,因此您应该能够通过代码执行相同的操作。您是通过USB还是通过其他方式(蓝牙、TCP等)以编程方式发送命令?您在使用ZebraSetupUtilities时提到了USB,但是在您的代码中呢?您能否提供PrintUtils.SendCommandToPrinter()的代码?我不熟悉这个API。它是什么样的API?在最低级别的连接中,您通常会调用“write()”或“writeData()”或类似的东西。有时“write”命令会返回写入的字节数。如果您可以深入研究一下代码,可能会有一个返回此值的“写入”命令,您可以验证返回值是否等于预期消息的长度(包括换行符)。根据较低级别的API,可能还会有一个flush()命令强制将流中的所有数据推送到另一端。同样,这取决于您在“PrintUtils”的引擎盖下使用的API。过去,我曾见过USB通信行为不一致。您应该确保您的固件尽可能最新。你的QLn220目前是v68.18.0Z:http://www.zebra.com/id/zebra/na/en/index/drivers_downloads/firmware/results.html?id=1productType=6。你可以查看当前通过发送版本:!U1getvar"appl.name"在一天结束时,您可以在设置后立即查询打印机的gap/bar模式。这将导致程序执行的额外延迟,但这是确保您发送的任何内容都有效的好方法。由于标签打印时间太长,我们必须通过zebrapcutil正确设置所有打印机宽度。将这些命令发送到打印机。PW表示打印机宽度,JUS表示保存设置...^XA^PW832^JUS^XZ这个命令也有助于双标签打印传感器校准命令(来源:ZPL命令的功能列表)zpl_manual.pdf~JC添加一些调试字符串后它可以工作;在打印代码中:MessageBox.Show(success.ToString());//TODO:测试返回成功后移除;...并在设置代码中:if(radbtnBar.Checked){MessageBox.Show(advanceToBlackBar);PrintUtils.SendCommandToPrinter(advanceToBlackBar);}elseif(radbtnGap.Checked){MessageBox.Show(advanceToGap);PrintUtils.SendCommandToPrinter(advanceToGap);为什么它有效,我不知道,所以我仍然很谨慎。但是,至少就目前而言,它正在进行调整。C#学习教程就这些了:我需要设置哪些ZebraQLn220设置(以及哪些值要设置为“粘贴”)?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
