'Spurdike3.cr1 'CR1000 'Created by Short Cut (4.0) 'modified 5/9/2018 by Joel Bailey 'modified 5/14/2018 by Joel Bailey - changed from CS451 PT to INW ConstTable Const PAKBUS_INFO = 18 Const MODM_MODL = "RF450" Const MODM_SN = "9523348" Const CAM_EN__CP = 6 Const CAM_MODL = "CAM-CC5MPX" Const CAM_SN = "1316" Const PT_PSI_TO_CM = 70.377285 Const PT_MODL = "INW AquiStar PT12" Const PT1_SN = "?" Const PT1_SDI_ADDR = 0 Const PT1_SDI__CP = 3 EndConstTable 'Declare Variables and Units Dim ModSecsInt As Long Public progSig As Long Public BattV Public PTemp_C Public SW12State As Boolean ' pt-aquistar: Public pt1(3) Alias pt1 = Lvl_cm, Temp_C, pt1batt Units Lvl_cm = cm Units Temp_C = degC Units pt1batt = Volts Units BattV=Volts Units PTemp_C=Deg C ' time-variables: Dim Time(9) Alias Time(4) = thisHour Alias Time(5) = thisMinute Alias Time(9) = thisDOY 'Define Data Tables DataTable(Hydro,True,-1) DataInterval(0,15,Min,10) Sample(1,Lvl_cm,FP2) Average(1,Lvl_cm,FP2,False) Sample(1,Temp_C,FP2) Average(1,Temp_C,FP2,False) Average(1,BattV,FP2,False) EndTable 'Main Program BeginProg progSig = status.ProgSignature ' for camera communication SerialOpen(Com1,115200,0,0,1000) 'Main Scan Scan(60,Sec,1,0) 'Default CR1000 Datalogger Battery Voltage measurement 'BattV' Battery(BattV) 'Default CR1000 Datalogger Wiring Panel Temperature measurement 'PTemp_C' PanelTemp(PTemp_C,250) ' pt-aquistar: '' outputs: 1:pressure (PSI), 2:water temp (C), 3:battery (V) SDI12Recorder(pt1(),PT1_SDI__CP,PT1_SDI_ADDR,"M!",1.0,0) pt1(1) = pt1(1) * PT_PSI_TO_CM 'SW12 Timed Control 'Get seconds since 1990 and do a modulo divide by the interval period (60 minutes or 3600 seconds) ModSecsInt=Public.TimeStamp(1,1) MOD 3600 'Turn ON SW12 for 30 minutes every 60 minutes If (ModSecsInt>=0 AND ModSecsInt<1800) Then SW12State=True 'Turn OFF SW12 only if time runs out and RS232 is not active ElseIf (ComPortIsActive(ComRS232)=False) Then SW12State=False EndIf 'Always turn OFF SW12 if battery drops below 11.5 volts If BattV<11.5 Then SW12State=False 'Set SW12 to the state of 'SW12State' variable SW12(SW12State) ' time-variables: RealTime(Time()) 'Camera Control, take a picture at the top of every hour If TimeIsBetween(0,1,60,Min) Then If TimeIsBetween(300,1200,1440,min) Then PortSet(CAM_EN__CP,1) Delay(0,2,Sec) PortSet(CAM_EN__CP,0) EndIf Else PortSet(CAM_EN__CP,0) EndIf 'Call Data Tables and Store Data CallTable Hydro NextScan EndProg