opendnp3  3.0.0
Reference implementation of DNP3 (IEEE-1815)
opendnp3 Namespace Reference

Namespaces

 flags
 
 levels
 
 measurements
 

Classes

struct  Addresses
 
class  Analog
 Analogs are used for variable data points that usually reflect a real world value. More...
 
class  AnalogCommandEvent
 Occurs when an outstation receives and analog command. More...
 
struct  AnalogConfig
 
struct  AnalogInfo
 
class  AnalogOutput
 The object to represent a setpoint request from the master. More...
 
class  AnalogOutputDouble64
 Double precision analog output. More...
 
class  AnalogOutputFloat32
 Single precision analog output. More...
 
class  AnalogOutputInt16
 16-bit signed integer analog output. More...
 
class  AnalogOutputInt32
 32-bit signed integer analog output. More...
 
class  AnalogOutputStatus
 Describes the last set value of the set-point. More...
 
struct  AnalogOutputStatusInfo
 
struct  AnalogOutputStatusQualitySpec
 
struct  AnalogQualitySpec
 
struct  AOStatusConfig
 
class  ApplicationIIN
 Some IIN bits are necessarily controlled by the outstation application, not the underlying protocol stack. More...
 
struct  AssignClassTypeSpec
 
class  Binary
 The Binary data type is for describing on-off (boolean) type values. More...
 
class  BinaryCommandEvent
 Maps to Group13Var1/2. More...
 
struct  BinaryConfig
 
struct  BinaryInfo
 
class  BinaryOutputStatus
 BinaryOutputStatus is used for describing the current state of a control. More...
 
struct  BinaryOutputStatusInfo
 
struct  BinaryOutputStatusQualitySpec
 
struct  BinaryQualitySpec
 
struct  BOStatusConfig
 
struct  Buffer
 
class  ChannelRetry
 Class used to configure how channel failures are retried. More...
 
struct  ChannelStateSpec
 
class  ClassField
 Specifies a set of event classes e.g. More...
 
class  CommandPointResult
 Represents the result of a command operation on a particular point. More...
 
struct  CommandPointStateSpec
 
class  CommandSet
 Provides a mechanism for building a set of one or more command headers. More...
 
struct  CommandStatusSpec
 
class  ConsoleLogger
 LogHandler that prints all log messages to the console. More...
 
class  ControlRelayOutputBlock
 Describes an incoming control request from the master. More...
 
struct  Count
 A template for an integer count. More...
 
class  Counter
 Counters are used for describing generally increasing values (non-negative!). More...
 
struct  CounterConfig
 
struct  CounterInfo
 
struct  CounterQualitySpec
 
struct  DatabaseConfig
 
struct  DeadbandConfig
 
struct  DeadbandEventCell
 Structure for holding metadata information on points that have support deadbanding. More...
 
class  Decoder
 
class  DefaultListenCallbacks
 Callback interface invoked when a new connection is accepted. More...
 
class  DefaultMasterApplication
 
class  DefaultOutstationApplication
 A singleton with default setting useful for examples. More...
 
class  DNP3Error
 
class  DNP3Manager
 Root DNP3 object used to create channels and sessions. More...
 
struct  DNPTime
 
class  DoubleBitBinary
 The Double-bit Binary data type has two stable states, on and off, and an in transit state. More...
 
struct  DoubleBitBinaryConfig
 
struct  DoubleBitBinaryInfo
 
struct  DoubleBitBinaryQualitySpec
 
struct  DoubleBitSpec
 
struct  EmptyEventCell
 A null object for types that have no metadata. More...
 
struct  ErrorSpec
 
struct  EventAnalogOutputStatusVariationSpec
 
struct  EventAnalogVariationSpec
 
struct  EventBinaryOutputStatusVariationSpec
 
struct  EventBinaryVariationSpec
 
struct  EventBufferConfig
 Configuration of maximum event counts per event type. More...
 
struct  EventCellBase
 Base class for different types of event metadata. More...
 
struct  EventConfig
 
struct  EventCounterVariationSpec
 
struct  EventDoubleBinaryVariationSpec
 
struct  EventFrozenCounterVariationSpec
 
struct  EventModeSpec
 
struct  EventOctetStringVariationSpec
 
struct  EventSecurityStatVariationSpec
 
class  ExponentialBackoffStrategy
 Implements IOpenDelayStrategy using exponential-backoff. More...
 
class  Flags
 Measurement Flags. More...
 
struct  FlagsTypeSpec
 
struct  FlowControlSpec
 
class  FrozenCounter
 Frozen counters are used to report the value of a counter point captured at the instant when the count is frozen. More...
 
struct  FrozenCounterConfig
 
struct  FrozenCounterInfo
 
struct  FrozenCounterQualitySpec
 
struct  FunctionCodeSpec
 
class  FunctorVisitor
 A visitor implemented as an abstract functor. More...
 
struct  GroupVariationID
 Simple uint8_t/uint8_t tuple for group and variation. More...
 
struct  GroupVariationSpec
 
class  Header
 Class used to specify a header type. More...
 
class  HeaderInfo
 Simple structure used in the ISOEHandler callbacks to return information about the associated header. More...
 
union  HeaderUnion
 Union type that holds information for a single header type. More...
 
class  IChannel
 Represents a communication channel upon which masters and outstations can be bound. More...
 
class  IChannelListener
 Callback interface for receiving information about a running channel. More...
 
class  ICollection
 An interface representing an abstract immutable collection of things of type T. More...
 
class  ICommandCollection
 A collection type for command to which the user can add by type and index. More...
 
class  ICommandHandler
 Interface used to dispatch SELECT / OPERATE / DIRECT OPERATE (Binary/Analog output) from the outstation to application code. More...
 
class  ICommandProcessor
 Interface used to dispatch SELECT / OPERATE / DIRECT OPERATE from application code to a master. More...
 
class  ICommandTaskResult
 Abstract result type returned via callback to a command operation. More...
 
class  IDecoderCallbacks
 
class  IDnpTimeSource
 Interface that defines a method to get DNPTime source. More...
 
class  IINField
 DNP3 two-byte IIN field. More...
 
class  ILinkListener
 Various optional callbacks that can be received for the link layer. More...
 
class  IListenCallbacks
 Callback interface invoked when a new connection is accepted. More...
 
class  IListener
 Represents a running TCP or TLS listener that can be shutdown so that no new connections are accepted. More...
 
class  ILogHandler
 Callback interface for log messages. More...
 
class  IMaster
 Interface that represents a running master session. More...
 
class  IMasterApplication
 Interface for all master application callback info except for measurement values. More...
 
class  IMasterOperations
 All the operations that the user can perform on a running master. More...
 
class  IMasterScan
 Interface for interacting w/ a permanently bound scan. More...
 
class  IMasterSession
 Interface that represents an emphemeral master session. More...
 
class  Indexed
 A simple tuple for pairing Values with an index. More...
 
struct  IndexQualifierModeSpec
 
struct  IntervalUnitsSpec
 
class  IOpenDelayStrategy
 A strategy interface for controlling how connection are retried. More...
 
class  IOutstation
 Interface representing a running outstation. More...
 
class  IOutstationApplication
 Interface for all outstation application callback info except for control requests. More...
 
struct  IPEndpoint
 
struct  IResource
 Anything that can be shutdown. More...
 
class  ISessionAcceptor
 Callback interface invoked when a new connection is accepted. More...
 
class  ISOEHandler
 An interface for Sequence-Of-Events (SOE) callbacks from a master stack to the application layer. More...
 
class  IStack
 Base class for masters or outstations. More...
 
class  ITaskCallback
 Callbacks for when a task starts and completes. More...
 
class  IUpdateHandler
 An interface used to update measurement values. More...
 
class  IUTCTimeSource
 Interface that defines a method to get UTC timestamps. More...
 
class  IVisitor
 Abstract way of visiting elements of a collection. More...
 
struct  LinkConfig
 Configuration for the dnp3 link layer. More...
 
struct  LinkFunctionSpec
 
struct  LinkHeaderFields
 
struct  LinkStatistics
 Counters for the channel and the DNP3 link layer. More...
 
struct  LinkStatusSpec
 
class  Logger
 A copyable facade over a LogRoot class. More...
 
struct  LogLevel
 
class  LogLevels
 Strongly typed wrapper for flags bitfield. More...
 
struct  MasterParams
 Configuration information for the dnp3 master. More...
 
struct  MasterStackConfig
 A composite configuration struct that contains all the config information for a dnp3 master stack. More...
 
struct  MasterTaskTypeSpec
 
class  Measurement
 Base class shared by all of the DataPoint types. More...
 
struct  ModuleId
 
class  NumRetries
 Unsolicited response number of retries. More...
 
class  OctetData
 A base-class for bitstrings containing up to 255 bytes. More...
 
class  OctetString
 Respresents group 110/111 objects. More...
 
struct  OctetStringConfig
 
struct  OctetStringInfo
 
struct  OperateTypeSpec
 
struct  OperationTypeSpec
 
struct  OutstationConfig
 Configuration information for a dnp3 outstation (outstation) More...
 
struct  OutstationParams
 Static configuration parameters for an outstation session. More...
 
struct  OutstationStackConfig
 A composite configuration struct that contains all the config information for a dnp3 outstation stack. More...
 
struct  ParitySpec
 
struct  PointClassSpec
 
class  PrintingChannelListener
 Callback interface for receiving information about a running channel. More...
 
class  PrintingCommandResultCallback
 
class  PrintingSOEHandler
 ISOEHandler singleton that prints to the console. More...
 
struct  QualifierCodeSpec
 
struct  ResponseInfo
 provides basic information about an APDU response More...
 
struct  RestartModeSpec
 
class  RestartOperationResult
 
struct  RestartTypeSpec
 
struct  SecurityStatConfig
 
struct  SerialSettings
 Settings structure for the serial port. More...
 
struct  ServerAcceptModeSpec
 
class  SimpleCommandHandler
 Mock ICommandHandler used for examples and demos. More...
 
struct  SimpleEventCell
 Metatype w/o a deadband. More...
 
struct  StackStatistics
 Statistics related to both a master or outstation session. More...
 
struct  StartStopRange
 A template for a integer range. More...
 
struct  StaticAnalogOutputStatusVariationSpec
 
struct  StaticAnalogVariationSpec
 
struct  StaticBinaryOutputStatusVariationSpec
 
struct  StaticBinaryVariationSpec
 
struct  StaticConfig
 
struct  StaticCounterVariationSpec
 
struct  StaticDoubleBinaryVariationSpec
 
struct  StaticFrozenCounterVariationSpec
 
struct  StaticOctetStringVariationSpec
 
class  StaticOnly
 
struct  StaticSecurityStatVariationSpec
 
struct  StaticTimeAndIntervalVariationSpec
 
struct  StaticTypeBitField
 A bitfield that describes a subset of all static types, e.g. More...
 
struct  StaticTypeBitmaskSpec
 
struct  StopBitsSpec
 
class  SuccessCommandHandler
 A singleton command handler that always returns success. More...
 
struct  TaskCompletionSpec
 
class  TaskConfig
 Object containing multiple fields for configuring tasks. More...
 
class  TaskId
 Interface that represents a running master. More...
 
class  TaskInfo
 Struct that provides information about a completed or failed task. More...
 
class  TimeAndInterval
 Maps to Group50Var4 This class is a bit of an outlier as an indexed type and is really only used in the DNP3 PV profile. More...
 
struct  TimeAndIntervalConfig
 
struct  TimeAndIntervalInfo
 
class  TimeDuration
 Strong typing for millisecond based time durations. More...
 
class  Timestamp
 Strong typing for millisecond-based monotonic timestamps. More...
 
struct  TimestampQualitySpec
 
struct  TimeSyncModeSpec
 
struct  TLSConfig
 TLS configuration information. More...
 
struct  TripCloseCodeSpec
 
class  TypedMeasurement
 Common subclass to analogs and counters. More...
 
class  Uncopyable
 Inherited classes will not have default copy/assignment. More...
 
class  UpdateBuilder
 
class  Updates
 
class  UTCTimestamp
 Strong typing for UTCTimestamps. More...
 
class  X509Info
 Select information from a preverified x509 certificate that user can can inspect an optionally reject. More...
 

Typedefs

using CommandResultCallbackT = std::function< void(const ICommandTaskResult &)>
 
typedef std::function< void(const RestartOperationResult &)> RestartOperationCallbackT
 
typedef std::vector< update_func_tshared_updates_t
 
typedef std::function< void(IUpdateHandler &)> update_func_t
 
typedef std::function< void(const Header &)> WriteHeaderFunT
 

Enumerations

enum  AnalogOutputStatusQuality : uint8_t {
  AnalogOutputStatusQuality::ONLINE = 0x1, AnalogOutputStatusQuality::RESTART = 0x2, AnalogOutputStatusQuality::COMM_LOST = 0x4, AnalogOutputStatusQuality::REMOTE_FORCED = 0x8,
  AnalogOutputStatusQuality::LOCAL_FORCED = 0x10, AnalogOutputStatusQuality::OVERRANGE = 0x20, AnalogOutputStatusQuality::REFERENCE_ERR = 0x40, AnalogOutputStatusQuality::RESERVED = 0x80
}
 Quality field bitmask for analog output status values. More...
 
enum  AnalogQuality : uint8_t {
  AnalogQuality::ONLINE = 0x1, AnalogQuality::RESTART = 0x2, AnalogQuality::COMM_LOST = 0x4, AnalogQuality::REMOTE_FORCED = 0x8,
  AnalogQuality::LOCAL_FORCED = 0x10, AnalogQuality::OVERRANGE = 0x20, AnalogQuality::REFERENCE_ERR = 0x40, AnalogQuality::RESERVED = 0x80
}
 Quality field bitmask for analog values. More...
 
enum  AssignClassType : uint8_t {
  AssignClassType::BinaryInput = 0x0, AssignClassType::DoubleBinaryInput = 0x1, AssignClassType::Counter = 0x2, AssignClassType::FrozenCounter = 0x3,
  AssignClassType::AnalogInput = 0x4, AssignClassType::BinaryOutputStatus = 0x5, AssignClassType::AnalogOutputStatus = 0x6
}
 groups that can be used inconjunction with the ASSIGN_CLASS function code More...
 
enum  BinaryOutputStatusQuality : uint8_t {
  BinaryOutputStatusQuality::ONLINE = 0x1, BinaryOutputStatusQuality::RESTART = 0x2, BinaryOutputStatusQuality::COMM_LOST = 0x4, BinaryOutputStatusQuality::REMOTE_FORCED = 0x8,
  BinaryOutputStatusQuality::LOCAL_FORCED = 0x10, BinaryOutputStatusQuality::RESERVED1 = 0x20, BinaryOutputStatusQuality::RESERVED2 = 0x40, BinaryOutputStatusQuality::STATE = 0x80
}
 Quality field bitmask for binary output status values. More...
 
enum  BinaryQuality : uint8_t {
  BinaryQuality::ONLINE = 0x1, BinaryQuality::RESTART = 0x2, BinaryQuality::COMM_LOST = 0x4, BinaryQuality::REMOTE_FORCED = 0x8,
  BinaryQuality::LOCAL_FORCED = 0x10, BinaryQuality::CHATTER_FILTER = 0x20, BinaryQuality::RESERVED = 0x40, BinaryQuality::STATE = 0x80
}
 Quality field bitmask for binary values. More...
 
enum  ChannelState : uint8_t { ChannelState::CLOSED = 0, ChannelState::OPENING = 1, ChannelState::OPEN = 2, ChannelState::SHUTDOWN = 3 }
 Enumeration for possible states of a channel. More...
 
enum  CommandPointState : uint8_t {
  CommandPointState::INIT = 0, CommandPointState::SELECT_SUCCESS = 1, CommandPointState::SELECT_MISMATCH = 2, CommandPointState::SELECT_FAIL = 3,
  CommandPointState::OPERATE_FAIL = 4, CommandPointState::SUCCESS = 5
}
 List the various states that an individual command object can be in after an SBO or direct operate request. More...
 
enum  CommandStatus : uint8_t {
  CommandStatus::SUCCESS = 0, CommandStatus::TIMEOUT = 1, CommandStatus::NO_SELECT = 2, CommandStatus::FORMAT_ERROR = 3,
  CommandStatus::NOT_SUPPORTED = 4, CommandStatus::ALREADY_ACTIVE = 5, CommandStatus::HARDWARE_ERROR = 6, CommandStatus::LOCAL = 7,
  CommandStatus::TOO_MANY_OPS = 8, CommandStatus::NOT_AUTHORIZED = 9, CommandStatus::AUTOMATION_INHIBIT = 10, CommandStatus::PROCESSING_LIMITED = 11,
  CommandStatus::OUT_OF_RANGE = 12, CommandStatus::DOWNSTREAM_LOCAL = 13, CommandStatus::ALREADY_COMPLETE = 14, CommandStatus::BLOCKED = 15,
  CommandStatus::CANCELLED = 16, CommandStatus::BLOCKED_OTHER_MASTER = 17, CommandStatus::DOWNSTREAM_FAIL = 18, CommandStatus::NON_PARTICIPATING = 126,
  CommandStatus::UNDEFINED = 127
}
 An enumeration of result codes received from an outstation in response to command request. More...
 
enum  CounterQuality : uint8_t {
  CounterQuality::ONLINE = 0x1, CounterQuality::RESTART = 0x2, CounterQuality::COMM_LOST = 0x4, CounterQuality::REMOTE_FORCED = 0x8,
  CounterQuality::LOCAL_FORCED = 0x10, CounterQuality::ROLLOVER = 0x20, CounterQuality::DISCONTINUITY = 0x40, CounterQuality::RESERVED = 0x80
}
 Quality field bitmask for counter values. More...
 
enum  DoubleBit : uint8_t { DoubleBit::INTERMEDIATE = 0x0, DoubleBit::DETERMINED_OFF = 0x1, DoubleBit::DETERMINED_ON = 0x2, DoubleBit::INDETERMINATE = 0x3 }
 Enumeration for possible states of a double bit value. More...
 
enum  DoubleBitBinaryQuality : uint8_t {
  DoubleBitBinaryQuality::ONLINE = 0x1, DoubleBitBinaryQuality::RESTART = 0x2, DoubleBitBinaryQuality::COMM_LOST = 0x4, DoubleBitBinaryQuality::REMOTE_FORCED = 0x8,
  DoubleBitBinaryQuality::LOCAL_FORCED = 0x10, DoubleBitBinaryQuality::CHATTER_FILTER = 0x20, DoubleBitBinaryQuality::STATE1 = 0x40, DoubleBitBinaryQuality::STATE2 = 0x80
}
 Quality field bitmask for double bit binary values. More...
 
enum  Error : int { Error::SHUTTING_DOWN, Error::NO_TLS_SUPPORT, Error::UNABLE_TO_BIND_SERVER }
 
enum  EventAnalogOutputStatusVariation : uint8_t {
  EventAnalogOutputStatusVariation::Group42Var1 = 0, EventAnalogOutputStatusVariation::Group42Var2 = 1, EventAnalogOutputStatusVariation::Group42Var3 = 2, EventAnalogOutputStatusVariation::Group42Var4 = 3,
  EventAnalogOutputStatusVariation::Group42Var5 = 4, EventAnalogOutputStatusVariation::Group42Var6 = 5, EventAnalogOutputStatusVariation::Group42Var7 = 6, EventAnalogOutputStatusVariation::Group42Var8 = 7
}
 
enum  EventAnalogVariation : uint8_t {
  EventAnalogVariation::Group32Var1 = 0, EventAnalogVariation::Group32Var2 = 1, EventAnalogVariation::Group32Var3 = 2, EventAnalogVariation::Group32Var4 = 3,
  EventAnalogVariation::Group32Var5 = 4, EventAnalogVariation::Group32Var6 = 5, EventAnalogVariation::Group32Var7 = 6, EventAnalogVariation::Group32Var8 = 7
}
 
enum  EventBinaryOutputStatusVariation : uint8_t { EventBinaryOutputStatusVariation::Group11Var1 = 0, EventBinaryOutputStatusVariation::Group11Var2 = 1 }
 
enum  EventBinaryVariation : uint8_t { EventBinaryVariation::Group2Var1 = 0, EventBinaryVariation::Group2Var2 = 1, EventBinaryVariation::Group2Var3 = 2 }
 
enum  EventClass : uint8_t { EventClass::EC1 = 0, EventClass::EC2 = 1, EventClass::EC3 = 2 }
 
enum  EventCounterVariation : uint8_t { EventCounterVariation::Group22Var1 = 0, EventCounterVariation::Group22Var2 = 1, EventCounterVariation::Group22Var5 = 2, EventCounterVariation::Group22Var6 = 3 }
 
enum  EventDoubleBinaryVariation : uint8_t { EventDoubleBinaryVariation::Group4Var1 = 0, EventDoubleBinaryVariation::Group4Var2 = 1, EventDoubleBinaryVariation::Group4Var3 = 2 }
 
enum  EventFrozenCounterVariation : uint8_t { EventFrozenCounterVariation::Group23Var1 = 0, EventFrozenCounterVariation::Group23Var2 = 1, EventFrozenCounterVariation::Group23Var5 = 2, EventFrozenCounterVariation::Group23Var6 = 3 }
 
enum  EventMode : uint8_t { EventMode::Detect = 0x0, EventMode::Force = 0x1, EventMode::Suppress = 0x2, EventMode::EventOnly = 0x3 }
 Describes how a transaction behaves with respect to event generation. More...
 
enum  EventOctetStringVariation : uint8_t { EventOctetStringVariation::Group111Var0 = 0 }
 
enum  EventSecurityStatVariation : uint8_t { EventSecurityStatVariation::Group122Var1 = 0, EventSecurityStatVariation::Group122Var2 = 1 }
 
enum  EventType : uint16_t {
  EventType::Binary = 0, EventType::Analog = 1, EventType::Counter = 2, EventType::FrozenCounter = 3,
  EventType::DoubleBitBinary = 4, EventType::BinaryOutputStatus = 5, EventType::AnalogOutputStatus = 6, EventType::OctetString = 7
}
 
enum  FlagsType : uint8_t {
  FlagsType::DoubleBinaryInput = 0x1, FlagsType::Counter = 0x2, FlagsType::FrozenCounter = 0x3, FlagsType::AnalogInput = 0x4,
  FlagsType::BinaryOutputStatus = 0x5, FlagsType::AnalogOutputStatus = 0x6, FlagsType::BinaryInput = 0x0
}
 enumerates all types that have flags More...
 
enum  FlowControl : uint8_t { FlowControl::Hardware = 1, FlowControl::XONXOFF = 2, FlowControl::None = 0 }
 Enumeration for setting serial port flow control. More...
 
enum  FrozenCounterQuality : uint8_t {
  FrozenCounterQuality::ONLINE = 0x1, FrozenCounterQuality::RESTART = 0x2, FrozenCounterQuality::COMM_LOST = 0x4, FrozenCounterQuality::REMOTE_FORCED = 0x8,
  FrozenCounterQuality::LOCAL_FORCED = 0x10, FrozenCounterQuality::ROLLOVER = 0x20, FrozenCounterQuality::DISCONTINUITY = 0x40, FrozenCounterQuality::RESERVED = 0x80
}
 Quality field bitmask for frozen counter values. More...
 
enum  FunctionCode : uint8_t {
  FunctionCode::CONFIRM = 0x0, FunctionCode::READ = 0x1, FunctionCode::WRITE = 0x2, FunctionCode::SELECT = 0x3,
  FunctionCode::OPERATE = 0x4, FunctionCode::DIRECT_OPERATE = 0x5, FunctionCode::DIRECT_OPERATE_NR = 0x6, FunctionCode::IMMED_FREEZE = 0x7,
  FunctionCode::IMMED_FREEZE_NR = 0x8, FunctionCode::FREEZE_CLEAR = 0x9, FunctionCode::FREEZE_CLEAR_NR = 0xA, FunctionCode::FREEZE_AT_TIME = 0xB,
  FunctionCode::FREEZE_AT_TIME_NR = 0xC, FunctionCode::COLD_RESTART = 0xD, FunctionCode::WARM_RESTART = 0xE, FunctionCode::INITIALIZE_DATA = 0xF,
  FunctionCode::INITIALIZE_APPLICATION = 0x10, FunctionCode::START_APPLICATION = 0x11, FunctionCode::STOP_APPLICATION = 0x12, FunctionCode::SAVE_CONFIGURATION = 0x13,
  FunctionCode::ENABLE_UNSOLICITED = 0x14, FunctionCode::DISABLE_UNSOLICITED = 0x15, FunctionCode::ASSIGN_CLASS = 0x16, FunctionCode::DELAY_MEASURE = 0x17,
  FunctionCode::RECORD_CURRENT_TIME = 0x18, FunctionCode::OPEN_FILE = 0x19, FunctionCode::CLOSE_FILE = 0x1A, FunctionCode::DELETE_FILE = 0x1B,
  FunctionCode::GET_FILE_INFO = 0x1C, FunctionCode::AUTHENTICATE_FILE = 0x1D, FunctionCode::ABORT_FILE = 0x1E, FunctionCode::AUTH_REQUEST = 0x20,
  FunctionCode::AUTH_REQUEST_NO_ACK = 0x21, FunctionCode::RESPONSE = 0x81, FunctionCode::UNSOLICITED_RESPONSE = 0x82, FunctionCode::AUTH_RESPONSE = 0x83,
  FunctionCode::UNKNOWN = 0xFF
}
 Application layer function code enumeration. More...
 
enum  GroupVariation : uint16_t {
  GroupVariation::Group1Var0 = 0x100, GroupVariation::Group1Var1 = 0x101, GroupVariation::Group1Var2 = 0x102, GroupVariation::Group2Var0 = 0x200,
  GroupVariation::Group2Var1 = 0x201, GroupVariation::Group2Var2 = 0x202, GroupVariation::Group2Var3 = 0x203, GroupVariation::Group3Var0 = 0x300,
  GroupVariation::Group3Var1 = 0x301, GroupVariation::Group3Var2 = 0x302, GroupVariation::Group4Var0 = 0x400, GroupVariation::Group4Var1 = 0x401,
  GroupVariation::Group4Var2 = 0x402, GroupVariation::Group4Var3 = 0x403, GroupVariation::Group10Var0 = 0xA00, GroupVariation::Group10Var1 = 0xA01,
  GroupVariation::Group10Var2 = 0xA02, GroupVariation::Group11Var0 = 0xB00, GroupVariation::Group11Var1 = 0xB01, GroupVariation::Group11Var2 = 0xB02,
  GroupVariation::Group12Var0 = 0xC00, GroupVariation::Group12Var1 = 0xC01, GroupVariation::Group13Var1 = 0xD01, GroupVariation::Group13Var2 = 0xD02,
  GroupVariation::Group20Var0 = 0x1400, GroupVariation::Group20Var1 = 0x1401, GroupVariation::Group20Var2 = 0x1402, GroupVariation::Group20Var5 = 0x1405,
  GroupVariation::Group20Var6 = 0x1406, GroupVariation::Group21Var0 = 0x1500, GroupVariation::Group21Var1 = 0x1501, GroupVariation::Group21Var2 = 0x1502,
  GroupVariation::Group21Var5 = 0x1505, GroupVariation::Group21Var6 = 0x1506, GroupVariation::Group21Var9 = 0x1509, GroupVariation::Group21Var10 = 0x150A,
  GroupVariation::Group22Var0 = 0x1600, GroupVariation::Group22Var1 = 0x1601, GroupVariation::Group22Var2 = 0x1602, GroupVariation::Group22Var5 = 0x1605,
  GroupVariation::Group22Var6 = 0x1606, GroupVariation::Group23Var0 = 0x1700, GroupVariation::Group23Var1 = 0x1701, GroupVariation::Group23Var2 = 0x1702,
  GroupVariation::Group23Var5 = 0x1705, GroupVariation::Group23Var6 = 0x1706, GroupVariation::Group30Var0 = 0x1E00, GroupVariation::Group30Var1 = 0x1E01,
  GroupVariation::Group30Var2 = 0x1E02, GroupVariation::Group30Var3 = 0x1E03, GroupVariation::Group30Var4 = 0x1E04, GroupVariation::Group30Var5 = 0x1E05,
  GroupVariation::Group30Var6 = 0x1E06, GroupVariation::Group32Var0 = 0x2000, GroupVariation::Group32Var1 = 0x2001, GroupVariation::Group32Var2 = 0x2002,
  GroupVariation::Group32Var3 = 0x2003, GroupVariation::Group32Var4 = 0x2004, GroupVariation::Group32Var5 = 0x2005, GroupVariation::Group32Var6 = 0x2006,
  GroupVariation::Group32Var7 = 0x2007, GroupVariation::Group32Var8 = 0x2008, GroupVariation::Group40Var0 = 0x2800, GroupVariation::Group40Var1 = 0x2801,
  GroupVariation::Group40Var2 = 0x2802, GroupVariation::Group40Var3 = 0x2803, GroupVariation::Group40Var4 = 0x2804, GroupVariation::Group41Var0 = 0x2900,
  GroupVariation::Group41Var1 = 0x2901, GroupVariation::Group41Var2 = 0x2902, GroupVariation::Group41Var3 = 0x2903, GroupVariation::Group41Var4 = 0x2904,
  GroupVariation::Group42Var0 = 0x2A00, GroupVariation::Group42Var1 = 0x2A01, GroupVariation::Group42Var2 = 0x2A02, GroupVariation::Group42Var3 = 0x2A03,
  GroupVariation::Group42Var4 = 0x2A04, GroupVariation::Group42Var5 = 0x2A05, GroupVariation::Group42Var6 = 0x2A06, GroupVariation::Group42Var7 = 0x2A07,
  GroupVariation::Group42Var8 = 0x2A08, GroupVariation::Group43Var1 = 0x2B01, GroupVariation::Group43Var2 = 0x2B02, GroupVariation::Group43Var3 = 0x2B03,
  GroupVariation::Group43Var4 = 0x2B04, GroupVariation::Group43Var5 = 0x2B05, GroupVariation::Group43Var6 = 0x2B06, GroupVariation::Group43Var7 = 0x2B07,
  GroupVariation::Group43Var8 = 0x2B08, GroupVariation::Group50Var1 = 0x3201, GroupVariation::Group50Var3 = 0x3203, GroupVariation::Group50Var4 = 0x3204,
  GroupVariation::Group51Var1 = 0x3301, GroupVariation::Group51Var2 = 0x3302, GroupVariation::Group52Var1 = 0x3401, GroupVariation::Group52Var2 = 0x3402,
  GroupVariation::Group60Var1 = 0x3C01, GroupVariation::Group60Var2 = 0x3C02, GroupVariation::Group60Var3 = 0x3C03, GroupVariation::Group60Var4 = 0x3C04,
  GroupVariation::Group70Var1 = 0x4601, GroupVariation::Group70Var2 = 0x4602, GroupVariation::Group70Var3 = 0x4603, GroupVariation::Group70Var4 = 0x4604,
  GroupVariation::Group70Var5 = 0x4605, GroupVariation::Group70Var6 = 0x4606, GroupVariation::Group70Var7 = 0x4607, GroupVariation::Group70Var8 = 0x4608,
  GroupVariation::Group80Var1 = 0x5001, GroupVariation::Group110Var0 = 0x6E00, GroupVariation::Group111Var0 = 0x6F00, GroupVariation::Group112Var0 = 0x7000,
  GroupVariation::Group113Var0 = 0x7100, GroupVariation::UNKNOWN = 0xFFFF
}
 Comprehensive list of supported groups and variations. More...
 
enum  HeaderType : uint8_t {
  HeaderType::AllObjects, HeaderType::Ranged8, HeaderType::Ranged16, HeaderType::LimitedCount8,
  HeaderType::LimitedCount16
}
 An enumeration that defines the type of object header. More...
 
enum  IINBit {
  IINBit::BROADCAST = 0, IINBit::CLASS1_EVENTS, IINBit::CLASS2_EVENTS, IINBit::CLASS3_EVENTS,
  IINBit::NEED_TIME, IINBit::LOCAL_CONTROL, IINBit::DEVICE_TROUBLE, IINBit::DEVICE_RESTART,
  IINBit::FUNC_NOT_SUPPORTED, IINBit::OBJECT_UNKNOWN, IINBit::PARAM_ERROR, IINBit::EVENT_BUFFER_OVERFLOW,
  IINBit::ALREADY_EXECUTING, IINBit::CONFIG_CORRUPT, IINBit::RESERVED1, IINBit::RESERVED2 = 15
}
 
enum  IndexQualifierMode : uint8_t { IndexQualifierMode::allow_one_byte = 0x0, IndexQualifierMode::always_two_bytes = 0x1 }
 Specifies whether opendnp3 optimizes for 1-byte indexes when making requests. More...
 
enum  IntervalUnits : uint8_t {
  IntervalUnits::NoRepeat = 0x0, IntervalUnits::Milliseconds = 0x1, IntervalUnits::Seconds = 0x2, IntervalUnits::Minutes = 0x3,
  IntervalUnits::Hours = 0x4, IntervalUnits::Days = 0x5, IntervalUnits::Weeks = 0x6, IntervalUnits::Months7 = 0x7,
  IntervalUnits::Months8 = 0x8, IntervalUnits::Months9 = 0x9, IntervalUnits::Seasons = 0xA, IntervalUnits::Undefined = 0x7F
}
 Time internal units. More...
 
enum  LinkFunction : uint8_t {
  LinkFunction::PRI_RESET_LINK_STATES = 0x40, LinkFunction::PRI_TEST_LINK_STATES = 0x42, LinkFunction::PRI_CONFIRMED_USER_DATA = 0x43, LinkFunction::PRI_UNCONFIRMED_USER_DATA = 0x44,
  LinkFunction::PRI_REQUEST_LINK_STATUS = 0x49, LinkFunction::SEC_ACK = 0x0, LinkFunction::SEC_NACK = 0x1, LinkFunction::SEC_LINK_STATUS = 0xB,
  LinkFunction::SEC_NOT_SUPPORTED = 0xF, LinkFunction::INVALID = 0xFF
}
 Link layer function code enumeration. More...
 
enum  LinkStatus : uint8_t { LinkStatus::UNRESET = 0, LinkStatus::RESET = 1 }
 Enumeration for reset/unreset states of a link layer. More...
 
enum  MasterTaskType : uint8_t {
  MasterTaskType::CLEAR_RESTART = 0, MasterTaskType::DISABLE_UNSOLICITED = 1, MasterTaskType::ASSIGN_CLASS = 2, MasterTaskType::STARTUP_INTEGRITY_POLL = 3,
  MasterTaskType::NON_LAN_TIME_SYNC = 4, MasterTaskType::LAN_TIME_SYNC = 5, MasterTaskType::ENABLE_UNSOLICITED = 6, MasterTaskType::AUTO_EVENT_SCAN = 7,
  MasterTaskType::USER_TASK = 8
}
 Enumeration of internal tasks. More...
 
enum  OperateType : uint8_t { OperateType::SelectBeforeOperate = 0x0, OperateType::DirectOperate = 0x1, OperateType::DirectOperateNoAck = 0x2 }
 Various ways that an outstation can receive a request to operate a BO or AO point. More...
 
enum  OperationType : uint8_t {
  OperationType::NUL = 0x0, OperationType::PULSE_ON = 0x1, OperationType::PULSE_OFF = 0x2, OperationType::LATCH_ON = 0x3,
  OperationType::LATCH_OFF = 0x4, OperationType::Undefined = 0xFF
}
 Used in conjunction with Trip Close Code in a CROB to describe what action to perform Refer to section A.8.1 of IEEE 1815-2012 for a full description. More...
 
enum  Parity : uint8_t { Parity::Even = 1, Parity::Odd = 2, Parity::None = 0 }
 Enumeration for setting serial port parity. More...
 
enum  PointClass : uint8_t { PointClass::Class0 = 0x1, PointClass::Class1 = 0x2, PointClass::Class2 = 0x4, PointClass::Class3 = 0x8 }
 Class assignment for a measurement point. More...
 
enum  QualifierCode : uint8_t {
  QualifierCode::UINT8_START_STOP = 0x0, QualifierCode::UINT16_START_STOP = 0x1, QualifierCode::ALL_OBJECTS = 0x6, QualifierCode::UINT8_CNT = 0x7,
  QualifierCode::UINT16_CNT = 0x8, QualifierCode::UINT8_CNT_UINT8_INDEX = 0x17, QualifierCode::UINT16_CNT_UINT16_INDEX = 0x28, QualifierCode::UNDEFINED = 0xFF
}
 Object header range/prefix as a single enumeration. More...
 
enum  RestartMode : uint8_t { RestartMode::UNSUPPORTED = 0, RestartMode::SUPPORTED_DELAY_FINE = 1, RestartMode::SUPPORTED_DELAY_COARSE = 2 }
 Enumeration describing restart mode support of an outstation. More...
 
enum  RestartType : uint8_t { RestartType::COLD = 0, RestartType::WARM = 1 }
 Enumeration describing restart operation to perform on an outstation. More...
 
enum  ServerAcceptMode : uint8_t { ServerAcceptMode::CloseNew = 0, ServerAcceptMode::CloseExisting = 1 }
 Describes how TCP/TLS server channels handle new connections when an existing connection is already active. More...
 
enum  StaticAnalogOutputStatusVariation : uint8_t { StaticAnalogOutputStatusVariation::Group40Var1 = 0, StaticAnalogOutputStatusVariation::Group40Var2 = 1, StaticAnalogOutputStatusVariation::Group40Var3 = 2, StaticAnalogOutputStatusVariation::Group40Var4 = 3 }
 
enum  StaticAnalogVariation : uint8_t {
  StaticAnalogVariation::Group30Var1 = 0, StaticAnalogVariation::Group30Var2 = 1, StaticAnalogVariation::Group30Var3 = 2, StaticAnalogVariation::Group30Var4 = 3,
  StaticAnalogVariation::Group30Var5 = 4, StaticAnalogVariation::Group30Var6 = 5
}
 
enum  StaticBinaryOutputStatusVariation : uint8_t { StaticBinaryOutputStatusVariation::Group10Var2 = 0 }
 
enum  StaticBinaryVariation : uint8_t { StaticBinaryVariation::Group1Var1 = 0, StaticBinaryVariation::Group1Var2 = 1 }
 
enum  StaticCounterVariation : uint8_t { StaticCounterVariation::Group20Var1 = 0, StaticCounterVariation::Group20Var2 = 1, StaticCounterVariation::Group20Var5 = 2, StaticCounterVariation::Group20Var6 = 3 }
 
enum  StaticDoubleBinaryVariation : uint8_t { StaticDoubleBinaryVariation::Group3Var2 = 0 }
 
enum  StaticFrozenCounterVariation : uint8_t {
  StaticFrozenCounterVariation::Group21Var1 = 0, StaticFrozenCounterVariation::Group21Var2 = 1, StaticFrozenCounterVariation::Group21Var5 = 2, StaticFrozenCounterVariation::Group21Var6 = 3,
  StaticFrozenCounterVariation::Group21Var9 = 4, StaticFrozenCounterVariation::Group21Var10 = 5
}
 
enum  StaticOctetStringVariation : uint8_t { StaticOctetStringVariation::Group110Var0 = 0 }
 
enum  StaticSecurityStatVariation : uint8_t { StaticSecurityStatVariation::Group121Var1 = 0 }
 
enum  StaticTimeAndIntervalVariation : uint8_t { StaticTimeAndIntervalVariation::Group50Var4 = 0 }
 
enum  StaticTypeBitmask : uint16_t {
  StaticTypeBitmask::BinaryInput = 0x1, StaticTypeBitmask::DoubleBinaryInput = 0x2, StaticTypeBitmask::Counter = 0x4, StaticTypeBitmask::FrozenCounter = 0x8,
  StaticTypeBitmask::AnalogInput = 0x10, StaticTypeBitmask::BinaryOutputStatus = 0x20, StaticTypeBitmask::AnalogOutputStatus = 0x40, StaticTypeBitmask::TimeAndInterval = 0x80,
  StaticTypeBitmask::OctetString = 0x100
}
 Bitmask values for all the static types. More...
 
enum  StopBits : uint8_t { StopBits::One = 1, StopBits::OnePointFive = 2, StopBits::Two = 3, StopBits::None = 0 }
 Enumeration for setting serial port stop bits. More...
 
enum  TaskCompletion : uint8_t {
  TaskCompletion::SUCCESS = 0, TaskCompletion::FAILURE_BAD_RESPONSE = 1, TaskCompletion::FAILURE_RESPONSE_TIMEOUT = 2, TaskCompletion::FAILURE_START_TIMEOUT = 3,
  TaskCompletion::FAILURE_MESSAGE_FORMAT_ERROR = 4, TaskCompletion::FAILURE_NO_COMMS = 255
}
 Enum that describes if a master task succeeded or failed. More...
 
enum  TimestampQuality : uint8_t { TimestampQuality::SYNCHRONIZED = 1, TimestampQuality::UNSYNCHRONIZED = 2, TimestampQuality::INVALID = 0 }
 Indicates the quality of timestamp values. More...
 
enum  TimeSyncMode : uint8_t { TimeSyncMode::NonLAN = 1, TimeSyncMode::LAN = 2, TimeSyncMode::None = 0 }
 Determines what the master station does when it sees the NEED_TIME iin bit. More...
 
enum  TripCloseCode : uint8_t { TripCloseCode::NUL = 0x0, TripCloseCode::CLOSE = 0x1, TripCloseCode::TRIP = 0x2, TripCloseCode::RESERVED = 0x3 }
 Used in conjunction with Operation Type in a CROB to describe which output to operate for complementary two-output model Refer to section A.8.1 of IEEE 1815-2012 for a full description. More...
 

Functions

bool HasAbsoluteTime (GroupVariation gv)
 
bool HasFlags (GroupVariation gv)
 
bool HasRelativeTime (GroupVariation gv)
 
bool IsEvent (GroupVariation gv)
 
const char * LogFlagToString (const LogLevel &flag)
 
template<class T >
Indexed< T > WithIndex (const T &value, uint16_t index)
 

Variables

const TimeDuration DEFAULT_APP_TIMEOUT = TimeDuration::Seconds(5)
 
const uint32_t DEFAULT_MAX_APDU_SIZE = 2048
 
const uint32_t max_log_entry_size = 120
 

Typedef Documentation

◆ CommandResultCallbackT

using opendnp3::CommandResultCallbackT = typedef std::function<void(const ICommandTaskResult&)>

Definition at line 30 of file CommandResultCallbackT.h.

◆ RestartOperationCallbackT

typedef std::function<void(const RestartOperationResult&)> opendnp3::RestartOperationCallbackT

Definition at line 49 of file RestartOperationResult.h.

◆ shared_updates_t

Definition at line 33 of file Updates.h.

◆ update_func_t

typedef std::function<void(IUpdateHandler&)> opendnp3::update_func_t

Definition at line 32 of file Updates.h.

◆ WriteHeaderFunT

typedef std::function<void(const Header&)> opendnp3::WriteHeaderFunT

Definition at line 36 of file IMasterApplication.h.

Enumeration Type Documentation

◆ AnalogOutputStatusQuality

enum opendnp3::AnalogOutputStatusQuality : uint8_t
strong

Quality field bitmask for analog output status values.

Enumerator
ONLINE 

set when the data is "good", meaning that rest of the system can trust the value

RESTART 

the quality all points get before we have established communication (or populated) the point

COMM_LOST 

set if communication has been lost with the source of the data (after establishing contact)

REMOTE_FORCED 

set if the value is being forced to a "fake" value somewhere in the system

LOCAL_FORCED 

set if the value is being forced to a "fake" value on the original device

OVERRANGE 

set if a hardware input etc. is out of range and we are using a place holder value

REFERENCE_ERR 

set if calibration or reference voltage has been lost meaning readings are questionable

RESERVED 

reserved bit

Definition at line 43 of file AnalogOutputStatusQuality.h.

◆ AnalogQuality

enum opendnp3::AnalogQuality : uint8_t
strong

Quality field bitmask for analog values.

Enumerator
ONLINE 

set when the data is "good", meaning that rest of the system can trust the value

RESTART 

the quality all points get before we have established communication (or populated) the point

COMM_LOST 

set if communication has been lost with the source of the data (after establishing contact)

REMOTE_FORCED 

set if the value is being forced to a "fake" value somewhere in the system

LOCAL_FORCED 

set if the value is being forced to a "fake" value on the original device

OVERRANGE 

set if a hardware input etc. is out of range and we are using a place holder value

REFERENCE_ERR 

set if calibration or reference voltage has been lost meaning readings are questionable

RESERVED 

reserved bit

Definition at line 43 of file AnalogQuality.h.

◆ AssignClassType

enum opendnp3::AssignClassType : uint8_t
strong

groups that can be used inconjunction with the ASSIGN_CLASS function code

Enumerator
BinaryInput 
DoubleBinaryInput 
Counter 
FrozenCounter 
AnalogInput 
BinaryOutputStatus 
AnalogOutputStatus 

Definition at line 43 of file AssignClassType.h.

◆ BinaryOutputStatusQuality

enum opendnp3::BinaryOutputStatusQuality : uint8_t
strong

Quality field bitmask for binary output status values.

Enumerator
ONLINE 

set when the data is "good", meaning that rest of the system can trust the value

RESTART 

the quality all points get before we have established communication (or populated) the point

COMM_LOST 

set if communication has been lost with the source of the data (after establishing contact)

REMOTE_FORCED 

set if the value is being forced to a "fake" value somewhere in the system

LOCAL_FORCED 

set if the value is being forced to a "fake" value on the original device

RESERVED1 

reserved bit 1

RESERVED2 

reserved bit 2

STATE 

state bit

Definition at line 43 of file BinaryOutputStatusQuality.h.

◆ BinaryQuality

enum opendnp3::BinaryQuality : uint8_t
strong

Quality field bitmask for binary values.

Enumerator
ONLINE 

set when the data is "good", meaning that rest of the system can trust the value

RESTART 

the quality all points get before we have established communication (or populated) the point

COMM_LOST 

set if communication has been lost with the source of the data (after establishing contact)

REMOTE_FORCED 

set if the value is being forced to a "fake" value somewhere in the system

LOCAL_FORCED 

set if the value is being forced to a "fake" value on the original device

CHATTER_FILTER 

set if the value is oscillating very quickly and some events are being suppressed

RESERVED 

reserved bit

STATE 

state bit

Definition at line 43 of file BinaryQuality.h.

◆ ChannelState

enum opendnp3::ChannelState : uint8_t
strong

Enumeration for possible states of a channel.

Enumerator
CLOSED 

offline and idle

OPENING 

trying to open

OPEN 

open

SHUTDOWN 

stopped and will never do anything again

Definition at line 43 of file ChannelState.h.

◆ CommandPointState

enum opendnp3::CommandPointState : uint8_t
strong

List the various states that an individual command object can be in after an SBO or direct operate request.

Enumerator
INIT 

No corresponding response was ever received for this command point.

SELECT_SUCCESS 

A response to a select request was received and matched, but the operate did not complete.

SELECT_MISMATCH 

A response to a select operation did not contain the same value that was sent.

SELECT_FAIL 

A response to a select operation contained a command status other than success.

OPERATE_FAIL 

A response to an operate or direct operate did not match the request.

SUCCESS 

A matching response was received to the operate.

Definition at line 43 of file CommandPointState.h.

◆ CommandStatus

enum opendnp3::CommandStatus : uint8_t
strong

An enumeration of result codes received from an outstation in response to command request.

These correspond to those defined in the DNP3 standard

Enumerator
SUCCESS 

command was accepted, initiated, or queued

TIMEOUT 

command timed out before completing

NO_SELECT 

command requires being selected before operate, configuration issue

FORMAT_ERROR 

bad control code or timing values

NOT_SUPPORTED 

command is not implemented

ALREADY_ACTIVE 

command is all ready in progress or its all ready in that mode

HARDWARE_ERROR 

something is stopping the command, often a local/remote interlock

LOCAL 

the function governed by the control is in local only control

TOO_MANY_OPS 

the command has been done too often and has been throttled

NOT_AUTHORIZED 

the command was rejected because the device denied it or an RTU intercepted it

AUTOMATION_INHIBIT 

command not accepted because it was prevented or inhibited by a local automation process, such as interlocking logic or synchrocheck

PROCESSING_LIMITED 

command not accepted because the device cannot process any more activities than are presently in progress

OUT_OF_RANGE 

command not accepted because the value is outside the acceptable range permitted for this point

DOWNSTREAM_LOCAL 

command not accepted because the outstation is forwarding the request to another downstream device which reported LOCAL

ALREADY_COMPLETE 

command not accepted because the outstation has already completed the requested operation

BLOCKED 

command not accepted because the requested function is specifically blocked at the outstation

CANCELLED 

command not accepted because the operation was cancelled

BLOCKED_OTHER_MASTER 

command not accepted because another master is communicating with the outstation and has exclusive rights to operate this control point

DOWNSTREAM_FAIL 

command not accepted because the outstation is forwarding the request to another downstream device which cannot be reached or is otherwise incapable of performing the request

NON_PARTICIPATING 

(deprecated) indicates the outstation shall not issue or perform the control operation

UNDEFINED 

10 to 126 are currently reserved

Definition at line 44 of file CommandStatus.h.

◆ CounterQuality

enum opendnp3::CounterQuality : uint8_t
strong

Quality field bitmask for counter values.

Enumerator
ONLINE 

set when the data is "good", meaning that rest of the system can trust the value

RESTART 

the quality all points get before we have established communication (or populated) the point

COMM_LOST 

set if communication has been lost with the source of the data (after establishing contact)

REMOTE_FORCED 

set if the value is being forced to a "fake" value somewhere in the system

LOCAL_FORCED 

set if the value is being forced to a "fake" value on the original device

ROLLOVER 

Deprecated flag that indicates value has rolled over.

DISCONTINUITY 

indicates an unusual change in value

RESERVED 

reserved bit

Definition at line 43 of file CounterQuality.h.

◆ DoubleBit

enum opendnp3::DoubleBit : uint8_t
strong

Enumeration for possible states of a double bit value.

Enumerator
INTERMEDIATE 

Transitioning between end conditions.

DETERMINED_OFF 

End condition, determined to be OFF.

DETERMINED_ON 

End condition, determined to be ON.

INDETERMINATE 

Abnormal or custom condition.

Definition at line 43 of file DoubleBit.h.

◆ DoubleBitBinaryQuality

enum opendnp3::DoubleBitBinaryQuality : uint8_t
strong

Quality field bitmask for double bit binary values.

Enumerator
ONLINE 

set when the data is "good", meaning that rest of the system can trust the value

RESTART 

the quality all points get before we have established communication (or populated) the point

COMM_LOST 

set if communication has been lost with the source of the data (after establishing contact)

REMOTE_FORCED 

set if the value is being forced to a "fake" value somewhere in the system

LOCAL_FORCED 

set if the value is being forced to a "fake" value on the original device

CHATTER_FILTER 

set if the value is oscillating very quickly and some events are being suppressed

STATE1 

state bit 1

STATE2 

state bit 2

Definition at line 43 of file DoubleBitBinaryQuality.h.

◆ Error

enum opendnp3::Error : int
strong
Enumerator
SHUTTING_DOWN 
NO_TLS_SUPPORT 
UNABLE_TO_BIND_SERVER 

Definition at line 31 of file ErrorCodes.h.

◆ EventAnalogOutputStatusVariation

Enumerator
Group42Var1 
Group42Var2 
Group42Var3 
Group42Var4 
Group42Var5 
Group42Var6 
Group42Var7 
Group42Var8 

Definition at line 40 of file EventAnalogOutputStatusVariation.h.

◆ EventAnalogVariation

enum opendnp3::EventAnalogVariation : uint8_t
strong
Enumerator
Group32Var1 
Group32Var2 
Group32Var3 
Group32Var4 
Group32Var5 
Group32Var6 
Group32Var7 
Group32Var8 

Definition at line 40 of file EventAnalogVariation.h.

◆ EventBinaryOutputStatusVariation

Enumerator
Group11Var1 
Group11Var2 

Definition at line 40 of file EventBinaryOutputStatusVariation.h.

◆ EventBinaryVariation

enum opendnp3::EventBinaryVariation : uint8_t
strong
Enumerator
Group2Var1 
Group2Var2 
Group2Var3 

Definition at line 40 of file EventBinaryVariation.h.

◆ EventClass

enum opendnp3::EventClass : uint8_t
strong
Enumerator
EC1 
EC2 
EC3 

Definition at line 40 of file EventType.h.

◆ EventCounterVariation

enum opendnp3::EventCounterVariation : uint8_t
strong
Enumerator
Group22Var1 
Group22Var2 
Group22Var5 
Group22Var6 

Definition at line 40 of file EventCounterVariation.h.

◆ EventDoubleBinaryVariation

enum opendnp3::EventDoubleBinaryVariation : uint8_t
strong
Enumerator
Group4Var1 
Group4Var2 
Group4Var3 

Definition at line 40 of file EventDoubleBinaryVariation.h.

◆ EventFrozenCounterVariation

Enumerator
Group23Var1 
Group23Var2 
Group23Var5 
Group23Var6 

Definition at line 40 of file EventFrozenCounterVariation.h.

◆ EventMode

enum opendnp3::EventMode : uint8_t
strong

Describes how a transaction behaves with respect to event generation.

Enumerator
Detect 

Detect events using the specific mechanism for that type.

Force 

Force the creation of an event bypassing detection mechanism.

Suppress 

Never produce an event regardless of changes.

EventOnly 

Send an event directly to the event buffer, bypassing the static value completely.

Definition at line 43 of file EventMode.h.

◆ EventOctetStringVariation

enum opendnp3::EventOctetStringVariation : uint8_t
strong
Enumerator
Group111Var0 

Definition at line 40 of file EventOctetStringVariation.h.

◆ EventSecurityStatVariation

enum opendnp3::EventSecurityStatVariation : uint8_t
strong
Enumerator
Group122Var1 
Group122Var2 

Definition at line 40 of file EventSecurityStatVariation.h.

◆ EventType

enum opendnp3::EventType : uint16_t
strong
Enumerator
Binary 
Analog 
Counter 
FrozenCounter 
DoubleBitBinary 
BinaryOutputStatus 
AnalogOutputStatus 
OctetString 

Definition at line 28 of file EventType.h.

◆ FlagsType

enum opendnp3::FlagsType : uint8_t
strong

enumerates all types that have flags

Enumerator
DoubleBinaryInput 
Counter 
FrozenCounter 
AnalogInput 
BinaryOutputStatus 
AnalogOutputStatus 
BinaryInput 

Definition at line 43 of file FlagsType.h.

◆ FlowControl

enum opendnp3::FlowControl : uint8_t
strong

Enumeration for setting serial port flow control.

Enumerator
Hardware 
XONXOFF 
None 

Definition at line 43 of file FlowControl.h.

◆ FrozenCounterQuality

enum opendnp3::FrozenCounterQuality : uint8_t
strong

Quality field bitmask for frozen counter values.

Enumerator
ONLINE 

set when the data is "good", meaning that rest of the system can trust the value

RESTART 

the quality all points get before we have established communication (or populated) the point

COMM_LOST 

set if communication has been lost with the source of the data (after establishing contact)

REMOTE_FORCED 

set if the value is being forced to a "fake" value somewhere in the system

LOCAL_FORCED 

set if the value is being forced to a "fake" value on the original device

ROLLOVER 

Deprecated flag that indicates value has rolled over.

DISCONTINUITY 

indicates an unusual change in value

RESERVED 

reserved bit

Definition at line 43 of file FrozenCounterQuality.h.

◆ FunctionCode

enum opendnp3::FunctionCode : uint8_t
strong

Application layer function code enumeration.

Enumerator
CONFIRM 

Master sends this to an outstation to confirm the receipt of an Application Layer fragment.

READ 

Outstation shall return the data specified by the objects in the request.

WRITE 

Outstation shall store the data specified by the objects in the request.

SELECT 

Outstation shall select (or arm) the output points specified by the objects in the request in preparation for a subsequent operate command.

OPERATE 

Outstation shall activate the output points selected (or armed) by a previous select function code command.

DIRECT_OPERATE 

Outstation shall immediately actuate the output points specified by the objects in the request.

DIRECT_OPERATE_NR 

Same as DIRECT_OPERATE but outstation shall not send a response.

IMMED_FREEZE 

Outstation shall copy the point data values specified by the objects in the request to a separate freeze buffer.

IMMED_FREEZE_NR 

Same as IMMED_FREEZE but outstation shall not send a response.

FREEZE_CLEAR 

Outstation shall copy the point data values specified by the objects in the request into a separate freeze buffer and then clear the values.

FREEZE_CLEAR_NR 

Same as FREEZE_CLEAR but outstation shall not send a response.

FREEZE_AT_TIME 

Outstation shall copy the point data values specified by the objects in the request to a separate freeze buffer at the time and/or time intervals specified in a special time data information object.

FREEZE_AT_TIME_NR 

Same as FREEZE_AT_TIME but outstation shall not send a response.

COLD_RESTART 

Outstation shall perform a complete reset of all hardware and software in the device.

WARM_RESTART 

Outstation shall reset only portions of the device.

INITIALIZE_DATA 

Obsolete-Do not use for new designs.

INITIALIZE_APPLICATION 

Outstation shall place the applications specified by the objects in the request into the ready to run state.

START_APPLICATION 

Outstation shall start running the applications specified by the objects in the request.

STOP_APPLICATION 

Outstation shall stop running the applications specified by the objects in the request.

SAVE_CONFIGURATION 

This code is deprecated-Do not use for new designs.

ENABLE_UNSOLICITED 

Enables outstation to initiate unsolicited responses from points specified by the objects in the request.

DISABLE_UNSOLICITED 

Prevents outstation from initiating unsolicited responses from points specified by the objects in the request.

ASSIGN_CLASS 

Outstation shall assign the events generated by the points specified by the objects in the request to one of the classes.

DELAY_MEASURE 

Outstation shall report the time it takes to process and initiate the transmission of its response.

RECORD_CURRENT_TIME 

Outstation shall save the time when the last octet of this message is received.

OPEN_FILE 

Outstation shall open a file.

CLOSE_FILE 

Outstation shall close a file.

DELETE_FILE 

Outstation shall delete a file.

GET_FILE_INFO 

Outstation shall retrieve information about a file.

AUTHENTICATE_FILE 

Outstation shall return a file authentication key.

ABORT_FILE 

Outstation shall abort a file transfer operation.

AUTH_REQUEST 

The master uses this function code when sending authentication requests to the outstation.

AUTH_REQUEST_NO_ACK 

The master uses this function code when sending authentication requests to the outstation that do no require acknowledgement.

RESPONSE 

Master shall interpret this fragment as an Application Layer response to an ApplicationLayer request.

UNSOLICITED_RESPONSE 

Master shall interpret this fragment as an unsolicited response that was not prompted by an explicit request.

AUTH_RESPONSE 

The outstation uses this function code to issue authentication messages to the master.

UNKNOWN 

Unknown function code. Used internally in opendnp3 to indicate the code didn't match anything known.

Definition at line 43 of file FunctionCode.h.

◆ GroupVariation

enum opendnp3::GroupVariation : uint16_t
strong

Comprehensive list of supported groups and variations.

Enumerator
Group1Var0 
Group1Var1 
Group1Var2 
Group2Var0 
Group2Var1 
Group2Var2 
Group2Var3 
Group3Var0 
Group3Var1 
Group3Var2 
Group4Var0 
Group4Var1 
Group4Var2 
Group4Var3 
Group10Var0 
Group10Var1 
Group10Var2 
Group11Var0 
Group11Var1 
Group11Var2 
Group12Var0 
Group12Var1 
Group13Var1 
Group13Var2 
Group20Var0 
Group20Var1 
Group20Var2 
Group20Var5 
Group20Var6 
Group21Var0 
Group21Var1 
Group21Var2 
Group21Var5 
Group21Var6 
Group21Var9 
Group21Var10 
Group22Var0 
Group22Var1 
Group22Var2 
Group22Var5 
Group22Var6 
Group23Var0 
Group23Var1 
Group23Var2 
Group23Var5 
Group23Var6 
Group30Var0 
Group30Var1 
Group30Var2 
Group30Var3 
Group30Var4 
Group30Var5 
Group30Var6 
Group32Var0 
Group32Var1 
Group32Var2 
Group32Var3 
Group32Var4 
Group32Var5 
Group32Var6 
Group32Var7 
Group32Var8 
Group40Var0 
Group40Var1 
Group40Var2 
Group40Var3 
Group40Var4 
Group41Var0 
Group41Var1 
Group41Var2 
Group41Var3 
Group41Var4 
Group42Var0 
Group42Var1 
Group42Var2 
Group42Var3 
Group42Var4 
Group42Var5 
Group42Var6 
Group42Var7 
Group42Var8 
Group43Var1 
Group43Var2 
Group43Var3 
Group43Var4 
Group43Var5 
Group43Var6 
Group43Var7 
Group43Var8 
Group50Var1 
Group50Var3 
Group50Var4 
Group51Var1 
Group51Var2 
Group52Var1 
Group52Var2 
Group60Var1 
Group60Var2 
Group60Var3 
Group60Var4 
Group70Var1 
Group70Var2 
Group70Var3 
Group70Var4 
Group70Var5 
Group70Var6 
Group70Var7 
Group70Var8 
Group80Var1 
Group110Var0 
Group111Var0 
Group112Var0 
Group113Var0 
UNKNOWN 

Definition at line 43 of file GroupVariation.h.

◆ HeaderType

enum opendnp3::HeaderType : uint8_t
strong

An enumeration that defines the type of object header.

Enumerator
AllObjects 
Ranged8 
Ranged16 
LimitedCount8 
LimitedCount16 

Definition at line 37 of file HeaderTypes.h.

◆ IINBit

enum opendnp3::IINBit
strong
Enumerator
BROADCAST 
CLASS1_EVENTS 
CLASS2_EVENTS 
CLASS3_EVENTS 
NEED_TIME 
LOCAL_CONTROL 
DEVICE_TROUBLE 
DEVICE_RESTART 
FUNC_NOT_SUPPORTED 
OBJECT_UNKNOWN 
PARAM_ERROR 
EVENT_BUFFER_OVERFLOW 
ALREADY_EXECUTING 
CONFIG_CORRUPT 
RESERVED1 
RESERVED2 

Definition at line 28 of file IINField.h.

◆ IndexQualifierMode

enum opendnp3::IndexQualifierMode : uint8_t
strong

Specifies whether opendnp3 optimizes for 1-byte indexes when making requests.

Enumerator
allow_one_byte 

Use a one byte qualifier if possible.

always_two_bytes 

Always use two byte qualifiers even if the index is less than or equal to 255.

Definition at line 43 of file IndexQualifierMode.h.

◆ IntervalUnits

enum opendnp3::IntervalUnits : uint8_t
strong

Time internal units.

Enumerator
NoRepeat 

The outstation does not repeat the action regardless of the value in the interval count.

Milliseconds 

the interval is always counted relative to the start time and is constant regardless of the clock time set at the outstation

Seconds 

At the same millisecond within the second that is specified in the start time.

Minutes 

At the same second and millisecond within the minute that is specified in the start time.

Hours 

At the same minute, second and millisecond within the hour that is specified in the start time.

Days 

At the same time of day that is specified in the start time.

Weeks 

On the same day of the week at the same time of day that is specified in the start time.

Months7 

On the same day of each month at the same time of day that is specified in the start time.

Months8 

At the same time of day on the same day of the week after the beginning of the month as the day specified in the start time.

Months9 

Months on Same Day of Week from End of Month - The outstation shall interpret this setting as in Months8, but the day of the week shall be measured from the end of the month,.

Seasons 

The definition of a season is specific to the outstation.

Undefined 

11-127 are reserved for future use

Definition at line 43 of file IntervalUnits.h.

◆ LinkFunction

enum opendnp3::LinkFunction : uint8_t
strong

Link layer function code enumeration.

Enumerator
PRI_RESET_LINK_STATES 
PRI_TEST_LINK_STATES 
PRI_CONFIRMED_USER_DATA 
PRI_UNCONFIRMED_USER_DATA 
PRI_REQUEST_LINK_STATUS 
SEC_ACK 
SEC_NACK 
SEC_LINK_STATUS 
SEC_NOT_SUPPORTED 
INVALID 

Definition at line 43 of file LinkFunction.h.

◆ LinkStatus

enum opendnp3::LinkStatus : uint8_t
strong

Enumeration for reset/unreset states of a link layer.

Enumerator
UNRESET 

DOWN.

RESET 

UP.

Definition at line 43 of file LinkStatus.h.

◆ MasterTaskType

enum opendnp3::MasterTaskType : uint8_t
strong

Enumeration of internal tasks.

Enumerator
CLEAR_RESTART 
DISABLE_UNSOLICITED 
ASSIGN_CLASS 
STARTUP_INTEGRITY_POLL 
NON_LAN_TIME_SYNC 
LAN_TIME_SYNC 
ENABLE_UNSOLICITED 
AUTO_EVENT_SCAN 
USER_TASK 

Definition at line 43 of file MasterTaskType.h.

◆ OperateType

enum opendnp3::OperateType : uint8_t
strong

Various ways that an outstation can receive a request to operate a BO or AO point.

Enumerator
SelectBeforeOperate 

The outstation received a valid prior SELECT followed by OPERATE.

DirectOperate 

The outstation received a direct operate request.

DirectOperateNoAck 

The outstation received a direct operate no ack request.

Definition at line 43 of file OperateType.h.

◆ OperationType

enum opendnp3::OperationType : uint8_t
strong

Used in conjunction with Trip Close Code in a CROB to describe what action to perform Refer to section A.8.1 of IEEE 1815-2012 for a full description.

Enumerator
NUL 

Do nothing.

PULSE_ON 

Set output to active for the duration of the On-time.

PULSE_OFF 

Non-interoperable code. Do not use for new applications.

LATCH_ON 

Set output to active.

LATCH_OFF 

Set the output to inactive.

Undefined 

Undefined.

Definition at line 44 of file OperationType.h.

◆ Parity

enum opendnp3::Parity : uint8_t
strong

Enumeration for setting serial port parity.

Enumerator
Even 
Odd 
None 

Definition at line 43 of file Parity.h.

◆ PointClass

enum opendnp3::PointClass : uint8_t
strong

Class assignment for a measurement point.

Enumerator
Class0 

No event class assignment.

Class1 

Assigned to event class 1.

Class2 

Assigned to event class 2.

Class3 

Assigned to event class 3.

Definition at line 43 of file PointClass.h.

◆ QualifierCode

enum opendnp3::QualifierCode : uint8_t
strong

Object header range/prefix as a single enumeration.

Enumerator
UINT8_START_STOP 
UINT16_START_STOP 
ALL_OBJECTS 
UINT8_CNT 
UINT16_CNT 
UINT8_CNT_UINT8_INDEX 
UINT16_CNT_UINT16_INDEX 
UNDEFINED 

Definition at line 43 of file QualifierCode.h.

◆ RestartMode

enum opendnp3::RestartMode : uint8_t
strong

Enumeration describing restart mode support of an outstation.

Enumerator
UNSUPPORTED 

Device does not support restart.

SUPPORTED_DELAY_FINE 

Supports restart, and time returned is a fine time delay.

SUPPORTED_DELAY_COARSE 

Supports restart, and time returned is a coarse time delay.

Definition at line 43 of file RestartMode.h.

◆ RestartType

enum opendnp3::RestartType : uint8_t
strong

Enumeration describing restart operation to perform on an outstation.

Enumerator
COLD 

Full reboot.

WARM 

Warm reboot of process only.

Definition at line 43 of file RestartType.h.

◆ ServerAcceptMode

enum opendnp3::ServerAcceptMode : uint8_t
strong

Describes how TCP/TLS server channels handle new connections when an existing connection is already active.

Enumerator
CloseNew 
CloseExisting 

Definition at line 43 of file ServerAcceptMode.h.

◆ StaticAnalogOutputStatusVariation

Enumerator
Group40Var1 
Group40Var2 
Group40Var3 
Group40Var4 

Definition at line 40 of file StaticAnalogOutputStatusVariation.h.

◆ StaticAnalogVariation

enum opendnp3::StaticAnalogVariation : uint8_t
strong
Enumerator
Group30Var1 
Group30Var2 
Group30Var3 
Group30Var4 
Group30Var5 
Group30Var6 

Definition at line 40 of file StaticAnalogVariation.h.

◆ StaticBinaryOutputStatusVariation

Enumerator
Group10Var2 

Definition at line 40 of file StaticBinaryOutputStatusVariation.h.

◆ StaticBinaryVariation

enum opendnp3::StaticBinaryVariation : uint8_t
strong
Enumerator
Group1Var1 
Group1Var2 

Definition at line 40 of file StaticBinaryVariation.h.

◆ StaticCounterVariation

enum opendnp3::StaticCounterVariation : uint8_t
strong
Enumerator
Group20Var1 
Group20Var2 
Group20Var5 
Group20Var6 

Definition at line 40 of file StaticCounterVariation.h.

◆ StaticDoubleBinaryVariation

Enumerator
Group3Var2 

Definition at line 40 of file StaticDoubleBinaryVariation.h.

◆ StaticFrozenCounterVariation

Enumerator
Group21Var1 
Group21Var2 
Group21Var5 
Group21Var6 
Group21Var9 
Group21Var10 

Definition at line 40 of file StaticFrozenCounterVariation.h.

◆ StaticOctetStringVariation

enum opendnp3::StaticOctetStringVariation : uint8_t
strong
Enumerator
Group110Var0 

Definition at line 40 of file StaticOctetStringVariation.h.

◆ StaticSecurityStatVariation

Enumerator
Group121Var1 

Definition at line 40 of file StaticSecurityStatVariation.h.

◆ StaticTimeAndIntervalVariation

Enumerator
Group50Var4 

Definition at line 40 of file StaticTimeAndIntervalVariation.h.

◆ StaticTypeBitmask

enum opendnp3::StaticTypeBitmask : uint16_t
strong

Bitmask values for all the static types.

Enumerator
BinaryInput 
DoubleBinaryInput 
Counter 
FrozenCounter 
AnalogInput 
BinaryOutputStatus 
AnalogOutputStatus 
TimeAndInterval 
OctetString 

Definition at line 43 of file StaticTypeBitmask.h.

◆ StopBits

enum opendnp3::StopBits : uint8_t
strong

Enumeration for setting serial port stop bits.

Enumerator
One 
OnePointFive 
Two 
None 

Definition at line 43 of file StopBits.h.

◆ TaskCompletion

enum opendnp3::TaskCompletion : uint8_t
strong

Enum that describes if a master task succeeded or failed.

Enumerator
SUCCESS 

A valid response was received from the outstation.

FAILURE_BAD_RESPONSE 

A response was received from the outstation, but it was not valid.

FAILURE_RESPONSE_TIMEOUT 

The task request did not receive a response within the timeout.

FAILURE_START_TIMEOUT 

The start timeout expired before the task could begin running.

FAILURE_MESSAGE_FORMAT_ERROR 

The task failed because the master was unable to format the request.

FAILURE_NO_COMMS 

There is no communication with the outstation, so the task was not attempted.

Definition at line 43 of file TaskCompletion.h.

◆ TimestampQuality

enum opendnp3::TimestampQuality : uint8_t
strong

Indicates the quality of timestamp values.

Enumerator
SYNCHRONIZED 

The timestamp is UTC synchronized at the remote device.

UNSYNCHRONIZED 

The device indicate the timestamp may be unsynchronized.

INVALID 

Timestamp is not valid, ignore the value and use a local timestamp.

Definition at line 43 of file TimestampQuality.h.

◆ TimeSyncMode

enum opendnp3::TimeSyncMode : uint8_t
strong

Determines what the master station does when it sees the NEED_TIME iin bit.

Enumerator
NonLAN 

synchronize the outstation's time using the non-LAN time sync procedure

LAN 

synchronize the outstation's time using the LAN time sync procedure

None 

don't perform a time-sync

Definition at line 43 of file TimeSyncMode.h.

◆ TripCloseCode

enum opendnp3::TripCloseCode : uint8_t
strong

Used in conjunction with Operation Type in a CROB to describe which output to operate for complementary two-output model Refer to section A.8.1 of IEEE 1815-2012 for a full description.

Enumerator
NUL 

Use the default output.

CLOSE 

For complementary two-output model, operate the close output.

TRIP 

For complementary two-output model, operate the trip output.

RESERVED 

Reserved for future use.

Definition at line 44 of file TripCloseCode.h.

Function Documentation

◆ HasAbsoluteTime()

bool opendnp3::HasAbsoluteTime ( GroupVariation  gv)

◆ HasFlags()

bool opendnp3::HasFlags ( GroupVariation  gv)

◆ HasRelativeTime()

bool opendnp3::HasRelativeTime ( GroupVariation  gv)

◆ IsEvent()

bool opendnp3::IsEvent ( GroupVariation  gv)

◆ LogFlagToString()

const char* opendnp3::LogFlagToString ( const LogLevel flag)

◆ WithIndex()

template<class T >
Indexed<T> opendnp3::WithIndex ( const T &  value,
uint16_t  index 
)

Variable Documentation

◆ DEFAULT_APP_TIMEOUT

const TimeDuration opendnp3::DEFAULT_APP_TIMEOUT = TimeDuration::Seconds(5)

Definition at line 34 of file AppConstants.h.

◆ DEFAULT_MAX_APDU_SIZE

const uint32_t opendnp3::DEFAULT_MAX_APDU_SIZE = 2048

Definition at line 31 of file AppConstants.h.

◆ max_log_entry_size

const uint32_t opendnp3::max_log_entry_size = 120

Definition at line 31 of file Logger.h.