微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

针对BGM123的OTA更新失败

如何解决针对BGM123的OTA更新失败

我正在使用Xamarin作为开发工具为我们的一个蓝牙设备开发一个移动应用程序。我已经成功创建了一个应用程序,并且运行良好。现在,我们需要此应用程序的固件更新功能

我可以使用Wireless Gecko应用程序轻松更新固件(application.gbl)。但是,在我的Xamarin应用程序中,它不起作用。另外,我对Android上的编程不熟悉。

这些是我在Xamarin代码中完成的步骤。

  1. Xamarin代码已成功连接蓝牙设备并与OTA服务通信

  2. 然后,我将0写入OTA控制特性。它已成功写入并以OTA模式重新启动(在Bluetooth搜索列表中将Bluetooth名称更改为OTA)。

  3. 使用我的Xamarin代码重新连接到OTA设备。它仅在OTA服务列表中显示OTA控件(不列出OTA数据,固件版本,OTA版本等)。但这一切都可以在Blue Geck应用程序中成功完成。

这是我的Xamarin代码

public void ConnectAsync(string deviceid)
{
    try
    {
        //IsConnected = false;
        this.isConnected = false;
        this.ConnectedDevice = null;

        //Searching in list obtained by scanning
        foreach (IDevice device in this.discoveredDevices)
        {
            //Checking the opted device is exist in latest scan
            if (device.Id.ToString() == deviceid)
            {

                TimeSpan time = new TimeSpan(0,5); // hours,mins,secs
                _cancellationTokenSource = new CancellationTokenSource(time);
                _cancellationTokenSource.CancelAfter(MAX_TIMEOUT_DELAY);
                //Initiate connection to deivice
                this.bleAdapter.ConnectToKNownDeviceAsync(device.Id,default(ConnectParameters),_cancellationTokenSource.Token);
            }
        }
    }
    catch (Exception ex)
    {
        throw new Exception("Failed to connect device");
    }
}

阅读服务信息

var service = await ConnectedDevice.GetServiceAsync(Guid.Parse(serviceuuid)); //OTA Service
servicecopyActive = service;
IReadOnlyList<ICharacteristic> list = await service.GetcharacteristicsAsync();

上面的列表仅显示OTA控件的UUID,并且无法与OTA服务中的其他UUID通信。如何显示所有服务?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。