Campbell Scientific CR3000 CR3000 Micrologger - Page 215
CRBasic Example 40., Receiving an RS, String
View all Campbell Scientific CR3000 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 215 highlights
Section 7. Installation • 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 CR3000 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. 215) is provided as an exercise in serial input / output programming. The example only requires the CR3000 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 CR3000 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. 'array can be declared as Float or Long Public InStringSplit(2) As String Alias InStringSplit(1) = TempIn Alias InStringSplit(2) = RhIn If parsed data are strictly numeric, this 'Main Program BeginProg 'Simulate temperature and RH sensor TempOut = 27.435 RhOut = 56.789 'Set simulated temperature to transmit 'Set simulated relative humidity to transmit 215