我正在用C++为raspberry pi 2编写一个硬件驱动程序。
司机使用SPI总线与无线电芯片通话。我制作了一个班级无线电,把所有与芯片对话的功能都放进了那门课。其中一些函数是writeToRegister、readFromRegister、setRadioPower、enterSleepMode readTxBuffer、readRxBuffer等等.
这里的问题是这个类将只有一个像Radio radio这样的对象。不需要创建多个对象,因为它是一个包含与硬件对话的函数的类,并且只有一段硬件。
这里的问题是:处理此类课程的最佳方法是什么?
我不想用C做这件事,我想了解更多关于C++的东西。
发布于 2019-07-21 18:06:46
你假设你会有一台收音机。很明显,你可能没有收音机,也没有理由相信永远不会有多台收音机。
作为未来的证明:拥有一个类,为每个可用的无线电硬件返回某种类型的描述。您可能会将此信息作为数组返回。如果没有无线电硬件,则返回一个空数组。如果有多个无线电硬件,则返回一个具有多个项的数组。
然后,您有一个类表示一个无线电硬件。构造函数接受这些描述之一,并返回一个控制该无线电的类。您可能只希望每个可用的无线电硬件只使用一个这样的对象,因此如果描述无效,或者无线电硬件已经在使用,则构造函数将失败(即使无线电硬件被另一个应用程序使用,如果发生这种情况也可能是好的)。
代码的用户将得到描述的数组。如果数组为空,则无法创建无线电对象。否则,如果他们不关心可能有多个收音机,他们会为第一个描述符创建一个无线电对象。在未来可能会有多个描述,然后他们可以更新他们的软件来选择最好的无线电,或使用多个收音机。
https://softwareengineering.stackexchange.com/questions/394978
复制相似问题