A lot of what I want the ALLY to do has not been done before. (At least NOT in the way I want to do it.)
As a result, I had to make up some new terms, or apply terms not normally associated with DCC within the context of what I am doing.
I'll probably have to edit this list from time to time. A lot of this post will deal with subtle distinctions between different terms that might seem to mean the same thing, but really have different meanings here. For example "Speed" and "Velocity"
DESIRED SPEED
Desired Speed is a number between 0 and 100 inclusive. It is a percentage of the maximum speed a loco will travel. Desired speed is the speed set on a throttle. It is not linear, so a throttle setting of 50 does not mean the loco will travel at half speed.
SPEED
Speed an unsigned number. It represents the time it takes to travel a distance.
REAL SPEED
The real speed is the distance a car or loco will move in a certain time. Internally, the software uses Ticks as a unit of time, and Fuzz as the unit of distance. When the real speed is displayed to a user, the speed is always converted to minutes. A speed of 2 FzPM means that the loco is traveling at two "First Zones" per minute.
TICK
A tick is usually 100 milliseconds. Loco positions are re-calculated once every tick. The system can alter this time depending on the processor speed and number of cars and locos being tracked.
FUZZ ( or First Zone )
Fuzz, (abbreviated to Fz), stands for First Zone. It is a unit of measurement for length. All internal calculations for length, speed and velocity use the length of the First Zone. The First Zone traveled through by a loco after a system reset always has a length of one Fuzz. The speed of a loco is then calculated in terms of how long it took the loco to go through the First Zone.
If the loco took 1 minute, you could say its speed was one fuzz per minute. The system measures time in ticks, typically 10 ticks per second. So, the system records the speed of one Fuzz per minute as 1/600th of a Fuzz per tick. ( 0.001666666 FzPT) The physical length of First Zone is used as a constant. The First Zones length will not change (other than a insignificant thermal expansion). All other zones are measured in in terms the First Zone.
Note: The software, when running on a PC with a display, will show speeds and distances in terms of Fz's. However, the system can display either real or scale distances and speeds in English or metric.
There are two methods to accomplish this, both of which are optional and not required for the system to operate:
- The user can enter a measurement for the First Zone into the PC in either feet, inches or meters. The software will then display actual speed in feet, inches or meters per minute. If the user also enters the scale ratio, the the system will display the distances and speed in scale distances and speeds.
- These two values can be detected without the user input, however, that requires a loco or car with an SFX sound decoder, a working chuff cam input and a custom program. The decoder will provide actual measurements and the scale ratio to the system without user input.
Using either method, the system would then be capable of displaying scale speeds on a DT400 display. However, the current DT400s have a bug which prevents updating the display, Hopefully, the new bi-direction radio throttle will have that bug corrected.
VELOCITY
Velocity is a signed number that is time, distance and vector dependent. Since a train is on rails the vector is always positive or negative. A positive number means the loco is going in the Normal Traffic Direction regardless of the locos direction of travel (FORWARD or BACKWARD) of the locos orientation on the track. When a car or loco exits a reverse loop, its vector is multiplied by minus one (-1). A car or locos position is update once each Tick by adding the velocity to the current position. The system uses a different unit of measurement for distance, the Degree. The degree is 1/360th of the length of the longest loop as measured in Fz. Velocity and Position are both elements of a fuzzy set. They include both a membership value between 0 and 1. This as to say that each value also has accuracy values associated with them so that they can be adjusted over time to become more accurate. Several techniques adapted from FCL (Fuzzy Control Language) are used to speed up the process of getting accurate measurements of the layout and the real Velocity Tables.
Distance, speed and velocity are all fuzzy numbers. That is to say, they are represented by an array containing additional components that vary from 0 to 1. These have to do with the accuracy, reliability, and repeatability of the measurements. The accuracy of a locos velocity is inherited from the measurements of the Transponding zones. The accuracy of the position is inherited from the accuracy of the decoders velocity.
Animation
Turning on or off lights, smoke and sounds to make operation more realistic without botherin the operator with all the details.
Automation
Taking control of a train.
Helper Application
Assists users by providing warnings or optionally, slowing or stoping a train to avoid mistakes.