我想從運行WM6.5的摩托羅拉ES400在Zebra iMZ320上打印一些行。我使用32feet庫和C#通過藍牙進行通信。斑馬iMZ320通信錯誤藍牙
我的代碼曾經在MZ320上效果很好,但是使用新的iMZ320時,通信有時會停止(即使在打印作業過程中),但我必須重新啓動打印機,因爲它一直拒絕重新連接。
我試圖打破幾行中的CPCL字符串,並以100ms的間隔逐行發送,但沒有任何改進。
我注意到,當我關閉我的應用程序並重新啓動它時,通信肯定會失敗。
private void btPrint_Click(object sender, EventArgs e)
{
// Activate BT
BluetoothRadio.PrimaryRadio.Mode = RadioMode.Connectable;
System.Threading.Thread.Sleep(1000);
// Connect
BluetoothAddress btAddress;
btAddress = BluetoothAddress.Parse("0022583165F7");
BluetoothClient btClient = new BluetoothClient();
try
{
btClient.Connect(new BluetoothEndPoint(btAddress, BluetoothService.SerialPort));
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
// Send data
string CPCLStr1 =
"! 0 200 200 210 1" + Environment.NewLine +
"ML 25" + Environment.NewLine +
"TEXT 7 0 10 20" + Environment.NewLine +
"Just" + Environment.NewLine +
"Testing" + Environment.NewLine +
"ENDML" + Environment.NewLine +
"FORM" + Environment.NewLine +
"PRINT" + Environment.NewLine;
// Convert CPCL String to byte array
byte[] CPCLbytes1 = ASCIIEncoding.ASCII.GetBytes(CPCLStr1);
NetworkStream ns = btClient.GetStream();
ns.Write(CPCLbytes1, 0, CPCLbytes1.Length);
btClient.dispose();
btClient.Close();
}
打印機可能試圖發回一些信息,但您的代碼沒有任何行可以從流中讀取。你可以嘗試從PC上打印相同的內容嗎?另一種選擇是使用虛擬通信端口進行BT通信。您可以將打印機與設備配對,並定義一個新的傳出端口並將其用於串行通信。順便說一句:一些摩托車裝置和那裏的藍牙行爲不好。 – josef
我試圖從PC和從Android上運行的藍牙終端打印相同的文件,一切正常。但我只嘗試過1到2次,而且我描述的情況是隨機發生的。 –