Wednesday, September 26, 2007

SerializerLibCpp Alpha Release 0.1 (by James Y. Wilson)

James Y. Wilson (Microsoft MVP) - aka: Jim Wilson - has graciously written a SerializerCppLib for the Serializer. We owe you a big thanks Jim! :)

The project source code can be downloaded on the Serializer Page, under the Docs/HowTo/Library tab.

SerializerLibCpp Alpha Release 0.1

Welcome to the first release of the SerializerLibCpp, providing a complete abstraction of the services provided by the Serializer robot controller available from RoboticsConnection. The SerializerLibCpp (SLC) is written in C++, and is based on its predecessor library providing identical services in C#. This release of SLC only provides support for Windows 2K, XP, and Vista. Support for Windows CE will be added the first week of October.

Content of This Release

This release, though feature complete, has not been fully tested. The Completed Testing section below lists the sensors and actuators which have been tested, and those which have not yet been tested.

This release in its current form is suitable for the development of new (or the adaptation of existing) C++ applications which use the Serializer. It is not, however, ready for deployment into a final production application, as it is likely that many bugs will be resolved as testing is completed. Even with additional testing, however, it is unlikely that the C++ class interface will change. If it becomes necessary to make such a change, detailed release notes will be provided describing the requirements for migrating code written to use previous release.

TestHarness Application

An application is included in this release that was used to exercise each of the newly developed sensor and actuator classes. It is not intended to be an example of a well designed robot application, but instead is intended to systematically activate all code paths within SLC. Additional code will be provided that provides a genuine example application using SLC for robotic control and sensing.

Documentation

The C# Serializer library provides outstanding documentation. I will also provide similar documentation (using a documentation extraction tool, such as Doxygen). Until the first production release of SLC you will have to struggle through by studying the source code itself. The best place to begin is at the TestHarness application which demonstrates the use of SLC classes.

Differences Between SerializerLibCpp (C++) and SerializerLib (C#)

Though the design of SLC was based on that of the SerializerLib, there are a few differences in the name of certain member functions or were implemented in a manner that produces a slightly different behavior. The most significant of these differences is in the implementation of the SetThreshold member function which exists in all sensor classes. The SetThreshold member function as implemented in SerializerLib (C#) generates an event whenever a certain degree of change has occurred in the sensor value. The implementation in SLC instead calls a callback function or generates a message (SendMessage or PostMessage) on the rising or falling transition of the sensor value relative to the reference value specified. The addition of a SetThreshold member function with behaves as SerializerLib does (based on the specified degree of change) is a current TODO item for SLC.

Any additional differences will be documented in the official SLC documentation available by the time of the production release.

Completed Testing

The following user classes (those intended to be called by Serializer applications) have been tested with actual hardware and were exercised using the SLC TestHarness application.:

  • CDifferentialPwmDCMotor
  • CPwmDCMotor
  • CServoMotor
  • CGP2D12
  • CGP2D120
  • CSRF08
  • CWheelEncoder

The following user classes have not been tested with actual hardware and have received only preliminary runtime testing.

  • CBiPolarStepperMotor
  • CPidMotor
  • CSP03
  • CCMPS03
  • CGpioPin
  • CI2CDevice
  • CMaxSonarEZ1
  • CPing
  • CSRF04
  • CSRF05
  • CSRF10
  • CTPA81

This testing should be completed in the first week of October.
Reporting Bugs, Issues, and Questions

Any sort of feedback, bugs, issues, design questions, criticisms, or ingratiating words of appreciation, should all be directed to the RoboticsConnection SLC forum. This forum will be created shortly after this release of SLC.

License

Please see the LICENSE.TXT file for a copy of the license agreement governing the use of the SLC software. Don’t worry, there is only one minor restriction.