嗨,对话框中,
我试图通过hrp_sensor项目发送用户数据。
我的数据是16位或32位。
我这样修改代码:
hrs_meas。bpm = (uint16_t) temp_int32;/ /用户数据
当数据= 2400~2566时,App显示596xx,627xx,.....
我不知道下面的代码将做什么:
//-------------------------------
/* RR-Interval将每次发送,但有不同的设置*/
hrs_meas。Rr_num = 1 + rand() % 2;
hrs_meas。Rr [0] = 1000 + rand() % 21;
如果(hrs_meas。Rr_num > 1) {
hrs_meas。Rr [1] = 1000 + rand() % 21;
}
//------------------------------
需要修改代码吗?
顺便问一下,如何定义/传输用户数据?(UUID ?..regist服务…)
谢谢
关键词:
设备:
嗨jamesleo-konka,
心率传感器实现只是一个使用虚拟数据的示例,因此您所粘贴的代码只是为了在指定范围内产生一些随机数据的代码。此外,该项目不只是发送来自传感器的原始值,来自SIG的HRP传感器的规范在发送的通知中打包了额外的数据(标志字段,rr -间隔值,能量消耗值等),请看看SIG的心率配置文件规范。为了改变心率,你可以修改你已经修改的(心率测量可以是8或16位值,从规范中定义)。关于如何传输用户数据,hrs_notify_measurement()函数将自动检查通知是否启用,打包数据(以HRP传感器定义的指定格式)并将其发送到中央。
由于MT_dialog
嗨,对话框中,
通过查看hrp_sensor的演示代码,可以看到16bit传感器数据的容量:
//------------------------------------------
/*检查触发引脚是否设置为低(GND)发送16位值*/
如果(!hw_gpio_get_pin_status (CFG_SEND_16_BIT_VALUE_TRIGGER_GPIO_PORT
CFG_SEND_16_BIT_VALUE_TRIGGER_GPIO_PIN)) {
/* BPM将(80+/-5)+ 200发送16位值*/
hrs_meas。bpm + = 200;
}
//---------------------------------
我改变了演示的hr值,并想发送一个16位的值:
//---------------------------------
hrs_meas。bpm = (uint16_t) temp_int32;/ /用户数据
//---------------------------------
该值现在在16位范围内,但APP显示为一个错误的值。(即25xx显示为63xx)
还有什么限制呢?rr_num吗?rr吗?我没有找到代码来调整发送hr数据的方法。
根据HRP协议绘制如下图:
//------------------------------------------------------
例如,如果心率测量值格式UINT8使用23-octet ATT_MTU, RR-Interval值的最大数量,可以通知如果存在能源消耗是8和RR-Interval值的最大数量,可以通知如果能源消耗不存在是9。
如果收集器接收到一个心率测量特征,其Flags字段值的位被指定为保留未来使用(RFU),它应该忽略这些位,继续正常处理心率测量特征。
//------------------------------------------------------
我应该修改rr_num/rr值吗?如何?
谢谢
嗨jamesleo-konka,
我不确定我是否遵循,至少在我这边,如果我在hrs_meas中放置一个较大的静态值。例如像2454这样的BPM,我可以看到在一个通用应用程序上正确显示的值以及应用程序在通知上发送的其他信息。所以你不需要改变rr或rr_num,这些只是额外的信息,声明一个或多个跳动间隔的值位于通知(rr_num)和间隔的实际值(rr)。如果您想要改变这些值,您可以通过用随机值替换填充该变量的代码来实现。尝试使用一个通用的应用程序,并为bpm值使用一个静态值,并检查是否可以在另一边获得它。
由于MT_dialog
你好,
我能知道你从哪里得到hrp_sensor的演示代码吗?谢谢。
嗨herochua617,
58x家族没有hrp演示,本帖提到的演示涉及68x家族,请看看你的其他帖子https://support.dialog-semiconductor.com/forums/post/dialog-smartbond-bl..。.
由于MT_dialog