Software Documentation¶
Code Documentation¶
The dragonfly library is now documented within the repository using Doxygen and properly formatted source files. Doxygen-generated documentation can be found in the repository under /trunk/doc/ .
Robot Code Structure¶
Explain the code structure here (i.e. drivers in library, fsm behaviors, continuous-loop execution, wireless)
AVR¶
- Vista 64bit bug for winAVR:
TeraTerm (reading robot usb output on your computer)¶
- You can find the latest version (Windows only) of TeraTerm here: http://logmett.com/index.php?/download/free-downloads.html
- The current version is 4.63
- Make sure to select the correct com port
- The correct baud rate is 115200
- You can also use PuTTY
- Windows version: http://www.chiark.greenend.org.uk/~sgtatham/putty/
- Linux version: check package manager
- Mac OS X: see DarwinPorts: http://putty.darwinports.com/
- Warning: you cannot program a robot while TeraTerm (or similar programs) are actively using the usb port
- disable or close the terminal output before trying to reprogram a robot, then reopen it after programming is complete
GoSerial (doing the same thing as above, but with a mac)¶
- Getting a functional version of goSerial on your computer:
- Type "goSerial" into Google and click on the first link
- Click on the Download button you find on that page and get goSerial onto your mac
- Using goSerial to read the values from your robot:
- You should get a window that says "untitled" on the top and the picture of a light switch
- Hit the light switch button if it hasn't already been, and then change the following:
- Change the serial port to the only option that isn't BlueTooth (note your robot has to plugged in ... just making sure)
- Change the Speed setting to 115200 bps
- When you want to start getting the values to appear hit the weird button (plug?) to the left of the light switch button
- Notes: for some reason when the plug has an X over it its on, and goSerial can't be on at the same time that you are trying to put programs on your robot.
ColoNet Structure¶
Explain the Colonet architecture here.
libDragonfly¶
Wireless Library¶
Remaking the wireless library is required if you change the wireless library. To do this, go to libwireless/lib and type "make" and then "make dist". Then your normal make process should incorporate the new wireless binaries. Be sure to commit the remade lib directory if you made changes you want saved.
Unit testing¶
Each library module should have a test function which tests all of the published APIs for correctness. For a module called module you should create a file in projects/test called test_module.c . This file should contain a function called testmodule which meets the following criteria:
- Tests each API function
- Cannot call dragonfly_init. dragonfly_init(ALL_ON) will be called by the testing framework
- Returns in a reasonable amount of time (i.e. does not run forever)
- Contains a comment with the expected behaviour of the robot. If the robot performs this behaviour, the test should be deemed a success by the tester.
Once the file is added, a line needs to be added to main.c which contains RUN_TEST( testmodule ); These lines can be commented in and out to control which tests are run. When run, main.c will execute each test in order and repeat the tests infinitely. The tester should allow each test to run at least twice in case a later test breaks the functionality of an earlier one.