我正在尝试使用简单的sdk来与健身追踪器Xiaomi Mi Band一起工作.目前我可以跟踪步骤,启动振动,处理传感器触摸,但我有心率测量的问题.我的sdk基于https://github.com/pangliang/miband-sdk-android.为了测量心率,我需要将描述符写入适当的特征,以便在改变该特征的值时处理回调,然后将适当的数据写入心率控制点特征以直接启动心率测量过程.问题是,在启动此过程的数据成功写入特征后,心率测量过程未开始(当Mi Band开始测量心率时,底部传感器闪烁绿色).这可能是由健身追踪器的新固件(固件版本:4.15.12.10; HeartRate版本:1.3.74.64)引起的,或者我的代码中存在一些缺陷:
/-------- MiBandProfile --------/
public static final UUID UUID_SERVICE_HEARTRATE = UUID.fromString("0000180d-0000-1000-8000-00805f9b34fb");
public static final UUID UUID_NOTIFICATION_HEARTRATE = UUID.fromString("00002a37-0000-1000-8000-00805f9b34fb");
public static final UUID UUID_CHAR_HEARTRATE = UUID.fromString("00002a39-0000-1000-8000-00805f9b34fb");
public static final UUID UUID_DESCRIPTOR_UPDATE_NOTIFICATION = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
/-------- MiBandProtocol --------/
public static final byte[] START_HEART_RATE_SCAN = {21, 1, 1};
/-------- BleProvider --------/
public class BleProvider extends BluetoothGattCallback {
public interface NotifyListener {
void onNotify(byte[] data);
}
private HashMap<UUID, NotifyListener> mNotifyListeners = new HashMap<UUID, NotifyListener>();
.
.
. …Run Code Online (Sandbox Code Playgroud) 如何将一些负数转换为unsigned types.
Type type = typeof (ushort);
short num = -100;
ushort num1 = unchecked ((ushort) num); //When type is known. Result 65436
ushort num2 = unchecked(Convert.ChangeType(num, type)); //Need here the same value
Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用 Mahapps Metro 主题。我想创造一个有图像的TabControl地方。TabItemMahapps 主题提供了在选择 TabItem 时更改 TabItem 文本的颜色TabItem等。我想将此前景色绑定到我的图像。我有这个问题的解决方案,但我认为它不正确。
“坏”代码(但它有效):
<TabItem>
<TabItem.HeaderTemplate>
<DataTemplate>
<Grid Margin="0,5,0,0">
<TextBlock x:Name="myTextBlock" />
<Rectangle Width="28.947" Height="25" Fill="{Binding ElementName=myTextBlock, Path=Foreground}">
<Rectangle.OpacityMask>
<VisualBrush Stretch="Fill" Visual="{StaticResource appbar_image_gallery}" />
</Rectangle.OpacityMask>
</Rectangle>
</Grid>
</DataTemplate>
</TabItem.HeaderTemplate>
</TabItem>
Run Code Online (Sandbox Code Playgroud) 我已经编写了一些代码,每次点击按钮时必须逐个打开LED(在一个圆形中),但有时只需点击一下按钮就可以点亮下一个指示灯而不是一个随机点亮四个指示灯.这就像一个或多个LED跳过它.我认为这个问题是由于时钟速率设置错误或上升/下降EXTI跳闸错误设置造成的.董事会:STM32DISCOVERY
periph.h
#ifndef PERIPH_H
#define PERIPH_H
#include "stm32f4xx_gpio.h"
#include "stm32f4xx_rcc.h"
#include "misc.h"
#include "stm32f4xx_exti.h"
#include "stm32f4xx_syscfg.h"
void Initialize_GPIO_LEDS(void);
void Initialize_GPIO_Button(void);
void Initialize_EXTI0_PA(void);
void Initialize_NVIC(void);
typedef enum
{
GPIO_LED_Green = GPIO_Pin_12,
GPIO_LED_Yellow = GPIO_Pin_13,
GPIO_LED_Red = GPIO_Pin_14,
GPIO_LED_Blue = GPIO_Pin_15
}GPIO_LED_TypeDef;
void GPIO_LED_On(GPIO_LED_TypeDef GPIO_LED_x);
void GPIO_LED_Off(GPIO_LED_TypeDef GPIO_LED_x);
void GPIO_LED_All_On(void);
void GPIO_LED_All_Off(void);
#endif /* PERIPH_H */
Run Code Online (Sandbox Code Playgroud)
PERIPH.C
#include "periph.h"
GPIO_InitTypeDef GPIO_LEDS;
GPIO_InitTypeDef GPIO_Button;
EXTI_InitTypeDef EXTI0_PA;
NVIC_InitTypeDef NVIC_Struct;
void Initialize_GPIO_LEDS(void)
{
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
GPIO_LEDS.GPIO_Pin = GPIO_Pin_15 | GPIO_Pin_14 | GPIO_Pin_13 | GPIO_Pin_12;
GPIO_LEDS.GPIO_Mode …Run Code Online (Sandbox Code Playgroud) 我需要实现从传递给函数的参数创建列表的函数.
这是我的代码:
(defun lstbuilder (&rest args)
(if (eq (car args) NIL)
NIL
(cons (car args)
(lstbuilder (cdr args)))))
Run Code Online (Sandbox Code Playgroud)
此功能无法正常工作.结果:
(lstbuilder 'a 'b 'c 'd 'e) ;expected (a b c d e)
(a (b c d e)) ;result
Run Code Online (Sandbox Code Playgroud) c# ×2
android ×1
common-lisp ×1
debouncing ×1
interrupt ×1
java ×1
keil ×1
lisp ×1
reflection ×1
wpf ×1
xaml ×1