blob: e8c1a0f86b553eb5ccae50c356c8eb24053ae1bb [file] [log] [blame]
Brian Silverman98704b12013-04-16 18:46:48 -07001This file has the results of going through all of the WPILib code that we use.
2If you use any more parts of WPILib, then check them carefully (preferrably get
3multiple people to do it) and then add the results here.
4The notes are so that it is clear what has been checked and how things interact
5in nonintiutive ways to potentially create subtle bugs.
6
7DriverStationEnhancedIO
8 only checked what DriverStation does to it
9 the rest of it is implemented horribly
10DriverStation
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
19Dashboard
20 GetStatusBuffer and Flush do get called from a separate task by DriverStation
21 only checked what DriverStation does to it
22MotorSafetyHelper
23 CheckMotors() does get called from a separate task by DriverStation
24RobotBase
25 the Is* methods are garbage (call them directly on the instances of the
26 objects that they forward too)
27Task
28 the constructor and Start get called in RobotBase in a task without the
29 floating point save flag set
30ReentrantSemaphore
31Synchronized
32Error
33 it synchronizes all of the non-const methods internally, and does it right
34 Do not use EnableStackTrace.
35ErrorBase
36 the mutable Error instance varible is weird, but safe
37Utility
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.
42Global
43Watchdog
44 the return value of Feed() is garbage
45Module
46DigitalModule
47 didn't look at I2C
48AnalogChannel
49AnalogModule
50NetworkRobot