Then it's the types of the interfaces that don't match.

I suggest that you read  Chapter 5 of "TinyOS Programming" by Phil
Levis (http://csl.stanford.edu/~pal/pubs/tinyos-programming.pdf)and
the nesC language reference manual first.

Janos

On Tue, Sep 28, 2010 at 9:33 AM, Zsolt Varady <zsvar...@plexipi.com> wrote:
> It has...
>
> *******************************
> generic module SwitchToggleC() {
>  provides interface Get<bool>;
>  provides interface Notify<bool>;
>
>  uses interface GeneralIOUB1;
>  uses interface GpioInterruptUB1;
> }
> implementation {
> ...
>
>
> Zsolt
>
> On Tue, 2010-09-28 at 09:26 -0500, Janos Sallai wrote:
>> Most probably, SwitchToggleC doesn't have interfaces called
>> GeneralIOUB1 and GpioInterruptUB1.
>>
>> Janos
>>
>>
>> On Tue, Sep 28, 2010 at 6:18 AM, Zsolt Varady <zsvar...@plexipi.com> wrote:
>> > Dear Janos,
>> >
>> > Thank you for the answer, the information about wiring directly to
>> > HplAtm128GeneralIOC helped a lot. So I moved forward, but I am still
>> > lost.
>> >
>> > Now I have:
>> >
>> > HplUserButtonC.nc
>> > ******************************************
>> > configuration HplUserButtonC {
>> >  provides interface GeneralIO as GeneralIOUB1;
>> >  provides interface GpioInterrupt as GpioInterruptUB1;
>> > }
>> > implementation {
>> >  components HplAtm128GeneralIOC as GeneralIOC;
>> >  components HplAtm128InterruptC as InterruptC;
>> >
>> >  GeneralIOUB1 = GeneralIOC.PortD0;
>> >
>> >  components new Atm128GpioInterruptC() as InterruptUserButton1C;
>> >  InterruptUserButton1C.Atm128Interrupt -> InterruptC.Int0;
>> >  GpioInterruptUB1 = InterruptUserButton1C.Interrupt;
>> >
>> > }
>> > ******************************************
>> >
>> > UserButtonC.nc
>> > ******************************************
>> > #include <UserButton.h>
>> >
>> > configuration UserButtonC {
>> >  provides interface Get<button_state_t>;
>> >  provides interface Notify<button_state_t>;
>> > }
>> > implementation {
>> >  components HplUserButtonC;
>> >
>> >  components new SwitchToggleC();
>> >  SwitchToggleC.GeneralIOUB1 -> HplUserButtonC.GeneralIOUB1; // line 55
>> >  SwitchToggleC.GpioInterruptUB1 -> HplUserButtonC.GpioInterruptUB1; //
>> > line 56
>> >
>> >  components UserButtonP;
>> >  Get = UserButtonP;
>> >  Notify = UserButtonP;
>> >
>> >  UserButtonP.GetLower -> SwitchToggleC.Get;
>> >  UserButtonP.NotifyLower -> SwitchToggleC.Notify;
>> > }
>> > ******************************************
>> >
>> > when I am compiling I also get:
>> >
>> > In component `UserButtonC':
>> > tos/platforms/plxincirc/UserButtonC.nc: At top level:
>> > tos/platforms/plxincirc/UserButtonC.nc:54: no match
>> > tos/platforms/plxincirc/UserButtonC.nc:55: no match
>> >
>> >
>> > Can you (or somebody else) explain me what is wrong here? How can I use
>> > the interface in UserButtonC.nc what HplUserButtonC.nc provides?
>> >
>> > Of course I tried to understand the documentation, check other codes,
>> > but I need more practice in order the NesC system to become clear.
>> >
>> >
>> > regards,
>> > Zsolt
>> >
>> > On Mon, 2010-09-27 at 21:49 -0500, Janos Sallai wrote:
>> >> Zsolt:
>> >>
>> >> If the user button is connected to any of the int0, int1, int2, or
>> >> int3 pins (i.e. Port D0 to Port D3), you can wire against
>> >> HplAtm128Interrupt. Note that HplAtm128Interrupt provides
>> >> HplAtm128Interrupt interfaces. You will want to use
>> >> Atm128GpioInterruptC to convert to the GpioInterrupt interface.
>> >>
>> >> You don't want to use Msp430GpioC, because that's for a completely
>> >> different MCU.
>> >>
>> >> From the error message you quote, I notice that you have a couple of
>> >> syntax errors in the top-level code. Also, your HplUserButtonC.nc
>> >> looks good, but you'll need to double check the component names (i.e.
>> >> there's no such thing as Atm128GpioC). The GeneralIO interface is
>> >> provided by HplAtm128GeneralIOC , you can wire that directly to the
>> >> GeneralIO interface HplUserButtonC provides.
>> >>
>> >> Janos
>> >>
>> >>
>> >> On Mon, Sep 27, 2010 at 2:36 PM, Zsolt Varady <zsvar...@plexipi.com> 
>> >> wrote:
>> >> > Dear List,
>> >> >
>> >> > I have a node with Atmel1281 MCU, I already have some working tinyOS
>> >> > apps on it. Now I would like to implement a button, so I used
>> >> > apps/tests/telosb/TestUserButton as a base.
>> >> >
>> >> > I copied the related files from app dir and from the telosb platform
>> >> > directory as well (UserButtonP.nc, UserButton.h, UserButtonC.nc,
>> >> > SwitchToggleC.nc, HplUserButtonC.nc), and even the Msp430GpioC.nc file
>> >> > from chips/Msp430/pins, as it "kind of missing" in the Atmel dir.
>> >> >
>> >> > I tried to modify all of them to pass the Atmel MCU, but I guess I am
>> >> > still missing something as I get the following error:
>> >> >
>> >> > In file included from ButtonsAppC.nc:15:
>> >> > In component `ButtonsC':
>> >> > ButtonsC.nc:48: syntax error before `button_state_t'
>> >> > In file included from ButtonsAppC.nc:15:
>> >> > ButtonsC.nc:49: syntax error before `button_state_t'
>> >> > ButtonsC.nc:101: syntax error before `state'
>> >> > ButtonsC.nc:101: unknown interface `Notify'
>> >> > ButtonsC.nc: In function `Notify.notify':
>> >> > ButtonsC.nc:102: `state' undeclared (first use in this function)
>> >> > ButtonsC.nc:102: (Each undeclared identifier is reported only once
>> >> > ButtonsC.nc:102: for each function it appears in.)
>> >> > ButtonsC.nc:102: `BUTTON_PRESSED' undeclared (first use in this
>> >> > function)
>> >> > ButtonsC.nc:104: `BUTTON_RELEASED' undeclared (first use in this
>> >> > function)
>> >> > ButtonsC.nc: In function `Timer.fired':
>> >> > ButtonsC.nc:110: `button_state_t' undeclared (first use in this
>> >> > function)
>> >> > ButtonsC.nc:110: syntax error before `bs'
>> >> > ButtonsC.nc:112: `bs' undeclared (first use in this function)
>> >> > ButtonsC.nc:112: `Get' undeclared (first use in this function)
>> >> > ButtonsC.nc:113: `BUTTON_PRESSED' undeclared (first use in this
>> >> > function)
>> >> > ButtonsC.nc:115: `BUTTON_RELEASED' undeclared (first use in this
>> >> > function)
>> >> > In component `HplUserButtonC':
>> >> > tos/platforms/plxincirc/HplUserButtonC.nc: At top level:
>> >> > tos/platforms/plxincirc/HplUserButtonC.nc:48: no match
>> >> > In component `ButtonsAppC':
>> >> > ButtonsAppC.nc:41: cannot find `Get'
>> >> > ButtonsAppC.nc:42: cannot find `Notify'
>> >> > make: *** [exe0] Error 1
>> >> >
>> >> >
>> >> > I am quite new to tinyOS, so I am just guessing, that the problem is in
>> >> > the Hpl file:
>> >> >
>> >> > ********************************
>> >> > configuration HplUserButtonC {
>> >> >  provides interface GeneralIO;
>> >> >  provides interface GpioInterrupt;
>> >> > }
>> >> > implementation {
>> >> >  components HplAtm128GeneralIOC as GeneralIOC;
>> >> >  components HplAtm128InterruptC as InterruptC;
>> >> >
>> >> >  components new Atm128GpioC() as UserButtonC;
>> >> >  UserButtonC -> GeneralIOC.PortD0; // line 48
>> >> >  GeneralIO = UserButtonC;
>> >> >
>> >> >  components new Atm128GpioInterruptC() as InterruptUserButtonC;
>> >> >  InterruptUserButtonC.Atm128Interrupt -> InterruptC.Int0;
>> >> >  GpioInterrupt = InterruptUserButtonC.Interrupt;
>> >> > }
>> >> > ********************************
>> >> >
>> >> > or in Atm128GpioC:
>> >> >
>> >> > ********************************
>> >> > generic module Atm128GpioC() @safe() {
>> >> >  provides interface GeneralIO;
>> >> >  uses interface HplAtm128GeneralIO as HplGeneralIO;
>> >> > }
>> >> > implementation {
>> >> >
>> >> >  async command void GeneralIO.set() { call HplGeneralIO.set(); }
>> >> >  async command void GeneralIO.clr() { call HplGeneralIO.clr(); }
>> >> >  async command void GeneralIO.toggle() { call HplGeneralIO.toggle(); }
>> >> >  async command bool GeneralIO.get() { return call HplGeneralIO.get(); }
>> >> >  async command void GeneralIO.makeInput() { call
>> >> > HplGeneralIO.makeInput(); }
>> >> >  async command bool GeneralIO.isInput() { return call
>> >> > HplGeneralIO.isInput(); }
>> >> >  async command void GeneralIO.makeOutput() { call
>> >> > HplGeneralIO.makeOutput(); }
>> >> >  async command bool GeneralIO.isOutput() { return call
>> >> > HplGeneralIO.isOutput(); }
>> >> >
>> >> > }
>> >> > ********************************
>> >> >
>> >> >
>> >> > Any help, suggestion would be very nice.
>> >> > Thanks in advance.
>> >> >
>> >> > All the best,
>> >> > Zsolt
>> >> >
>> >> > _______________________________________________
>> >> > Tinyos-help mailing list
>> >> > Tinyos-help@millennium.berkeley.edu
>> >> > https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
>> >> >
>> >
>> > --
>> > Plexipi Prototyping GmbH
>> > Türrschmidtstraße 22
>> > D-10317 Berlin
>> > Tel.: +49-(0)30-577-99662
>> > i...@plexipi.com
>> > www.plexipi.com
>> >
>> > Registergericht: Amtsgericht Charlottenburg
>> > Handelsregisternummer: HRB 111472
>> > USt-IdNr.: DE 258431695
>> >
>> >
>> >
>
> --
> Plexipi Prototyping GmbH
> Türrschmidtstraße 22
> D-10317 Berlin
> Tel.: +49-(0)30-577-99662
> i...@plexipi.com
> www.plexipi.com
>
> Registergericht: Amtsgericht Charlottenburg
> Handelsregisternummer: HRB 111472
> USt-IdNr.: DE 258431695
>
>
>

_______________________________________________
Tinyos-help mailing list
Tinyos-help@millennium.berkeley.edu
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to