Hallo!
Bin gerade dabei mich mit den Sensor Node Komponenten von Libelium zu
beschäftigen.
Grundsätzlich handelt es sich dabei um eine Weiterentwicklung von der
Arduino Plattform namens Waspmote... Der Source-Code ist großteils
abgekupfert und wurde erweitert.
Waspmote:
http://www.idigi.com/blog/wp-content/uploads/2013/01/waspmote.jpg
Waspmote API:
http://www.libelium.com/v11-files/api/waspmote/
Nachdem die IDE ja nahezu unbrauchbar ist, habe ich versucht die API in
das ATMEL Studio 6 einzubinden. Dazu bin ich diesem Tut gefolgt:
http://www.jayconsystems.com/tutorial/atmerpt2/
Hier wird der Core mit der Standard-IDE gebuilded wodurch man ein *.a
file enthält. Der Pfad von diesem *.a File wird dann in den Project
Settings vom ATMEL Studio unter der Sektion Linker angegeben. Zudem
werden die Header Files in den selben Pfad kopiert und das Verzeichnis
wird unter C-Compiler und C++ Compiler angegeben.
Zum Benutzen der Lib geht man dann wie folgt vor:
1 | #include "WaspClasses.h" //hier sind alle includes beeinhaltet
|
2 |
|
3 | void setup();
|
4 | void loop();
|
5 |
|
6 | void setup()
|
7 | {
|
8 | //setup code
|
9 | }
|
10 | void loop()
|
11 | {
|
12 | //loop code
|
13 | }
|
14 | int main(void)
|
15 | {
|
16 | init();
|
17 |
|
18 | setup();
|
19 |
|
20 | for (;;)
|
21 | loop();
|
22 |
|
23 | return 0;
|
24 | }
|
Das Funktioniert problemlos, allerdings beim Einbinden von weiteren CPP
Klassen kommt es zu Problemen. (Beispielsweise OneWire.cpp und
OneWire.h)
Hab die zwei Files ins Projekt eingebunden und das H-File inkludiert:
1 | #include "WaspClasses.h"
|
2 | #include "OneWire.h"
|
Hier bekomme ich die Meldung: multiple definition of intCounter, intConf
und intFlag
Wenn ich das include entferne, dann bekomme ich bei der Anweisung:
die Meldung: "OneWire" does not name a type
Es muss irgendwie ein grundsätzliches Compiler Linker bzw. Include
Problem sein.
Was ist dieses a-File eigentlich genau und gibt es da eine andere
Möglichkeit die API einzubinden?
Wann wird ein #include eines Headers eigentlich benötigt? Irgendwie
kommt mir vor, sobald das h-File im Projekt inkludiert ist, braucht man
es teilweise nicht mehr inkludieren.
Bitte um eure Hilfe!