Motion Commander Year 2000 Compliance
This report is the result of our careful study regarding Year 2000 Compliance of the Motion Commander family of operator interface software products by Greene & Morehead Engineering, Inc. It applies to 32-bit Motion Commander III for Windows NT and Windows 95/98 as well as the 16-bit Windows 3.1x and DOS versions of Motion Commander II.
It is my opinion as a veteran C/C++ programmer, that, based upon our careful study of the Motion Commander source code, the Motion Commander family of software products should not cause any Y2K problems. The previous statement should in no way be taken as an assumption of liability or a statement of warranty by Greene & Morehead Engineering, Inc. Please read the "Motion Commander User's Agreement" in the front of the User's Manual for our statement of warranty.
The program's use of date and time values is discussed in detail in the following two sections.
Date and Time Stamps
Motion Commander creates a date and/or time stamp in the following situations: in the header of Station Report Files, in Command Log entries, in response to "s:DATE" and "s:TIME" station queries, and in the creation of time-stamp filenames for the Data Recorder device and the File Editor. Motion Commander also reports its compile date in the start-up screen and in the header of Station Report Files.
In all of the above cases, no comparisons or calculations are performed on the date and/or time stamp values. This makes these functions immune to Y2K problems.
Elapsed Time Comparisons
All versions of Motion Commander (Win32, Win16, and DOS) use the C-language runtime library function clock() to get the number of clock ticks of elapsed processor time since the Motion Commander program was started. This value is used for all of the elapsed-time comparisons that control Motion Commander's update cycle and other real-time functions.
It is my opinion as a veteran C/C++ programmer, that there should not be a discontinuity in the value returned by the clock() function as the date changes to January 1, 2000, regardless of the operating system. Even if there is, Motion Commander checks for rollover of this value relative to the previous clock() value, and compensates to eliminate a discontinuity in the timing of the update cycle.