小编adr*_*992的帖子

BLE 连接始终调用断开连接的操作(GATT 配置文件)

我建立了一个 BLE 连接以在设备之间发送数据(大约每 10 秒它们建立一个新连接,发送数据,然后断开连接)并且正常工作正常。但是,几分钟后,设备再也不会连接,并且应该与另一个设备连接的设备正在循环调用“ ACTION_GATT_DISCONNECTED ”(此字符串指的是断开连接的接收器操作)。

在我的接收器中,我有 3 个相关的操作:

@Override
    public void onReceive(Context context, Intent intent) {
        customBluetoothManager = customBluetoothManager.getInstance(context, null, null);
        final String action = intent.getAction();
        Log.d("test", "onReceive");
        if (BluetoothLeService.ACTION_GATT_CONNECTED.equals(action)) {
            Log.d("test", action);
        } else if (BluetoothLeService.ACTION_GATT_DISCONNECTED.equals(action)) {
            Log.d("test", action);
        } else if (BluetoothLeService.ACTION_GATT_SERVICES_DISCOVERED.equals(action)) {
            Log.d("test", action);
            //....
            //Code to send data after services discovered
            //....
        }
    }
Run Code Online (Sandbox Code Playgroud)

因此,在最初的几分钟内一切正常。首先调用ACTION_GATT_CONNECTED,然后调用ACTION_GATT_SERVICES_DISCOVERED动作,然后设备发送数据,然后断开并释放蓝牙通信通道。问题是,有时,并不总是在同一点(因此我无法找到任何模式来重现这个问题),在循环中总是调用ACTION_GATT_DISCONNECTED,因此永远不会建立通信。

ACTION_GATT_DISCONNECTED被分配在onConnectionSateChange从回调BluetoothGattCallback类:

@Override
        public void onConnectionStateChange(BluetoothGatt gatt, int …
Run Code Online (Sandbox Code Playgroud)

android bluetooth-lowenergy gatt

6
推荐指数
1
解决办法
4070
查看次数

Tesseract OCR上的数字号码

解:

我必须训练自己的数据才能使用OCR进行尝试。看来效果很好,但我不知道为什么arturaugusto训练后的数据对我不起作用=(

https://github.com/adri1992/Tesseract_sevenSegmentsLetsGoDigital.git

使用我训练有素的数据,为了获得OCR的良好效果,我完成了以下阶段(我已经使用OpenCV完成了此阶段):

  • 首先,将图像转换为黑白
  • 其次,将高斯模糊应用于图像
  • 第三,对图像应用阈值过滤器

这样,可以识别七个分段数字。

题:

我正在尝试通过Android上的Tesseract获得OCR,并且正在使用此图像测试应用(通过Tesseract OCR在“七段显示器”上进行文本检测):

OCR测试图

我正在使用arturaugusto(https://github.com/arturaugusto/display_ocr)训练的数据,但是OCR的错误结果是:

884288

零被认为是八,我不知道为什么。

我通过OpenCV将高斯模糊和阈值滤镜应用于图像,经过处理的图像是这样的:

OCR图像已处理

是否还有其他训练有素的数据,或者您知道解决问题的任何方法吗?

android opencv tesseract

5
推荐指数
1
解决办法
3710
查看次数

通过 BLE 发送超过 20 个字节

我正在尝试通过 BLE 发送一个 json 字符串,但是,就像 json 有超过 20 个字节一样,我必须发送多个 20 个字节的数据包。

我已经阅读了我找到的所有帖子。一些例子:

所有帖子都包含类似的信息。在第一篇文章中实现了一些功能,但是:

  • “BLE.INITIAL_MESSAGE_PACKET”和“BLE.DEFAULT_BYTES_IN_CONTINUE_PACKET”变量是什么?每个变量的声明在哪里?
  • “sendingLastPacket(characteristic, initial_packet, CHARACTERS)”函数在哪里?
  • 在接收端,如何合并发送端发送的所有数据包?

我还没有找到关于这个问题的任何信息.. 任何人都可以帮助我吗?

android bluetooth-lowenergy

5
推荐指数
0
解决办法
1282
查看次数

在背景中加载新场景

我正在创建一个针对Samsung Gear VR的Unity应用程序.我目前有两个场景:

  1. 最初的一幕
  2. 第二个场景,数据量很大(加载场景需要太多时间).

从第一个场景开始,我想在后台加载第二个场景,并在加载后切换到它.当新场景在后台加载时,用户应该保持移动头部以查看VR环境的任何部分的能力.

我正在使用SceneManager.LoadSceneAsync但它不起作用:

// ...

StartCoroutiune(loadScene());

// ...

IEnumerator loadScene(){
        AsyncOperation async = SceneManager.LoadAsyncScene("Scene", LoadSceneMode.Single);
        async.allowSceneActivation = false;
        while(async.progress < 0.9f){
              progressText.text = async.progress+"";
        }
       while(!async.isDone){
              yield return null;
        }
        async.allowSceneActivation = true;
}
Run Code Online (Sandbox Code Playgroud)

使用该代码,场景永远不会改变.

我试过这个典型SceneManager.LoadScene("name")的情况,在这种情况下,场景在30秒后正确变化.

c# unity-game-engine unity5

4
推荐指数
1
解决办法
6741
查看次数