【问题标题】:How do I renename a Bluetooth device如何重命名蓝牙设备
【发布时间】:2015-06-03 16:38:02
【问题描述】:

我正在尝试从 Windows Phone 8 应用重命名蓝牙设备。我知道要发送到设备的 AT 命令,但我相信我连接到设备时出现了错误。

我有一个可以重命名我的设备的旧 PDA 程序,该程序是我的 AT 命令的来源,所以我很确定它们是正确的。

如果我启动一个 Datalogger 并从我的 PDA 重命名我的设备,则日志中不会出现任何数据,如果我在手机上执行相同操作,我会在我的 Datalogger 中获得所有命令。

这是我在 windows phone 应用程序中连接设备的方法:

public void Rename()
{
    var info = GetPeerInfo();
   /*
      GetPeerInfo() gives me the PeerInformation of my device and it works as expected.
   */

    if (info == null)
        return;

    socket = new StreamSocket();

    Task.Run(async () => { await socket.ConnectAsync(info.HostName, "1"); }).Wait();

    var dataWriter = new DataWriter(socket.OutputStream);

    /*
       Note 
         "to" is an internal class containg the new name of my bluetooth device, its bluetooth config etc.
         "newLaneNumber" is an integer indicading a postfix to the new name 
    */

    UpdateDisplayName(dataWriter, to, newLaneNumber);

    Task.Run(async () => { await dataWriter.StoreAsync();  }).Wait();
    socket.Dispose();
    socket = null;

    return;
}

这是发送AT指令的方法

    private void UpdateDisplayName_Other(DataWriter dataWriter, InspectionTester newDisplayname, int newLaneNumber)
    {
        //Login
        Thread.Sleep(6000);
        dataWriter.WriteString("///");
        Thread.Sleep(6000);

        var bluetoothDefault = new string[]
        {
            "AT*AGLC=0,1",
            "AT*AGCM=2,1",
            "AT*AGDM=3,1",
            "AT*AGPM=2,1", // pairable (not pairable: "AT*AGPM=1,1")
            "AT*AGFP="+'"'+"0"+'"'+",1",
            "AT*AGSM=1,1",
            "AT*ADDSP=0,1",
            "AT*AGMSP=1,1",
            "AT*ADDCP=255,1",
            "AT*ADNRP=0,1",
            "AT*AMSIT=1,1",
            "AT*AMET=5000,5000,1",
            "AT*AMLP=0,0,1",
            "AT*AMMP=255,1",
            "AT*AMWFM=1,6,1",
            "AT*AMPM=1,1",
            "AT*ACCB=1,1",
            "AT*AMDS=1,1,1",
            "AT*AMWS=0,0,0,0,0,1"
        };

        var tmpString = string.Empty;

        foreach (var element in bluetoothDefault)
        {
            tmpString = element + "\r";
            dataWriter.WriteString(tmpString);
            Thread.Sleep(100);
        }

        //Name
        tmpString = "AT*AGLN=\"" + to.BluetoothName + newLaneNumber.ToString("D2") + "\",1\r";
        dataWriter.WriteString(tmpString);
        Thread.Sleep(100);

        //Baudrate
        tmpString = "AT*AMRS=" + to.BluetoothConfig + "\r";
        dataWriter.WriteString(tmpString);

        //Logout
        tmpString = "AT*AMWS=0,0,0,0,1,0\r";
        dataWriter.WriteString(tmpString);
    }

有些地方我做错了,我相信我连接错误的方式,但我找不到任何关于如何做的信息。

这是从手机更新尝试中获取的日志:

///AT*AGLC=0,1
AT*AGCM=2,1
AT*AGDM=3,1
AT*AGPM=2,1
AT*AGFP="0",1
AT*AGSM=1,1
AT*ADDSP=0,1
AT*AGMSP=1,1
AT*ADDCP=255,1
AT*ADNRP=0,1
AT*AMSIT=1,1
AT*AMET=5000,5000,1
AT*AMLP=0,0,1
AT*AMMP=255,1
AT*AMWFM=1,6,1
AT*AMPM=1,1
AT*ACCB=1,1
AT*AMDS=1,1,1
AT*AMWS=0,0,0,0,0,1
AT*AGLN="BMGTMGA1-01",1
AT*AMRS=5,1,2,2,2,1,1
AT*AMWS=0,0,0,0,1,0

如果您需要更多信息,请说出来。

【问题讨论】:

    标签: c# windows-phone-7 windows-phone-8 bluetooth windows-phone-8.1


    【解决方案1】:

    1点:大部分设备不支持重命名。其中一些只是通过将信息保存在 RAM 中来支持它,而不是闪存或 EEPROM。

    【讨论】:

    • 支持重命名!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    相关资源
    最近更新 更多