c++ - 将一个对象的函数设置为由arduino库中的另一个对象调用

标签 c++ arduino libraries led

我对用 C 语言编写有点陌生,所以我希望我不会离题太远。

我正在开发一个库来处理多种类型的 LED IC 的控制。有大量不同类型的 RGB 像素库,每个都有自己独特的命名,但实际上都执行相同的基本操作。创建“ strip ”或“ strip ”对象,每个像素都设置一个颜色值,然后更新 strip 。

我的库处理从后台软件获取像素颜色值,并为用户提供属于对象的数组中的最新值。

我想要的是允许用户启动他们的 LED 灯条对象并将对该对象的引用传递到我的库,然后允许他们传递他们的对象“setPixelColor()”函数和“UpdateStrip()”函数也去图书馆。如果这是可以实现的,那么我相信我的库可以处理任何给定 PixelLibrary 的所有灯光控制操作。

我相信我正在寻找的是在对象之间传递函数指针的正确方法?不是在找人为我做这件事,而是在寻找直接的指导。今天早上一直在谷歌搜索,但我什至不知道我使用的是正确的术语。任何建议或指导都会有很大帮助。谢谢!

最佳答案

听起来您需要的是基类或虚拟基类/接口(interface)。您定义一个类,其中包含适用于所有 LED 的通用数据和方法。这个公共(public)或抽象类定义了公共(public)功能。然后,您的每个 LED 串类型都将继承基类/接口(interface)并实现特定功能,例如设置 LED。

使用这种方法,应用程序代码使用基类/接口(interface)方法以相同的方式处理所有链。

如果您使用这种方法,我还建议您创建一个静态工厂方法,该方法在创建特定需要的对象后返回一个基类/接口(interface)指针。

abstractController=CreateLEDStrandController("Strand Type");//创建正确的对象,返回一个抽象的基类指针。

abstractController.SetLEDColor("红色");//实际调用具体对象SetLEDColor

关于c++ - 将一个对象的函数设置为由arduino库中的另一个对象调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20909772/

相关文章:

c++ - 具有不完全整数类型的结构和枚举

c++ - 削减依赖性

android - 基于 Arduino 和 Android 的 PC

c++ - Windows 链接

c++ - 严格相同的数组输入

c++ - 命令行中缺少 DSO

c++ - strcat 不刷新

arduino - 使用 SD 卡和 arduino 的单位模式

javascript - 比较和分配数字

c - 如何加载与 jq 一起使用的数学库?