Society of Robots - Robot Forum
Software => Software => Topic started by: ErikY on July 25, 2012, 12:23:56 PM
-
I am really struggling to get started with the C++ webbot library.
I started a project in PD, selected my board (328P)
went through the My First Program Hello World example.
When I connect to hyperterminal, I am getting gibberish characters, cannot get it to work.
So I decide to try to simply play with the statusLED.
I go to the documentation, I see LED has on, off, set
so I try:
statusLED.on()
Build, and I get an error message: HelloWorld.cpp:20: error: 'struct LED' has no member named 'on'
When I go into the LED class, I see the wrapper, and I see on, off....
so I try set, I try:
statusLED.set(TRUE);
I get:
HelloWorld.cpp:18: error: 'struct LED' has no member named 'set'
So I look at the code for LED, and in the C code I see it should be:
LED_Set(LED* LED,boolean);
so I try, LED_Set(statusLED,TRUE);
and I get:
HelloWorld.cpp:16: error: cannot convert 'LED' to 'LED*' for argument '1' to 'void LED_set(LED*, boolean)'
so now I am at a complete loss, because I thought statusLED was setup via project designer.
I am a software architect, I have worked with Java, c#, objective C, all higher level language, but I live and breathe OOP.
Is this an AVRstudio issue, am I missing something obvious here?
I really could use some help getting this going. Some C++ examples or something would be GREAT!
This library is insanely awesome, and I so badly want to start using it, I just cannot get going.
If I can get going, I fully plan to support Webbot financially for making this great library.
Any help would be much appreciated.
-
I think this might be it... Try
LED_Set(&statusLED,TRUE);
The documentation is telling you that LED_Set takes a pointer (the asterisk is the clue), so you use the & to pass the variable's location, rather than passing by value.
Also you can use [code ] [ / code] tags to make code snippets more readable.
-
I think this might be it... Try LED_Set(&statusLED,TRUE);
The documentation is telling you that LED_Set takes a pointer (the asterisk is the clue), so you use the & to pass the variable's location, rather than passing by value.
Also you can use [code ] [ / code] tags to make code snippets more readable.
Gotcha, will do that from now on, sorry about that.
So I tried that and I got: LED_Set was not declared in this scope.
I found an old version of the photovore_v1 using c++ from webbot before he built this library, and I know there are plenty of c examples, does anyone know of any good examples using c++?
I feel like if I can just look at some code I would be OK.
-
I still use C, admittedly.
Is HelloWorld.cpp initially being generated by Project Designer?
Though this is not the issue, I recommend using AVR Studio 4.18 or 4.19 (not 5 or 6) if you aren't already.
-
I still use C, admittedly.
Is HelloWorld.cpp initially being generated by Project Designer?
Though this is not the issue, I recommend using AVR Studio 4.18 or 4.19 (not 5 or 6) if you aren't already.
I am using 4.15, for some crazy reason, it is the only version I was able to get to work with my avrisp mkII, and I am afraid to mess with it, I never went to 5.
Yes, I started with the Project Designer, it is creating the cpp, the avr project, everything.
That is what creates the UART that I could not get to work in the electronics thread that you were helping me with.
I still cannot get that to work either.
Are most people using the c version of the webbotlib?
-
I'm out of ideas that I can draw from my own experiences. I never built a board; I just use the Axon. :-X
Are most people using the c version of the webbotlib?
I think the only person who knows is Webbot, and even he might not. I have no idea how many people use Webbotlib, even. He probably at least knows how many people are downloading his project.
-
Thanks for trying, if anyone else can help me out it would be greatly appreciated.
-
The status LED is a strange beast - for a number of reasons....
1. WebbotLib wants to own it - to flash out error messages. Seems easier to grad a single I/O pin to do this than grab a resource like a UART of which there may only be one.
2. Some boards share the status LED with one of the UART pins. Gives a nice flashiness when the UART is working but makes it difficult to control independently.
3. If the user, ie you, try to control it then it makes things even harder - ie WebbotLib is trying to flash an error but your code is turning it on and off as well.
That said - if you want to control it then try using:
statusLED_on();
statusLED_off();
-
The status LED is a strange beast - for a number of reasons....
1. WebbotLib wants to own it - to flash out error messages. Seems easier to grad a single I/O pin to do this than grab a resource like a UART of which there may only be one.
2. Some boards share the status LED with one of the UART pins. Gives a nice flashiness when the UART is working but makes it difficult to control independently.
3. If the user, ie you, try to control it then it makes things even harder - ie WebbotLib is trying to flash an error but your code is turning it on and off as well.
That said - if you want to control it then try using:
statusLED_on();
statusLED_off();
This is very helpful, thank you.