- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对java很陌生,我有一个任务来实现心跳机制来监控BT芯片的活跃度。
BT芯片每5秒通过uart接口(interface)不断发送一条空消息(只有消息ID,没有内容),必须由java模块读取。如果未收到消息,则假设芯片上的固件已失效,需要重置,java 模块可以通过切换 GPIO 来实现。
负责从 uart 读取的模块被实现为扩展线程的类。我尝试使用 android.os.CountdownTimer,但它不起作用。它抛出这个错误:
AndroidRuntime: java.lang.RuntimeException: Can't create handler inside the thread that has not called Looper.prepare()
java中用于实现此类要求的最佳机制是什么?
/*Start timer for 5s for receiving heartbeat*/
mTimer=new CountDownTimer(5000,1000) {
@Override
public void onTick ( long l){
}
@Override
public void onFinish () {
Log.e(TAG, "Nothing received for 5s, missed heartbeat, reset BT chip");
try {
resetBTChip(false);
} catch (InterruptedException e) {
Log.e(TAG, "Can't reset the chip");
return;
}
}
};
mTimer.start();
/*Check the message and deal with timer*/
if(HEART_BEAT.getCode()==opcode) {
mTimer.cancel(); /*Restart the timer on heart-beat event*/
mTimer.start();
Log.e(TAG, "Got HEART BEAT");
continue;
} else {
Log.e(TAG, "Got Something else, handle the message");
mTimer.cancel(); /*Restart the timer on any event*/
mTimer.start();
}
最佳答案
你可以做一个可运行的和一个处理程序。处理程序有一个 postdelay 函数,允许您指定在运行 runnable 之前等待多长时间。他们还可以删除/取消计时器。这就是我以前做心跳的方式。如果倒计时不起作用,您可以尝试这样做。
所以runnable将负责重置功能。你会使用你当前的计时器。如果您再次收到心跳,您只需取消当前的可运行,并使用 postdelay 函数将其重新添加以重新启动计时器。
关于java - 处理来自 BT 芯片的周期性心跳消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41656080/
我正在 iOS 上开发一个视频播放器项目。 它使用 AVFoundation提取 CVPixelBuffer从视频文件中提取,然后将该缓冲区作为纹理发送到 OpenGL。 概念验证代码的灵感来自 Ap
我有一个应用程序可选地需要 BT - 所以我把 在 list 中。 问题是这会过滤掉所有没有 BT 的 Android 设备。 但我需要让它成为可选的!因此,它们应该仍然兼容,以便用户可以从 Go
如果蓝牙配对请求不被接受或取消,我必须为它设置一个超时时间!! It's mentioned that i have to use the timeout defined by Bluetooth s
忘记密码是一件再常见不过的事情了。遇到这样的情况大家也不必太着急和惊慌,我们来具体给大家分析一下。一般情况下宝塔面板忘记用户名和密码的情况不外乎这两种情况: 1、面板刚安装好,不小心关掉了ssh工
宝塔面板如何设置自定义 404 页面?大家知道,默认的 404 页面对搜索引擎不友好,那怎么通过宝塔面板修改默认的 404 页面,使之变成我们自定义的 404 页面呢。 1、进入宝塔面板,找到对应
为android设备的蓝牙名称定义最大长度的目的是什么? I have an android device and I could name the BT with a name of unlimit
我对java很陌生,我有一个任务来实现心跳机制来监控BT芯片的活跃度。 BT芯片每5秒通过uart接口(interface)不断发送一条空消息(只有消息ID,没有内容),必须由java模块读取。如果未
我正在开发一个需要 BT 连接的 Android 应用程序。阅读 Android 开发者页面后,给定的方法(例如 isEnabled())不起作用。错误是无法解析符号isEnabled。导入的库是an
我是 Android 新手。我想开发一个带有操作栏溢出菜单的页面。我的模拟器显示正确。但我在手机中看不到它。 Android 版本为 4.1.2 的手机请帮帮我.... Android list
我已经使用 Apache cordova 为 Android 编写了一个启动器应用程序。它适用于类似信息亭的应用程序,基本上运行良好。 不幸的是有一个问题:在某些情况下,Android 会强制终止我的
目标:我正在尝试将我的 Android 手机连接到附近已配对的蓝牙设备。 问题:我是BT技术的新手。我正在将我的 Android 手机与使用经典蓝牙 API (SPP) 的 BT 设备配对,因为 BT
这只是 Xcode 的一个小错误,还是只有我必须运行一个项目两次才能模拟位置? 最佳答案 在 xcode 中使用位置进行测试的最佳选择是添加 .gpx as belove: 并设置该文件的名称,例如
只要我知道如果 BT 设备符合 MFI,iOS 设备就可以与 BT 设备通信。但我的一些 friend 说苹果在推出BLE设备后不再支持BT设备。我的理解是,如果 BT 设备符合 MFI 标准,iOS
我在从Github托管的bt.matching.find工具箱中实现SIT函数时遇到问题。按照here描述的步骤下载工具箱后,我尝试复制此blog描述的代码。 library(SIT.dates) l
/var/日志/消息: segfault at 0 ip 00007fcd16e5853a sp 00007ffd98e37e58 error 4 in libc-2.24.so[7fcd16dc90
例如:iPhone 上的 Pebble 应用程序允许我浏览已发现的 BT 设备列表,然后配对并连接到 watch 。我知道如何显示 BT 外围设备列表,但我确信无法通过代码进行配对和连接。 所需行为的
在过去一周左右的时间里,我一直在努力反对这个问题。我已经阅读了以下资源: StackOverflow:在没有 Gamekit 的情况下通过蓝牙享受 Bonjour? (3844189) StackOv
我想知道 Tizen 是否支持 BT,如果支持,它是否使用开源 bluez 协议(protocol)? 另外我想知道在 Tizen 中使用蓝牙时从哪里开始挖掘。 提前致谢! 最佳答案 tizen 中的
最近发现很多用户反馈的一些问题与磁盘挂载有关, 1、安装完面板后发现磁盘容量与实际购买容量不符 2、重启服务器后面板无法访问,网站、数据库文件丢失 以上都是因为未挂载磁盘,或挂载操作不当引
我想通过 FFmpeg 为平板电脑和手机编码视频,设置“-bt”选项是否重要?如果我只是跳过此选项,这会影响设备上的视频播放吗? ‘-bt tolerance’ Set video bitrate t
我是一名优秀的程序员,十分优秀!