Brian Silverman | 98704b1 | 2013-04-16 18:46:48 -0700 | [diff] [blame] | 1 | This file has the results of going through all of the WPILib code that we use. |
| 2 | If you use any more parts of WPILib, then check them carefully (preferrably get |
| 3 | multiple people to do it) and then add the results here. |
| 4 | The notes are so that it is clear what has been checked and how things interact |
| 5 | in nonintiutive ways to potentially create subtle bugs. |
| 6 | |
| 7 | DriverStationEnhancedIO |
| 8 | only checked what DriverStation does to it |
| 9 | the rest of it is implemented horribly |
| 10 | DriverStation |
| 11 | GetMatchTime() is garbage (DriverStation shouldn't keep track of that |
| 12 | information and it does a bad job of it) |
| 13 | don't call Set*PriorityDashboardPackerToUse |
| 14 | IsNewControlData() and WaitForData() are OK |
| 15 | make sure to GetDataReadLock() correctly when you want to read data |
| 16 | GetStickAxis uses brain-dead math |
| 17 | most of the "helper" methods to retrieve parts of the control data have no |
| 18 | benefit and do other weird things besides just get the value |
| 19 | Dashboard |
| 20 | GetStatusBuffer and Flush do get called from a separate task by DriverStation |
| 21 | only checked what DriverStation does to it |
| 22 | MotorSafetyHelper |
| 23 | CheckMotors() does get called from a separate task by DriverStation |
| 24 | RobotBase |
| 25 | the Is* methods are garbage (call them directly on the instances of the |
| 26 | objects that they forward too) |
| 27 | Task |
| 28 | the constructor and Start get called in RobotBase in a task without the |
| 29 | floating point save flag set |
| 30 | ReentrantSemaphore |
| 31 | Synchronized |
| 32 | Error |
| 33 | it synchronizes all of the non-const methods internally, and does it right |
| 34 | Do not use EnableStackTrace. |
| 35 | ErrorBase |
| 36 | the mutable Error instance varible is weird, but safe |
| 37 | Utility |
| 38 | it is a bad idea to use wpi_selfTrace() |
| 39 | That gets called if you use Error::EnableStackTrace or |
| 40 | wpi_stackOnAssertEnable, so don't call those. |
| 41 | The assertions NEVER stop on failure unless you wpi_SuspendOnAssertEnabled. |
| 42 | Global |
| 43 | Watchdog |
| 44 | the return value of Feed() is garbage |
| 45 | Module |
| 46 | DigitalModule |
| 47 | didn't look at I2C |
| 48 | AnalogChannel |
| 49 | AnalogModule |
| 50 | NetworkRobot |