前一小节中介绍的接口Boot、Init和Leds都是无类型的。本小节介绍一类新的将一个或多个类型作为参数的接口,如上面提到的接口Read,这类接口称为通用接口。接口的类型参数用尖括号括起来。接口定义中的事件和命令可以引用接口的参数,具体地说,可以在命令或事件的形参或者函数(指命令或事件)返回值类型等处使用。例如,在接口Read中,参数val_t定义了读取数据的类型,并将其作为事件readDone第二个形参的类型。在接口Get中,参数val_t定义获取数据的类型,将类型val_t作为命令get()返回值的类型。Get接口代码如下:
对于通用接口,有以下三点说明。
1)通用接口可以支持多个参数类型,在各参数类型之间使用逗号分隔。
2)组件声明通用接口时必须指定参数。
3)通用接口的类型也可能不被接口中的任意一个命令或事件使用。但是接口的提供者和使用者之间进行连接时,接口的类型参数一定要匹配。(www.xing528.com)
例3.8:通用接口TimeSyncPacket
通用接口TimeSyncPacket具有两个参数类型,precision_tag和size_type。参数precision_tag标识计时器的精确度类型,接口TimeSyncPacket中的命令和事件没有使用这个参数。参数size_type标识了命令eventTime的返回值类型。
磁力计组件的规范中提供的接口Read也是一个通用接口,接口Read的参数类型为uint16_t。如果将使用Timer<TMilli>接口的组件与提供Timer<TMicro>接口的组件连接起来,则会产生编译错误。
例3.9:MagnetometerC组件
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。