* NEW: oC328 camera -- still has certain "features"...like it seems
to drop connection if you do not take a picture within about 15
seconds (need to reconnect). Camera does not provide as fast a frame
rate as I had hoped--about 4 frames a second using 2 bit color 60x80
mode--hoped to use also for line following but frame rate is a bit
low. The new CMUcam3 is looking attractive ;)
* Switched to Message Factory architecture for transmitting
messages. Eliminates problems with non RTOS transmission of
multi-packet messages.
* Large rewrite in portions for certain requirements:
- Only wanted to compile in what is used (reasonably).
- Able to compile using uCOS/OS-II or choose not to use without
recompiling the library.
- Able to use either bluetooth or straight serial RS232 for messaging.
The first requirement stems from the fact that I found with the
previous node_manager, (true for most dynamic typing)
it compiled in every class referenced. I haven't tried RTTI, but
from an just glancing, it along with virtual classes had same
problem. After several repeated failures, I finally came up with
a reasonable solution of encapsulating the class functionality in a
callback function now managed via the Object_List. This did not
require prior knowledge of classes.
The second requirement stems from not wanting to be tied to
uC/OS-II in all my programs. This was a bit trickier as some of the
core classes had embedded OS calls. Created generic class for the
following:
- OS (model/os) : represents a generic OS - user includes either
os/rros.h (round robin with interrupts) or os/ucosii.h
The third requirement solution was to implement a a generic
CommunicationDevice which is similar to the OS subclasses as either
CommunicationDevice_RS232 or CommunicationDevice_Emic.
The result is that, in theory, any communication device
(bluetooth or SCI) can be used with any (supported) OS any only those
portions will be compiled into the resulting product for download.
PS: On a JAUS note, I am switching to a simpler message handling
architecture where a single default handler process all messages
rather than have to get the message to the right component. Only
certain message require they be sent to a specific component.