如何通过蓝牙从Leica DISTO读取数据?

时间:2016-03-17 16:25:58

标签: c# bluetooth

我有一个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);
    }
}

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:5)

最后我得到了答案! 我安装了一个串口嗅探器,发现要响应的确认字符串是:

<强> CFM \ n

所以代码现在是:

await stream.WriteAsync(Encoding.ASCII.GetBytes("cfm\n"), 0, 4);   
await stream.FlushAsync();

enter image description here

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/

虽然语言不同,但概念应该是相同的。

希望这有帮助!