redo TypeDef
This commit is contained in:
+59
-53
@@ -12,64 +12,70 @@ namespace nt {
|
||||
|
||||
TypeDef NTScalar::build()
|
||||
{
|
||||
TypeDef def(TypeCode::Struct,
|
||||
value.isarray() ? "epics:nt/NTScalarArray:1.0" : "epics:nt/NTScalar:1.0");
|
||||
return TypeDef(TypeCode::Struct,
|
||||
value.isarray() ? "epics:nt/NTScalarArray:1.0" : "epics:nt/NTScalar:1.0", {
|
||||
Member(value, "value"),
|
||||
Member(TypeCode::Struct, "alarm", "alarm_t", {
|
||||
Member(TypeCode::Int32, "severity"),
|
||||
Member(TypeCode::Int32, "status"),
|
||||
Member(TypeCode::String, "message"),
|
||||
}),
|
||||
Member(TypeCode::Struct, "timeStamp", "time_t", {
|
||||
Member(TypeCode::Int64, "secondsPastEpoch"),
|
||||
Member(TypeCode::Int32, "nanoseconds"),
|
||||
Member(TypeCode::Int32, "userTag"),
|
||||
}),
|
||||
});
|
||||
|
||||
const bool isnumeric = value.kind()==Kind::Integer || value.kind()==Kind::Real;
|
||||
const auto scalar = value.scalarOf();
|
||||
// const bool isnumeric = value.kind()==Kind::Integer || value.kind()==Kind::Real;
|
||||
// const auto scalar = value.scalarOf();
|
||||
|
||||
def.begin()
|
||||
.insert("value", value)
|
||||
.insert("alarm", "alarm_t", TypeCode::Struct).seek("alarm")
|
||||
.insert("severity", TypeCode::Int32)
|
||||
.insert("status", TypeCode::Int32)
|
||||
.insert("message", TypeCode::String)
|
||||
.up()
|
||||
.insert("timeStamp", "time_t", TypeCode::Struct).seek("timeStamp")
|
||||
.insert("secondsPastEpoch", TypeCode::Int64)
|
||||
.insert("nanoseconds", TypeCode::Int32)
|
||||
.insert("userTag", TypeCode::Int32)
|
||||
.up()
|
||||
;
|
||||
// if(display && isnumeric) {
|
||||
// def.begin()
|
||||
// .insert("display", TypeCode::Struct).seek("display")
|
||||
// .insert("limitLow", scalar)
|
||||
// .insert("limitHigh", scalar)
|
||||
// .insert("description", TypeCode::String)
|
||||
// //.insert("format", TypeCode::String)
|
||||
// .insert("units", TypeCode::String)
|
||||
// .up()
|
||||
// ;
|
||||
// }
|
||||
|
||||
if(display && isnumeric) {
|
||||
def.begin()
|
||||
.insert("display", TypeCode::Struct).seek("display")
|
||||
.insert("limitLow", scalar)
|
||||
.insert("limitHigh", scalar)
|
||||
.insert("description", TypeCode::String)
|
||||
//.insert("format", TypeCode::String)
|
||||
.insert("units", TypeCode::String)
|
||||
.up()
|
||||
;
|
||||
}
|
||||
// if(control && isnumeric) {
|
||||
// def.begin()
|
||||
// .insert("control", TypeCode::Struct).seek("control")
|
||||
// .insert("limitLow", scalar)
|
||||
// .insert("limitHigh", scalar)
|
||||
// .insert("minStep", scalar)
|
||||
// .up()
|
||||
// ;
|
||||
// }
|
||||
|
||||
if(control && isnumeric) {
|
||||
def.begin()
|
||||
.insert("control", TypeCode::Struct).seek("control")
|
||||
.insert("limitLow", scalar)
|
||||
.insert("limitHigh", scalar)
|
||||
.insert("minStep", scalar)
|
||||
.up()
|
||||
;
|
||||
}
|
||||
// if(valueAlarm && isnumeric) {
|
||||
// def.begin()
|
||||
// .insert("valueAlarm", TypeCode::Struct).seek("valueAlarm")
|
||||
// .insert("active", TypeCode::Bool) // useless?
|
||||
// .insert("lowAlarmLimit", scalar)
|
||||
// .insert("lowWarningLimit", scalar)
|
||||
// .insert("highWarningLimit", scalar)
|
||||
// .insert("highAlarmLimit", scalar)
|
||||
// .insert("lowAlarmSeverity", TypeCode::Int32)
|
||||
// .insert("lowWarningSeverity", TypeCode::Int32)
|
||||
// .insert("highWarningSeverity", TypeCode::Int32)
|
||||
// .insert("highAlarmSeverity", TypeCode::Int32)
|
||||
// .insert("hysteresis", TypeCode::Float64)
|
||||
// .up()
|
||||
// ;
|
||||
// }
|
||||
|
||||
// return def;
|
||||
}
|
||||
|
||||
TypeDef NTNDArray::build()
|
||||
{
|
||||
TypeDef def(TypeCode::Struct, "epics:nt/NTNDArray:1.0");
|
||||
|
||||
if(valueAlarm && isnumeric) {
|
||||
def.begin()
|
||||
.insert("valueAlarm", TypeCode::Struct).seek("valueAlarm")
|
||||
.insert("active", TypeCode::Bool) // useless?
|
||||
.insert("lowAlarmLimit", scalar)
|
||||
.insert("lowWarningLimit", scalar)
|
||||
.insert("highWarningLimit", scalar)
|
||||
.insert("highAlarmLimit", scalar)
|
||||
.insert("lowAlarmSeverity", TypeCode::Int32)
|
||||
.insert("lowWarningSeverity", TypeCode::Int32)
|
||||
.insert("highWarningSeverity", TypeCode::Int32)
|
||||
.insert("highAlarmSeverity", TypeCode::Int32)
|
||||
.insert("hysteresis", TypeCode::Float64)
|
||||
.up()
|
||||
;
|
||||
}
|
||||
|
||||
return def;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user