我有一个Leica DISTO D3a BT。 它是一个测量设备,它通过蓝牙发送测量。
我写了一些代码来获取蓝牙流,我接收数据但是我总是得到"错误240"消息。
这意味着(从用户手册中)我没有确认数据传输的成功。
我该怎么做?
这是我的代码:
int bytesRead = 0;
System.IO.Stream stream = client_.GetStream();
byte[] buffer = new byte[k_BUFFER_BYTES];
while(true)
{
Task.Delay(100);
if (client_.Available > 0) // Available contains the available bytes
{
int counter = 0;
string output = "";
while (counter < client_.Available)
{
bytesRead = stream.Read(buffer, 0, k_BUFFER_BYTES);
counter += bytesRead ;
output += System.Text.Encoding.ASCII.GetString(buffer, 0, bytesRead);
}
stream.Write(Encoding.ASCII.GetBytes("\r\n"), 0, 2);
stream.Flush();
Console.WriteLine(output + " - " + counter + " - " + client_.Available);
}
}
提前感谢您的帮助!
答案 0 :(得分:5)
最后我得到了答案! 我安装了一个串口嗅探器,发现要响应的确认字符串是:
<强> CFM \ n 强>
所以代码现在是:
await stream.WriteAsync(Encoding.ASCII.GetBytes("cfm\n"), 0, 4);
await stream.FlushAsync();
PS:我非常感谢徕卡客户关心不回复我的邮件和电话。
答案 1 :(得分:1)
使用Disto Transfer PC应用程序关闭已确认信号(E240)
(您需要最大化应用程序才能看到它的额外功能)
答案 2 :(得分:0)
尝试在流上发送 CR LF 。之后冲洗它。
我在这里查了一下:https://www.b4x.com/android/forum/threads/connect-leica-disto-via-bluetooth-spp.53104/
虽然语言不同,但概念应该是相同的。
希望这有帮助!