[Tinyos-help] Can't implement MicInterrupt

Joe Polastre joe at polastre.com
Thu Mar 8 10:07:04 PST 2007


Hi Keerthi,

  The interfaces that you're using do not exist.  If you look at the
nesdoc for the MicDriverC component, you will see:

    interface SensorInterrupt as MicInterrupt;
    interface Potentiometer as MicInterruptThreshold;

  Your application should mirror these lines in its "uses" block.

-Joe


On 3/6/07, Keerthi Iyengar <keerthii at forge.com.au> wrote:
> Hey guys,
>
> I had previously asked about MicInterrupts,
>
> I am relatively new to NesC and tinyos programming. I am using the tmote
> invent and I am compiling using "make tmoteinvent"
>
> In my configuration, I have wired
>
>     rcP.MicInterrupt -> MicDriverC; //rcP is my implementation in my
> program
>
>  From the file MicDriverM file in
> C:\cygwin\opt\moteiv\tos\sensorboards\invent , you need to implement
>    async event void MicInterrupt.fired() {
>    }
>
> However when i compile it is saying "'fired' is not in interface
> 'MicInterrupt'
>
> Instead it asks me for 'MicInterrupt.toneDetected' which is something to
> do with the mica platform from what I have seen. The exact error is:
>
> In file included from rcC.nc:8:
> In component `rcP':
> rcP.nc:6: interface MicInterruptThreshold not found
> rcP.nc:6: interface MicInterruptThreshold not found
> In file included from rcC.nc:8:
> rcP.nc:36: `fired' is not in interface `MicInterrupt'
> rcP.nc:40: `setDone' is not in interface `MicInterruptThreshold'
> rcP.nc:13: `MicInterrupt.toneDetected' not implemented
>
> Can someone help me out? I can't see anything wrong with my code.
>
> Regards
>
> Keerthi
>
> ------------------------------------------------------------------------
>
>
> configuration rcC {
> }
> implementation {
>
>   components Main;
>   components new MainControlC() as MainMicC;
>   components rcP;
>   components DelugeC;
>
>   components MicDriverC;
>
>   components UserButtonAdvancedC;
>   components LedsC;
>   components new TimerMilliC() as LedsTimerC;
>
>   Main.StdControl -> rcP;
>   MainMicC.SplitControl -> MicDriverC;
>
>   rcP.MicInterrupt -> MicDriverC;
>   rcP.MicInterruptThreshold ->MicDriverC;
>
>   rcP.Button -> UserButtonAdvancedC;
>   rcP.Leds -> LedsC;
>   rcP.LedsTimer -> LedsTimerC;
>
> }
>
>
>
> ------------------------------------------------------------------------
>
>
> module rcP{
>   provides interface StdControl;
>
>   uses interface MicInterrupt;
>   uses interface MicInterruptThreshold;
>
>   uses interface ButtonAdvanced as Button;
>   uses interface Leds;
>   uses interface Timer2<TMilli> as LedsTimer;
>
> }
> implementation {
>
>
>   // StdControl
>
>   command result_t StdControl.init() {
>     return SUCCESS;
>   }
>
>   command result_t StdControl.start() {
>     call Button.enable();
>     return SUCCESS;
>   }
>
>
>   command result_t StdControl.stop() {
>     return SUCCESS;
>   }
>
>
>   event void LedsTimer.fired() {
>   }
>
>   async event void MicInterrupt.fired() {
>
>   }
>
>   event void MicInterruptThreshold.setDone(uint8_t _gain, result_t _result) {
>   }
>
>
>
>
>
>
>   // Button clicking
>
>   async event void Button.multiClick( uint8_t count ) {
>   }
>   async event void Button.longClick( uint32_t time ) {
>   }
>   }
>
>
>
>
>
> _______________________________________________
> Tinyos-help mailing list
> Tinyos-help at Millennium.Berkeley.EDU
> https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>


More information about the Tinyos-help mailing list