斑马 iMZ320 通信错误蓝牙
本文关键字:错误 通信 iMZ320 斑马 | 更新日期: 2023-09-27 18:34:49
我想在运行WM6.5的摩托罗拉ES400的Zebra iMZ320上打印一些线条。我正在使用 32 英尺库和 C# 通过蓝牙进行通信。
我的代码曾经在 MZ320 上运行良好,但使用新的 iMZ320,通信有时会停止(即使在打印作业的中间(,我必须重新启动打印机,因为它一直拒绝再次连接。
我试图将 CPCL 字符串分成几行,并以 100 毫秒的间隔逐行发送,但没有改进。
我注意到,当我关闭应用程序并重新启动它时,通信肯定会失败。
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();
}
Zebra 提供了一个 Windows Mobile SDK,用于为您建立蓝牙连接。
摩托罗拉WinMobile手持设备随附的蓝牙堆栈(StoneStreetOne和Microsoft(中存在多个错误,将导致类似的故障。由于您使用的是 BT 的 32Feet 库,因此您应该能够切换堆栈(从 SSO 到 MS,反之亦然(,而无需对应用程序进行任何代码更改。这需要简单的注册表修改 - 有关详细信息,请参阅 http://christian-helle.blogspot.com/2010/10/motorola-dual-bluetooth-stack-support.html。
另外,我会确保您运行摩托罗拉的最新WinMobile版本。 我还要确保您拥有iMZ的最新固件(截至2014年4月的V73.19.6Z(。 除了一般的良好做法外,摩托罗拉和斑马技术都修复了最近固件版本中与蓝牙相关的问题。
从PC/Android设备进行的其他测试应该可以深入了解问题的根源是打印机还是手持设备 - 如果在从其他设备连接到打印机时无法重现此问题,则掌上电脑可能有故障。