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

Declares PROFINET alarm, diagnosis, maintenance, and USI payload types and parsers. More...

#include <cstdint>
#include <stdexcept>
#include <string>
#include <utility>
#include <variant>
#include <vector>
#include "profinet/indices.h"
#include "profinet/protocol.h"
+ Include dependency graph for alarms.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  profinet::AlarmItem
 Generic/unknown alarm item. More...
 
struct  profinet::DiagnosisItem
 Diagnosis alarm item. More...
 
struct  profinet::MaintenanceItem
 Maintenance alarm item (USI 0x8100). More...
 
struct  profinet::UploadRetrievalItem
 Upload/Retrieval alarm item (USI 0x8200, 0x8201). More...
 
struct  profinet::IParameterItem
 iParameter alarm item (USI 0x8201). More...
 
struct  profinet::PEAlarmItem
 PROFIenergy alarm item (USI 0x8310). More...
 
struct  profinet::RSAlarmItem
 Reporting System alarm item (USI 0x8300-0x8302). More...
 
struct  profinet::PRALAlarmItem
 Pull Request Alarm item (USI 0x8320). More...
 
struct  profinet::AlarmNotification
 Complete parsed AlarmNotification PDU: header fields + parsed items. More...
 

Namespaces

namespace  profinet
 

Typedefs

using profinet::AlarmItemVariant = std::variant< AlarmItem, DiagnosisItem, MaintenanceItem, UploadRetrievalItem, PEAlarmItem, RSAlarmItem, PRALAlarmItem >
 A parsed alarm payload item; the held alternative is selected by USI.
 

Enumerations

enum class  profinet::AlarmNotificationBitmask : std::uint16_t {
  profinet::None = 0x0000 , profinet::AlarmSequenceNumber = 0x07FF , profinet::ManufacturerSpecific = 0x1000 , profinet::SubmoduleDiagnosisState = 0x2000 ,
  profinet::ArDiagnosisState = 0x4000 , profinet::ChannelDiagnosis = 0x0800
}
 Represents bitwise flags and bitmasks for alarm notification headers. More...
 

Functions

Usi profinet::UsiOf (const AlarmItemVariant &item)
 Get the USI shared by every AlarmItemVariant alternative.
 
std::string profinet::UsiNameOf (const AlarmItemVariant &item)
 Get the human-readable USI name for any AlarmItemVariant alternative.
 
std::pair< AlarmItemVariant, std::size_t > profinet::ParseAlarmItem (const Bytes &data, std::size_t offset=0)
 Parse a single alarm item starting at an offset.
 
AlarmNotification profinet::ParseAlarmNotification (const Bytes &data)
 Parse a complete AlarmNotification PDU (BlockHeader + body + items).
 
constexpr AlarmNotificationBitmask profinet::operator| (AlarmNotificationBitmask lhs, AlarmNotificationBitmask rhs) noexcept
 Bitwise OR operator for combining two AlarmNotificationBitmask values.
 
constexpr AlarmNotificationBitmask profinet::operator& (AlarmNotificationBitmask lhs, AlarmNotificationBitmask rhs) noexcept
 Bitwise AND operator for intersecting two AlarmNotificationBitmask values.
 
constexpr std::uint16_t profinet::operator& (std::uint16_t lhs, AlarmNotificationBitmask rhs) noexcept
 Bitwise AND between a raw integer and an AlarmNotificationBitmask value.
 
constexpr std::uint16_t profinet::operator& (AlarmNotificationBitmask lhs, std::uint16_t rhs) noexcept
 Bitwise AND between an AlarmNotificationBitmask value and a raw integer.
 
constexpr std::uint16_t profinet::operator| (std::uint16_t lhs, AlarmNotificationBitmask rhs) noexcept
 Bitwise OR between a raw integer and an AlarmNotificationBitmask value.
 
constexpr std::uint16_t profinet::operator| (AlarmNotificationBitmask lhs, std::uint16_t rhs) noexcept
 Bitwise OR between an AlarmNotificationBitmask value and a raw integer.
 

Detailed Description

Declares PROFINET alarm, diagnosis, maintenance, and USI payload types and parsers.

Definition in file alarms.h.