Section 3. Understanding How the SDM-SIO4 Handles Data
See Section 5 – ‘Programming the Datalogger’.
Filter Strings
These are used to define how to filter incoming data from a port into a format the datalogger can use. This is done by having a user-defined filter string pre-stored in the battery-backed memory of the SDM-SIO4. These strings have to be created via the command line (see Section 4), in a similar fashion to the format strings. The filter commands are as follows:
∙An Define a filter time-out. The range is from 0 to 255 in 50ms steps, giving a range of 0 to 12.75 seconds. The accuracy is -50ms +0ms so an ‘n’value of 1 is not practical as the time-out could be between 0 and 50ms. This filter type can be put anywhere in the string. If a time-out occurs before the entire filter is complete, any data already processed is disregarded and the filter is restarted. When the filter string is finished the time-out is stopped and set to zero. If n=0 then this stops the time-out and the filter will operate with no time-out. While the time-out is active the SDM-SIO4 will not shut down into the low power state unless the filter is complete or the time-out has finished. Note it best to start the time-out after a trigger command.
∙B[n,n,n,...] Carry out a bit field to floating point conversion. The SDM-SIO4 gets or waits for as many bytes as are required to fulfil the total number of bit fields. ‘n’ can be any number of bits from 0 to 255, but more than 23 bits is beyond the floating point range of the datalogger so the value returned to the datalogger will be invalid. There can be any number of bit fields, only limited by the command line buffer and the 255-byte limit for string storage. If there is part of a byte unconverted and there are no more bit fields remaining then those bits are discarded.
∙bn A binary number should be at this position. The SDM-SIO4 converts ‘n’ bytes (1, 2 or 3 bytes) to Campbell Scientific floating point.
∙C Discard one byte (character).
∙c Read one byte (not converted to Campbell Scientific floating point).
∙D A signed integer should be at this position. If it is found, the signed integer is sent to the datalogger and removed from the buffer. If no signed integer is found, the SDM-SIO4 sends -99999 to the datalogger.
∙d Search for a signed integer indefinitely, skipping non-numeric characters.
∙e[ ] Scan until any ASCII character not entered between the brackets is encountered. The maximum number of non-trigger characters is 255. Note that this filter does not remove the non-matching character from the buffer.
∙F A floating point number should be at this position. If it is found, the signed floating point number is sent to the datalogger and removed from the buffer. If no floating point number is found, the SDM-SIO4 sends -99999 to the datalogger.
∙f Search for a floating point number indefinitely, skipping any non- numeric characters.
∙gn Error detection – start of signature calculation for received data – see Section 6.
∙Gn Error detection – marks end of signature calculation for received data
– see Section 6.