Ariadne - Technical description
AriadneTimy is a separate C# .Net program to collect Timy timestamps via the serial port, and to forward these to Ariadne.
For Ariadne, in the first instance the USB-interface with the Timy was used to collect the timestamps. After two years of practical use the Timy USB interface appeared to be unreliable. Refer to the Ariadne USB-interface for the Timy. Therefore we switched back to the serial interface with the Timy. For speed of development we choose a .Net solution, we could not find a ready to use and license-free OCX-component, to use in MS-Access.
In the first design of the AriadneTimy, the idea was to write a received timestamp from the Timy immediately to the T650-Timing-event table of Ariadne, and then inform Ariadne of the event by a trigger via COM. A problem appeared with this design, that the database showed delays in making the timestamp available to Ariadne. The moment Ariadne received the trigger via COM, and queried the database for the timestamp, the timestamp was not already there yet, but arrives with a half second or more delay. This appeared te be a known problem for MS Access, but also happend with databases in general. The problem made the first design solution unworkable.
In the second design AriadneTimy forwards the timestamp with the event trigger via the COM object. It is then Ariadne itself that writes the timestamp to the database. The timestamp is then available on the moment of the trigger itself. So far this appears a workable solution, however not ideal. If Access halts due to some error, the link to the COM object also halts, and incoming timestamps are not written to the database anymore. After a restart of the Ariadne A600 form, the link to the COM object is re-established again.
Global structure of the solution:
AriadneTimy.exe is an executable program. It can be started independend of Ariadne. It requires the Interop.EventDispatcher.dll to communicate with the AriadneEventDispatcher.