问题标签 [mbed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 如何将名称和 ID 属性添加到自定义 BLE 特征 C++
我正在使用这个mbed 解决方案,在 C++ 中创建自定义 GATT 服务。但是,此代码仅使用 UUID 创建特征:
然而,在连接到基于 mbed 的设备的智能手机上的 C# 代码中,我试图访问标准配置文件中的标准特征具有的Characteristic.ID
和属性,但我没有。Characteristic.Name
如何将此信息添加到特征中?
在我的 C# 代码中,我有以下内容:
c++ - 将特征用户描述添加到自定义 C++ BLE GATT 服务
我正在尝试使用mbed API将一些特性用户描述添加到我的自定义 BLE GATT 服务中。到目前为止,我的工作都是基于这种代码结构。但是,我想为这些特征添加名称。我找不到太多关于如何执行此操作的信息。但是,下面是来自论坛的评论,说明了如何做到这一点。
到目前为止,我有这个结构来设置我的特性。
如何为这 3 个特征添加描述?
编辑
我现在有:
Error: No instance of constructor "WriteOnlyArrayGattCharacteristic<T, NUM_ELEMENTS>::WriteOnlyArrayGattCharacteristic [with T=std::uint8_t, NUM_ELEMENTS=10U]" matches the argument list in "main.cpp"
它在“大小”行上抛出一个。
c++ - 向多个自定义 C++ BLE GATT 服务添加特征用户描述
我正在尝试使用mbed API将一些特性用户描述添加到我的自定义 BLE GATT 服务中。到目前为止,我的工作都是基于这种代码结构。但是,我想为这些特征添加名称。我找不到太多关于如何执行此操作的信息。但是,下面是将信息添加到特征的代码。
GattCharacteristic() 的构造函数将 GattAttribtues 数组作为可选参数。您可以将 User-Description 填充到 GattAttribute 中并将其传递给 Characteristic。我有这个结构为一个特性工作,但我正在努力为 3 个字符复制它。我无法将整个内容复制 3 次,因为我将它运行到了很多关于数组等已定义的问题。如果我将描述堆叠在数组中,GattArray 不会接受它吗?
编辑
通过下面的讨论,我现在有:
和
这会构建,但不会为特征命名。
c - 如何从c中的pc.scanf读取小数?
我在 MatLab 和 C 之间进行接口,我可以通过在 Matlab 中编写一个整数向 C 发送:
(连接 mbed 计算机的串行端口被定义为 mbed,这是 C 程序工作的地方)。
然后我在 C 语言中收到这个:
然后我继续尝试在我的程序中使用 inputFloat。这对整数非常有效,但是我尝试对非整数执行相同的第二次操作,例如 0.5 或 1.5,它不起作用。
是否有另一种方法可以尝试从 MatLab 接收值?
我目前能看到的唯一解决方法是尝试通过发送两个整数来实现代码,然后在 C 中通过一个除以另一个整数来处理它们,从而将每个数字作为两个整数发送。
c++ - 从 C++ 函数返回整个自定义类型数组
我正在开发一个 c++ 应用程序,用一些信息填充蓝牙阵列。它基于 mbed 平台 BLE_API,但我认为这不相关。我有以下代码,我试图将其重新考虑到一个函数中。
到目前为止,我得到了这个:
但是,可以预见的是,我会抛出一个错误:
错误:不存在合适的构造函数来将“GattAttribute *[1]”转换为“GattAttribute”
我可以看到它为什么抛出这个,但我不确定我应该如何返回整个数组,因为这是“PercentageFill”构造函数所需的格式。
谢谢。
更新:
为了提供完整的上下文,这是我正在设置的其他 Characteristcis(每个都有不同的名称):
arm - 重写 K64F 内部 Flash
我开始使用配备 mbed 经典(不是操作系统)的 FRDM-K64F 开发板在 ARM 上编程,我想重新编程内部闪存,以便用放置在 MicroSD 卡上的新固件“升级”现有固件,但我面临一些问题。
我正在使用FreescaleIAP库来实现写访问,但它似乎不起作用:如果我尝试擦除/重新编程现有代码已经使用的内存区域(在我的情况下大约为 0x0000-0x4000),它会在擦除过程中冻结并且闪存中的固件被损坏(需要通过usb刷新)。
有没有办法执行这个任务?我想实现诸如OTA固件更新之类的东西。
c++ - 错误:调用重载的 'abs(float&)'
我正在使用 FRDM K64F 控制电机,我正在使用 mbed 的电机库。
编译时,它会在库附带的头文件中发现此错误。
错误包含在此文件中。
它调用motor.h,它位于:
最后我从这里给他们打电话:
有任何想法吗?
c++ - 使用 memset 将字符串数组设置为 0 后无法使用
我有一个类属性,它是一个字符串数组(std::string command[10]
)。当我为其分配一些字符串值时,它会停止程序执行。正如您在下面看到的,我有一个字符串变量tempCommandStr
,我分配给我的属性。我不知道错误可能是什么,但我在赋值后的 print 语句从未执行过,而前面的语句是。
不仅仅是这个属性,我还有另一个数组也有同样的问题。这可能是什么原因造成的?实际上出了什么问题(查看编辑)?还有另一种更好的方法吗?
我在 MBED 上运行程序,所以我限制了调试选项。
编辑:
我发现了问题,在使用删除任何以前的值之前,我正在清理数组memset(command, 0, sizeof(command));
。这是造成问题的原因。现在我clear
在数组中的每个项目上使用该函数,如下所示。这解决了执行问题。
问题:为什么将字符串数组设置为 0 usingmemset
会使其无法使用?
xbee - 使用 AT 命令模式定位 Xbee
我正试图让一个 Xbee 与另一个 Xbee 交谈。我知道我可以用来putc
向网络上的所有 Xbee 广播,但我想专门针对一个。我知道我需要使用 XBee 上的硬件地址来执行此操作,并使用称为 AT 命令模式的东西,但我认为我不明白。例如,我已经看到要进入 AT 命令模式,我需要发送“+++”,但是,我不明白该怎么做。我试过这个:
但不知道在哪里寻找某种消息作为回应。
我不了解这种模式,似乎找不到任何可以为我的情况或相关情况提供示例的内容。
我在 FRDM-K64F 上使用普通 Xbee。
c++ - 从 C 回调访问 C++ 对象
我正在使用mbed framework为嵌入式平台 (ARM CORTEX4) 编写 C++ 应用程序。我正在使用新的 Paho Embedded C++/C 客户端库。这是图书馆的代码。一切都按预期工作,除了订阅回调。
这是 subscribe 方法的定义:
messageHandler 定义为:
和 MessageData 为:
和消息:
由于我的软件是用 C++ 编写的,因此我找不到将上下文变量传递给回调的方法。所以目前看不到从回调中访问我的对象的方法。
我在不同 MQTT 客户端(用于 Unix / Mac / Windows 的 Paho MQTT C 客户端)的 API 中看到,它接受例如 void* 将上下文传递到回调中。
我是否遗漏了什么,或者在回调之外访问对象的最佳策略是什么?
我唯一能想到的就是类中的一些静态变量。这对我来说似乎有点“丑陋”。
非常感谢任何提示!