PROFINET IO Controller Stack 1.0.0
Modern C++ implementation of a PROFINET IO Controller stack
Loading...
Searching...
No Matches
alarmListener.h File Reference

Declares the PROFINET RTA alarm listener and AlarmAck transmission support. More...

#include <netinet/in.h>
#include <atomic>
#include <functional>
#include <mutex>
#include <optional>
#include <string>
#include <thread>
#include <vector>
#include "profinet/IAlarmListener.h"
#include "profinet/alarms.h"
#include "profinet/util.h"
+ Include dependency graph for alarmListener.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  profinet::AlarmEndpoint
 Alarm endpoint configuration. More...
 
class  profinet::AlarmListener
 Background listener for PROFINET alarm notifications. More...
 

Namespaces

namespace  profinet
 

Variables

constexpr std::uint16_t profinet::FRAME_ID_ALARM_HIGH = 0xFC01
 Frame ID used for high-priority alarms.
 
constexpr std::uint16_t profinet::FRAME_ID_ALARM_LOW = 0xFE01
 Frame ID used for low-priority alarms.
 
constexpr std::uint16_t profinet::ETHERTYPE_PROFINET = 0x8892
 EtherType used by PROFINET RTA frames (0x8892).
 
constexpr std::uint16_t profinet::ALARM_UDP_PORT = 34964
 UDP port used for alarm transport when Transport == 1.
 

Detailed Description

Declares the PROFINET RTA alarm listener and AlarmAck transmission support.

Provides asynchronous reception of PROFINET alarm notifications, parsing of RTA alarm frames, duplicate handling, callback dispatch, and transmission of the corresponding AlarmAck frames. Background alarm reception for an established AlarmCR connection. Receives AlarmNotification PDUs from a device (Layer 2 RTA-PDU or UDP), parses them, sends AlarmAck-PDU back, and invokes registered callbacks.

Per IEC 61158-6-10:

  • Alarms are sent via Layer 2 (RTA-PDU, EtherType 0x8892) or UDP
  • Controller must acknowledge each alarm with AlarmAck-PDU
  • Frame IDs: 0xFC01 (high priority), 0xFE01 (low priority)

Definition in file alarmListener.h.