Section 7.  Installation 
 
200
Note  Do not confuse CRBasic files with .DLD extensions with files of .DLD 
type used by legacy Campbell Scientific dataloggers. 
As an example, pseudo code using this feature might be written as: 
#Const Destination = "CR800" 
#If Destination = "CR3000" Then 
  <code specific to the CR3000> 
#ElseIf Destination = "CR1000" Then 
  <code specific to the CR1000> 
#ElseIf Destination = "CR800" Then 
  <code specific to the CR800> 
#Else 
  <code to include otherwise> 
#EndIf 
This logic allows a simple change of a constant to direct, for instance, which 
measurement instructions to include. 
CRBasic Editor now features a pre-compile option that enables the creation of a 
CRBasic text file with only the desired conditional statements from a larger 
master program.  This option can also be used at the pre-compiler command line 
by using -p <outfile name>.  This feature allows the smallest size program file 
possible to be sent to the CR800, which may help keep costs down over very 
expensive telecommunications links. 
CRBasic example Conditional Compile
 (p. 200) shows a sample program that 
demonstrates use of conditional compilation features in CRBasic.  Within the 
program are examples showing the use of the predefined LoggerType constant 
and associated predefined datalogger constants (CR800, CR1000, and CR3000). 
 
 
CRBasicExample39.  ConditionalCompile
'Conditional compilation example for CR3000, CR1000, and CR800 Series Dataloggers 
'Key instructions include #If, #ElseIf, #Else and #EndIf. 
 
'Set program options based on the setting of a constant in the program. 
Const ProgramSpeed = 2 
 
#If ProgramSpeed = 1 
  Const ScanRate = 1               '1 second 
  Const Speed = "1 Second" 
#ElseIf ProgramSpeed = 2 
  Const ScanRate = 10              '10 seconds 
  Const Speed = "10 Second" 
#ElseIf ProgramSpeed = 3 
  Const ScanRate = 30              '30 seconds 
  Const Speed = "30 Second" 
#Else 
  Const ScanRate = 5               '5 seconds 
  Const Speed = "5 Second" 
#EndIf 
 
'Choose a COM port depending on which logger type the program is running in. 
#If LoggerType = CR3000 
  Const SourcSerialPort = Com3 
#ElseIf LoggerTypes = CR1000 
  Const SourcSerialPort = Com2