2013-02-08 24 views
1

我有C#CE CF代码在手持设备(Motorola MC3100)上运行,它应该使它所连接的Zebra QL220皮带打印机打印一些东西(代码附在本文后面)。为什么Zebra QL 220打印机在我与之交谈的过程中会关闭?

当我启动我的应用程序时,打开QL 220(通过底部或顶部的绿色大按钮,具体取决于您的视角),但打印机在我的代码执行过程中自行关闭,打印出来(我假设这就是没有打印的原因)。

如果我对打印机静音的原因是正确的,我必须做些什么来使其“On”按钮变得“粘性”?

我尝试了QL 220上的蓝色按钮(也是一个滚轮和一张纸从中弹出)的蓝色按钮,但所有这些都是“实时”吐出一些磁带/打印纸。 “

. . . 
using (SerialPort serialPort = new SerialPort()) 
      { 
       serialPort.BaudRate = 19200; 
       serialPort.Handshake = Handshake.XOnXOff; // Handshake AKA Flowcontrol? 
       serialPort.DataBits = 8; 
       serialPort.Parity = Parity.None; 
       serialPort.StopBits = StopBits.One; 
       serialPort.PortName = "COM1:"; 
       serialPort.ReadTimeout = 500; 
       serialPort.WriteTimeout = 500; 
       serialPort.StopBits = StopBits.One; 

       serialPort.Open(); 

       Thread.Sleep(2500); // I don't know why this is needed, or if it really is... 

       // Try this first: 
       serialPort.WriteLine("! 0 200 200 210 1"); 
       serialPort.WriteLine("TEXT 4 0 30 40 Bonjour la Monde"); //Hola el Mundo --- Hallo die Welt 
       serialPort.WriteLine("FORM"); 
       serialPort.WriteLine("PRINT"); 
       // or (if WriteLine does not include a carriage return and line feed): 
       //    serialPort.Write("! 0 200 200 210 1\r\n"); 
       //    serialPort.Write("TEXT 4 0 30 40 Bonjour la Monde\r\n"); //Hola el Mundo --- Hallo die Welt 
       //    serialPort.Write("FORM\r\n"); 
       //    serialPort.Write("PRINT\r\n"); 

       serialPort.Close(); 
      } 
+0

你怎么知道你甚至连接到它?如果他们没有被使用,他们通常只会变成ff。注意,你确定XonXoff的设置? – tcarvin

+0

手持设备物理连接到打印机。至于XonXoff设置 - 不,我不确定 - 我还应该尝试什么? –

+0

打印机产生约本身的元数据报告显示“握手:硬件” 我不知道这是什么对应于以握手枚举(XONXOFF,无, RequestToSend和RequestToSendXOnXOff)的可能值,但...但是,它现在正在工作,所以我想我已经设置为(XOnXOff)没关系... –

回答

0

除了追加结肠“COM1”作为ctacke显示是必要的另一SO后,我还需要交换用于写入线的WriteLine线用“\ r \ n”个附加到每个行,所以它们现在是:

serialPort.Write("! 0 200 200 210 1\r\n"); 
serialPort.Write("TEXT 4 0 30 40 Bonjour la Monde\r\n"); //Hola el Mundo --- Hallo die Welt 
serialPort.Write("FORM\r\n"); 
serialPort.Write("PRINT\r\n"); 

即成功地打印出“的Bonjour LA报”尽管太多的废纸(大约上方和线下方的英里印刷)。

+0

我不会说法语,因为我可以用“la”代替“le” –

相关问题