beautypg.com

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

Page 210

background image

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