After many, many months of stalling, I’ve finally got my act together and finished up 2.0 beta 1 of the Driver Suite. I’ve made a LOT of changes, mostly internal but I hope you like them. Keep in mind that this is a first beta release, so I need all the feedback I can get. My email address is in the header files, I am sure you’ll find it.
The biggest change is the way I am now handling the HiTechnic Sensor MUX. Rather than having to scan the SMUX for attached sensors, the individual sensor driver configures the SMUX for its specific port. This makes it much easier to use. In order to not have to compile the Sensor MUX code into your program if you don’t own one, I have made it mandatory to include a SMUX specific include file when you want to use it. This in turn “unlocks” the SMUX specific functions in each driver that is supported by the SMUX.
I’ve also spent a LOT of time and effort to make the drivers leaner in terms of memory and numbers of functions. Some drivers were easier to trim than others. One of the ways I have done this is by removing all single value functions from drivers where it made sense. An example of this is the HiTechnic and Mindsensors accelerometers. You can no longer just fetch one axis, you have to get all three at once.
I cannot guarantee backwards compatibility with programs made to work with the 1.x driver suite, too many changes have been made.
I’ve decided to forego the individual changelogs in each driver and example file, it’s becoming too much work, so I am not going for just the one changelog for all the files.
- Removed unnecessary common.h includes from examples
- Changed arrays from structs to just typedefs, all drivers have been adjusted
- Motor mux stuff split off from common.h
- All SMUX supported drivers now use new SMUX mechanism
- Modified common.h to separate SMUX functions from rest using defines
- Removed ubyteToInt from all drivers and common.h
- Test programs have had their sensor types reconfigured, you will need ROBOTC 2.26
- HTSMUX-driver.h newly added, has all the new SMUX functions split from common.h
- MMUX-common.h newly added, contains all the MMUX functions split from common.h
- Added min/max functions for floats
- light-common.h: newly added, adds RGBtoHSV conversion (thanks Mike Henning, Max Bareiss)
- HTCS-driver.h/HTCS2-driver.h: added functions for HSV values
- HTMC-driver.h: Improved relative heading algorithm
- Added DGPSreadTravHeading() to DGPS-driver.h and fixed commands
- Removed single axis functions from HTAC-driver.h
- Removed functions for single signal strength in HTIRS and HTIRS2.
- Removed No Wait functions from EOPD driver
- Removed HTIRL-NG, is now named HTIRL
- Changed arguments from byte to ubyte in MSLL-driver.h
- All applicable Mindsensors sensors now have an optional "address" argument that can be ommitted if using the default (thanks for the suggestion hedgepigdaniel)
The version of ROBOTC these drivers have been tested with the most is 2.26 beta. Other versions may work, but I haven’t checked. If you are having trouble with another version of ROBOTC and these drivers, let me know and I’ll see what I can do.
You can download the beta 1 right here: [LINK].