#![allow(clippy::all)]
use epics_base_rs::server::record::DbLinkType;
use epics_base_rs::server::record::FieldDesc;
pub fn menu_choices(menu: &str) -> Option<&'static [&'static str]> {
let _ = menu;
None
}
pub static DEVICE_MENU_AAI: &[&str] = &[
"asynInt8ArrayIn",
"asynInt16ArrayIn",
"asynInt32ArrayIn",
"asynFloat32ArrayIn",
"asynFloat64ArrayIn",
"asynInt64ArrayIn",
];
pub static DEVICE_MENU_AAO: &[&str] = &[
"asynInt8ArrayOut",
"asynInt16ArrayOut",
"asynInt32ArrayOut",
"asynFloat32ArrayOut",
"asynFloat64ArrayOut",
"asynInt64ArrayOut",
];
pub static DEVICE_MENU_AI: &[&str] = &[
"asynInt32",
"asynInt32Average",
"asynFloat64",
"asynFloat64Average",
"asynInt64",
];
pub static DEVICE_MENU_AO: &[&str] = &["asynInt32", "asynFloat64", "asynInt64"];
pub static DEVICE_MENU_BI: &[&str] = &["asynInt32", "asynUInt32Digital"];
pub static DEVICE_MENU_BO: &[&str] = &["asynInt32", "asynUInt32Digital"];
pub static DEVICE_MENU_INT64IN: &[&str] = &["asynInt64"];
pub static DEVICE_MENU_INT64OUT: &[&str] = &["asynInt64"];
pub static DEVICE_MENU_LONGIN: &[&str] = &["asynInt32", "asynUInt32Digital", "asynInt64"];
pub static DEVICE_MENU_LONGOUT: &[&str] = &["asynInt32", "asynUInt32Digital", "asynInt64"];
pub static DEVICE_MENU_LSI: &[&str] = &[
"asynOctetCmdResponse",
"asynOctetWriteRead",
"asynOctetRead",
];
pub static DEVICE_MENU_LSO: &[&str] = &["asynOctetWrite"];
pub static DEVICE_MENU_MBBI: &[&str] = &["asynInt32", "asynUInt32Digital"];
pub static DEVICE_MENU_MBBIDIRECT: &[&str] = &["asynUInt32Digital"];
pub static DEVICE_MENU_MBBO: &[&str] = &["asynInt32", "asynUInt32Digital"];
pub static DEVICE_MENU_MBBODIRECT: &[&str] = &["asynUInt32Digital"];
pub static DEVICE_MENU_PRINTF: &[&str] = &["asynOctetWrite"];
pub static DEVICE_MENU_STRINGIN: &[&str] = &[
"asynOctetCmdResponse",
"asynOctetWriteRead",
"asynOctetRead",
];
pub static DEVICE_MENU_STRINGOUT: &[&str] = &["asynOctetWrite"];
pub static DEVICE_MENU_WAVEFORM: &[&str] = &[
"asynOctetCmdResponse",
"asynOctetWriteRead",
"asynOctetRead",
"asynOctetWrite",
"asynOctetWriteBinary",
"asynInt8ArrayIn",
"asynInt8ArrayOut",
"asynInt16ArrayIn",
"asynInt16ArrayOut",
"asynInt32ArrayIn",
"asynInt32ArrayOut",
"asynFloat32ArrayIn",
"asynFloat32ArrayOut",
"asynFloat64ArrayIn",
"asynFloat64ArrayOut",
"asynInt32TimeSeries",
"asynFloat64TimeSeries",
"asynInt64ArrayIn",
"asynInt64ArrayOut",
"asynInt64TimeSeries",
];
pub fn device_menu(record_type: &str) -> Option<&'static [&'static str]> {
Some(match record_type {
"aai" => DEVICE_MENU_AAI,
"aao" => DEVICE_MENU_AAO,
"ai" => DEVICE_MENU_AI,
"ao" => DEVICE_MENU_AO,
"bi" => DEVICE_MENU_BI,
"bo" => DEVICE_MENU_BO,
"int64in" => DEVICE_MENU_INT64IN,
"int64out" => DEVICE_MENU_INT64OUT,
"longin" => DEVICE_MENU_LONGIN,
"longout" => DEVICE_MENU_LONGOUT,
"lsi" => DEVICE_MENU_LSI,
"lso" => DEVICE_MENU_LSO,
"mbbi" => DEVICE_MENU_MBBI,
"mbbiDirect" => DEVICE_MENU_MBBIDIRECT,
"mbbo" => DEVICE_MENU_MBBO,
"mbboDirect" => DEVICE_MENU_MBBODIRECT,
"printf" => DEVICE_MENU_PRINTF,
"stringin" => DEVICE_MENU_STRINGIN,
"stringout" => DEVICE_MENU_STRINGOUT,
"waveform" => DEVICE_MENU_WAVEFORM,
_ => return None,
})
}
pub static DEVICE_MENU_RECORD_TYPES: &[&str] = &[
"aai",
"aao",
"ai",
"ao",
"bi",
"bo",
"int64in",
"int64out",
"longin",
"longout",
"lsi",
"lso",
"mbbi",
"mbbiDirect",
"mbbo",
"mbboDirect",
"printf",
"stringin",
"stringout",
"waveform",
];
pub static DEVICE_LINK_TYPES_AAI: &[(&str, DbLinkType)] = &[
("asynInt8ArrayIn", DbLinkType::InstIo),
("asynInt16ArrayIn", DbLinkType::InstIo),
("asynInt32ArrayIn", DbLinkType::InstIo),
("asynFloat32ArrayIn", DbLinkType::InstIo),
("asynFloat64ArrayIn", DbLinkType::InstIo),
("asynInt64ArrayIn", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_AAO: &[(&str, DbLinkType)] = &[
("asynInt8ArrayOut", DbLinkType::InstIo),
("asynInt16ArrayOut", DbLinkType::InstIo),
("asynInt32ArrayOut", DbLinkType::InstIo),
("asynFloat32ArrayOut", DbLinkType::InstIo),
("asynFloat64ArrayOut", DbLinkType::InstIo),
("asynInt64ArrayOut", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_AI: &[(&str, DbLinkType)] = &[
("asynInt32", DbLinkType::InstIo),
("asynInt32Average", DbLinkType::InstIo),
("asynFloat64", DbLinkType::InstIo),
("asynFloat64Average", DbLinkType::InstIo),
("asynInt64", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_AO: &[(&str, DbLinkType)] = &[
("asynInt32", DbLinkType::InstIo),
("asynFloat64", DbLinkType::InstIo),
("asynInt64", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_BI: &[(&str, DbLinkType)] = &[
("asynInt32", DbLinkType::InstIo),
("asynUInt32Digital", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_BO: &[(&str, DbLinkType)] = &[
("asynInt32", DbLinkType::InstIo),
("asynUInt32Digital", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_INT64IN: &[(&str, DbLinkType)] = &[("asynInt64", DbLinkType::InstIo)];
pub static DEVICE_LINK_TYPES_INT64OUT: &[(&str, DbLinkType)] = &[("asynInt64", DbLinkType::InstIo)];
pub static DEVICE_LINK_TYPES_LONGIN: &[(&str, DbLinkType)] = &[
("asynInt32", DbLinkType::InstIo),
("asynUInt32Digital", DbLinkType::InstIo),
("asynInt64", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_LONGOUT: &[(&str, DbLinkType)] = &[
("asynInt32", DbLinkType::InstIo),
("asynUInt32Digital", DbLinkType::InstIo),
("asynInt64", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_LSI: &[(&str, DbLinkType)] = &[
("asynOctetCmdResponse", DbLinkType::InstIo),
("asynOctetWriteRead", DbLinkType::InstIo),
("asynOctetRead", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_LSO: &[(&str, DbLinkType)] = &[("asynOctetWrite", DbLinkType::InstIo)];
pub static DEVICE_LINK_TYPES_MBBI: &[(&str, DbLinkType)] = &[
("asynInt32", DbLinkType::InstIo),
("asynUInt32Digital", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_MBBIDIRECT: &[(&str, DbLinkType)] =
&[("asynUInt32Digital", DbLinkType::InstIo)];
pub static DEVICE_LINK_TYPES_MBBO: &[(&str, DbLinkType)] = &[
("asynInt32", DbLinkType::InstIo),
("asynUInt32Digital", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_MBBODIRECT: &[(&str, DbLinkType)] =
&[("asynUInt32Digital", DbLinkType::InstIo)];
pub static DEVICE_LINK_TYPES_PRINTF: &[(&str, DbLinkType)] =
&[("asynOctetWrite", DbLinkType::InstIo)];
pub static DEVICE_LINK_TYPES_STRINGIN: &[(&str, DbLinkType)] = &[
("asynOctetCmdResponse", DbLinkType::InstIo),
("asynOctetWriteRead", DbLinkType::InstIo),
("asynOctetRead", DbLinkType::InstIo),
];
pub static DEVICE_LINK_TYPES_STRINGOUT: &[(&str, DbLinkType)] =
&[("asynOctetWrite", DbLinkType::InstIo)];
pub static DEVICE_LINK_TYPES_WAVEFORM: &[(&str, DbLinkType)] = &[
("asynOctetCmdResponse", DbLinkType::InstIo),
("asynOctetWriteRead", DbLinkType::InstIo),
("asynOctetRead", DbLinkType::InstIo),
("asynOctetWrite", DbLinkType::InstIo),
("asynOctetWriteBinary", DbLinkType::InstIo),
("asynInt8ArrayIn", DbLinkType::InstIo),
("asynInt8ArrayOut", DbLinkType::InstIo),
("asynInt16ArrayIn", DbLinkType::InstIo),
("asynInt16ArrayOut", DbLinkType::InstIo),
("asynInt32ArrayIn", DbLinkType::InstIo),
("asynInt32ArrayOut", DbLinkType::InstIo),
("asynFloat32ArrayIn", DbLinkType::InstIo),
("asynFloat32ArrayOut", DbLinkType::InstIo),
("asynFloat64ArrayIn", DbLinkType::InstIo),
("asynFloat64ArrayOut", DbLinkType::InstIo),
("asynInt32TimeSeries", DbLinkType::InstIo),
("asynFloat64TimeSeries", DbLinkType::InstIo),
("asynInt64ArrayIn", DbLinkType::InstIo),
("asynInt64ArrayOut", DbLinkType::InstIo),
("asynInt64TimeSeries", DbLinkType::InstIo),
];
pub fn device_link_type(record_type: &str, dtyp: &str) -> Option<DbLinkType> {
let table = match record_type {
"aai" => DEVICE_LINK_TYPES_AAI,
"aao" => DEVICE_LINK_TYPES_AAO,
"ai" => DEVICE_LINK_TYPES_AI,
"ao" => DEVICE_LINK_TYPES_AO,
"bi" => DEVICE_LINK_TYPES_BI,
"bo" => DEVICE_LINK_TYPES_BO,
"int64in" => DEVICE_LINK_TYPES_INT64IN,
"int64out" => DEVICE_LINK_TYPES_INT64OUT,
"longin" => DEVICE_LINK_TYPES_LONGIN,
"longout" => DEVICE_LINK_TYPES_LONGOUT,
"lsi" => DEVICE_LINK_TYPES_LSI,
"lso" => DEVICE_LINK_TYPES_LSO,
"mbbi" => DEVICE_LINK_TYPES_MBBI,
"mbbiDirect" => DEVICE_LINK_TYPES_MBBIDIRECT,
"mbbo" => DEVICE_LINK_TYPES_MBBO,
"mbboDirect" => DEVICE_LINK_TYPES_MBBODIRECT,
"printf" => DEVICE_LINK_TYPES_PRINTF,
"stringin" => DEVICE_LINK_TYPES_STRINGIN,
"stringout" => DEVICE_LINK_TYPES_STRINGOUT,
"waveform" => DEVICE_LINK_TYPES_WAVEFORM,
_ => return None,
};
table
.iter()
.find(|(name, _)| name.eq_ignore_ascii_case(dtyp))
.map(|(_, lt)| *lt)
}
pub fn record_fields(record_type: &str) -> Option<&'static [FieldDesc]> {
let _ = record_type;
None
}
pub static RECORD_TYPES: &[&str] = &[];