2013-02-06 62 views
1

下面的「SerialPort」來自OpenNETCF.IO.Ports。如何使用OpenNETCF.IO.Ports寫入Zebra QL220?

這是否第一遍/半edicated猜測有意義打印到帶式打印機(斑馬QL220);那是不是一個體面的起點?

using (SerialPort serialPort = new SerialPort()) 
{ 
    string someString = "Bla"; 
    //serialPort.BaudRate = // I don't know what to put here yet, assuming this is needed 
    //serialPort.DataBits = // " " 
    //serialPort.Parity = // " " 
    //serialPort.StopBits = // " " 
    serialPort.PortName = "COM1"; // Is this what it wants? 

    serialPort.Open(); 

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

    serialPort.Write(" ! U1 setvar \"device.languages\" \"line_print\"\r\n"); 
    serialPort.Write(" ! U SETLP 5 1 46\r\nPAGE-WIDTH 480\r\nSETBOLD 2\r\nPRINT\r\n");   
    serialPort.Write(" ! U1 CENTER\r\n"+someString"\r\n! U1 SETBOLD 0\r\n"); 
    serialPort.Write(" ! U1 CENTER\r\n"); 
    serialPort.Write(" ! U1 SETLP 0 2 24"); 

    serialPort.Close(); 
} 

你可能會說:「你爲什麼不試試看看?但至少目前這是一個漫長的過程,因爲我無法在部署「設備」或模擬器的XP Mode VM中運行我的應用程序(如果感興趣,請參閱How can I run my Windows CE project from within Visual Studio (2003)?);我需要做的是將二進制文件複製到手持設備以測試任何修改過的代碼;所以,我寧願確定它會在通過這個巨無霸之前以某種方式工作。

+0

現在坐在我辦公室的QL220實際上是Wifi和藍牙的「加號」型號。我的第一個問題是確認您正在使用有線串行連接而不是其他選項之一? – tcarvin

+0

是的,手持摩托羅拉設備通過電纜連接到皮帶打印機並使用COM1。 –

回答

1

是的,這大致是你想要做的。您將需要檢查打印機docos需要什麼通信設置。它通常是19200,N,8,1。對於某些打印機,您需要調整發送數據的速度。可以很快發送數據,以至於超過打印機上的串行數據緩衝區。我記得,例如,必須增加一個小的延遲每發送一個512字節或打印流的尾端將丟失。不知道打印機型號,所以它只是一些需要注意的事情。

+0

是的,這些設置是我正在使用的。 –

+1

事實證明,CE需要將冒號附加到「COM1」,以便它是「COM1:」奇怪,但是是真的。 –

相關問題