PROFINET IO Controller Stack 1.0.0
Modern C++ implementation of a PROFINET IO Controller stack
Loading...
Searching...
No Matches
IAlarmListener.h
Go to the documentation of this file.
1
9#pragma once
10
11#include <functional>
12
14#include "profinet/IUdpSocket.h"
15#include "profinet/alarms.h"
16
17namespace profinet
18{
19
33{
34 public:
40 virtual ~IAlarmListener() = default;
41
45 virtual void AddAlarmNotificationCallback(std::function<void(const AlarmNotification&)> callback) = 0;
46
50 virtual void RemoveAlarmNotificationCallback(std::function<void(const AlarmNotification&)> callback) = 0;
51
55 virtual void AddRtaAlarmCallback(std::function<void(const RtaError&)> callback) = 0;
56
60 virtual void RemoveRtaAlarmCallback(std::function<void(const RtaError&)> callback) = 0;
61
74 virtual void Start(std::unique_ptr<IRawEthernetSocket> eSocket = nullptr, std::unique_ptr<IUdpSocket> uSocket = nullptr) = 0;
75
81 virtual void Stop() = 0;
82
86 [[nodiscard]] virtual bool IsRunning() const = 0;
87};
88
89} // namespace profinet
Abstraction for sending and receiving raw Ethernet frames.
Abstraction for IPv4 UDP datagram transport.
Declares PROFINET alarm, diagnosis, maintenance, and USI payload types and parsers.
Abstract interface for receiving PROFINET alarm notifications.
virtual void AddAlarmNotificationCallback(std::function< void(const AlarmNotification &)> callback)=0
Registers a callback for received alarm notifications.
virtual void Stop()=0
Stops alarm reception.
virtual void AddRtaAlarmCallback(std::function< void(const RtaError &)> callback)=0
Registers a callback for received rta alarms.
virtual bool IsRunning() const =0
Indicates whether the listener is currently running.
virtual void RemoveRtaAlarmCallback(std::function< void(const RtaError &)> callback)=0
Remove a registered callback for received rta alarms.
virtual void Start(std::unique_ptr< IRawEthernetSocket > eSocket=nullptr, std::unique_ptr< IUdpSocket > uSocket=nullptr)=0
Starts alarm reception.
virtual ~IAlarmListener()=default
Virtual destructor.
virtual void RemoveAlarmNotificationCallback(std::function< void(const AlarmNotification &)> callback)=0
Remove a registered callback for received alarm notifications.
Complete parsed AlarmNotification PDU: header fields + parsed items.
Definition alarms.h:356
Decoded PROFINET RTA ERR-PDU.
Definition protocol.h:2571