The oSpeedOMeter Object handles all the necessary I/O timing requirements to read a speedometer. The oSpeedOMeter Object monitors the I/O line specified by IOLine property. As long as the Operate property is 1, the oSpeedOMeter Object will continually update its Speed property. The Speed property is updated each time a new high-going pulse is received from the Speedometer. When the speedometer's axel is turning, the Speed property is set to a value from 1 to 255 which indicates the Speed and the Turning property is set to 1. As the rate of turn increases, the value of the Speed property increases. When the Speedometer's axel is not turning, or is turning at less than 1 round per second, the Speed and the Turning properties will be set to 0. The Speed property is calculated from the following formula: Speed = (256 - (283 / RevolutionsPerSecond)) Inversely, the Revolutions-Per-Second can be calculated from the Speed: RevolutionsPerSecond = (283 / (256-Speed)) Note that the Speed is not linear. As the Revolutions-Per-Second goes up, the Speed property increases at a quicker rate. Thusly, while the the oSpeedOMeter Object is capable of measuring up to 283 Revolutions-Per-Second, it is best at measuring less than 5 Revolutions-Per-Second. (See Speed property table) The Timer property is an instance of the oCycleTimeL object which is created when the oSpeedOMeter Object is. The oSpeedOMeter Object uses the timer object to read the signal generated by the Speedometer. Modifying any of the properties of the oCycleTimeL instance will affect the oSpeedOMeter Object's operation. See the oCycleTimeL Help for more detail on how the oSpeedOMeter reads the Speedometer's signal. |