我的问题与此非常相似:iPhone接近传感器.有明确的iPhone内的温度计的一些方式是由OS可读.有没有人发现超级秘密的无证API来读取这个传感器?
有没有人知道用于处理传感器的"标准化"Java API,它与JS ME紧密相关,就像JSR 256一样?
我正在编写一个Java库,用于连接由几种不同类型的传感器组成的传感器网络(大多数是简单的东西,如温度,湿度,GPS等).
到目前为止,我已经推出了自己的界面,用户必须针对此编写应用程序.我想改变这种方法并实现一个"标准"API,以便实现与我的库紧密相关.
我看过JSR 256,但这对于Java ME来说并不是一个很好的解决方案,我的库主要用于运行完整Java SE的Android设备或笔记本电脑.
通过引入类范围静态计数器并且忽略了x个事件,我能够解决我遇到的具体问题.但是我仍然想知道我做错了什么:用微秒的提示注册监听器而不是使用四个给定常量中的一个.
我的应用程序中的一项活动是让传感器参与获取设备的方向,确定滚动并使用它.
我在用
SensorManager.registerListener(SensorEventListener listener, Sensor sensor, int rate)
注册我的传感器.从Android文档获取此方法:
参数
[...]
率
速率传感器事件在.这只是对系统的暗示.可以比指定的速率更快或更慢地接收事件.通常会更快地收到事件.该值必须是SENSOR_DELAY_NORMAL,SENSOR_DELAY_UI,SENSOR_DELAY_GAME或SENSOR_DELAY_FASTEST之一,或者是事件之间所需的延迟(以微秒为单位).
如果我使用4个预定义常量之一,那么应用程序工作正常; 但是这些常量都提供了对我的需求来说太快的速率提示.我必须发送一个UDP数据包,其中包含每个事件更改的一些信息,并且接收端似乎完全被使用任何预定义速率的消息所淹没.使用像30000这样的整数(因为API指定以微秒为单位的数量)会导致应用程序停止一起报告传感器事件.
我错过了什么阻止我使用自己的事件率提示?
我有一个本地服务器输出我的实时家庭传感器数据,我想在我的浏览器中可视化它.
我的问题是,我可以使用websocket打开从浏览器到本地服务器的连接吗?我该怎么做呢?
本地服务器运行在非http指定的端口号上,我无法更改.
我在我的应用程序中启用了接近唤醒锁,当接近传感器检测到某些东西时,它会关闭屏幕.但是当屏幕唤醒时出现问题 - 它会进入锁屏,而不是我的应用程序.无论屏幕关闭的时间如何,都会发生这种情况(即使传感器在几秒钟后被清除).这是我使用的代码:
int PROXIMITY_SCREEN_OFF_WAKE_LOCK = 32;
mProximityWakeLock = pm.newWakeLock(PROXIMITY_SCREEN_OFF_WAKE_LOCK, LOG_TAG);
if(!mProximityWakeLock.isHeld()){
mProximityWakeLock.acquire();
}
Run Code Online (Sandbox Code Playgroud)
有没有办法纠正这种行为?
我必须显示用户指向Android设备的方向.
我正在使用Sensor.TYPE_ACCELEROMETER,Sensor.TYPE_MAGNETIC_FIELD以获得方位角,俯仰,滚动.但我能够弄清楚如何从这里获得方向(北,南,东,西,......).
请帮忙
谢谢
我正在尝试使用Fitbit的数据来抓住我的手部动作.
然后我在这里找到Fitbit Api:https://wiki.fitbit.com/display/API/Fitbit+Resource+Access+API
在收集资源部分,我似乎只能获得一些数据,如身体测量,体重,近期活动,朋友等.
所以,我的问题是,Fitbit是否提供任何API来帮助我获取实时加速度计数据和陀螺仪数据?
我是这项技术的新手,有人可以帮助我了解一些疑问吗?
Q-1.CoAP数据包的大小是多少?
(我知道有4个字节的固定标头,但是包括标头,选项和有效负载的最大大小限制是多少?)
Q-2.像MQTT这样的Keep Alive有什么概念吗?
(它在UDP上工作了多长时间保持打开连接,是否有任何默认时间或每次发送数据包时都保持打开状态?)
Q-3.我们可以使用CoAP和TCP吗?
(CoAP的主要问题是它适用于UDP,是否有像MQTT QoS这样的概念?假设传感器每隔一秒发布一些数据,如果用户下线,CoAP中是否有任何保证,订户将获得所有数据时它上线了?)
Q-4.连接的持续时间是多少?
(CoAP支持发布/订阅架构,可能一直需要连接打开,是否可以与CoAP一起使用它是否基于UDP.)
Q-5.它是如何发现资源的?
(我有一个网关和5个传感器,这些传感器将如何连接到网关?网关会找到这些传感器吗?或者传感器会找到网关吗?)
Q-5.传感器如何在网关中注册?
请帮帮我,我真的需要回答.我对这些事情都很陌生,并建议我实施的观点.
谢谢.
我是Python的新手,我必须分析一个包含Excel格式的原始sensordata的大型数据集.
对于每个研究参与者,每个Excel数据文件大于100 MB.excelfile包含5张用于测量5种不同生理参数的薄片.每张纸包含超过100万行和两列(时间,生理参数).
在100万行sensordata之后,数据会自动在Excel文件的以下列(C和D)中继续.
每次我尝试在Python中加载数据文件时,都需要永远.我想知道几件事:
1)如何告诉Python从特定的 Excel工作表中读取数据?这花了这么长时间是正常的吗?
这是我试过的:
df = pd.read_excel("filepath", sheet_name="Sheetname")
print (df.head (5))
Run Code Online (Sandbox Code Playgroud)
2)使用Pandas在Python中为大型数据文件进行数据修改是否可行?我试过这个来加快这个过程:
import xlrd
work_book = xlrd.open_workbook('filepath', on_demand=True)
work_book.release_resources()
Run Code Online (Sandbox Code Playgroud)
3)后来:我想比较不同研究参与者的生理参数.由于这是研究参与者之间的时间序列分析,我怎样才能在Python中开始这样做?
我在几天内学会了Python的基础知识,到目前为止我都很喜欢它.我意识到我还有很长的路要走.
更新:我想我刚刚完成了时间序列分析(实际上只是趋势分析,使用Dickey-Fuller测试和滚动均值可视化技术)!:D非常感谢你的帮助!大熊猫中的"datetime"模块对我来说是最困难的,而我的日期时间列仍然被识别为"对象".这是正常的吗?不应该是datetime64吗?
我尝试从NDK访问加速度计.到目前为止它的作用.但事件写入事件队列的方式似乎有点奇怪.
请参阅以下代码:
ASensorManager* AcquireASensorManagerInstance(void) {
typedef ASensorManager *(*PF_GETINSTANCEFORPACKAGE)(const char *name);
void* androidHandle = dlopen("libandroid.so", RTLD_NOW);
PF_GETINSTANCEFORPACKAGE getInstanceForPackageFunc = (PF_GETINSTANCEFORPACKAGE) dlsym(androidHandle, "ASensorManager_getInstanceForPackage");
if (getInstanceForPackageFunc) {
return getInstanceForPackageFunc(kPackageName);
}
typedef ASensorManager *(*PF_GETINSTANCE)();
PF_GETINSTANCE getInstanceFunc = (PF_GETINSTANCE) dlsym(androidHandle, "ASensorManager_getInstance");
return getInstanceFunc();
}
void init() {
sensorManager = AcquireASensorManagerInstance();
accelerometer = ASensorManager_getDefaultSensor(sensorManager, ASENSOR_TYPE_ACCELEROMETER);
looper = ALooper_prepare(ALOOPER_PREPARE_ALLOW_NON_CALLBACKS);
accelerometerEventQueue = ASensorManager_createEventQueue(sensorManager, looper, LOOPER_ID_USER, NULL, NULL);
auto status = ASensorEventQueue_enableSensor(accelerometerEventQueue,
accelerometer);
status = ASensorEventQueue_setEventRate(accelerometerEventQueue,
accelerometer,
SENSOR_REFRESH_PERIOD_US);
}
Run Code Online (Sandbox Code Playgroud)
这就是我初始化一切的方式.我的SENSOR_REFRESH_PERIOD_US是100.000 - 每秒10次刷新.现在我有以下方法来接收事件队列的事件.
vector<sensorEvent> update() {
ALooper_pollAll(0, NULL, NULL, NULL); …Run Code Online (Sandbox Code Playgroud)