Program Listing for File DPIFaultManager.h¶
↰ Return to documentation for file (src/vendor/ra/powerFlex525/DPIFaultManager.h)
//
// Created by Aleksey Timin on 12/11/19.
//
#ifndef EIPSCANNER_DPIFAULTMANAGER_H
#define EIPSCANNER_DPIFAULTMANAGER_H
#include <vector>
#include <functional>
#include "DPIFaultObject.h"
#include "SessionInfoIf.h"
#include "DPIFaultParameter.h"
namespace eipScanner {
namespace vendor {
namespace ra {
namespace powerFlex525 {
enum DPIFaultManagerCommands : cip::CipUsint {
NO_OPERATION = 0,
CLEAR_FAULT = 1,
CLEAR_FAULT_QUEUE = 2,
RESET_DEVICE = 3
};
class DPIFaultManager {
public:
using NewFaultObjectHandler = std::function<void(const DPIFaultObject& fault)>;
using NewFaultHandler = std::function<void(const DPIFaultParameter& fault)>;
using TrippedDeviceHandler = std::function<void(bool)>;
DPIFaultManager();
explicit DPIFaultManager(bool clearFaults, bool resetDevice, bool getFaultDetails);
void setNewFaultListener(NewFaultHandler handler);
void setTrippedDeviceListener(TrippedDeviceHandler handler);
void handleFaultParameters(const SessionInfoIf::SPtr& si);
void handleFaultParameters(const SessionInfoIf::SPtr& si, const MessageRouter::SPtr& messageRouter);
void writeCommand(DPIFaultManagerCommands command, const SessionInfoIf::SPtr& si) const;
void writeCommand(DPIFaultManagerCommands command, const SessionInfoIf::SPtr& si,
const MessageRouter::SPtr& messageRouter) const;
private:
NewFaultHandler _newFaultHandler;
TrippedDeviceHandler _trippedDeviceHandler;
cip::CipUsint _lastTrippedState;
bool _clearFaultsQueue; // clears fault queue after reading all fault
bool _resetFault; // stops device after hard fault and restarts
bool _getFaultDetails; // returns details at time of fault (frequency, current, voltage)
};
}
}
}
}
#endif // EIPSCANNER_DPIFAULTMANAGER_H