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].
Hello Xander:
To things I have noticed with the new driver suite:
1) I now need to add this line for the drivers to work “#include common.h” Is there something I need to change in the RobotC environment?
2) You did not include a sample program for the Mindstorms motor multiplexer that would show how to include a sensor on the same port as the NXTMMX is connected to.
The only other sensors that I have been using is the Mindstorms touch multiplexer and the HiTechnic compass sesnor which are both working very well.
Thank you for creating the driver suite so that my simple programming skills do not have to try and figure out how to do the low level programming stuff!
Mike,
Hey Mike,
1) The drivers should automatically include the common.h file. Did you follow the instructions in the video on the project website to make ROBOTC look in the right directory for the include files? If you haven’t, I’d advise you to take a peek at it, it’ll make your life a lot easier 🙂
2) I haven’t included a sample for using a second sensor daisy chained to the MMUX because I’ve never bothered to use it that way, to be honest. I will see about adding a sample program for that in b2. Thanks for the suggestion.
Thank you for the kind words and more importantly, good feedback!
– Xander
[…] Released: 3rd Party ROBOTC Driver Suite V2.0b1 […]