6 demonstration program, Crbasic example 40. receiving an rs-232 string – Campbell Scientific CR1000 Measurement and Control System User Manual
Page 210

Section 7. Installation
210
• String declarations: String variables are memory intensive. Determine how
large strings are and declare variables just large enough to hold the string. If
the sensor sends multiple strings at once, consider declaring a single string
variable and read incoming strings one at a time.
The CR1000 adjusts the declared size of strings. One byte is always
added to the declared length, which is then increased by up to another
three bytes to make length divisible by four.
Declared string length, not number of characters, determines the
memory consumed when strings are written to memory. Consequently,
large strings not filled with characters waste significant memory.
7.8.8.5.6 Demonstration Program
CRBasic example Receiving an RS-232 String
(p. 210)
is provided as an exercise in
serial input / output programming. The example only requires the CR1000 and a
single wire jumper between COM1 Tx and COM2 Rx. The program simulates a
temperature and relative humidity sensor transmitting RS-232 (simulated data
comes out of COM1 as an alpha-numeric string).
CRBasic Example 40. Receiving an RS‐232 String
'To demonstrate CR1000 Serial I/O features, this program simulates a serial sensor
'by transmitting a serial string via COM1 TX. The serial string is received at
'COM2 RX via jumper wire. Simulated air temperature = 27.435 F, relative humidity = '56.789%.
'Wiring:
'COM1 TX (C1) ----- COM2 RX (C4)
'Serial Out Declarations
Public
TempOut
As Float
Public
RhOut
As Float
'Declare a string variable large enough to hold the output string.
Public
SerialOutString
As String
* 25
'Serial In Declarations
'Declare a string variable large enough to hold the input string
Public
SerialInString
As String
* 25
'Declare strings to accept parsed data. If parsed data are strictly numeric, this
'array can be declared as Float or Long
Public
InStringSplit(2)
As String
Alias
InStringSplit(1) = TempIn
Alias
InStringSplit(2) = RhIn
'Main Program
BeginProg
'Simulate temperature and RH sensor
TempOut = 27.435
'Set simulated temperature to transmit
RhOut = 56.789
'Set simulated relative humidity to transmit