When the windvector has a flag for disable variable, the wind direction standard deviation can not be calculated.
Here is the program i tested. You can try.
'CR1000 Series Datalogger
Public PTemp, batt_volt
Const ws1=2.000
Const ws2=5.000
Const wd1=350.1
Const wd2=250.1
Public wd,ws
Public n=1
Public flag1 As Boolean
Public flag2 As Boolean
DataTable (Test,1,1000)
DataInterval (0,5,Sec,10)
Minimum (1,batt_volt,FP2,0,False)
Average (1,PTemp,FP2,flag2)
WindVector (1,ws,wd,FP2,flag2,0,0,0)
EndTable
DataTable (Test1,1,1000)
DataInterval (0,5,Sec,10)
Average (1,PTemp,FP2,False)
WindVector (1,ws,wd,FP2,False,0,0,0)
EndTable
BeginProg
Scan (100,mSec,0,0)
PanelTemp (PTemp,250)
Battery (batt_volt)
n=n+1
If n MOD 2=0 Then
wd=wd1
ws=ws1
ElseIf n MOD 2 = 1 Then
wd=wd2
ws=ws2
EndIf
CallTable Test
CallTable Test1
flag2 = true
If flag1 Then
flag1 = false
flag2 = false
EndIf
NextScan
SlowSequence
Scan (1,Sec,3,0)
n=n+1
flag1 = true
NextScan
EndProg
Is that a bug?
Hope for your reply!
Thanks!
Thank you for the report. I've narrowed it down to StdDev not being calculated when the disable variable is true during output to final storage but not necessarily during the rest of the data interval. We are looking into what is going on and will report back soon.
Here is the program I used to characterize the behavior for Engineering here:
Public wd,ws
Public DisableVar2 As Boolean
Public DisableVar3 As Boolean
Public DisableVar4 As Boolean
DataTable (Test1,1,1000)
DataInterval (0,5,Sec,10)
WindVector (1,ws,wd,FP2,False,0,0,0)
EndTable
DataTable (Test2,1,1000)
DataInterval (0,5,Sec,10)
WindVector (1,ws,wd,FP2,DisableVar2,0,0,0)
EndTable
DataTable (Test3,1,1000)
DataInterval (0,5,Sec,10)
WindVector (1,ws,wd,FP2,DisableVar3,0,0,0)
EndTable
DataTable (Test4,1,1000)
DataInterval (0,5,Sec,10)
WindVector (1,ws,wd,FP2,DisableVar4,0,0,0)
EndTable
BeginProg
Scan (100,mSec,0,0)
wd = RND * 180
ws = RND * 50
'disable variable for test2
If TimeIntoInterval (2,5,Sec) Then DisableVar2 = TRUE
If TimeIntoInterval(3,5,Sec) Then DisableVar2 = FALSE
'disable variable for test3, spans output to final storage
If TimeIntoInterval (4,5,Sec) Then DisableVar3 = TRUE
If TimeIntoInterval(1,5,Sec) Then DisableVar3 = FALSE
CallTable Test1
CallTable Test2
CallTable Test3
CallTable Test4
'disable variable for test4, spans entire data interval
If Test4.Output Then
DisableVar4 = NOT DisableVar4
EndIf
NextScan
EndProg
Thans! Sam.
Hope for your reply!
A fix will be included in the next OS release. It looks like this behavior has been in the OS for a really long time. Thank you for reporting it.