用于包装通用Timer的模块

时间:2013-03-04 14:07:57

标签: tinyos nesc

我正在尝试编写一个模块来包装一个通用的Timer,但我想使用这个模块能够以任意精度包装定时器,而无需编写重复的代码。

我写了这样的模块,但它抱怨说precision_tag缺少一个类型,但也给它一个不会编译的类型。

generic module TimerLoggerP(precision_tag) {
    provides {
        interface Timer<precision_tag> as Timer;
        interface LoggerComponent;
    }

    uses {
        interface Timer<precision_tag> as RTimer;
    }
}

有谁知道如何让它以我想要实现的通用方式工作?

1 个答案:

答案 0 :(得分:1)

只需要特殊的 typedef 类型。

generic module TimerLoggerP(typedef precision_tag) {
    provides {
        interface Timer<precision_tag> as Timer;
        interface LoggerComponent;
    }

    uses {
        interface Timer<precision_tag> as RTimer;
    }
}