3127|6

51

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

(已解决)SenSorTile Android获取电量报错 [复制链接]

 最近在开始在使用AndroidStudio通过使用官方的SDK来进行安卓端的编程了,但是突然出现了一个错误,由于本人对android不是很熟悉,让我无法理解,在此提出问题,希望大侠能够帮助一下小弟。
  我在使用读取温度、角度等等数据时均没有问题,但是在读取电池数据时却出现了问题。
//对角度传感器Frature初始化
FAcc=mNode.getFeature(FeatureAcceleration.class);

//对电池电量Feature初始化
FBatt=mNode.getFeature(FeatureBattery.class);

//对温度Feature初始化
FTemp=mNode.getFeature(FeatureTemperature.class);这一段代码运行过后FAcc、FTemp均正常,而FBatt却为空,最初我以为是没有引入这个类,但是我检查过了这部分没有问题。

import com.st.BlueSTSDK.Features.FeatureAcceleration;
import com.st.BlueSTSDK.Features.FeatureBattery;
import com.st.BlueSTSDK.Features.FeaturePedometer;
import com.st.BlueSTSDK.Features.FeatureSwitch;
import com.st.BlueSTSDK.Features.FeatureTemperature;
所以久很纠结了,因为一旦feature出了问题就无法使用我计划的方法读取电池数据
//读取电压值
if (!mNode.isEnableNotification(FBatt))//Ensure the Switch is EnableNotification
    mNode.enableNotification(FBatt);
BattVolt=FBatt.getVoltage(FBatt.getSample());

电压.png (23.73 KB, 下载次数: 6)

电池Feature为NULL

电池Feature为NULL

电压2.png (14.29 KB, 下载次数: 3)

电压2.png

最新回复

请教如何配置AndroidStudio呢?我卡在了这里,不知下一步怎么做  详情 回复 发表于 2017-4-17 17:06
点赞 关注
 
 

回复
举报

111

帖子

0

TA的资源

一粒金砂(中级)

推荐
 
本帖最后由 alberthink 于 2017-3-13 21:54 编辑

看看这个链接有没有帮助:
链接已隐藏,如需查看请登录或者注册


链接已隐藏,如需查看请登录或者注册
commented
链接已隐藏,如需查看请登录或者注册


Hi,
I'm unable to retrieve battery data from a SensorTile using this SDK.
The battery feature doesn't appear in the list of available features, but the BlueMS app is able to retrieve and to show such a feature.
I've tried to manually obtain the data with
node.getFeature(FeatureBattery.class);
but it returns a null object.
I'm able to retrieve all others data (mag, gyro, acc, ...).
I'm forgetting something?



链接已隐藏,如需查看请登录或者注册
commented
链接已隐藏,如需查看请登录或者注册


Hi Andrea,
I tested with Bluemicrosystem2 v2.2 and BlueSTSDKExample application and I'm able to see the battery data.
  • Which firmware are you using?
  • Do you call getFeature after the connection has been completed?




链接已隐藏,如需查看请登录或者注册
commented
链接已隐藏,如需查看请登录或者注册


Hi Giovanni,
i'm using Bluemicrosystem2 v2.2.
Here is a portion of my code:
private Node.NodeStateListener mNodeStateListener = new Node.NodeStateListener() {        @Override        public void onStateChange(final Node node, Node.State newState, Node.State prevState) {            if ((newState == Node.State.Connected)) {                List features = node.getFeatures();                for (final Feature feature : features) {                    node.enableNotification(feature);                    // NO BATTERY FEATURE HERE                }                Feature battery = node.getFeature(FeatureBattery.class); // NULL            } else if ((newState == Node.State.Unreachable || newState == Node.State.Dead || newState == Node.State.Lost)) {                // DO STUFF HERE            } else if (newState == Node.State.Disconnecting) {                // DO STUFF HERE            }        }    };



链接已隐藏,如需查看请登录或者注册
commented
链接已隐藏,如需查看请登录或者注册


链接已隐藏,如需查看请登录或者注册

ok it seems that you are using it correctly.
Please, try to debug the node connection.
Set a breackpoint
链接已隐藏,如需查看请登录或者注册
the function is called during the scanning phase, my featureMask is 0x4FF0400. Look if it builds the FeatureBattery class.
Then set a breakpoint
链接已隐藏,如需查看请登录或者注册
The function is called during the node connection, look if it called with the BluetoothGattCharacteristics with uuid 00020000-0001-11e1-ac36-0002a5d5c51b (the Battery characteristics)
Regards
Giovanni


链接已隐藏,如需查看请登录或者注册

链接已隐藏,如需查看请登录或者注册
commented
链接已隐藏,如需查看请登录或者注册


Hi Giovanni,
at the first breakpoint I obtained the following featureClass values (in this order):
  • class com.st.BlueSTSDK.Features.FeatureAccelerationEvent
  • class com.st.BlueSTSDK.Features.FeatureTemperature
  • null
  • class com.st.BlueSTSDK.Features.FeatureTemperature
  • class com.st.BlueSTSDK.Features.FeatureHumidity
  • class com.st.BlueSTSDK.Features.FeaturePressure
  • class com.st.BlueSTSDK.Features.FeatureMagnetometer
  • class com.st.BlueSTSDK.Features.FeatureGyroscope
  • class com.st.BlueSTSDK.Features.FeatureAcceleration
  • class com.st.BlueSTSDK.Features.FeatureMicLevel
the null value caught my attention.
at the connection I obtained the following characteristics:
001d0000-0001-11e1-ac36-0002a5d5c51b
00e00000-0001-11e1-ac36-0002a5d5c51b
00000400-0001-11e1-ac36-0002a5d5c51b
04000000-0001-11e1-ac36-0002a5d5c51b
00020000-0001-11e1-ac36-0002a5d5c51b
00000100-0001-11e1-ac36-0002a5d5c51b
... omitted for the sake of brevity




链接已隐藏,如需查看请登录或者注册

Collaborator
链接已隐藏,如需查看请登录或者注册
commented
链接已隐藏,如需查看请登录或者注册


Correct, that null value is the problem..
could you see what value is returned by the method getDeviceId?
should be 0x02.




链接已隐藏,如需查看请登录或者注册

链接已隐藏,如需查看请登录或者注册
commented
链接已隐藏,如需查看请登录或者注册


Yes, it returns 2
return this.mDeviceId; mDeviceId: 2




链接已隐藏,如需查看请登录或者注册

Collaborator
链接已隐藏,如需查看请登录或者注册
commented
链接已隐藏,如需查看请登录或者注册


Are you using the last version of the sdk?
is this
链接已隐藏,如需查看请登录或者注册
present?




链接已隐藏,如需查看请登录或者注册

链接已隐藏,如需查看请登录或者注册
commented
链接已隐藏,如需查看请登录或者注册


Tnx Giovanni, I've updated to the last version and now it works!





 
 
 

回复

9716

帖子

24

TA的资源

版主

沙发
 
手里没有电脑mNode.getFeature是哪里的函数?你调试跟踪进去看看为什么会返回null
 
 
 

回复

828

帖子

8

TA的资源

一粒金砂(高级)

板凳
 
本帖最后由 wugx 于 2017-3-12 16:25 编辑

FeatureBattery.class 是通过FeatureBattery类名获取所定义的对象,mNode.getFeature(..)返回空,说明mNode下面没有定义这个对象,慢慢找找,说实话,我sdk也是大概看了一下,,,赞赞,赶紧再研究以下,日后请教
个人签名人生有许多选项是灰色的、不可选的,但至少你可以选择生活的态度。。。韬光养晦,志存高远http://www.xzroad.com/
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(中级)

5
 
问题已经解决了!是因为SDK版本存在问题!更新了过后就好了。谢谢
 
 
 

回复

666

帖子

5

TA的资源

纯净的硅(初级)

6
 
请教如何配置AndroidStudio呢?我卡在了这里,不知下一步怎么做

点评

AS我也是很纠结,度娘找了好几天,终于就可以了,很多东西都是因为无法上国外的网引起的。  详情 回复 发表于 2017-4-19 09:41
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(中级)

7
 
dwwzl 发表于 2017-4-17 17:06
请教如何配置AndroidStudio呢?我卡在了这里,不知下一步怎么做

AS我也是很纠结,度娘找了好几天,终于就可以了,很多东西都是因为无法上国外的网引起的。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表