
- 30 -
TRANSMITTING SATELLITE DATA
If you have one of the satellite options enabled on the telemetry port, then the TX()
command is used to put data to the satellite communications. If the satellite options
are not enabled, then the TX() command is ignored and does not generate an error
message.
The TX() command has exactly the same syntax as the LOG() command, and is
used in a similar fashion. The internal difference is that the data is formatted as
needed by the particular satellite interface specified, then put to an internal buffer
until the satellite transmission time is reached. The data is then sent and the buffer
cleared. This data is not logged by the data logger. Depending on the satellite
interface, it may be hours before the data is sent, or it may be just a few seconds. A
power failure or reset causes the buffer contents to be lost, but not the satellite
configuration. This will be restored when the power returns.
Because some satellite interfaces (particularly GOES) are very particular about the
order and amount of data, the user must be very careful to put the data in the right
order for transmission, and to generate the data at the proper times, so as not to
overfill the buffer and lose data.
If you wish to log the transmitted data, then there must be a LOG() command for the
data.
For the GOES satellite only, there is also a TXA() command. This transmits data on
the random channel instead of the timed channel that the TX() command uses. This
is normally used for issuing alerts.
CURRENT CONDITIONS
The very first LOG() command found in a program has a special significance -- it can
be used to return its readings (by telemetry) to the caller without having to store the
data. This is used to allow the user to monitor values that do not need to be logged
under normal circumstances. For example, this can be used to return the current
battery voltages, so the user can read these without having to take up memory
logging their values.
If you do not want to store its data then the first LOG()command is usually put inside
an IF() statement so that it is never executed:
IF(1==0)
{
LOG(DCellV, TelemV);
}
If this is the case, then the above can be placed inside the initialization block, so that
time will not be wasted checking the IF() during regular timer operation.
WARNING: In some cases SDI sensors may take many seconds to take their
readings. If these are used directly in a current conditions call, then the
telemetry system may time out waiting for all the sensors to be read. The best
way to get around this is to store the most recently read values in variables, and
return the values of the variables instead. This does mean that the data is not
completely up to date. As a rough guideline, the total time to read all the SDI
sensors should be less than 15 seconds. Built-in sensors and variables are
quick enough they do not need to be accounted for in the total time.
Summary of Contents for HDL1
Page 1: ...HDL1 HDL1 G5 Data Logger Operating Manual...
Page 2: ......
Page 8: ...iv THIS PAGE INTENTIONALLY LEFT BLANK...
Page 12: ...4 THIS PAGE INTENTIONALLY LEFT BLANK...
Page 20: ...12 THIS PAGE INTENTIONALLY LEFT BLANK...