nesC的3种连接语句
发布时间:2012/4/2 14:55:27 访问次数:681
①endpointl=endpoint2(赋值连接(equate wire):这是一种SPC41A-129A包含外部规范元素的连接。这种连接语句可以有效地使两个规范元素等价。设Sl是endpointl的规范元素,S2是endpoint2的规范元素,必须满足下面的两种条件,否则会产生编译时错误:
·Sl是内部的规范元素,S2是外部的规范元素(或者相反>,而且Sl和S2同时被提供的或同时被使用的。
·Sl和S2都是外部的规范元素,且一个是被提供的,另一个是被使用的。
②endpointl.>endpoint2,这是一种包含两个内部规范元素的连接。这样经常把endpointl定义的被使用的规范元素连接到endpoint2定义的被提供的规范元素上。如果这两个条件不满足时会产生一个编译时错误。
③endpointl<.endpoint2,这种连接等价于endpoint2 ->endpointl。
在这3种连接中,指定的两个规范元素必须是相容的,即它们必须都是命令,或都是事件,或都是接口实例。同时,如果它们都是命令(或事件),则它们必须有相同的函数特征。如果它们都是接口实例,则它们必须有相同的接口类型。如果这些条件不能满足,就会发生编译时错误。
如果一个端点是参数化的,则另一个必须也是参数化的,并且必须有相同的参数类型;否则就会发生编译时错误。
同一规范元素可能会被多次连接,例如:
configuration C {
provides interface Xj
}implementation {
components Cl, C2;
X= Cl.X;
×= C2.X;
}
在这个例子中,乡次的连接将会导致接口X的事件多次被触发(扇入),当接口X中的命令被调用时,会导致多个函数被执行(扇出)。注意,当两个配置独立地连接同一接口时,也会发生多重连接。
·Sl是内部的规范元素,S2是外部的规范元素(或者相反>,而且Sl和S2同时被提供的或同时被使用的。
·Sl和S2都是外部的规范元素,且一个是被提供的,另一个是被使用的。
②endpointl.>endpoint2,这是一种包含两个内部规范元素的连接。这样经常把endpointl定义的被使用的规范元素连接到endpoint2定义的被提供的规范元素上。如果这两个条件不满足时会产生一个编译时错误。
③endpointl<.endpoint2,这种连接等价于endpoint2 ->endpointl。
在这3种连接中,指定的两个规范元素必须是相容的,即它们必须都是命令,或都是事件,或都是接口实例。同时,如果它们都是命令(或事件),则它们必须有相同的函数特征。如果它们都是接口实例,则它们必须有相同的接口类型。如果这些条件不能满足,就会发生编译时错误。
如果一个端点是参数化的,则另一个必须也是参数化的,并且必须有相同的参数类型;否则就会发生编译时错误。
同一规范元素可能会被多次连接,例如:
configuration C {
provides interface Xj
}implementation {
components Cl, C2;
X= Cl.X;
×= C2.X;
}
在这个例子中,乡次的连接将会导致接口X的事件多次被触发(扇入),当接口X中的命令被调用时,会导致多个函数被执行(扇出)。注意,当两个配置独立地连接同一接口时,也会发生多重连接。
①endpointl=endpoint2(赋值连接(equate wire):这是一种SPC41A-129A包含外部规范元素的连接。这种连接语句可以有效地使两个规范元素等价。设Sl是endpointl的规范元素,S2是endpoint2的规范元素,必须满足下面的两种条件,否则会产生编译时错误:
·Sl是内部的规范元素,S2是外部的规范元素(或者相反>,而且Sl和S2同时被提供的或同时被使用的。
·Sl和S2都是外部的规范元素,且一个是被提供的,另一个是被使用的。
②endpointl.>endpoint2,这是一种包含两个内部规范元素的连接。这样经常把endpointl定义的被使用的规范元素连接到endpoint2定义的被提供的规范元素上。如果这两个条件不满足时会产生一个编译时错误。
③endpointl<.endpoint2,这种连接等价于endpoint2 ->endpointl。
在这3种连接中,指定的两个规范元素必须是相容的,即它们必须都是命令,或都是事件,或都是接口实例。同时,如果它们都是命令(或事件),则它们必须有相同的函数特征。如果它们都是接口实例,则它们必须有相同的接口类型。如果这些条件不能满足,就会发生编译时错误。
如果一个端点是参数化的,则另一个必须也是参数化的,并且必须有相同的参数类型;否则就会发生编译时错误。
同一规范元素可能会被多次连接,例如:
configuration C {
provides interface Xj
}implementation {
components Cl, C2;
X= Cl.X;
×= C2.X;
}
在这个例子中,乡次的连接将会导致接口X的事件多次被触发(扇入),当接口X中的命令被调用时,会导致多个函数被执行(扇出)。注意,当两个配置独立地连接同一接口时,也会发生多重连接。
·Sl是内部的规范元素,S2是外部的规范元素(或者相反>,而且Sl和S2同时被提供的或同时被使用的。
·Sl和S2都是外部的规范元素,且一个是被提供的,另一个是被使用的。
②endpointl.>endpoint2,这是一种包含两个内部规范元素的连接。这样经常把endpointl定义的被使用的规范元素连接到endpoint2定义的被提供的规范元素上。如果这两个条件不满足时会产生一个编译时错误。
③endpointl<.endpoint2,这种连接等价于endpoint2 ->endpointl。
在这3种连接中,指定的两个规范元素必须是相容的,即它们必须都是命令,或都是事件,或都是接口实例。同时,如果它们都是命令(或事件),则它们必须有相同的函数特征。如果它们都是接口实例,则它们必须有相同的接口类型。如果这些条件不能满足,就会发生编译时错误。
如果一个端点是参数化的,则另一个必须也是参数化的,并且必须有相同的参数类型;否则就会发生编译时错误。
同一规范元素可能会被多次连接,例如:
configuration C {
provides interface Xj
}implementation {
components Cl, C2;
X= Cl.X;
×= C2.X;
}
在这个例子中,乡次的连接将会导致接口X的事件多次被触发(扇入),当接口X中的命令被调用时,会导致多个函数被执行(扇出)。注意,当两个配置独立地连接同一接口时,也会发生多重连接。
上一篇:连接(wiring)
上一篇:TinyOS的组件模型