Skip to content
Snippets Groups Projects
Commit b431ef6a authored by Matt Clarke_1's avatar Matt Clarke_1
Browse files

added additional logging for f144 while we chase a bug

parent b26ff3c3
No related branches found
No related tags found
1 merge request!891added additional logging for f144 while we chase a bug
Pipeline #212952 passed
......@@ -30,12 +30,15 @@ struct ValuesInformation {
};
template <typename Type> void makeIt(hdf5::node::Group const &Parent) {
Logger::Error("f144_Writer makeIt start");
NeXusDataset::ExtensibleDataset<Type>( // NOLINT(bugprone-unused-raii)
Parent, "value",
NeXusDataset::Mode::Create); // NOLINT(bugprone-unused-raii)
Logger::Error("f144_Writer makeIt end");
}
void initValueDataset(hdf5::node::Group const &Parent, Type ElementType) {
Logger::Error("f144_Writer initValueDataset start");
using OpenFuncType = std::function<void()>;
std::map<Type, OpenFuncType> CreateValuesMap{
{Type::int8, [&]() { makeIt<std::int8_t>(Parent); }},
......@@ -50,10 +53,12 @@ void initValueDataset(hdf5::node::Group const &Parent, Type ElementType) {
{Type::float64, [&]() { makeIt<std::double_t>(Parent); }},
};
CreateValuesMap.at(ElementType)();
Logger::Error("f144_Writer initValueDataset end");
}
/// Parse the configuration for this stream.
void f144_Writer::config_post_processing() {
Logger::Error("f144_Writer config_post_processing start");
auto ToLower = [](auto InString) {
std::transform(InString.begin(), InString.end(), InString.begin(),
[](auto C) { return std::tolower(C); });
......@@ -75,12 +80,14 @@ void f144_Writer::config_post_processing() {
Logger::Info(R"(Unknown data type with name "{}". Using double.)",
DataType.get_value());
}
Logger::Error("f144_Writer config_post_processing end");
}
/// \brief Implement the writer module interface, forward to the CREATE case
/// of
/// `init_hdf`.
InitResult f144_Writer::init_hdf(hdf5::node::Group &HDFGroup) {
Logger::Error("f144_Writer init_hdf start");
auto Create = NeXusDataset::Mode::Create;
try {
NeXusDataset::Time(HDFGroup, Create,
......@@ -97,15 +104,18 @@ InitResult f144_Writer::init_hdf(hdf5::node::Group &HDFGroup) {
auto message = hdf5::error::print_nested(E);
Logger::Error("f144 writer could not init_hdf hdf_parent: {} trace: {}",
static_cast<std::string>(HDFGroup.link().path()), message);
Logger::Error("f144_Writer init_hdf end");
return InitResult::ERROR;
}
Logger::Error("f144_Writer init_hdf end");
return InitResult::OK;
}
/// \brief Implement the writer module interface, forward to the OPEN case of
/// `init_hdf`.
InitResult f144_Writer::reopen(hdf5::node::Group &HDFGroup) {
Logger::Error("f144_Writer reopen start");
auto Open = NeXusDataset::Mode::Open;
try {
Timestamp = NeXusDataset::Time(HDFGroup, Open);
......@@ -116,26 +126,33 @@ InitResult f144_Writer::reopen(hdf5::node::Group &HDFGroup) {
Logger::Error(
R"(Failed to reopen datasets in HDF file with error message: "{}")",
std::string(E.what()));
Logger::Error("f144_Writer reopen end");
return InitResult::ERROR;
}
Logger::Error("f144_Writer reopen end");
return InitResult::OK;
}
template <typename FBValueType, typename ReturnType>
ReturnType extractScalarValue(const f144_LogData *LogDataMessage) {
Logger::Error("f144_Writer extractScalarValue start");
auto LogValue = LogDataMessage->value_as<FBValueType>();
Logger::Error("f144_Writer extractScalarValue end");
return LogValue->value();
}
template <typename DataType, typename ValueType, class DatasetType>
ValuesInformation appendScalarData(DatasetType &Dataset,
const f144_LogData *LogDataMessage) {
Logger::Error("f144_Writer appendScalarData start");
auto ScalarValue = extractScalarValue<ValueType, DataType>(LogDataMessage);
Dataset.template appendElement<DataType>(ScalarValue);
Logger::Error("f144_Writer appendScalarData end");
return {double(ScalarValue), double(ScalarValue), double(ScalarValue), 1};
}
void msgTypeIsConfigType(f144_Writer::Type ConfigType, Value MsgType) {
Logger::Error("f144_Writer msgTypeIsConfigType start");
std::unordered_map<Value, f144_Writer::Type> TypeComparison{
{Value::ArrayByte, f144_Writer::Type::int8},
{Value::Byte, f144_Writer::Type::int8},
......@@ -192,10 +209,12 @@ void msgTypeIsConfigType(f144_Writer::Type ConfigType, Value MsgType) {
} catch (std::out_of_range const &) {
Logger::Error("Got out of range error when comparing types.");
}
Logger::Error("f144_Writer msgTypeIsConfigType end");
}
bool f144_Writer::writeImpl(FlatbufferMessage const &Message,
[[maybe_unused]] bool is_buffered_message) {
Logger::Error("f144_Writer writeImpl start");
auto LogDataMessage = Getf144_LogData(Message.data());
Timestamp.appendElement(LogDataMessage->timestamp());
auto Type = LogDataMessage->value_type();
......@@ -274,12 +293,13 @@ bool f144_Writer::writeImpl(FlatbufferMessage const &Message,
MetaDataMax.setValue(Max);
MetaDataMean.setValue(Sum / TotalNrOfElementsWritten);
}
Logger::Error("f144_Writer writeImpl end");
return true;
}
void f144_Writer::register_meta_data(hdf5::node::Group const &HDFGroup,
const MetaData::TrackerPtr &Tracker) {
Logger::Error("f144_Writer register_meta_data start");
if (MetaData.get_value()) {
MetaDataMin = MetaData::Value<double>(
HDFGroup, "minimum_value", MetaData::basicDatasetWriter<double>,
......@@ -299,6 +319,7 @@ void f144_Writer::register_meta_data(hdf5::node::Group const &HDFGroup,
MetaDataMean.setAttribute("units", Unit.get_value());
Tracker->registerMetaData(MetaDataMean);
}
Logger::Error("f144_Writer register_meta_data end");
}
/// Register the writer module.
......
......@@ -44,7 +44,9 @@ public:
f144_Writer()
: WriterModule::Base("f144", false, "NXlog",
{"epics_con_info", "alarm_info"}) {}
{"epics_con_info", "alarm_info"}) {
Logger::Warn("f144_Writer constructor called");
}
~f144_Writer() override = default;
enum class Type {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment