我有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);
}
}
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助!
终于我得到了答案!我安装了一个串行嗅探器,发现响应的确认字符串是:
cfm \ n
现在的代码是:
await stream.WriteAsync(Encoding.ASCII.GetBytes("cfm\n"), 0, 4);
await stream.FlushAsync();
Run Code Online (Sandbox Code Playgroud)
PS:非常感谢Leica的客户服务部不回复我的邮件和电话。