2013-02-08 18 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」 –

相關問題