Our full technical support staff does not monitor this forum. If you need assistance from a member of our staff, please submit your question from the Ask a Question page.


Log in or register to post/reply in the forum.

CR295 with TX312 program


wstan May 3, 2016 05:34 PM

I have a CR295 logger that I just updated to OSv10G from OS7,I was having problems with getting data to go to the buffer so I tried updating the OS. However, I now cannot load the program onto the CR295 as I get error:

"Program file send failed:
the datalogger failed to compile the program" 

"C:\Campbellsci\DevConfig\sys\cora\logger\GoesSat_6.CR2 -- Compile Failed!

Table Sonde must use DataInterval to auto-allocate."

The complier for OS 10 is showing up in my Campbell directory on my c drive. I only have a CR2 file, no bin file.  Is there a way to generate a bin file?

It is likely a simple issue, but I am not overly familiar with the programming. I have attached my program that I am trying to load just in case it is an issue with that.

 

'--------------------------------------------
' Modem Parameters
'--------------------------------------------
'Public bModemOn, bInternalOn



'=====================================
'Define Data Tables
DataTable(SysInternals,True,120)						'Internal Parameters table
  DataInterval(0,1,hr)		'Every B_Sample_Intv Minutes, no Offset
  Minimum(1,P_Batt,False,False)
EndTable

'DataTable(SysInternalsAll,True,-1)						'Internal Parameters table
'	DataInterval(0,1,hr)		'Every B_Sample_Intv Minutes, no Offset
'	Minimum(1,P_Batt,False,False)
'	'Average(1, P_RH,False)
'EndTable

DataTable(Sonde,True,-1)
'	DataInterval(0,15,Min)		
  Sample(1,rt_month)
  Sample(1,rt_DOM)
  Sample(1,rt_year)
  
  Sample(1,rt_hour)
  Sample(1,rt_minute)
  'Sample(1,rt_second)    second always zero.. no need
      
  Sample((paramNum-2),sndParms(3))
EndTable

DataTable(SondeRaw,True,1000)
  Sample(paramNum,sndParms)
  'FieldNames ("Date,Time,Cond_uS,Depth_Ft,pH,Turb+,ODO_mgL,Bat_V")  
EndTable

DataTable(GoesErr,true,100)
  Sample(1,GoesResult)
  Sample(10,SatError)
EndTable


'DataTable(GoesTimeStamp,true,45)
'  Sample(4,SatTime)
'  'Sample()
'EndTable
'=======================================================================
' PROGRAM BEGIN - Main Program
'=======================================================================

BeginProg
  'bInternalOn = 0
  _Debug = 1
  '	SWBatt (1)
  '  bModemOn = True
  Scan(5,Sec)

    '=======================================================================
    'MODEM POWER - begin

    '=======================================================================

    If Flag(2) Then

      If Flag(3) Then
        GOESSetup (GOESResult,&H270005B4,10 ,38,300,0,100,"0_1_0_0" ,"0_30_30" ,"1_0_0" )
      EndIf  'Flag(3)

      ' Modem (toggle)  -----------
      ' Toggle power off 3 mins before midnight , turn on 1 min before midnight
      '		If (NOT(bModemOn)) Then
      '
      '			If IfTime(modemOnOffSetMin,modemOnIntvlMin,min) OR Flag(modemFlag) Then
      '			  flag(modemFlag) = false
      '				SWBatt (1)
      '				bModemOn = True
      '			EndIf
      '		Else
      '			'Modem On
      '			If IfTime(modemOffSetMin,modemOnIntvlMin,min)  Then
      '				SWBatt (0)
      '				bModemOn = False
      '			EndIf
      '		EndIf	'Not modem o
      '
      '=======================================================================
      'MODEM POWER - end
      '=======================================================================

    Else  'flag(2) low


      ' 2) YSI Sonde  -----------------
      If bGetYSI = false Then
        If (IfTime(SondeOffsetMin, SondeIntvlMin, Min)  OR  Flag(1) ) Then
          bGetYSI = True
          sndParms(1) = -7999    'set as invalid value
          Flag(1) = False
        EndIf
      EndIf



      'CR200 can does NOT understand string type variables, can not change SDI12 OutputSting dynamically, therefore can NOT
      ' modify the C! or C command as per CR1000 based loggers
      If (bGetYSI) Then
        SDI12Recorder(sndParms,"0C!",1,0)				'SDI12 Address & Command

        If (sndParms(1) >= -10) Then
          RealTime( rTime ,0)  'Get Logger's time
          
          ' fix time to NOT overange
          CallTable(SondeRaw)

          'save to trasmitter
          CallTable(Sonde)
          GOESData (GOESResult,Sonde,0,0,1)    ' 1 -send most recent record

          If _Debug OR  Flag(7) Then
            GOESStatus(SatError,GCmnd_ReadError)
            CallTable (GoesErr)
            'Flag(7) = false
          EndIf

          'Does not need fix. Latest OS fixed sdi12 bug.
          'SDI12Recorder (sndParms, "0I!",1,0)  'interrupt next Cuncurrent command (CampbellSci Sdi12 bug/feature?)
          bGetYSI = False
        EndIf
      EndIf


      '3) Goes Sat -------------------
      '    If IfTime (0,1,Day) OR Flag(8)
      '       GOESStatus (SatTime,GCmnd_ReadTime)
      '       CallTable(GoesTimeStamp)
      '       Flag(8) = false
      '    EndIf

      ' 4) Internal Sensors  -----------------
      Battery(P_Batt)								'Default Datalogger Battery Voltage measurement P_Batt:
      '		If bHasRH Then
      '		  VoltSe (P_RH,1,RhChannel,0.1,0)
      '		  CallTable SysInternalsAll()
      '		Else
      CallTable SysInternals()
      '    EndIf

    EndIf  'Flag(2)
  NextScan
EndProg

 


JDavis May 3, 2016 10:35 PM

You commented out the interval instruction on your table named Sonde, yet have the table size set to autoallocate. Either put back in the DataInterval for that table or set the size to a fixed positive number. Then the error should go away.

Log in or register to post/reply in the forum.