-
Notifications
You must be signed in to change notification settings - Fork 6
/
loadshape.jl
158 lines (124 loc) · 4.62 KB
/
loadshape.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
module LoadShape
using DocStringExtensions
using ..Lib
using ..Utils
@template (FUNCTIONS, METHODS) = """
$(TYPEDSIGNATURES)
$(DOCSTRING)
"""
"""Create new Load Shape"""
function New(Name)::Int
return @checked Lib.LoadShapes_New(Cstring(pointer(Name)))
end
"""Normalize Load Shape"""
function Normalize()
@checked Lib.LoadShapes_Normalize()
end
"""Array of strings containing names of all Loadshape objects currently defined."""
function AllNames()::Vector{String}
return get_string_array(Lib.LoadShapes_Get_AllNames)
end
"""Number of Loadshape objects currently defined in Loadshape collection"""
function Count()::Int
return @checked Lib.LoadShapes_Get_Count()
end
"""Set the first loadshape active and return integer index of the loadshape. Returns 0 if none."""
function First()::Int
return @checked Lib.LoadShapes_Get_First()
end
"""Fixed interval time value, hours."""
function HrInterval()::Float64
return @checked Lib.LoadShapes_Get_HrInterval()
end
"""Fixed interval time value, hours."""
function HrInterval(Value::Float64)
@checked Lib.LoadShapes_Set_HrInterval(Value)
end
"""Fixed Interval time value, in minutes"""
function MinInterval()::Float64
return @checked Lib.LoadShapes_Get_MinInterval()
end
"""Fixed Interval time value, in minutes"""
function MinInterval(Value::Float64)
@checked Lib.LoadShapes_Set_MinInterval(Value)
end
"""Name of the active Loadshape (Getter)"""
function Name()::String
return get_string(Lib.LoadShapes_Get_Name())
end
"""Name of the active Loadshape (Setter)"""
function Name(Value::String)
@checked Lib.LoadShapes_Set_Name(Cstring(pointer(Value)))
end
"""Advance active Loadshape to the next on in the collection. Returns 0 if no more loadshapes."""
function Next()::Int
return @checked Lib.LoadShapes_Get_Next()
end
"""Number of points in active Loadshape. (Getter)"""
function Npts()::Int
return @checked Lib.LoadShapes_Get_Npts()
end
"""Number of points in active Loadshape. (Setter)"""
function Npts(Value::Int)
@checked Lib.LoadShapes_Set_Npts(Value)
end
"""Base for normalizing P curve (Getter)"""
function PBase()::Float64
return @checked Lib.LoadShapes_Get_PBase()
end
"""Base for normalizing P curve (Setter)"""
function PBase(Value::Float64)
@checked Lib.LoadShapes_Set_PBase(Value)
end
"""Array of Doubles for the P multiplier in the Loadshape. (Getter)"""
function PMult()::Vector{Float64}
return get_float64_array(Lib.LoadShapes_Get_Pmult)
end
"""Array of Doubles for the P multiplier in the Loadshape. (Setter)"""
function PMult(Value::Vector{Float64})
Value, ValuePtr, ValueCount = prepare_float64_array(Value)
@checked Lib.LoadShapes_Set_Pmult(ValuePtr, ValueCount)
end
"""Base for normalizing Q curve. If left at zero, the peak value is used. (Getter)"""
function QBase()::Float64
return @checked Lib.LoadShapes_Get_Qbase()
end
"""Base for normalizing Q curve. If left at zero, the peak value is used. (Setter)"""
function QBase(Value::Float64)
@checked Lib.LoadShapes_Set_Qbase(Value)
end
"""Array of doubles containing the Q multipliers. (Getter)"""
function QMult()::Vector{Float64}
return get_float64_array(Lib.LoadShapes_Get_Qmult)
end
"""Array of doubles containing the Q multipliers. (Setter)"""
function QMult(Value::Vector{Float64})
Value, ValuePtr, ValueCount = prepare_float64_array(Value)
@checked Lib.LoadShapes_Set_Qmult(ValuePtr, ValueCount)
end
"""Time array in hours correscponding to P and Q multipliers when the Interval=0. (Getter)"""
function TimeArray()::Vector{Float64}
return get_float64_array(Lib.LoadShapes_Get_TimeArray)
end
"""Time array in hours correscponding to P and Q multipliers when the Interval=0. (Setter)"""
function TimeArray(Value::Vector{Float64})
Value, ValuePtr, ValueCount = prepare_float64_array(Value)
@checked Lib.LoadShapes_Set_TimeArray(ValuePtr, ValueCount)
end
"""T/F flag to let Loads know to use the actual value in the curve rather than use the value as a multiplier. (Getter)"""
function UseActual()::Bool
return @checked(Lib.LoadShapes_Get_UseActual()) != 0
end
"""T/F flag to let Loads know to use the actual value in the curve rather than use the value as a multiplier. (Setter)"""
function UseActual(Value::Bool)
@checked Lib.LoadShapes_Set_UseActual(Value ? 1 : 0)
end
"""Interval of active loadshape in seconds (Getter)"""
function SInterval()::Float64
return @checked Lib.LoadShapes_Get_sInterval()
end
"""Interval of active loadshape in seconds (Setter)"""
function SInterval(Value::Float64)
@checked Lib.LoadShapes_Set_Sinterval(Value)
end
end