Hi Bob:
General time definition responses:
> In the
> documentation, it says to supply two time parameters, TIME$_DAY and
> TIME$_MILLISEC. It appears from looking at the sample code that TIME
> $_MILLISEC is really milliseconds * 10.
To clarify...for the Custom data source interface the default names
for major and minor time are TIME$_DAY and TIME$_MILLISEC
respectively...there is a mechanism to override the default time word
names via the prn file by adding the extension SystemParamType =
MajorTime and SystemParamType = MinorTime. TIME$_DAY is expected to be
in units of days of the current year and TIME$_MILLISEC is expected to
be represented as time of the current day in units of 1/10 millisecond
(or 100 microseconds).
> Is there a way to get more
> than 0.1 ms of time resolution for aperiodic data?
Funny you should ask...we just provided a beta version of the server
to another customer that supports 64-bit time in units of nanoseconds
for the Custom data source interface. In this case the 64-bit time is
represented in the packets as two 32-bit time words that will be
concatenated at the IADS server. If you are interested in obtaining
this beta for checkout please let me know.
> Can TIME$_MILLISEC
> be a float or double instead of an integer?
Currently you can define the minor time as float but not double (32-
bit time word restriction).
Aperiodic data response:
The IADS server will stamp the data according to the current state of
IADS time as specified by the time words defined in the prn file. The
time flow from the data source is expected to be montonically
increasing and any backward deviations in time will be ignored (or
improperly incremented if not applying time sync processing mode). In
other words the data stream from the source will be expected to
contain the proper time/data interleave in a monotonically increasing
manner. So under a single data source configuration the current
architecture mandates that any latencies between internal sources be
handled upstream at the data source.
Having said that there are some potential short term and long term
solutions...the short term solution would be to break up the internal
sources into multiple data source to IADS (i.e. separate data source
connections)...each having their own time flow. The IADS server can
then be setup to handle the time independently per data source which
will allow the time stamping you desire.
Long term there are plans in the works to be able to sense multiple
time sources within a single data source stream and allow mapping of
parameter subsets to these 'embedded' time sources.
If you have further questions please let us know.