#![allow(clippy::all)]
use epics_base_rs::server::record::{Asl, Base, FieldDesc, Special};
use epics_base_rs::types::{DbFieldType, DbfCode};
pub static MENU_EPID_FEEDBACK_MODE: &[&str] = &["PID", "Max/Min"];
pub static MENU_EPID_FEEDBACK_STATE: &[&str] = &["Off", "On"];
pub static MENU_THROTTLE_DRVLC: &[&str] = &["Off", "On"];
pub static MENU_THROTTLE_DRVLS: &[&str] = &["Normal", "Low Limit", "High Limit"];
pub static MENU_THROTTLE_OV: &[&str] = &["Ext PV NC", "Ext PV OK", "Local PV", "Constant"];
pub static MENU_THROTTLE_STS: &[&str] = &["Unknown", "Error", "Success"];
pub static MENU_THROTTLE_SYNC: &[&str] = &["Idle", "Process"];
pub static MENU_THROTTLE_WAIT: &[&str] = &["False", "True"];
pub static MENU_TIMESTAMP_TST: &[&str] = &[
"YY/MM/DD HH:MM:SS",
"MM/DD/YY HH:MM:SS",
"Mon DD HH:MM:SS YY",
"Mon DD HH:MM:SS",
"HH:MM:SS",
"HH:MM",
"DD/MM/YY HH:MM:SS",
"DD Mon HH:MM:SS YY",
"DD-Mon-YYYY HH:MM:SS",
"Mon DD, YYYY HH:MM:SS.ns",
"MM/DD/YY HH:MM:SS.ns",
];
pub fn menu_choices(menu: &str) -> Option<&'static [&'static str]> {
Some(match menu {
"epidFeedbackMode" => MENU_EPID_FEEDBACK_MODE,
"epidFeedbackState" => MENU_EPID_FEEDBACK_STATE,
"throttleDRVLC" => MENU_THROTTLE_DRVLC,
"throttleDRVLS" => MENU_THROTTLE_DRVLS,
"throttleOV" => MENU_THROTTLE_OV,
"throttleSTS" => MENU_THROTTLE_STS,
"throttleSYNC" => MENU_THROTTLE_SYNC,
"throttleWAIT" => MENU_THROTTLE_WAIT,
"timestampTST" => MENU_TIMESTAMP_TST,
_ => return None,
})
}
pub static MENUS: &[(&str, &[&str], &[&str])] = &[
(
"epidFeedbackMode",
&["epidFeedbackMode_PID", "epidFeedbackMode_MaxMin"],
MENU_EPID_FEEDBACK_MODE,
),
(
"epidFeedbackState",
&["epidFeedbackState_Off", "epidFeedbackState_On"],
MENU_EPID_FEEDBACK_STATE,
),
(
"throttleDRVLC",
&["throttleDRVLC_OFF", "throttleDRVLC_ON"],
MENU_THROTTLE_DRVLC,
),
(
"throttleDRVLS",
&[
"throttleDRVLS_NORM",
"throttleDRVLS_LOW",
"throttleDRVLS_HIGH",
],
MENU_THROTTLE_DRVLS,
),
(
"throttleOV",
&[
"throttleOV_EXT_NC",
"throttleOV_EXT",
"throttleOV_LOC",
"throttleOV_CON",
],
MENU_THROTTLE_OV,
),
(
"throttleSTS",
&["throttleSTS_UNK", "throttleSTS_ERR", "throttleSTS_SUC"],
MENU_THROTTLE_STS,
),
(
"throttleSYNC",
&["throttleSYNC_IDLE", "throttleSYNC_PROC"],
MENU_THROTTLE_SYNC,
),
(
"throttleWAIT",
&["throttleWAIT_FALSE", "throttleWAIT_TRUE"],
MENU_THROTTLE_WAIT,
),
(
"timestampTST",
&[
"timestampTST_YY_MM_DD_HH_MM_SS",
"timestampTST_MM_DD_YY_HH_MM_SS",
"timestampTST_MM_DD_HH_MM_SS_YY",
"timestampTST_MM_DD_HH_MM_SS",
"timestampTST_HH_MM_SS",
"timestampTST_HH_MM",
"timestampTST_DD_MM_YY_HH_MM_SS",
"timestampTST_DD_MM_HH_MM_SS_YY",
"timestampTST_VMS",
"timestampTST_MM_DD_YYYY",
"timestampTST_MM_DD_YY",
],
MENU_TIMESTAMP_TST,
),
];
pub static VARIABLES: &[(&str, &str)] = &[];
pub static EPID_FIELDS: &[FieldDesc] = &[
FieldDesc {
name: "VAL",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: true,
asl: Asl::Asl0,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 0,
prop: false,
prompt: Some("Setpoint"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "SMSL",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(epics_base_rs::server::record::dbd_generated::MENU_OMSL),
initial: None,
interest: 1,
prop: false,
prompt: Some("Setpoint Mode Select"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "STPL",
dbf_type: DbFieldType::String,
declared_dbf: DbfCode::Inlink,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Setpoint Location"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "INP",
dbf_type: DbFieldType::String,
declared_dbf: DbfCode::Inlink,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Controlled Value Loc"),
promptgroup: Some("GUI_INPUTS"),
base: Base::Decimal,
},
FieldDesc {
name: "OUTL",
dbf_type: DbFieldType::String,
declared_dbf: DbfCode::Outlink,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Output Location"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "TRIG",
dbf_type: DbFieldType::String,
declared_dbf: DbfCode::Outlink,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Readback Trigger"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "TVAL",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Trigger Value"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "CVAL",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 0,
prop: false,
prompt: Some("Controlled Value"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "CVLP",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 0,
prop: false,
prompt: Some("Prev. Controlled Value"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "OVAL",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 0,
prop: false,
prompt: Some("Output value"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "OVLP",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 3,
prop: false,
prompt: Some("Prev output"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "PREC",
dbf_type: DbFieldType::Short,
declared_dbf: DbfCode::Short,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Display Precision"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "MDT",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Min Delta T"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "FMOD",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(MENU_EPID_FEEDBACK_MODE),
initial: None,
interest: 1,
prop: false,
prompt: Some("Feedback Mode"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "FBON",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(MENU_EPID_FEEDBACK_STATE),
initial: None,
interest: 1,
prop: false,
prompt: Some("Feedback On/Off"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "FBOP",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(MENU_EPID_FEEDBACK_STATE),
initial: None,
interest: 1,
prop: false,
prompt: Some("Prev. feedback On/Off"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "KP",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Proportional Gain"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "KI",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Intergral Gain"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "KD",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Derivative Gain"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "EGU",
dbf_type: DbFieldType::String,
declared_dbf: DbfCode::String,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 16,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Engineering Units"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "HOPR",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("High Operating Range"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "LOPR",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Low Operating Range"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "DRVH",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("High Drive Limit"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "DRVL",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Low Drive Limit"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "HIHI",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Hihi Deviation Limit"),
promptgroup: Some("GUI_ALARMS"),
base: Base::Decimal,
},
FieldDesc {
name: "LOLO",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Lolo Deviation Limit"),
promptgroup: Some("GUI_ALARMS"),
base: Base::Decimal,
},
FieldDesc {
name: "HIGH",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("High Deviation Limit"),
promptgroup: Some("GUI_ALARMS"),
base: Base::Decimal,
},
FieldDesc {
name: "LOW",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Low Deviation Limit"),
promptgroup: Some("GUI_ALARMS"),
base: Base::Decimal,
},
FieldDesc {
name: "HHSV",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(epics_base_rs::server::record::dbd_generated::MENU_ALARM_SEVR),
initial: None,
interest: 1,
prop: false,
prompt: Some("Hihi Severity"),
promptgroup: Some("GUI_ALARMS"),
base: Base::Decimal,
},
FieldDesc {
name: "LLSV",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(epics_base_rs::server::record::dbd_generated::MENU_ALARM_SEVR),
initial: None,
interest: 1,
prop: false,
prompt: Some("Lolo Severity"),
promptgroup: Some("GUI_ALARMS"),
base: Base::Decimal,
},
FieldDesc {
name: "HSV",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(epics_base_rs::server::record::dbd_generated::MENU_ALARM_SEVR),
initial: None,
interest: 1,
prop: false,
prompt: Some("High Severity"),
promptgroup: Some("GUI_ALARMS"),
base: Base::Decimal,
},
FieldDesc {
name: "LSV",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(epics_base_rs::server::record::dbd_generated::MENU_ALARM_SEVR),
initial: None,
interest: 1,
prop: false,
prompt: Some("Low Severity"),
promptgroup: Some("GUI_ALARMS"),
base: Base::Decimal,
},
FieldDesc {
name: "HYST",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Alarm Deadband"),
promptgroup: Some("GUI_ALARMS"),
base: Base::Decimal,
},
FieldDesc {
name: "ADEL",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Archive Deadband"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "MDEL",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Monitor Deadband"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "ODEL",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Output Deadband"),
promptgroup: Some("GUI_PID"),
base: Base::Decimal,
},
FieldDesc {
name: "P",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 2,
prop: false,
prompt: Some("P component"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "PP",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 2,
prop: false,
prompt: Some("Prev. P component"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "I",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 2,
prop: false,
prompt: Some("I component"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "IP",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 2,
prop: false,
prompt: Some("Prev. I component"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "D",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 2,
prop: false,
prompt: Some("D component"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "DP",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 2,
prop: false,
prompt: Some("Prev. D component"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "CT",
dbf_type: DbFieldType::UChar,
declared_dbf: DbfCode::NoAccess,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 8,
extra: Some("epicsTimeStamp ct"),
menu: None,
initial: None,
interest: 4,
prop: false,
prompt: Some("Time"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "CTP",
dbf_type: DbFieldType::UChar,
declared_dbf: DbfCode::NoAccess,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 8,
extra: Some("epicsTimeStamp ctp"),
menu: None,
initial: None,
interest: 4,
prop: false,
prompt: Some("Previous time"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "DT",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 2,
prop: false,
prompt: Some("Delta T"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "DTP",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 2,
prop: false,
prompt: Some("Prev. Delta T"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "ERR",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 2,
prop: false,
prompt: Some("Error"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "ERRP",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 2,
prop: false,
prompt: Some("Prev. Error"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "LALM",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 3,
prop: false,
prompt: Some("Last Value Alarmed"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "ALST",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 3,
prop: false,
prompt: Some("Last Value Archived"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "MLST",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 3,
prop: false,
prompt: Some("Last Value Monitored"),
promptgroup: None,
base: Base::Decimal,
},
];
pub static EPID_NOACCESS: &[&str] = &[];
pub static EPID_DECL: &[&str] = &[
"NAME", "DESC", "ASG", "SCAN", "PINI", "PHAS", "EVNT", "TSE", "TSEL", "DTYP", "DISV", "DISA",
"SDIS", "MLOK", "MLIS", "BKLNK", "DISP", "PROC", "STAT", "SEVR", "AMSG", "NSTA", "NSEV",
"NAMSG", "ACKS", "ACKT", "DISS", "LCNT", "PACT", "PUTF", "RPRO", "ASP", "PPN", "PPNR", "SPVT",
"RSET", "DSET", "DPVT", "RDES", "LSET", "PRIO", "TPRO", "BKPT", "UDF", "UDFS", "TIME", "UTAG",
"FLNK", "VAL", "SMSL", "STPL", "INP", "OUTL", "TRIG", "TVAL", "CVAL", "CVLP", "OVAL", "OVLP",
"PREC", "MDT", "FMOD", "FBON", "FBOP", "KP", "KI", "KD", "EGU", "HOPR", "LOPR", "DRVH", "DRVL",
"HIHI", "LOLO", "HIGH", "LOW", "HHSV", "LLSV", "HSV", "LSV", "HYST", "ADEL", "MDEL", "ODEL",
"P", "PP", "I", "IP", "D", "DP", "CT", "CTP", "DT", "DTP", "ERR", "ERRP", "LALM", "ALST",
"MLST",
];
pub static THROTTLE_FIELDS: &[FieldDesc] = &[
FieldDesc {
name: "VAL",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: true,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 0,
prop: false,
prompt: Some("Set Value"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "OVAL",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 3,
prop: false,
prompt: Some("Previous Set Value"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "SENT",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 0,
prop: false,
prompt: Some("Sent Value"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "OSENT",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 0,
prop: false,
prompt: Some("Previous Sent Value"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "WAIT",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(MENU_THROTTLE_WAIT),
initial: Some("0"),
interest: 1,
prop: false,
prompt: Some("Busy"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "HOPR",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("High Operating Range"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "LOPR",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Low Operating Range"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "DRVLH",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::Mod,
declared_special: Special::Mod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: Some("0.0"),
interest: 0,
prop: false,
prompt: Some("High Limit"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "DRVLL",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::Mod,
declared_special: Special::Mod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: Some("0.0"),
interest: 0,
prop: false,
prompt: Some("Low Limit"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "DRVLS",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(MENU_THROTTLE_DRVLS),
initial: Some("0"),
interest: 1,
prop: false,
prompt: Some("Limit Status"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "DRVLC",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(MENU_THROTTLE_DRVLC),
initial: Some("0"),
interest: 0,
prop: false,
prompt: Some("Limit Clipping"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "VER",
dbf_type: DbFieldType::String,
declared_dbf: DbfCode::String,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 20,
extra: None,
menu: None,
initial: Some(""),
interest: 0,
prop: false,
prompt: Some("Code Version"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "STS",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(MENU_THROTTLE_STS),
initial: Some("0"),
interest: 1,
prop: false,
prompt: Some("Record Status"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "PREC",
dbf_type: DbFieldType::Short,
declared_dbf: DbfCode::Short,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Display Precision"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "DPREC",
dbf_type: DbFieldType::Short,
declared_dbf: DbfCode::Short,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Delay Display Precision"),
promptgroup: Some("GUI_DISPLAY"),
base: Base::Decimal,
},
FieldDesc {
name: "DLY",
dbf_type: DbFieldType::Double,
declared_dbf: DbfCode::Double,
runtime_typed: false,
read_only: false,
special: Special::Mod,
declared_special: Special::Mod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: Some("0.0"),
interest: 0,
prop: false,
prompt: Some("Delay value"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "OUT",
dbf_type: DbFieldType::String,
declared_dbf: DbfCode::Outlink,
runtime_typed: false,
read_only: false,
special: Special::Mod,
declared_special: Special::Mod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Output"),
promptgroup: Some("GUI_COMMON"),
base: Base::Decimal,
},
FieldDesc {
name: "OV",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(MENU_THROTTLE_OV),
initial: Some("1"),
interest: 1,
prop: false,
prompt: Some("Output link valid"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "SINP",
dbf_type: DbFieldType::String,
declared_dbf: DbfCode::Inlink,
runtime_typed: false,
read_only: false,
special: Special::Mod,
declared_special: Special::Mod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 1,
prop: false,
prompt: Some("Sync Input"),
promptgroup: Some("GUI_COMMON"),
base: Base::Decimal,
},
FieldDesc {
name: "SIV",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(MENU_THROTTLE_OV),
initial: Some("1"),
interest: 1,
prop: false,
prompt: Some("Sync Input link valid"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "SYNC",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: false,
special: Special::Mod,
declared_special: Special::Mod,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(MENU_THROTTLE_SYNC),
initial: Some("Idle"),
interest: 0,
prop: false,
prompt: Some("Sync values"),
promptgroup: None,
base: Base::Decimal,
},
];
pub static THROTTLE_NOACCESS: &[&str] = &["RPVT"];
pub static THROTTLE_DECL: &[&str] = &[
"NAME", "DESC", "ASG", "SCAN", "PINI", "PHAS", "EVNT", "TSE", "TSEL", "DTYP", "DISV", "DISA",
"SDIS", "MLOK", "MLIS", "BKLNK", "DISP", "PROC", "STAT", "SEVR", "AMSG", "NSTA", "NSEV",
"NAMSG", "ACKS", "ACKT", "DISS", "LCNT", "PACT", "PUTF", "RPRO", "ASP", "PPN", "PPNR", "SPVT",
"RSET", "DSET", "DPVT", "RDES", "LSET", "PRIO", "TPRO", "BKPT", "UDF", "UDFS", "TIME", "UTAG",
"FLNK", "VAL", "OVAL", "SENT", "OSENT", "WAIT", "HOPR", "LOPR", "DRVLH", "DRVLL", "DRVLS",
"DRVLC", "VER", "RPVT", "STS", "PREC", "DPREC", "DLY", "OUT", "OV", "SINP", "SIV", "SYNC",
];
pub static TIMESTAMP_FIELDS: &[FieldDesc] = &[
FieldDesc {
name: "VAL",
dbf_type: DbFieldType::String,
declared_dbf: DbfCode::String,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: true,
asl: Asl::Asl0,
size: 40,
extra: None,
menu: None,
initial: None,
interest: 0,
prop: false,
prompt: Some("Current Value"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "OVAL",
dbf_type: DbFieldType::String,
declared_dbf: DbfCode::String,
runtime_typed: false,
read_only: true,
special: Special::NoMod,
declared_special: Special::NoMod,
pp: false,
asl: Asl::Asl1,
size: 40,
extra: None,
menu: None,
initial: None,
interest: 3,
prop: false,
prompt: Some("Previous Value"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "RVAL",
dbf_type: DbFieldType::ULong,
declared_dbf: DbfCode::ULong,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: true,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: None,
initial: None,
interest: 0,
prop: false,
prompt: Some("Current Raw Value"),
promptgroup: None,
base: Base::Decimal,
},
FieldDesc {
name: "TST",
dbf_type: DbFieldType::Enum,
declared_dbf: DbfCode::Menu,
runtime_typed: false,
read_only: false,
special: Special::None,
declared_special: Special::None,
pp: false,
asl: Asl::Asl1,
size: 0,
extra: None,
menu: Some(MENU_TIMESTAMP_TST),
initial: None,
interest: 2,
prop: false,
prompt: Some("Time Stamp Type"),
promptgroup: Some("GUI_INPUTS"),
base: Base::Decimal,
},
];
pub static TIMESTAMP_NOACCESS: &[&str] = &[];
pub static TIMESTAMP_DECL: &[&str] = &[
"NAME", "DESC", "ASG", "SCAN", "PINI", "PHAS", "EVNT", "TSE", "TSEL", "DTYP", "DISV", "DISA",
"SDIS", "MLOK", "MLIS", "BKLNK", "DISP", "PROC", "STAT", "SEVR", "AMSG", "NSTA", "NSEV",
"NAMSG", "ACKS", "ACKT", "DISS", "LCNT", "PACT", "PUTF", "RPRO", "ASP", "PPN", "PPNR", "SPVT",
"RSET", "DSET", "DPVT", "RDES", "LSET", "PRIO", "TPRO", "BKPT", "UDF", "UDFS", "TIME", "UTAG",
"FLNK", "VAL", "OVAL", "RVAL", "TST",
];
pub fn record_fields(record_type: &str) -> Option<&'static [FieldDesc]> {
Some(match record_type {
"epid" => EPID_FIELDS,
"throttle" => THROTTLE_FIELDS,
"timestamp" => TIMESTAMP_FIELDS,
_ => return None,
})
}
pub fn record_noaccess_fields(record_type: &str) -> Option<&'static [&'static str]> {
Some(match record_type {
"epid" => EPID_NOACCESS,
"throttle" => THROTTLE_NOACCESS,
"timestamp" => TIMESTAMP_NOACCESS,
_ => return None,
})
}
pub fn record_declaration_order(record_type: &str) -> Option<&'static [&'static str]> {
Some(match record_type {
"epid" => EPID_DECL,
"throttle" => THROTTLE_DECL,
"timestamp" => TIMESTAMP_DECL,
_ => return None,
})
}
pub fn record_no_prompt(record_type: &str) -> Option<u16> {
Some(match record_type {
"epid" => 49,
"throttle" => 24,
"timestamp" => 19,
_ => return None,
})
}
pub static RECORD_TYPES: &[&str] = &["epid", "throttle", "timestamp"];