Inter-program Communication Protocol

 

These are the public properties / methods of class CloudWatcher available for inter-program communications.

 

‘-----------  Enumerators  -----------------------------------------------------------------------

 

Enum CloudCond

  CloudUnknown = 0

  CloudClear = 1

  CloudCloudy = 2

  CloudVeryCloudy = 3

End Enum

 

Enum BrightnessCond

  BrightnessUnknown = 0

  BrightnessDark = 1

  BrightnessLight = 2

  BrightnessVerylight = 3

End Enum

 

Enum RainCond

  RainUnknown = 0

  RainDry = 1

  RainWet = 2

  RainRain = 3

End Enum

 

Enum WindCond

  WindUnknown = 0

  WindCalm = 1

  WindWindy = 2

  WindVeryWindy = 3

End Enum

 

Enum SkyCond

  skyUnknown = 0

  skyClear = 1

  skyCloudy = 2

  skyVeryCloudy = 3

  skyWet = 4

End Enum

 

‘------------ Graph Data Array methods -----------------------------------------------------------------------------

 

The graph arrays are 2 dimension arrays where 1st dimension contains time and 2nd dimension contains the data values. The arrays contain data from element 1 to upper bound limit given by UBound() function. NB: Element 0 is not used.

 

The graph data starts at the element given by AAG_GraphArrayFirstElem(graphNo) method and it ends at the element  given by AAG_GraphArrayLastElem( graphNo) method.

 

The data arrays wraps around the UBound() element to element 1.  NB: Element 0 is not used.

 

Public Function AAG_GraphArrayFirstElem(ByVal GraphNo As Long) As Long

GraphNo = 1 for Cloud temperature data, 2 for Rain sensor data, 3 for Light sensor data & 4 for ambient temperature data;

Returns the first element of the graph data array;

End Function

 

Public Function AAG_GraphArrayLastElem(ByVal GraphNo As Long) As Long

GraphNo = 1 for Cloud temperature data, 2 for Rain sensor data, 3 for Light sensor data & 4 for ambient temperature data;

Returns the last element of the graph data array;

End Function

 

Public Function AAG_GraphArrayCloud() As Variant

Returns a variant containing a 2 dimensional array where the 1st dimension corresponds to the time and 2nd dimension contains the sky temperature value;

End Function

 

Public Function AAG_GraphArrayRain() As Variant

            Returns a variant containing a 2 dimensional array where the 1st dimension corresponds to the time and 2nd dimension contains the rain sensor value;

End Function

 

Public Function AAG_GraphArrayDay() As Variant

            Returns a variant containing a 2 dimensional array where the 1st dimension corresponds to the time and 2nd dimension contains the light sensor value;

End Function

 

Public Function AAG_GraphArrayTemp() As Variant

            Returns a variant containing a 2 dimensional array where the 1st dimension corresponds to the time and 2nd dimension contains the ambient temperature value.

End Function

 


 ‘----------- Main methods to get device data -----------------------------------------------------------------------

 

Public Function AmbientTemperature() As Double

 

Public Function Condition_Cloud() As CloudCond

 

Public Function Condition_Brightness() As BrightnessCond

 

Public Function Condition_Rain() As RainCond

 

Public Function Condition_Wind() As WindCond

            Return WindCalm

 

Public Function Condition_Sky() As SkyCond

 

Public Function Condition_WetF() As Boolean

            Return True if Wet or Rain

 

Public Function DataReady() As Boolean

            True – if cycle reading data from the device has finished;

            False – if it is still reading data from the device;

 

Public Function BrightnessValue() As Double

 

Public Function DewPointTemp() As Double

            Returns always zero

 

Public Function HumidityRelative() As Double

            Returns always 10

 

Public Function RainHeaterPercent() As Double

            Returns decimal values e.g. 0.1 for 10% relative humidity

 

Public Function RainHeaterStatus() As String

 

Public Function RainHeaterTemperature() As Double

 

Public Function RainValue() As Double

 

Public Function Safe() As Boolean

            True   - Conditions are  Safe

            False  - Conditions are Unsafe

 

Public Function SecondsSinceGoodData() As Long

 

Public Function SkySensorTemperature() As Double

 

Public Function SkyTemperature() As Double

 

Public Function SwitchStatus() As Long             

Returns 1= switch open

 2= switch closed

 

Public Function WindValue() As Double

            Returns always zero

 

Public Function WindDir() As Double

            Returns always zero

 

 


'--------- Limits TAB -----------------------------------------------------------------------------

‘Properties to get / set values in Limits TAB

Public Property Get ThreshBrightnessDark() As Double

Public Property Let ThreshBrightnessDark(ByVal vData As Double)

 

Public Property Get ThreshBrightnessLigth() As Double

Public Property Let ThreshBrightnessLigth(ByVal vData As Double)

 

Public Property Get ThreshBrightnessVLigth() As Double

Public Property Let ThreshBrightnessVLigth(ByVal vData As Double)

 

Public Property Get BrightnessUnknowConditionValue() As Long

Public Property Let BrightnessUnknowConditionValue(ByVal vData As Long)

 

Public Property Get ThreshRainDry() As Double

Public Property Let ThreshRainDry(ByVal vData As Double)

 

Public Property Get ThreshRainWet() As Double

Public Property Let ThreshRainWet(ByVal vData As Double)

 

Public Property Get ThreshRainRain() As Double

Public Property Let ThreshRainRain(ByVal vData As Double)

 

Public Property Get RainUnknowConditionValue() As Long

Public Property Let RainUnknowConditionValue(ByVal vData As Long)

 

Public Property Get ThreshTempClear() As Double

Public Property Let ThreshTempClear(ByVal vData As Double)

 

Public Property Get ThreshTempCloudy() As Double

Public Property Let ThreshTempCloudy(ByVal vData As Double)

 

Public Property Get ThreshTempVCloudy() As Double

Public Property Let ThreshTempVCloudy(ByVal vData As Double)

 

Public Property Get ThreshWindCalm() As Double

Public Property Let ThreshWindCalm(ByVal vData As Double)

 

Public Property Get ThreshWindWindy() As Double

Public Property Let ThreshWindWindy(ByVal vData As Double)

 

Public Property Get ThreshWindVWindy() As Double

Public Property Let ThreshWindVWindy(ByVal vData As Double)

 

Public Property Get CloudUnknowConditionValue() As Long

Public Property Let CloudUnknowConditionValue(ByVal vData As Long)

 

Public Property Get ColorClear() As Long

Public Property Let ColorClear(ByVal vData As Long)

 

Public Property Get ColorCloudy() As Long

Public Property Let ColorCloudy(ByVal vData As Long)

 

Public Property Get ColorVCloudy() As Long

Public Property Let ColorVCloudy(ByVal vData As Long)

 

Public Property Get DescriptionClear() As String

Public Property Let DescriptionClear(ByVal vData As String)

 

Public Property Get DescriptionCloudy() As String

Public Property Let DescriptionCloudy(ByVal vData As String)

 

Public Property Get DescriptionVCloudy() As String

Public Property Let DescriptionVCloudy(ByVal vData As String)

 

Public Property Get ColorDry() As Long

Public Property Let ColorDry(ByVal vData As Long)

 

Public Property Get ColorWet() As Long

Public Property Let ColorWet(ByVal vData As Long)

 

Public Property Get ColorRain() As Long

Public Property Let ColorRain(ByVal vData As Long)

 

Public Property Get DescriptionDry() As String

Public Property Let DescriptionDry(ByVal vData As String)

 

Public Property Get DescriptionWet() As String

Public Property Let DescriptionWet(ByVal vData As String)

 

Public Property Get DescriptionRain() As String

Public Property Let DescriptionRain(ByVal vData As String)

 

Public Property Get ColorDark() As Long

Public Property Let ColorDark(ByVal vData As Long)

 

Public Property Get ColorLight() As Long

Public Property Let ColorLight(ByVal vData As Long)

 

Public Property Get ColorVLight() As Long

Public Property Let ColorVLight(ByVal vData As Long)

 

Public Property Get DescriptionDark() As String

Public Property Let DescriptionDark(ByVal vData As String)

 

Public Property Get DescriptionLight() As String

Public Property Let DescriptionLight(ByVal vData As String)

 

Public Property Get DescriptionVLight() As String

Public Property Let DescriptionVLight(ByVal vData As String)


'--------- Unsafe TAB -----------------------------------------------------------------------------

‘Properties to get / set conditions in Unsafe TAB

Public Property Get SoundClear() As String

Public Property Let SoundClear(vData As String)

 

Public Property Get SoundCloudy() As String

Public Property Let SoundCloudy(vData As String)

 

Public Property Get SoundOvercast() As String

Public Property Let SoundOvercast(vData As String)

 

Public Property Get SafeClear() As Long

Public Property Let SafeClear(vData As Long)

 

Public Property Get SafeCloudy() As Long

Public Property Let SafeCloudy(vData As Long)

 

Public Property Get SafeOvercast() As Long

Public Property Let SafeOvercast(vData As Long)

 

 

Public Property Get AlarmClear() As Long

Public Property Let AlarmClear(vData As Long)

 

Public Property Get AlarmCloudy() As Long

Public Property Let AlarmCloudy(vData As Long)

 

Public Property Get AlarmOvercast() As Long

Public Property Let AlarmOvercast(vData As Long)

 

'----

Public Property Get SoundDry() As String

Public Property Let SoundDry(vData As String)

 

Public Property Get SoundWet() As String

Public Property Let SoundWet(vData As String)

 

Public Property Get SoundRain() As String

Public Property Let SoundRain(vData As String)

 

Public Property Get SafeDry() As Long

Public Property Let SafeDry(vData As Long)

 

Public Property Get SafeWet() As Long

Public Property Let SafeWet(vData As Long)

 

Public Property Get SafeRain() As Long

Public Property Let SafeRain(vData As Long)

 

Public Property Get AlarmDry() As Long

Public Property Let AlarmDry(vData As Long)

 

Public Property Get AlarmWet() As Long

Public Property Let AlarmWet(vData As Long)

 

Public Property Get AlarmRain() As Long

Public Property Let AlarmRain(vData As Long)

 

'----

Public Property Get SoundDark() As String

Public Property Let SoundDark(vData As String)

 

Public Property Get SoundLight() As String

Public Property Let SoundLight(vData As String)

 

Public Property Get SoundVLight() As String

Public Property Let SoundVLight(vData As String)

 

Public Property Get SafeDark() As Long

Public Property Let SafeDark(vData As Long)

 

Public Property Get SafeLight() As Long

Public Property Let SafeLight(vData As Long)

 

Public Property Get SafeVLight() As Long

Public Property Let SafeVLight(vData As Long)

 

Public Property Get AlarmDark() As Long

Public Property Let AlarmDark(vData As Long)

 

Public Property Get AlarmLight() As Long

Public Property Let AlarmLight(vData As Long)

 

Public Property Get AlarmVLight() As Long

Public Property Let AlarmVLight(vData As Long)

 


'---------- Setup TAB ------------------------------------------------------------------------

‘Properties to get / set values in Device section of Setup TAB

Public Property Get ReadCycle() As Long

Public Property Let ReadCycle(ByVal vData As Long)

 

Public Property Get HeaterTempLow() As Long

Public Property Let HeaterTempLow(ByVal vData As Long)

 

Public Property Get HeaterTempHigh() As Long

Public Property Let HeaterTempHigh(ByVal vData As Long)

 

Public Property Get HeaterDeltaLow() As Long

Public Property Let HeaterDeltaLow(ByVal vData As Long)

 

Public Property Get HeaterDeltaHigh() As Long

Public Property Let HeaterDeltaHigh(ByVal vData As Long)

 

Public Property Get HeaterImpTemp() As Long

Public Property Let HeaterImpTemp(ByVal vData As Long)

 

Public Property Get HeaterImpDuration() As Long

Public Property Let HeaterImpDuration(ByVal vData As Long)

 

Public Property Get HeaterImpCycle() As Long

Public Property Let HeaterImpCycle(ByVal vData As Long)

 

'Temperature correction factors

Public Property Get TempFactorON() As Boolean

Public Property Let TempFactorON(ByVal vData As Boolean)

 

Public Property Get TempFactorK1() As Long

Public Property Let TempFactorK1(ByVal vData As Long)

 

Public Property Get TempFactorK2() As Long

Public Property Let TempFactorK2(ByVal vData As Long)

 

Public Property Get TempFactorK3() As Long

Public Property Let TempFactorK3(ByVal vData As Long)

 

Public Property Get TempFactorK4() As Long

Public Property Let TempFactorK4(ByVal vData As Long)

 

Public Property Get TempFactorK5() As Long

Public Property Let TempFactorK5(ByVal vData As Long)

 

 ‘Properties to get / set values in Graph section of Setup TAB

Public Property Get GraphFrequency() As Long

Public Property Let GraphFrequency(ByVal vData As Long)

 

Public Property Get GraphImagePath() As String

Public Property Let GraphImagePath(ByVal vData As String)

 

Public Property Get GraphGenerateCloud() As Long

Public Property Let GraphGenerateCloud(ByVal vData As Long)

 

Public Property Get GraphPoints() As Long

Public Property Let GraphPoints(ByVal vData As Long)

 

Public Property Get GraphLabelColorCloud() As Long

Public Property Let GraphLabelColorCloud(ByVal vData As Long)

 

Public Property Get GraphGraphColorCloud() As Long

Public Property Let GraphGraphColorCloud(ByVal vData As Long)

 

Public Property Get GraphCreateImageCloud() As Long

Public Property Let GraphCreateImageCloud(ByVal vData As Long)

 

Public Property Get GraphGenerateRain() As Long

Public Property Let GraphGenerateRain(ByVal vData As Long)

 

Public Property Get GraphLabelColorRain() As Long

Public Property Let GraphLabelColorRain(ByVal vData As Long)

 

Public Property Get GraphGraphColorRain() As Long

Public Property Let GraphGraphColorRain(ByVal vData As Long)

 

Public Property Get GraphCreateImageRain() As Long

Public Property Let GraphCreateImageRain(ByVal vData As Long)

 

Public Property Get GraphGenerateBrightness() As Long

Public Property Let GraphGenerateBrightness(ByVal vData As Long)

 

Public Property Get GraphLabelColorBrightness() As Long

Public Property Let GraphLabelColorBrightness(ByVal vData As Long)

 

Public Property Get GraphGraphColorBrightness() As Long

Public Property Let GraphGraphColorBrightness(ByVal vData As Long)

 

Public Property Get GraphCreateImageBrightness() As Long

Public Property Let GraphCreateImageBrightness(ByVal vData As Long)

 

Public Property Get GraphGenerateTemp() As Long

Public Property Let GraphGenerateTemp(ByVal vData As Long)

 

Public Property Get GraphLabelColorTemp() As Long

Public Property Let GraphLabelColorTemp(ByVal vData As Long)

 

Public Property Get GraphGraphColorTemp() As Long

Public Property Let GraphGraphColorTemp(ByVal vData As Long)

 

Public Property Get GraphBackColorTemp() As Long

Public Property Let GraphBackColorTemp(ByVal vData As Long)

 

Public Property Get GraphMaxTempTemp() As Long

Public Property Let GraphMaxTempTemp(ByVal vData As Long)

 

Public Property Get GraphMinTempTemp() As Long

Public Property Let GraphMinTempTemp(ByVal vData As Long)

 

Public Property Get GraphCreateImageTemp() As Long

Public Property Let GraphCreateImageTemp(ByVal vData As Long)

 

‘Properties to get / set values in Alarm section of Setup TAB

Public Property Get AlarmSuspendSound() As Long

Public Property Let AlarmSuspendSound(ByVal vData As Long)                

 

Public Property Get NoConsecutiveUnknownReads() As Long

Public Property Let NoConsecutiveUnknownReads(ByVal vData As Long)

 

Public Property Get NoConsecutiveRS232Errors() As Long

Public Property Let NoConsecutiveRS232Errors(ByVal vData As Long)

 

 

‘Properties to get / set values in Network section of Setup TAB

Public Property Get FileName() As String

Public Property Let FileName(ByVal vData As String)

 

Public Property Get filePath() As String

Public Property Let filePath(ByVal vData As String)

 

Public Property Get FileSaveFrequency() As Long

Public Property Let FileSaveFrequency(ByVal vData As Long)

 

 


'---------- Miscellaneous Methods / Properties -----------------------------------------------------------------------------

Public Sub AAG_AlarmStart(vData As String)

            Plays sound file defined by vData (=path + name)

 

Public Sub AAG_AlarmStop()

            Stops playing sound alarm

 

Public Property Get AAG_DeviceRole() As String

Returns "MASTER" or "REMOTE"

 

Public Property Let AAG_DeviceSwitchCtrl(ByVal vData As Boolean)

            vData = true   - enables the switch control by AAG_CloudWatcher

            vData = False – disables switch control by AAG_CloudWatcher

            NB: It is only valid if operating in MASTER mode.

            NB: When it is disabled use AAG_SetSwitch to control switch.

 

Public Property Get AAG_DeviceSwitchCtrl() As Boolean

            True  = switch control is enabled

False = switch control is disabled

 

Public Sub AAG_SetSwitch(ByVal vData As Long)

            vData = 2 closes switch

            vData = 1 opens switch

 

Public Sub AAG_LocalControl(ByVal vData As Boolean, ByVal sLabel as String)

vData = True disables the AAG_CloudWatcher internal algorithm that determines the Safe / Unsafe condition and it hides the Unsafe TAB displaying sLabel string in its place.

 

NB: If True then the Safe / Unsafe condition must be calculated by an external program and it should be passed to AAG_CloudWatcher using SetUnSafe method

 

Public Sub SetUnSafe(ByVal iP As Boolean)

            Unsafe when vData = True

            Safe     when vData = False

 

Public Property Get AAG_SpeedUnits() As String

Returns always “x”

 

Public Property Let AAG_SpeedUnits(ByVal vData As String)

            Has no effect

 

Public Property Get AAG_TemperatureUnits() As String

             “C” for degree Celsius

 “F” for degrees Fahrenheit

 

Public Property Let AAG_TemperatureUnits(ByVal vData As String)

            vData =  “C” for degree Celsius

vData =  “F” for degrees Fahrenheit

 

 

 

 

Public Function AAG_XFERFileErr() As Boolean

True   - Error with data transfer file used between MASTER & REMOTE. It usually corresponds to an open / create file.

False – No error with data transfer file

 

Public Sub RecordStart(ByVal flgAppendToFile As Boolean)

            flgAppendToFile = True   starts recording in user data file in append mode;

                                             False starts recording in user data file but clears file first.

Public Sub RecordStop()

            Stops recording in user data file

 

Public Function DeviceIsRunning() As Boolean

True   - if device is running

False -  if device is not running

 

Public Sub WindowNormal()

            Restores window to its normal size

 

Public Sub WindowMinimize()

            Minimizes window

 

Public Property Get WindowLeft() As Long

Public Property Let WindowLeft(ByVal leftPos As Long)

Public Property Get WindowTop() As Long

Public Property Let WindowTop(ByVal topPos As Long)

            To set / get window position of TOP LHS corner of window.

 

Public Sub BlinkLEDCOM()

            Blinks yellow LED in panel showing number of attached users.

 

Public Sub Device_Start()

It starts device.

 

Public Sub Device_Stop()

It stops device.

 

NB: This method does not check the presence of other programs communicating with AAG_CloudWatcher.

          Use AAG_TotalNoUsers to check the total number of users - if it is greater than 1, the device must NOT be stopped.

 

Public Sub AAG_DeviceStop()           

Similar to Device_Stop but it only stops the device if number of users = 1.

 

Public Function AAG_TotalNoUsers() As Long           

NB: This method was added in version 5.00.110

Return the total number of users.

NB: The minimum value is 1.

 

Public Function LastReading() As Variant

            Variant containing Date + time of the last device reading

 

Public Function Device_Mode() As String

NB: This method was eliminated from version 5.00.110.

Use AAG_DeviceRole.