Status isn't returning the value created by new.
--Tim
On Thursday, March 27, 2014 05:45:08 AM RecentConvert wrote:
> It turns out the error wasn't in the code I posted but how it was then
> implemented though I still am not sure what is wrong.
>
> This code works.
> type Status AutoBG::Vector{Bool}
> AutoCal::Vector{Bool}
> FrequencyLock::Vector{Bool}
> BinomialFilter::Vector{Bool}
> AltMode::Vector{Bool}
> GuessLast::Vector{Bool}
> PowerNorm::Vector{Bool}
> ContRefLock::Vector{Bool}
>
> AutoSpectSave::Vector{Bool}
> PressureLock::Vector{Bool}
> #b11::Vector{Bool}
> #b12::Vector{Bool}
> WriteData::Vector{Bool}
> RS232::Vector{Bool}
> ElectronicBGSub::Vector{Bool}
> #b16::Vector{Bool}
>
> Valve1::Vector{Bool}
> Valve2::Vector{Bool}
> Valve3::Vector{Bool}
> Valve4::Vector{Bool}
> Valve5::Vector{Bool}
> Valve6::Vector{Bool}
> Valve7::Vector{Bool}
> Valve8::Vector{Bool}
>
> # Constructor for Status type
> function Status(vals::Array{Int64})
> l = int64(length(vals))
>
> AutoBG = Array(Bool,l)
> AutoCal = Array(Bool,l)
> FrequencyLock = Array(Bool,l)
> BinomialFilter = Array(Bool,l)
> AltMode = Array(Bool,l)
> GuessLast = Array(Bool,l)
> PowerNorm = Array(Bool,l)
> ContRefLock = Array(Bool,l)
>
> AutoSpectSave = Array(Bool,l)
> PressureLock = Array(Bool,l)
> #b11 = Array(Bool,l)
> #b12 = Array(Bool,l)
> WriteData = Array(Bool,l)
> RS232 = Array(Bool,l)
> ElectronicBGSub = Array(Bool,l)
> #b16 = Array(Bool,l)
>
> Valve1 = Array(Bool,l)
> Valve2 = Array(Bool,l)
> Valve3 = Array(Bool,l)
> Valve4 = Array(Bool,l)
> Valve5 = Array(Bool,l)
> Valve6 = Array(Bool,l)
> Valve7 = Array(Bool,l)
> Valve8 = Array(Bool,l)
>
> # Parse Inputs
> for i=1:l
> # Byte 1
> AutoBG[i] = vals[i] & 2^(1-1) > 0
> AutoCal[i] = vals[i] & 2^(2-1) > 0
> FrequencyLock[i] = vals[i] & 2^(3-1) > 0
> BinomialFilter[i] = vals[i] & 2^(4-1) > 0
> AltMode[i] = vals[i] & 2^(5-1) > 0
> GuessLast[i] = vals[i] & 2^(6-1) > 0
> PowerNorm[i] = vals[i] & 2^(7-1) > 0
> ContRefLock[i] = vals[i] & 2^(8-1) > 0
>
> # Byte 2
> AutoSpectSave[i] = vals[i] & 2^(9-1) > 0
> PressureLock[i] = vals[i] & 2^(10-1) > 0
> #b11[i] = vals[i] & 2^(11-1) > 0
> #b12[i] = vals[i] & 2^(12-1) > 0
> WriteData[i] = vals[i] & 2^(13-1) > 0
> RS232[i] = vals[i] & 2^(14-1) > 0
> ElectronicBGSub[i] = vals[i] & 2^(15-1) > 0
> #b16[i] = vals[i] & 2^(16-1) > 0
>
> # Byte 3
> Valve1[i] = vals[i] & 2^(17-1) > 0
> Valve2[i] = vals[i] & 2^(18-1) > 0
> Valve3[i] = vals[i] & 2^(19-1) > 0
> Valve4[i] = vals[i] & 2^(20-1) > 0
> Valve5[i] = vals[i] & 2^(21-1) > 0
> Valve6[i] = vals[i] & 2^(22-1) > 0
> Valve7[i] = vals[i] & 2^(23-1) > 0
> Valve8[i] = vals[i] & 2^(24-1) > 0
> end # End of conversion
> println("AutoBG Length: " * string(length(AutoBG)))
>
> #new(AutoBG,AutoCal,FrequencyLock,BinomialFilter,AltMode,GuessLast,PowerNorm
> ,ContRefLock,AutoSpectSave,PressureLock,b11,b12,WriteData,RS232,ElectronicBG
> Sub,b16,Valve1_temp,Valve2_temp,Valve3_temp,Valve4_temp,Valve5_temp,Valve6_t
> emp,Valve7_temp,Valve8_temp)
> new(AutoBG,AutoCal,FrequencyLock,BinomialFilter,AltMode,GuessLast,PowerNorm
> ,ContRefLock,AutoSpectSave,PressureLock,WriteData,RS232,ElectronicBGSub,
> Valve1,Valve2,Valve3,Valve4,Valve5,Valve6,Valve7,Valve8)
> end # End of constructor
> end # End of type
>
>
> y = [1:10]
> x = Status(y)
>
>
> # Properties
> println("Type: " * string(typeof(x)))
> println(x.AutoBG)
>
> I'm trying to build a module for functions related to an instrument we have
> and the Status type was placed in there. The module looks like this.
> module Aerodyne
>
> export Status, aerodyne
>
> type Status
> AutoBG::Vector{Bool}
> AutoCal::Vector{Bool}
> FrequencyLock::Vector{Bool}
> BinomialFilter::Vector{Bool}
> AltMode::Vector{Bool}
> GuessLast::Vector{Bool}
> PowerNorm::Vector{Bool}
> ContRefLock::Vector{Bool}
>
> AutoSpectSave::Vector{Bool}
> PressureLock::Vector{Bool}
> #b11::Vector{Bool}
> #b12::Vector{Bool}
> WriteData::Vector{Bool}
> RS232::Vector{Bool}
> ElectronicBGSub::Vector{Bool}
> #b16::Vector{Bool}
>
> Valve1::Vector{Bool}
> Valve2::Vector{Bool}
> Valve3::Vector{Bool}
> Valve4::Vector{Bool}
> Valve5::Vector{Bool}
> Valve6::Vector{Bool}
> Valve7::Vector{Bool}
> Valve8::Vector{Bool}
>
> # Constructor for Status type
> function Status(vals::Array{Int64})
> l = int64(length(vals))
>
> AutoBG = Array(Bool,l)
> AutoCal = Array(Bool,l)
> FrequencyLock = Array(Bool,l)
> BinomialFilter = Array(Bool,l)
> AltMode = Array(Bool,l)
> GuessLast = Array(Bool,l)
> PowerNorm = Array(Bool,l)
> ContRefLock = Array(Bool,l)
>
> AutoSpectSave = Array(Bool,l)
> PressureLock = Array(Bool,l)
> #b11 = Array(Bool,l)
> #b12 = Array(Bool,l)
> WriteData = Array(Bool,l)
> RS232 = Array(Bool,l)
> ElectronicBGSub = Array(Bool,l)
> #b16 = Array(Bool,l)
>
> Valve1 = Array(Bool,l)
> Valve2 = Array(Bool,l)
> Valve3 = Array(Bool,l)
> Valve4 = Array(Bool,l)
> Valve5 = Array(Bool,l)
> Valve6 = Array(Bool,l)
> Valve7 = Array(Bool,l)
> Valve8 = Array(Bool,l)
>
> # Parse Inputs
> for i=1:l
> # Byte 1
> AutoBG[i] = vals[i] & 2^(1-1) > 0
> AutoCal[i] = vals[i] & 2^(2-1) > 0
> FrequencyLock[i] = vals[i] & 2^(3-1) > 0
> BinomialFilter[i] = vals[i] & 2^(4-1) > 0
> AltMode[i] = vals[i] & 2^(5-1) > 0
> GuessLast[i] = vals[i] & 2^(6-1) > 0
> PowerNorm[i] = vals[i] & 2^(7-1) > 0
> ContRefLock[i] = vals[i] & 2^(8-1) > 0
>
> # Byte 2
> AutoSpectSave[i] = vals[i] & 2^(9-1) > 0
> PressureLock[i] = vals[i] & 2^(10-1) > 0
> #b11[i] = vals[i] & 2^(11-1) > 0
> #b12[i] = vals[i] & 2^(12-1) > 0
> WriteData[i] = vals[i] & 2^(13-1) > 0
> RS232[i] = vals[i] & 2^(14-1) > 0
> ElectronicBGSub[i] = vals[i] & 2^(15-1) > 0
> #b16[i] = vals[i] & 2^(16-1) > 0
>
> # Byte 3
> Valve1[i] = vals[i] & 2^(17-1) > 0
> Valve2[i] = vals[i] & 2^(18-1) > 0
> Valve3[i] = vals[i] & 2^(19-1) > 0
> Valve4[i] = vals[i] & 2^(20-1) > 0
> Valve5[i] = vals[i] & 2^(21-1) > 0
> Valve6[i] = vals[i] & 2^(22-1) > 0
> Valve7[i] = vals[i] & 2^(23-1) > 0
> Valve8[i] = vals[i] & 2^(24-1) > 0
> end # End of conversion
> println("Valve1: " * string(typeof(Valve1)))
> println("Valve1 Length: " * string(length(Valve1)))
> new(AutoBG,AutoCal,FrequencyLock,BinomialFilter,AltMode,GuessLast,
> PowerNorm,ContRefLock,AutoSpectSave,PressureLock,WriteData,RS232,
> ElectronicBGSub,Valve1,Valve2,Valve3,Valve4,Valve5,Valve6,Valve7,Valve8)
> println("Test3")
> end # End of constructor
> end # End of type
> end # End of module
>
>
>
> It's then called in this manner.
> using Aerodyne
> ...
> statuses = Status(vector(Dstc["StatusW"]))
>
> Dstc is a dataframe.
> Dstc["StatusW"] is a DataArray{Int64,1}.
> vector(Dstc["StatusW"]) is a Array{Int64,1}.
>
> Unfortunately statuses still ends up being Nothing (constructor with 1
> method).