dnp3 (C++ API) 1.1.0
dnp3 Namespace Reference

main namespace for the dnp3 library More...

Namespaces

namespace  flag
 Individual flag constants that may be combined using bitwise-OR operator.
 
namespace  functional
 helpers functions to create interface implementations using lambdas
 

Classes

class  AddressFilter
 Outstation address filter. More...
 
struct  AnalogInput
 analog_input point More...
 
struct  AnalogInputConfig
 Analog configuration. More...
 
class  AnalogInputIterator
 Iterator over AnalogInput instances. More...
 
struct  AnalogOutputStatus
 analog_output_status point More...
 
struct  AnalogOutputStatusConfig
 Analog Output Status configuration. More...
 
class  AnalogOutputStatusIterator
 Iterator over AnalogOutputStatus instances. More...
 
struct  ApplicationIin
 Application-controlled IIN bits. More...
 
struct  AssociationConfig
 Association configuration. More...
 
class  AssociationHandler
 Callbacks for a particular outstation association. More...
 
struct  AssociationId
 Association identifier. More...
 
class  AssociationInformation
 Informational callbacks about the current state of an outstation association. More...
 
struct  BinaryInput
 binary_input point More...
 
struct  BinaryInputConfig
 Binary Input configuration. More...
 
class  BinaryInputIterator
 Iterator over BinaryInput instances. More...
 
struct  BinaryOutputStatus
 binary_output_status point More...
 
struct  BinaryOutputStatusConfig
 Binary Output Status configuration. More...
 
class  BinaryOutputStatusIterator
 Iterator over BinaryOutputStatus instances. More...
 
class  ByteIterator
 Iterator over uint8_t instances. More...
 
struct  Classes
 Class 0, 1, 2 and 3 config. More...
 
struct  ClassZeroConfig
 Controls which types are reported during a Class 0 read. More...
 
class  ClientStateListener
 Callback for monitoring the client TCP connection state. More...
 
class  CommandException
 Exception type corresponding to the underlying error enum CommandError. More...
 
class  CommandSet
 Builder type used to construct command requests. More...
 
class  CommandTaskCallback
 Handler for command tasks. More...
 
class  ConnectionStateListener
 Callback interface for connection state events. More...
 
struct  ConnectStrategy
 Timing parameters for connection attempts. More...
 
struct  ControlCode
 CROB (Group12Var1) control code. More...
 
struct  ControlField
 APDU Control field. More...
 
class  ControlHandler
 Callbacks for handling controls. More...
 
struct  Counter
 counter point More...
 
struct  CounterConfig
 Counter configuration. More...
 
class  CounterIterator
 Iterator over Counter instances. More...
 
class  Database
 Internal database access. More...
 
class  DatabaseHandle
 handle used to perform transactions on the database More...
 
class  DatabaseTransaction
 Database transaction interface. More...
 
struct  DecodeLevel
 Controls the decoding of transmitted and received data at the application, transport, link, and physical layers. More...
 
struct  DoubleBitBinaryInput
 double_bit_binary_input point More...
 
struct  DoubleBitBinaryInputConfig
 Double-Bit Binary Input configuration. More...
 
class  DoubleBitBinaryInputIterator
 Iterator over DoubleBitBinaryInput instances. More...
 
class  EndpointList
 List of IP endpoints. More...
 
struct  EventBufferConfig
 Maximum number of events for each type. More...
 
struct  EventClasses
 Event classes. More...
 
struct  Flags
 Collection of individual flag bits represented by an underlying mask value. More...
 
struct  FrozenCounter
 frozen_counter point More...
 
struct  FrozenCounterConfig
 Frozen Counter configuration. More...
 
class  FrozenCounterIterator
 Iterator over FrozenCounter instances. More...
 
struct  Group12Var1
 Control Relay Output Block. More...
 
struct  HeaderInfo
 Information about the object header and specific variation. More...
 
struct  Iin
 Pair of IIN bytes. More...
 
struct  Iin1
 First IIN byte. More...
 
struct  Iin2
 Second IIN byte. More...
 
class  LinkStatusCallback
 Handler for link status check. More...
 
class  LinkStatusException
 Exception type corresponding to the underlying error enum LinkStatusError. More...
 
class  Logger
 Logging interface that receives the log messages and writes them somewhere. More...
 
class  Logging
 Provides a static method for configuring logging. More...
 
struct  LoggingConfig
 Logging configuration options. More...
 
class  MasterChannel
 Represents a communication channel for a master station. More...
 
struct  MasterChannelConfig
 Generic configuration for a MasterChannel. More...
 
struct  OctetString
 Octet String point. More...
 
class  OctetStringIterator
 Iterator over OctetString instances. More...
 
class  Outstation
 Outstation handle. More...
 
class  OutstationApplication
 Dynamic information required by the outstation from the user application. More...
 
struct  OutstationConfig
 Outstation configuration. More...
 
struct  OutstationFeatures
 Optional outstation features that can be enabled or disabled. More...
 
class  OutstationInformation
 Informational callbacks that the outstation doesn't rely on to function. More...
 
class  OutstationServer
 TCP server that listens for connections and routes the messages to outstations. More...
 
class  ParamException
 Exception type corresponding to the underlying error enum ParamError. More...
 
struct  PollId
 Poll identifier. More...
 
class  PortStateListener
 Callback interface for receiving updates about the state of a serial port. More...
 
class  ReadException
 Exception type corresponding to the underlying error enum ReadError. More...
 
class  ReadHandler
 General handler that will receive all values read from the outstation. More...
 
class  ReadTaskCallback
 Handler for read tasks. More...
 
class  Request
 Custom request. More...
 
struct  RequestHeader
 Application-layer header for requests. More...
 
struct  ResponseHeader
 Response header information. More...
 
struct  RestartDelay
 Restart delay used by OutstationApplication::cold_restart() and OutstationApplication::warm_restart() More...
 
class  RestartException
 Exception type corresponding to the underlying error enum RestartError. More...
 
class  RestartTaskCallback
 Handler for restart tasks. More...
 
struct  RetryStrategy
 Retry strategy configuration. More...
 
class  Runtime
 Handle to the underlying runtime. More...
 
struct  RuntimeConfig
 Runtime configuration. More...
 
struct  SerialSettings
 Serial port settings. More...
 
struct  Timestamp
 Timestamp value. More...
 
class  TimeSyncException
 Exception type corresponding to the underlying error enum TimeSyncError. More...
 
class  TimeSyncTaskCallback
 Handler for time synchronization tasks. More...
 
struct  TlsClientConfig
 TLS client configuration. More...
 
struct  TlsServerConfig
 TLS server configuration. More...
 
struct  UpdateOptions
 Options that control how the update is performed. More...
 
struct  UtcTimestamp
 Timestamp value returned by AssociationHandler::get_current_time(). More...
 

Enumerations

enum class  ParamError {
  ok = 0 , invalid_timeout = 1 , null_parameter = 2 , no_support = 3 ,
  association_does_not_exist = 4 , association_duplicate_address = 5 , invalid_socket_address = 6 , invalid_dnp3_address = 7 ,
  invalid_buffer_size = 8 , address_filter_conflict = 9 , server_already_started = 10 , server_bind_error = 11 ,
  master_already_shutdown = 12 , runtime_creation_failure = 13 , runtime_destroyed = 14 , runtime_cannot_block_within_async = 15 ,
  logging_already_configured = 16 , point_does_not_exist = 17 , invalid_peer_certificate = 18 , invalid_local_certificate = 19 ,
  invalid_private_key = 20 , invalid_dns_name = 21 , other_tls_error = 22
}
 Error type used throughout the library. More...
 
enum class  LogLevel {
  error = 0 , warn = 1 , info = 2 , debug = 3 ,
  trace = 4
}
 Log level. More...
 
enum class  LogOutputFormat { text = 0 , json = 1 }
 Describes how each log event is formatted. More...
 
enum class  TimeFormat { none = 0 , rfc_3339 = 1 , system = 2 }
 Describes if and how the time will be formatted in log messages. More...
 
enum class  AppDecodeLevel { nothing = 0 , header = 1 , object_headers = 2 , object_values = 3 }
 Controls how transmitted and received application-layer fragments are decoded at the INFO log level. More...
 
enum class  TransportDecodeLevel { nothing = 0 , header = 1 , payload = 2 }
 Controls how transmitted and received transport segments are decoded at the INFO log level. More...
 
enum class  LinkDecodeLevel { nothing = 0 , header = 1 , payload = 2 }
 Controls how transmitted and received link frames are decoded at the INFO log level. More...
 
enum class  PhysDecodeLevel { nothing = 0 , length = 1 , data = 2 }
 Controls how data transmitted at the physical layer (TCP, serial, etc) is logged. More...
 
enum class  TripCloseCode { nul = 0 , close = 1 , trip = 2 , reserved = 3 }
 Trip-Close Code field, used in conjunction with OpType to specify a control operation. More...
 
enum class  OpType {
  nul = 0 , pulse_on = 1 , pulse_off = 2 , latch_on = 3 ,
  latch_off = 4
}
 Operation Type field, used in conjunction with TripCloseCode to specify a control operation. More...
 
enum class  TimeQuality { synchronized_time = 0 , unsynchronized_time = 1 , invalid_time = 2 }
 Timestamp quality. More...
 
enum class  DoubleBit { intermediate = 0 , determined_off = 1 , determined_on = 2 , indeterminate = 3 }
 Double-bit binary input value. More...
 
enum class  PortState { disabled = 0 , wait = 1 , open = 2 , shutdown = 3 }
 State of the serial port. More...
 
enum class  Variation {
  group1_var0 = 0 , group1_var1 = 1 , group1_var2 = 2 , group2_var0 = 3 ,
  group2_var1 = 4 , group2_var2 = 5 , group2_var3 = 6 , group3_var0 = 7 ,
  group3_var1 = 8 , group3_var2 = 9 , group4_var0 = 10 , group4_var1 = 11 ,
  group4_var2 = 12 , group4_var3 = 13 , group10_var0 = 14 , group10_var1 = 15 ,
  group10_var2 = 16 , group11_var0 = 17 , group11_var1 = 18 , group11_var2 = 19 ,
  group12_var0 = 20 , group12_var1 = 21 , group20_var0 = 22 , group20_var1 = 23 ,
  group20_var2 = 24 , group20_var5 = 25 , group20_var6 = 26 , group21_var0 = 27 ,
  group21_var1 = 28 , group21_var2 = 29 , group21_var5 = 30 , group21_var6 = 31 ,
  group21_var9 = 32 , group21_var10 = 33 , group22_var0 = 34 , group22_var1 = 35 ,
  group22_var2 = 36 , group22_var5 = 37 , group22_var6 = 38 , group23_var0 = 39 ,
  group23_var1 = 40 , group23_var2 = 41 , group23_var5 = 42 , group23_var6 = 43 ,
  group30_var0 = 44 , group30_var1 = 45 , group30_var2 = 46 , group30_var3 = 47 ,
  group30_var4 = 48 , group30_var5 = 49 , group30_var6 = 50 , group32_var0 = 51 ,
  group32_var1 = 52 , group32_var2 = 53 , group32_var3 = 54 , group32_var4 = 55 ,
  group32_var5 = 56 , group32_var6 = 57 , group32_var7 = 58 , group32_var8 = 59 ,
  group40_var0 = 60 , group40_var1 = 61 , group40_var2 = 62 , group40_var3 = 63 ,
  group40_var4 = 64 , group41_var0 = 65 , group41_var1 = 66 , group41_var2 = 67 ,
  group41_var3 = 68 , group41_var4 = 69 , group42_var0 = 70 , group42_var1 = 71 ,
  group42_var2 = 72 , group42_var3 = 73 , group42_var4 = 74 , group42_var5 = 75 ,
  group42_var6 = 76 , group42_var7 = 77 , group42_var8 = 78 , group50_var1 = 79 ,
  group50_var3 = 80 , group50_var4 = 81 , group51_var1 = 82 , group51_var2 = 83 ,
  group52_var1 = 84 , group52_var2 = 85 , group60_var1 = 86 , group60_var2 = 87 ,
  group60_var3 = 88 , group60_var4 = 89 , group80_var1 = 90 , group110 = 91 ,
  group111 = 92
}
 Group/Variation. More...
 
enum class  DataBits { five = 0 , six = 1 , seven = 2 , eight = 3 }
 Number of bits per character. More...
 
enum class  FlowControl { none = 0 , software = 1 , hardware = 2 }
 Flow control modes. More...
 
enum class  Parity { none = 0 , odd = 1 , even = 2 }
 Parity checking modes. More...
 
enum class  StopBits { one = 0 , two = 1 }
 Number of stop bits. More...
 
enum class  LinkErrorMode { discard = 0 , close = 1 }
 Controls how errors in parsed link-layer frames are handled. This behavior is configurable for physical layers with built-in error correction like TCP as the connection might be through a terminal server. More...
 
enum class  MinTlsVersion { v12 = 0 , v13 = 1 }
 Minimum TLS version to allow. More...
 
enum class  CertificateMode { authority_based = 0 , self_signed = 1 }
 Determines how the certificate(s) presented by the peer are validated. More...
 
enum class  FunctionCode {
  confirm = 0 , read = 1 , write = 2 , select = 3 ,
  operate = 4 , direct_operate = 5 , direct_operate_no_response = 6 , immediate_freeze = 7 ,
  immediate_freeze_no_response = 8 , freeze_clear = 9 , freeze_clear_no_response = 10 , freeze_at_time = 11 ,
  freeze_at_time_no_response = 12 , cold_restart = 13 , warm_restart = 14 , initialize_data = 15 ,
  initialize_application = 16 , start_application = 17 , stop_application = 18 , save_configuration = 19 ,
  enable_unsolicited = 20 , disable_unsolicited = 21 , assign_class = 22 , delay_measure = 23 ,
  record_current_time = 24 , open_file = 25 , close_file = 26 , delete_file = 27 ,
  get_file_info = 28 , authenticate_file = 29 , abort_file = 30 , response = 31 ,
  unsolicited_response = 32
}
 Application layer function code. More...
 
enum class  ResponseFunction { response = 0 , unsolicited_response = 1 }
 Type of response. More...
 
enum class  QualifierCode {
  range8 = 0 , range16 = 1 , all_objects = 2 , count8 = 3 ,
  count16 = 4 , count_and_prefix_8 = 5 , count_and_prefix_16 = 6 , free_format_16 = 7
}
 Qualifier code used in the response. More...
 
enum class  ReadType { startup_integrity = 0 , unsolicited = 1 , single_poll = 2 , periodic_poll = 3 }
 Describes the source of a read event. More...
 
enum class  ClientState {
  disabled = 0 , connecting = 1 , connected = 2 , wait_after_failed_connect = 3 ,
  wait_after_disconnect = 4 , shutdown = 5
}
 State of the client connection. More...
 
enum class  Nothing { nothing = 0 }
 A single value enum which is used as a placeholder for futures that don't return a value. More...
 
enum class  AutoTimeSync { none = 0 , lan = 1 , non_lan = 2 }
 Automatic time synchronization configuration. More...
 
enum class  TaskType {
  user_read = 0 , periodic_poll = 1 , startup_integrity = 2 , auto_event_scan = 3 ,
  command = 4 , clear_restart_bit = 5 , enable_unsolicited = 6 , disable_unsolicited = 7 ,
  time_sync = 8 , restart = 9
}
 Task type used in AssociationInformation. More...
 
enum class  TaskError {
  too_many_requests = 0 , bad_response = 1 , response_timeout = 2 , write_error = 3 ,
  no_connection = 4 , shutdown = 5 , association_removed = 6
}
 Task error used in AssociationInformation. More...
 
enum class  ReadError {
  ok = 0 , too_many_requests = 1 , bad_response = 2 , response_timeout = 3 ,
  write_error = 4 , no_connection = 5 , shutdown = 6 , association_removed = 7
}
 Errors that can occur during a read operation. More...
 
enum class  CommandMode { direct_operate = 0 , select_before_operate = 1 }
 Command operation mode. More...
 
enum class  CommandError {
  ok = 0 , bad_status = 1 , header_mismatch = 2 , too_many_requests = 3 ,
  bad_response = 4 , response_timeout = 5 , write_error = 6 , no_connection = 7 ,
  shutdown = 8 , association_removed = 9
}
 Result of a command. More...
 
enum class  TimeSyncMode { lan = 0 , non_lan = 1 }
 Time synchronization mode. More...
 
enum class  TimeSyncError {
  ok = 0 , clock_rollback = 1 , system_time_not_unix = 2 , bad_outstation_time_delay = 3 ,
  overflow = 4 , still_needs_time = 5 , system_time_not_available = 6 , iin_error = 7 ,
  too_many_requests = 8 , bad_response = 9 , response_timeout = 10 , write_error = 11 ,
  no_connection = 12 , shutdown = 13 , association_removed = 14
}
 Possible errors that can occur during a time synchronization procedure. More...
 
enum class  RestartError {
  ok = 0 , too_many_requests = 1 , bad_response = 2 , response_timeout = 3 ,
  write_error = 4 , no_connection = 5 , shutdown = 6 , association_removed = 7
}
 Errors that can occur during a cold/warm restart operation. More...
 
enum class  LinkStatusError {
  ok = 0 , unexpected_response = 1 , too_many_requests = 2 , bad_response = 3 ,
  response_timeout = 4 , write_error = 5 , no_connection = 6 , shutdown = 7 ,
  association_removed = 8
}
 Errors that can occur during a manually initiated link status check. See MasterChannel::check_link_status() More...
 
enum class  EventClass { none = 0 , class1 = 1 , class2 = 2 , class3 = 3 }
 Event class. More...
 
enum class  EventMode { detect = 0 , force = 1 , suppress = 2 }
 Controls how events are processed when updating values in the database. More...
 
enum class  StaticBinaryInputVariation { group1_var1 = 0 , group1_var2 = 1 }
 Static binary input variation. More...
 
enum class  EventBinaryInputVariation { group2_var1 = 0 , group2_var2 = 1 , group2_var3 = 2 }
 Event binary input variation. More...
 
enum class  StaticDoubleBitBinaryInputVariation { group3_var1 = 0 , group3_var2 = 1 }
 Static double-bit binary input variation. More...
 
enum class  EventDoubleBitBinaryInputVariation { group4_var1 = 0 , group4_var2 = 1 , group4_var3 = 2 }
 Event double-bit binary input variation. More...
 
enum class  StaticBinaryOutputStatusVariation { group10_var1 = 0 , group10_var2 = 1 }
 Static binary output status variation. More...
 
enum class  EventBinaryOutputStatusVariation { group11_var1 = 0 , group11_var2 = 1 }
 Event binary output status variation. More...
 
enum class  StaticCounterVariation { group20_var1 = 0 , group20_var2 = 1 , group20_var5 = 2 , group20_var6 = 3 }
 Static counter variation. More...
 
enum class  EventCounterVariation { group22_var1 = 0 , group22_var2 = 1 , group22_var5 = 2 , group22_var6 = 3 }
 Event counter variation. More...
 
enum class  StaticFrozenCounterVariation {
  group21_var1 = 0 , group21_var2 = 1 , group21_var5 = 2 , group21_var6 = 3 ,
  group21_var9 = 4 , group21_var10 = 5
}
 Static frozen counter variation. More...
 
enum class  EventFrozenCounterVariation { group23_var1 = 0 , group23_var2 = 1 , group23_var5 = 2 , group23_var6 = 3 }
 Event frozen counter variation. More...
 
enum class  StaticAnalogInputVariation {
  group30_var1 = 0 , group30_var2 = 1 , group30_var3 = 2 , group30_var4 = 3 ,
  group30_var5 = 4 , group30_var6 = 5
}
 Static analog variation. More...
 
enum class  EventAnalogInputVariation {
  group32_var1 = 0 , group32_var2 = 1 , group32_var3 = 2 , group32_var4 = 3 ,
  group32_var5 = 4 , group32_var6 = 5 , group32_var7 = 6 , group32_var8 = 7
}
 Event analog variation. More...
 
enum class  StaticAnalogOutputStatusVariation { group40_var1 = 0 , group40_var2 = 1 , group40_var3 = 2 , group40_var4 = 3 }
 Static analog output status variation. More...
 
enum class  EventAnalogOutputStatusVariation {
  group42_var1 = 0 , group42_var2 = 1 , group42_var3 = 2 , group42_var4 = 3 ,
  group42_var5 = 4 , group42_var6 = 5 , group42_var7 = 6 , group42_var8 = 7
}
 Event analog output status variation. More...
 
enum class  RestartDelayType { not_supported = 0 , seconds = 1 , milli_seconds = 2 }
 Type of restart delay value. Used by RestartDelay. More...
 
enum class  WriteTimeResult { ok = 0 , parameter_error = 1 , not_supported = 2 }
 Write time result used by OutstationApplication::write_absolute_time() More...
 
enum class  FreezeType { immediate_freeze = 0 , freeze_and_clear = 1 }
 Freeze operation type. More...
 
enum class  FreezeResult { ok = 0 , parameter_error = 1 , not_supported = 2 }
 Result of a freeze operation. More...
 
enum class  BroadcastAction { processed = 0 , ignored_by_configuration = 1 , bad_object_headers = 2 , unsupported_function = 3 }
 Enumeration describing how the outstation processed a broadcast request. More...
 
enum class  CommandStatus {
  success = 0 , timeout = 1 , no_select = 2 , format_error = 3 ,
  not_supported = 4 , already_active = 5 , hardware_error = 6 , local = 7 ,
  too_many_ops = 8 , not_authorized = 9 , automation_inhibit = 10 , processing_limited = 11 ,
  out_of_range = 12 , downstream_local = 13 , already_complete = 14 , blocked = 15 ,
  canceled = 16 , blocked_other_master = 17 , downstream_fail = 18 , non_participating = 19 ,
  unknown = 20
}
 Enumeration received from an outstation in response to command request. More...
 
enum class  OperateType { select_before_operate = 0 , direct_operate = 1 , direct_operate_no_ack = 2 }
 Enumeration describing how the master requested the control operation. More...
 
enum class  ConnectionState { connected = 0 , disconnected = 1 }
 Outstation connection state for connection-oriented transports, e.g. TCP. More...
 

Functions

const char * to_string (ParamError value)
 convert an instance of enum ParamError into a C-style string More...
 
const char * to_string (LogLevel value)
 convert an instance of enum LogLevel into a C-style string More...
 
const char * to_string (LogOutputFormat value)
 convert an instance of enum LogOutputFormat into a C-style string More...
 
const char * to_string (TimeFormat value)
 convert an instance of enum TimeFormat into a C-style string More...
 
const char * to_string (AppDecodeLevel value)
 convert an instance of enum AppDecodeLevel into a C-style string More...
 
const char * to_string (TransportDecodeLevel value)
 convert an instance of enum TransportDecodeLevel into a C-style string More...
 
const char * to_string (LinkDecodeLevel value)
 convert an instance of enum LinkDecodeLevel into a C-style string More...
 
const char * to_string (PhysDecodeLevel value)
 convert an instance of enum PhysDecodeLevel into a C-style string More...
 
const char * to_string (TripCloseCode value)
 convert an instance of enum TripCloseCode into a C-style string More...
 
const char * to_string (OpType value)
 convert an instance of enum OpType into a C-style string More...
 
const char * to_string (TimeQuality value)
 convert an instance of enum TimeQuality into a C-style string More...
 
const char * to_string (DoubleBit value)
 convert an instance of enum DoubleBit into a C-style string More...
 
const char * to_string (PortState value)
 convert an instance of enum PortState into a C-style string More...
 
const char * to_string (Variation value)
 convert an instance of enum Variation into a C-style string More...
 
const char * to_string (DataBits value)
 convert an instance of enum DataBits into a C-style string More...
 
const char * to_string (FlowControl value)
 convert an instance of enum FlowControl into a C-style string More...
 
const char * to_string (Parity value)
 convert an instance of enum Parity into a C-style string More...
 
const char * to_string (StopBits value)
 convert an instance of enum StopBits into a C-style string More...
 
const char * to_string (LinkErrorMode value)
 convert an instance of enum LinkErrorMode into a C-style string More...
 
const char * to_string (MinTlsVersion value)
 convert an instance of enum MinTlsVersion into a C-style string More...
 
const char * to_string (CertificateMode value)
 convert an instance of enum CertificateMode into a C-style string More...
 
const char * to_string (FunctionCode value)
 convert an instance of enum FunctionCode into a C-style string More...
 
const char * to_string (ResponseFunction value)
 convert an instance of enum ResponseFunction into a C-style string More...
 
const char * to_string (QualifierCode value)
 convert an instance of enum QualifierCode into a C-style string More...
 
const char * to_string (ReadType value)
 convert an instance of enum ReadType into a C-style string More...
 
const char * to_string (ClientState value)
 convert an instance of enum ClientState into a C-style string More...
 
const char * to_string (Nothing value)
 convert an instance of enum Nothing into a C-style string More...
 
const char * to_string (AutoTimeSync value)
 convert an instance of enum AutoTimeSync into a C-style string More...
 
const char * to_string (TaskType value)
 convert an instance of enum TaskType into a C-style string More...
 
const char * to_string (TaskError value)
 convert an instance of enum TaskError into a C-style string More...
 
const char * to_string (ReadError value)
 convert an instance of enum ReadError into a C-style string More...
 
const char * to_string (CommandMode value)
 convert an instance of enum CommandMode into a C-style string More...
 
const char * to_string (CommandError value)
 convert an instance of enum CommandError into a C-style string More...
 
const char * to_string (TimeSyncMode value)
 convert an instance of enum TimeSyncMode into a C-style string More...
 
const char * to_string (TimeSyncError value)
 convert an instance of enum TimeSyncError into a C-style string More...
 
const char * to_string (RestartError value)
 convert an instance of enum RestartError into a C-style string More...
 
const char * to_string (LinkStatusError value)
 convert an instance of enum LinkStatusError into a C-style string More...
 
const char * to_string (EventClass value)
 convert an instance of enum EventClass into a C-style string More...
 
const char * to_string (EventMode value)
 convert an instance of enum EventMode into a C-style string More...
 
const char * to_string (StaticBinaryInputVariation value)
 convert an instance of enum StaticBinaryInputVariation into a C-style string More...
 
const char * to_string (EventBinaryInputVariation value)
 convert an instance of enum EventBinaryInputVariation into a C-style string More...
 
const char * to_string (StaticDoubleBitBinaryInputVariation value)
 convert an instance of enum StaticDoubleBitBinaryInputVariation into a C-style string More...
 
const char * to_string (EventDoubleBitBinaryInputVariation value)
 convert an instance of enum EventDoubleBitBinaryInputVariation into a C-style string More...
 
const char * to_string (StaticBinaryOutputStatusVariation value)
 convert an instance of enum StaticBinaryOutputStatusVariation into a C-style string More...
 
const char * to_string (EventBinaryOutputStatusVariation value)
 convert an instance of enum EventBinaryOutputStatusVariation into a C-style string More...
 
const char * to_string (StaticCounterVariation value)
 convert an instance of enum StaticCounterVariation into a C-style string More...
 
const char * to_string (EventCounterVariation value)
 convert an instance of enum EventCounterVariation into a C-style string More...
 
const char * to_string (StaticFrozenCounterVariation value)
 convert an instance of enum StaticFrozenCounterVariation into a C-style string More...
 
const char * to_string (EventFrozenCounterVariation value)
 convert an instance of enum EventFrozenCounterVariation into a C-style string More...
 
const char * to_string (StaticAnalogInputVariation value)
 convert an instance of enum StaticAnalogInputVariation into a C-style string More...
 
const char * to_string (EventAnalogInputVariation value)
 convert an instance of enum EventAnalogInputVariation into a C-style string More...
 
const char * to_string (StaticAnalogOutputStatusVariation value)
 convert an instance of enum StaticAnalogOutputStatusVariation into a C-style string More...
 
const char * to_string (EventAnalogOutputStatusVariation value)
 convert an instance of enum EventAnalogOutputStatusVariation into a C-style string More...
 
const char * to_string (RestartDelayType value)
 convert an instance of enum RestartDelayType into a C-style string More...
 
const char * to_string (WriteTimeResult value)
 convert an instance of enum WriteTimeResult into a C-style string More...
 
const char * to_string (FreezeType value)
 convert an instance of enum FreezeType into a C-style string More...
 
const char * to_string (FreezeResult value)
 convert an instance of enum FreezeResult into a C-style string More...
 
const char * to_string (BroadcastAction value)
 convert an instance of enum BroadcastAction into a C-style string More...
 
const char * to_string (CommandStatus value)
 convert an instance of enum CommandStatus into a C-style string More...
 
const char * to_string (OperateType value)
 convert an instance of enum OperateType into a C-style string More...
 
const char * to_string (ConnectionState value)
 convert an instance of enum ConnectionState into a C-style string More...
 

Variables

constexpr uint64_t dnp3_version_major = 1
 major version number More...
 
constexpr uint64_t dnp3_version_minor = 1
 minor version number More...
 
constexpr uint64_t dnp3_version_patch = 0
 patch version number More...
 
constexpr char const * dnp3_version_string = "1.1.0"
 version number as the string major.minor.patch More...
 

Detailed Description

main namespace for the dnp3 library

Enumeration Type Documentation

◆ AppDecodeLevel

enum class dnp3::AppDecodeLevel
strong

Controls how transmitted and received application-layer fragments are decoded at the INFO log level.

Enumerator
nothing 

Decode nothing.

header 

Decode the header-only.

object_headers 

Decode the header and the object headers.

object_values 

Decode the header, the object headers, and the object values.

◆ AutoTimeSync

enum class dnp3::AutoTimeSync
strong

Automatic time synchronization configuration.

Enumerator
none 

Do not perform automatic time sync.

lan 

Perform automatic time sync with Record Current Time (0x18) function code.

non_lan 

Perform automatic time sync with Delay Measurement (0x17) function code.

◆ BroadcastAction

enum class dnp3::BroadcastAction
strong

Enumeration describing how the outstation processed a broadcast request.

Enumerator
processed 

Outstation processed the broadcast.

ignored_by_configuration 

Outstation ignored the broadcast message b/c it is disabled by configuration.

bad_object_headers 

Outstation was unable to parse the object headers and ignored the request.

unsupported_function 

Outstation ignore the broadcast message b/c the function is not supported via Broadcast.

◆ CertificateMode

enum class dnp3::CertificateMode
strong

Determines how the certificate(s) presented by the peer are validated.

This validation always occurs after the handshake signature has been verified.

Enumerator
authority_based 

Validates the peer certificate against one or more configured trust anchors.

This mode uses the default certificate verifier in `rustls` to ensure that the chain of certificates presented by the peer is valid against one of the configured trust anchors.

The name verification is relaxed to allow for certificates that do not contain the SAN extension. In these cases the name is verified using the Common Name instead. 
self_signed 

Validates that the peer presents a single certificate which is a byte-for-byte match against the configured peer certificate.

The certificate is parsed only to ensure that the `NotBefore` and `NotAfter` are valid for the current system time. 

◆ ClientState

enum class dnp3::ClientState
strong

State of the client connection.

Use by the ClientStateListener.

Enumerator
disabled 

Client is disabled and idle until enabled.

connecting 

Client is trying to establish a connection to the remote device.

connected 

Client is connected to the remote device.

wait_after_failed_connect 

Failed to establish a connection, waiting before retrying.

wait_after_disconnect 

Client was disconnected, waiting before retrying.

shutdown 

Client is shutting down.

◆ CommandError

enum class dnp3::CommandError
strong

Result of a command.

Enumerator
ok 

Success, i.e. no error occurred.

bad_status 

Outstation indicated that a command was not SUCCESS.

header_mismatch 

Number of headers or objects in the response didn't match the number in the request.

too_many_requests 

too many user requests queued

bad_response 

response was malformed or contained object headers

response_timeout 

timeout occurred before receiving a response

write_error 

insufficient buffer space to serialize the request

no_connection 

no connection

shutdown 

master was shutdown

association_removed 

association was removed mid-task

◆ CommandMode

enum class dnp3::CommandMode
strong

Command operation mode.

Enumerator
direct_operate 

Perform a Direct Operate (0x05)

select_before_operate 

Perform a Select and Operate (0x03 then 0x04)

◆ CommandStatus

enum class dnp3::CommandStatus
strong

Enumeration received from an outstation in response to command request.

Enumerator
success 

command was accepted, initiated, or queued (value == 0)

timeout 

command timed out before completing (value == 1)

no_select 

command requires being selected before operate, configuration issue (value == 2)

format_error 

bad control code or timing values (value == 3)

not_supported 

command is not implemented (value == 4)

already_active 

command is all ready in progress or its all ready in that mode (value == 5)

hardware_error 

something is stopping the command, often a local/remote interlock (value == 6)

local 

the function governed by the control is in local only control (value == 7)

too_many_ops 

the command has been done too often and has been throttled (value == 8)

not_authorized 

the command was rejected because the device denied it or an RTU intercepted it (value == 9)

automation_inhibit 

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

processing_limited 

command not accepted because the device cannot process any more activities than are presently in progress (value == 11)

out_of_range 

command not accepted because the value is outside the acceptable range permitted for this point (value == 12)

downstream_local 

command not accepted because the outstation is forwarding the request to another downstream device which reported LOCAL (value == 13)

already_complete 

command not accepted because the outstation has already completed the requested operation (value == 14)

blocked 

command not accepted because the requested function is specifically blocked at the outstation (value == 15)

canceled 

command not accepted because the operation was cancelled (value == 16)

blocked_other_master 

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

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 (value == 18)

non_participating 

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

unknown 

captures any value not defined in the enumeration

◆ ConnectionState

enum class dnp3::ConnectionState
strong

Outstation connection state for connection-oriented transports, e.g. TCP.

Enumerator
connected 

Connected to the master.

disconnected 

Disconnected from the master.

◆ DataBits

enum class dnp3::DataBits
strong

Number of bits per character.

Enumerator
five 

5 bits per character

six 

6 bits per character

seven 

7 bits per character

eight 

8 bits per character

◆ DoubleBit

enum class dnp3::DoubleBit
strong

Double-bit binary input value.

Enumerator
intermediate 

Transition between conditions.

determined_off 

Determined to be OFF.

determined_on 

Determined to be ON.

indeterminate 

Abnormal or custom condition.

◆ EventAnalogInputVariation

Event analog variation.

Enumerator
group32_var1 

Analog input event - 32-bit without time.

group32_var2 

Analog input event - 16-bit without time.

group32_var3 

Analog input event - 32-bit with time.

group32_var4 

Analog input event - 16-bit with time.

group32_var5 

Analog input event - single-precision, floating-point without time.

group32_var6 

Analog input event - double-precision, floating-point without time.

group32_var7 

Analog input event - single-precision, floating-point with time.

group32_var8 

Analog input event - double-precision, floating-point with time.

◆ EventAnalogOutputStatusVariation

Event analog output status variation.

Enumerator
group42_var1 

Analog output event - 32-bit without time.

group42_var2 

Analog output event - 16-bit without time.

group42_var3 

Analog output event - 32-bit with time.

group42_var4 

Analog output event - 16-bit with time.

group42_var5 

Analog output event - single-precision, floating-point without time.

group42_var6 

Analog output event - double-precision, floating-point without time.

group42_var7 

Analog output event - single-precision, floating-point with time.

group42_var8 

Analog output event - double-precision, floating-point with time.

◆ EventBinaryInputVariation

Event binary input variation.

Enumerator
group2_var1 

Binary input event - without time.

group2_var2 

Binary input event - with absolute time.

group2_var3 

Binary input event - with relative time.

◆ EventBinaryOutputStatusVariation

Event binary output status variation.

Enumerator
group11_var1 

Binary output event - status without time.

group11_var2 

Binary output event - status with time.

◆ EventClass

enum class dnp3::EventClass
strong

Event class.

Enumerator
none 

Does not generate events.

class1 

Class 1 event.

class2 

Class 2 event.

class3 

Class 3 event.

◆ EventCounterVariation

enum class dnp3::EventCounterVariation
strong

Event counter variation.

Enumerator
group22_var1 

Counter event - 32-bit with flag.

group22_var2 

Counter event - 16-bit with flag.

group22_var5 

Counter event - 32-bit with flag and time.

group22_var6 

Counter event - 16-bit with flag and time.

◆ EventDoubleBitBinaryInputVariation

Event double-bit binary input variation.

Enumerator
group4_var1 

Double-bit binary input event - without time.

group4_var2 

Double-bit binary input event - with absolute time.

group4_var3 

Double-bit binary input event - with relative time.

◆ EventFrozenCounterVariation

Event frozen counter variation.

Enumerator
group23_var1 

Frozen Counter event - 32-bit with flag.

group23_var2 

Frozen Counter event - 16-bit with flag.

group23_var5 

Frozen Counter event - 32-bit with flag and time.

group23_var6 

Frozen Counter event - 16-bit with flag and time.

◆ EventMode

enum class dnp3::EventMode
strong

Controls how events are processed when updating values in the database.

Enumerator
detect 

Detect events in a type dependent fashion.

This is the default mode that should be used. 
force 

Produce an event whether the value has changed or not.

suppress 

Never produce an event regardless of change.

◆ FlowControl

enum class dnp3::FlowControl
strong

Flow control modes.

Enumerator
none 

No flow control.

software 

Flow control using XON/XOFF bytes.

hardware 

Flow control using RTS/CTS signals.

◆ FreezeResult

enum class dnp3::FreezeResult
strong

Result of a freeze operation.

Enumerator
ok 

Freeze operation was successful.

parameter_error 

The request parameters are nonsensical.

not_supported 

The demanded freeze operation is not supported by this device.

◆ FreezeType

enum class dnp3::FreezeType
strong

Freeze operation type.

Enumerator
immediate_freeze 

Copy the current value of a counter to the associated point.

freeze_and_clear 

Copy the current value of a counter to the associated point and clear the current value to 0.

◆ FunctionCode

enum class dnp3::FunctionCode
strong

Application layer function code.

Enumerator
confirm 

Master sends this to an outstation to confirm the receipt of an Application Layer fragment (value == 0)

read 

Outstation shall return the data specified by the objects in the request (value == 1)

write 

Outstation shall store the data specified by the objects in the request (value == 2)

select 

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

operate 

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

direct_operate 

Outstation shall immediately actuate the output points specified by the objects in the request (value == 5)

direct_operate_no_response 

Same as DirectOperate but outstation shall not send a response (value == 6)

immediate_freeze 

Outstation shall copy the point data values specified by the objects in the request to a separate freeze buffer (value == 7)

immediate_freeze_no_response 

Same as ImmediateFreeze but outstation shall not send a response (value == 8)

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 (value == 9)

freeze_clear_no_response 

Same as FreezeClear but outstation shall not send a response (value == 10)

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 (value == 11)

freeze_at_time_no_response 

Same as FreezeAtTime but outstation shall not send a response (value == 12)

cold_restart 

Outstation shall perform a complete reset of all hardware and software in the device (value == 13)

warm_restart 

Outstation shall reset only portions of the device (value == 14)

initialize_data 

Obsolete-Do not use for new designs (value == 15)

initialize_application 

Outstation shall place the applications specified by the objects in the request into the ready to run state (value == 16)

start_application 

Outstation shall start running the applications specified by the objects in the request (value == 17)

stop_application 

Outstation shall stop running the applications specified by the objects in the request (value == 18)

save_configuration 

This code is deprecated-Do not use for new designs (value == 19)

enable_unsolicited 

Enables outstation to initiate unsolicited responses from points specified by the objects in the request (value == 20)

disable_unsolicited 

Prevents outstation from initiating unsolicited responses from points specified by the objects in the request (value == 21)

assign_class 

Outstation shall assign the events generated by the points specified by the objects in the request to one of the classes (value == 22)

delay_measure 

Outstation shall report the time it takes to process and initiate the transmission of its response (value == 23)

record_current_time 

Outstation shall save the time when the last octet of this message is received (value == 24)

open_file 

Outstation shall open a file (value == 25)

close_file 

Outstation shall close a file (value == 26)

delete_file 

Outstation shall delete a file (value == 27)

get_file_info 

Outstation shall retrieve information about a file (value == 28)

authenticate_file 

Outstation shall return a file authentication key (value == 29)

abort_file 

Outstation shall abort a file transfer operation (value == 30)

response 

Master shall interpret this fragment as an Application Layer response to an ApplicationLayer request (value == 129)

unsolicited_response 

Master shall interpret this fragment as an unsolicited response that was not prompted by an explicit request (value == 130)

◆ LinkDecodeLevel

enum class dnp3::LinkDecodeLevel
strong

Controls how transmitted and received link frames are decoded at the INFO log level.

Enumerator
nothing 

Decode nothing.

header 

Decode the header.

payload 

Decode the header and the raw payload as hexadecimal.

◆ LinkErrorMode

enum class dnp3::LinkErrorMode
strong

Controls how errors in parsed link-layer frames are handled. This behavior is configurable for physical layers with built-in error correction like TCP as the connection might be through a terminal server.

Enumerator
discard 

Framing errors are discarded. The link-layer parser is reset on any error, and the parser begins scanning for 0x0564. This is always the behavior for serial ports.

close 

Framing errors are bubbled up to calling code, closing the session. Suitable for physical layers that provide error correction like TCP.

◆ LinkStatusError

enum class dnp3::LinkStatusError
strong

Errors that can occur during a manually initiated link status check. See MasterChannel::check_link_status()

Enumerator
ok 

Success, i.e. no error occurred.

unexpected_response 

There was activity on the link, but it wasn't a LINK_STATUS.

too_many_requests 

too many user requests queued

bad_response 

response was malformed or contained object headers

response_timeout 

timeout occurred before receiving a response

write_error 

insufficient buffer space to serialize the request

no_connection 

no connection

shutdown 

master was shutdown

association_removed 

association was removed mid-task

◆ LogLevel

enum class dnp3::LogLevel
strong

Log level.

Used in Logger::on_message() callback to identify the log level of a message.

Enumerator
error 

Error log level.

warn 

Warning log level.

info 

Information log level.

debug 

Debugging log level.

trace 

Trace log level.

◆ LogOutputFormat

enum class dnp3::LogOutputFormat
strong

Describes how each log event is formatted.

Enumerator
text 

A simple text-based format.

json 

Output formatted as JSON.

◆ MinTlsVersion

enum class dnp3::MinTlsVersion
strong

Minimum TLS version to allow.

Enumerator
v12 

Allow TLS 1.2 and 1.3.

v13 

Only allow TLS 1.3.

◆ Nothing

enum class dnp3::Nothing
strong

A single value enum which is used as a placeholder for futures that don't return a value.

Enumerator
nothing 

the only value this enum has

◆ OperateType

enum class dnp3::OperateType
strong

Enumeration describing how the master requested the control operation.

Enumerator
select_before_operate 

control point was properly selected before the operate request

direct_operate 

operate the control via a DirectOperate request

direct_operate_no_ack 

operate the control via a DirectOperateNoAck request

◆ OpType

enum class dnp3::OpType
strong

Operation Type field, used in conjunction with TripCloseCode to specify a control operation.

Enumerator
nul 

NUL (0)

pulse_on 

PULSE_ON (1)

pulse_off 

PULSE_OFF (2)

latch_on 

LATCH_ON (3)

latch_off 

LATCH_OFF(4)

◆ ParamError

enum class dnp3::ParamError
strong

Error type used throughout the library.

Enumerator
ok 

Success, i.e. no error occurred.

invalid_timeout 

The supplied timeout value is too small or too large.

null_parameter 

Null parameter.

no_support 

Native library was compiled without support for this feature.

association_does_not_exist 

The specified association does not exist.

association_duplicate_address 

Duplicate association address.

invalid_socket_address 

Invalid socket address.

invalid_dnp3_address 

Invalid link-layer DNP3 address.

invalid_buffer_size 

Invalid buffer size.

address_filter_conflict 

Conflict in the address filter specification.

server_already_started 

Server already started.

server_bind_error 

Server failed to bind to the specified port.

master_already_shutdown 

Master was already shutdown.

runtime_creation_failure 

Failed to create Tokio runtime.

runtime_destroyed 

Runtime has already been disposed.

runtime_cannot_block_within_async 

Runtime cannot execute blocking call within asynchronous context.

logging_already_configured 

Logging can only be configured once.

point_does_not_exist 

Point does not exist.

invalid_peer_certificate 

Invalid peer certificate file.

invalid_local_certificate 

Invalid local certificate file.

invalid_private_key 

Invalid private key file.

invalid_dns_name 

Invalid DNS name.

other_tls_error 

Other TLS error.

◆ Parity

enum class dnp3::Parity
strong

Parity checking modes.

Enumerator
none 

No parity bit.

odd 

Parity bit sets odd number of 1 bits.

even 

Parity bit sets even number of 1 bits.

◆ PhysDecodeLevel

enum class dnp3::PhysDecodeLevel
strong

Controls how data transmitted at the physical layer (TCP, serial, etc) is logged.

Enumerator
nothing 

Log nothing.

length 

Log only the length of data that is sent and received.

data 

Log the length and the actual data that is sent and received.

◆ PortState

enum class dnp3::PortState
strong

State of the serial port.

Enumerator
disabled 

Disabled until enabled.

wait 

Waiting to perform an open retry.

open 

Port is open.

shutdown 

Task has been shut down.

◆ QualifierCode

enum class dnp3::QualifierCode
strong

Qualifier code used in the response.

Enumerator
range8 

8-bit start stop (0x00)

range16 

16-bit start stop (0x01)

all_objects 

All objects (0x06)

count8 

8-bit count (0x07)

count16 

16-bit count (0x08)

count_and_prefix_8 

8-bit count and prefix (0x17)

count_and_prefix_16 

16-bit count and prefix (0x28)

free_format_16 

16-bit free format (0x5B)

◆ ReadError

enum class dnp3::ReadError
strong

Errors that can occur during a read operation.

Enumerator
ok 

Success, i.e. no error occurred.

too_many_requests 

too many user requests queued

bad_response 

response was malformed or contained object headers

response_timeout 

timeout occurred before receiving a response

write_error 

insufficient buffer space to serialize the request

no_connection 

no connection

shutdown 

master was shutdown

association_removed 

association was removed mid-task

◆ ReadType

enum class dnp3::ReadType
strong

Describes the source of a read event.

Enumerator
startup_integrity 

Startup integrity poll.

unsolicited 

Unsolicited message.

single_poll 

Single poll requested by the user.

periodic_poll 

Periodic poll configured by the user.

◆ ResponseFunction

enum class dnp3::ResponseFunction
strong

Type of response.

Enumerator
response 

Solicited response.

unsolicited_response 

Unsolicited response.

◆ RestartDelayType

enum class dnp3::RestartDelayType
strong

Type of restart delay value. Used by RestartDelay.

Enumerator
not_supported 

Restart mode not supported.

seconds 

Value is in seconds (corresponds to g51v1)

milli_seconds 

Value is in milliseconds (corresponds to g51v2)

◆ RestartError

enum class dnp3::RestartError
strong

Errors that can occur during a cold/warm restart operation.

Enumerator
ok 

Success, i.e. no error occurred.

too_many_requests 

too many user requests queued

bad_response 

response was malformed or contained object headers

response_timeout 

timeout occurred before receiving a response

write_error 

insufficient buffer space to serialize the request

no_connection 

no connection

shutdown 

master was shutdown

association_removed 

association was removed mid-task

◆ StaticAnalogInputVariation

Static analog variation.

Enumerator
group30_var1 

Analog input - 32-bit with flag.

group30_var2 

Analog input - 16-bit with flag.

group30_var3 

Analog input - 32-bit without flag.

group30_var4 

Analog input - 16-bit without flag.

group30_var5 

Analog input - single-precision, floating-point with flag.

group30_var6 

Analog input - double-precision, floating-point with flag.

◆ StaticAnalogOutputStatusVariation

Static analog output status variation.

Enumerator
group40_var1 

Analog output status - 32-bit with flag.

group40_var2 

Analog output status - 16-bit with flag.

group40_var3 

Analog output status - single-precision, floating-point with flag.

group40_var4 

Analog output status - double-precision, floating-point with flag.

◆ StaticBinaryInputVariation

Static binary input variation.

Enumerator
group1_var1 

Binary input - packed format.

group1_var2 

Binary input - with flags.

◆ StaticBinaryOutputStatusVariation

Static binary output status variation.

Enumerator
group10_var1 

Binary output - packed format.

group10_var2 

Binary output - output status with flags.

◆ StaticCounterVariation

enum class dnp3::StaticCounterVariation
strong

Static counter variation.

Enumerator
group20_var1 

Counter - 32-bit with flag.

group20_var2 

Counter - 16-bit with flag.

group20_var5 

Counter - 32-bit without flag.

group20_var6 

Counter - 16-bit without flag.

◆ StaticDoubleBitBinaryInputVariation

Static double-bit binary input variation.

Enumerator
group3_var1 

Double-bit binary input - packed format.

group3_var2 

Double-bit binary input - with flags.

◆ StaticFrozenCounterVariation

Static frozen counter variation.

Enumerator
group21_var1 

Frozen Counter - 32-bit with flag.

group21_var2 

Frozen Counter - 16-bit with flag.

group21_var5 

Frozen Counter - 32-bit with flag and time.

group21_var6 

Frozen Counter - 16-bit with flag and time.

group21_var9 

Frozen Counter - 32-bit without flag.

group21_var10 

Frozen Counter - 16-bit without flag.

◆ StopBits

enum class dnp3::StopBits
strong

Number of stop bits.

Enumerator
one 

One stop bit.

two 

Two stop bits.

◆ TaskError

enum class dnp3::TaskError
strong

Task error used in AssociationInformation.

Enumerator
too_many_requests 

too many user requests queued

bad_response 

response was malformed or contained object headers

response_timeout 

timeout occurred before receiving a response

write_error 

insufficient buffer space to serialize the request

no_connection 

no connection

shutdown 

master was shutdown

association_removed 

association was removed mid-task

◆ TaskType

enum class dnp3::TaskType
strong

Task type used in AssociationInformation.

Enumerator
user_read 

User-defined read request.

periodic_poll 

Periodic poll task.

startup_integrity 

Startup integrity scan.

auto_event_scan 

Automatic event scan caused by RESTART IIN bit detection.

command 

Command request.

clear_restart_bit 

Clear RESTART IIN bit.

enable_unsolicited 

Enable unsolicited startup request.

disable_unsolicited 

Disable unsolicited startup request.

time_sync 

Time synchronisation task.

restart 

Cold or warm restart task.

◆ TimeFormat

enum class dnp3::TimeFormat
strong

Describes if and how the time will be formatted in log messages.

Enumerator
none 

Don't format the timestamp as part of the message.

rfc_3339 

Format the time using RFC 3339.

system 

Format the time in a human readable format e.g. 'Jun 25 14:27:12.955'.

◆ TimeQuality

enum class dnp3::TimeQuality
strong

Timestamp quality.

Enumerator
synchronized_time 

The timestamp is UTC synchronized at the remote device.

unsynchronized_time 

The device indicates the timestamp may be not be synchronized.

invalid_time 

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

◆ TimeSyncError

enum class dnp3::TimeSyncError
strong

Possible errors that can occur during a time synchronization procedure.

Enumerator
ok 

Success, i.e. no error occurred.

clock_rollback 

Detected a clock rollback.

system_time_not_unix 

The system time cannot be converted to a Unix timestamp.

bad_outstation_time_delay 

Outstation time delay exceeded the response delay.

overflow 

Overflow in calculation.

still_needs_time 

Outstation did not clear the NEED_TIME IIN bit.

system_time_not_available 

System time not available.

iin_error 

Outstation indicated an error.

too_many_requests 

too many user requests queued

bad_response 

response was malformed or contained object headers

response_timeout 

timeout occurred before receiving a response

write_error 

insufficient buffer space to serialize the request

no_connection 

no connection

shutdown 

master was shutdown

association_removed 

association was removed mid-task

◆ TimeSyncMode

enum class dnp3::TimeSyncMode
strong

Time synchronization mode.

Enumerator
lan 

Perform a LAN time sync with Record Current Time (0x18) function code.

non_lan 

Perform a non-LAN time sync with Delay Measurement (0x17) function code.

◆ TransportDecodeLevel

enum class dnp3::TransportDecodeLevel
strong

Controls how transmitted and received transport segments are decoded at the INFO log level.

Enumerator
nothing 

Decode nothing.

header 

Decode the header.

payload 

Decode the header and the raw payload as hexadecimal.

◆ TripCloseCode

enum class dnp3::TripCloseCode
strong

Trip-Close Code field, used in conjunction with OpType to specify a control operation.

Enumerator
nul 

NUL (0)

close 

CLOSE (1)

trip 

TRIP (2)

reserved 

RESERVED (3)

◆ Variation

enum class dnp3::Variation
strong

Group/Variation.

Enumerator
group1_var0 

Binary Input - Default variation.

group1_var1 

Binary Input - Packed format.

group1_var2 

Binary Input - With flags.

group2_var0 

Binary Input Event - Default variation.

group2_var1 

Binary Input Event - Without time.

group2_var2 

Binary Input Event - With absolute time.

group2_var3 

Binary Input Event - With relative time.

group3_var0 

Double-bit Binary Input - Default variation.

group3_var1 

Double-bit Binary Input - Packed format.

group3_var2 

Double-bit Binary Input - With flags.

group4_var0 

Double-bit Binary Input Event - Default variation.

group4_var1 

Double-bit Binary Input Event - Without time.

group4_var2 

Double-bit Binary Input Event - With absolute time.

group4_var3 

Double-bit Binary Input Event - With relative time.

group10_var0 

Binary Output - Default variation.

group10_var1 

Binary Output - Packed format.

group10_var2 

Binary Output - With flags.

group11_var0 

Binary Output Event - Default variation.

group11_var1 

Binary Output Event - Without time.

group11_var2 

Binary Output Event - With time.

group12_var0 

Binary Output Command - Control Relay Output Block.

group12_var1 

Binary Output Command - Pattern Control Block.

group20_var0 

Counter - Default variation.

group20_var1 

Counter - 32-bit with flags.

group20_var2 

Counter - 16-bit with flags.

group20_var5 

Counter - 32-bit without flag.

group20_var6 

Counter - 16-bit without flag.

group21_var0 

Frozen Counter - Default variation.

group21_var1 

Frozen Counter - 32-bit with flags.

group21_var2 

Frozen Counter - 16-bit with flags.

group21_var5 

Frozen Counter - 32-bit with flags and time.

group21_var6 

Frozen Counter - 16-bit with flags and time.

group21_var9 

Frozen Counter - 32-bit without flag.

group21_var10 

Frozen Counter - 16-bit without flag.

group22_var0 

Counter Event - Default variation.

group22_var1 

Counter Event - 32-bit with flags.

group22_var2 

Counter Event - 16-bit with flags.

group22_var5 

Counter Event - 32-bit with flags and time.

group22_var6 

Counter Event - 16-bit with flags and time.

group23_var0 

Frozen Counter Event - Default variation.

group23_var1 

Frozen Counter Event - 32-bit with flags.

group23_var2 

Frozen Counter Event - 16-bit with flags.

group23_var5 

Frozen Counter Event - 32-bit with flags and time.

group23_var6 

Frozen Counter Event - 16-bit with flags and time.

group30_var0 

Analog Input - Default variation.

group30_var1 

Analog Input - 32-bit with flags.

group30_var2 

Analog Input - 16-bit with flags.

group30_var3 

Analog Input - 32-bit without flag.

group30_var4 

Analog Input - 16-bit without flag.

group30_var5 

Analog Input - Single-precision floating point with flags.

group30_var6 

Analog Input - Double-precision floating point with flags.

group32_var0 

Analog Input Event - Default variation.

group32_var1 

Analog Input Event - 32-bit without time.

group32_var2 

Analog Input Event - 16-bit without time.

group32_var3 

Analog Input Event - 32-bit with time.

group32_var4 

Analog Input Event - 16-bit with time.

group32_var5 

Analog Input Event - Single-precision floating point without time.

group32_var6 

Analog Input Event - Double-precision floating point without time.

group32_var7 

Analog Input Event - Single-precision floating point with time.

group32_var8 

Analog Input Event - Double-precision floating point with time.

group40_var0 

Analog Output Status - Default variation.

group40_var1 

Analog Output Status - 32-bit with flags.

group40_var2 

Analog Output Status - 16-bit with flags.

group40_var3 

Analog Output Status - Single-precision floating point with flags.

group40_var4 

Analog Output Status - Double-precision floating point with flags.

group41_var0 

Analog Output - Default variation.

group41_var1 

Analog Output - 32-bit.

group41_var2 

Analog Output - 16-bit.

group41_var3 

Analog Output - Single-precision floating point.

group41_var4 

Analog Output - Double-precision floating point.

group42_var0 

Analog Output Event - Default variation.

group42_var1 

Analog Output Event - 32-bit without time.

group42_var2 

Analog Output Event - 16-bit without time.

group42_var3 

Analog Output Event - 32-bit with time.

group42_var4 

Analog Output Event - 16-bit with time.

group42_var5 

Analog Output Event - Single-precision floating point without time.

group42_var6 

Analog Output Event - Double-precision floating point without time.

group42_var7 

Analog Output Event - Single-preicions floating point with time.

group42_var8 

Analog Output Event - Double-preicions floating point with time.

group50_var1 

Time and Date - Absolute time.

group50_var3 

Time and Date - Absolute time at last recorded time.

group50_var4 

Time and Date - Indexed absolute time and long interval.

group51_var1 

Time and date CTO - Absolute time, synchronized.

group51_var2 

Time and date CTO - Absolute time, unsynchronized.

group52_var1 

Time delay - Coarse.

group52_var2 

Time delay - Fine.

group60_var1 

Class objects - Class 0 data.

group60_var2 

Class objects - Class 1 data.

group60_var3 

Class objects - Class 2 data.

group60_var4 

Class objects - Class 3 data.

group80_var1 

Internal Indications - Packed format.

group110 

Octet String.

group111 

Octet String Event.

◆ WriteTimeResult

enum class dnp3::WriteTimeResult
strong

Write time result used by OutstationApplication::write_absolute_time()

Enumerator
ok 

The write time operation succeeded.

parameter_error 

The request parameters are nonsensical.

not_supported 

Writing time is not supported by this outstation (translated to NO_FUNC_CODE_SUPPORT).

Function Documentation

◆ to_string() [1/61]

const char * dnp3::to_string ( AppDecodeLevel  value)

convert an instance of enum AppDecodeLevel into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [2/61]

const char * dnp3::to_string ( AutoTimeSync  value)

convert an instance of enum AutoTimeSync into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [3/61]

const char * dnp3::to_string ( BroadcastAction  value)

convert an instance of enum BroadcastAction into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [4/61]

const char * dnp3::to_string ( CertificateMode  value)

convert an instance of enum CertificateMode into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [5/61]

const char * dnp3::to_string ( ClientState  value)

convert an instance of enum ClientState into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [6/61]

const char * dnp3::to_string ( CommandError  value)

convert an instance of enum CommandError into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [7/61]

const char * dnp3::to_string ( CommandMode  value)

convert an instance of enum CommandMode into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [8/61]

const char * dnp3::to_string ( CommandStatus  value)

convert an instance of enum CommandStatus into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [9/61]

const char * dnp3::to_string ( ConnectionState  value)

convert an instance of enum ConnectionState into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [10/61]

const char * dnp3::to_string ( DataBits  value)

convert an instance of enum DataBits into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [11/61]

const char * dnp3::to_string ( DoubleBit  value)

convert an instance of enum DoubleBit into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [12/61]

const char * dnp3::to_string ( EventAnalogInputVariation  value)

convert an instance of enum EventAnalogInputVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [13/61]

const char * dnp3::to_string ( EventAnalogOutputStatusVariation  value)

convert an instance of enum EventAnalogOutputStatusVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [14/61]

const char * dnp3::to_string ( EventBinaryInputVariation  value)

convert an instance of enum EventBinaryInputVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [15/61]

const char * dnp3::to_string ( EventBinaryOutputStatusVariation  value)

convert an instance of enum EventBinaryOutputStatusVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [16/61]

const char * dnp3::to_string ( EventClass  value)

convert an instance of enum EventClass into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [17/61]

const char * dnp3::to_string ( EventCounterVariation  value)

convert an instance of enum EventCounterVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [18/61]

const char * dnp3::to_string ( EventDoubleBitBinaryInputVariation  value)

convert an instance of enum EventDoubleBitBinaryInputVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [19/61]

const char * dnp3::to_string ( EventFrozenCounterVariation  value)

convert an instance of enum EventFrozenCounterVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [20/61]

const char * dnp3::to_string ( EventMode  value)

convert an instance of enum EventMode into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [21/61]

const char * dnp3::to_string ( FlowControl  value)

convert an instance of enum FlowControl into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [22/61]

const char * dnp3::to_string ( FreezeResult  value)

convert an instance of enum FreezeResult into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [23/61]

const char * dnp3::to_string ( FreezeType  value)

convert an instance of enum FreezeType into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [24/61]

const char * dnp3::to_string ( FunctionCode  value)

convert an instance of enum FunctionCode into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [25/61]

const char * dnp3::to_string ( LinkDecodeLevel  value)

convert an instance of enum LinkDecodeLevel into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [26/61]

const char * dnp3::to_string ( LinkErrorMode  value)

convert an instance of enum LinkErrorMode into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [27/61]

const char * dnp3::to_string ( LinkStatusError  value)

convert an instance of enum LinkStatusError into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [28/61]

const char * dnp3::to_string ( LogLevel  value)

convert an instance of enum LogLevel into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [29/61]

const char * dnp3::to_string ( LogOutputFormat  value)

convert an instance of enum LogOutputFormat into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [30/61]

const char * dnp3::to_string ( MinTlsVersion  value)

convert an instance of enum MinTlsVersion into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [31/61]

const char * dnp3::to_string ( Nothing  value)

convert an instance of enum Nothing into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [32/61]

const char * dnp3::to_string ( OperateType  value)

convert an instance of enum OperateType into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [33/61]

const char * dnp3::to_string ( OpType  value)

convert an instance of enum OpType into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [34/61]

const char * dnp3::to_string ( ParamError  value)

convert an instance of enum ParamError into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [35/61]

const char * dnp3::to_string ( Parity  value)

convert an instance of enum Parity into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [36/61]

const char * dnp3::to_string ( PhysDecodeLevel  value)

convert an instance of enum PhysDecodeLevel into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [37/61]

const char * dnp3::to_string ( PortState  value)

convert an instance of enum PortState into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [38/61]

const char * dnp3::to_string ( QualifierCode  value)

convert an instance of enum QualifierCode into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [39/61]

const char * dnp3::to_string ( ReadError  value)

convert an instance of enum ReadError into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [40/61]

const char * dnp3::to_string ( ReadType  value)

convert an instance of enum ReadType into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [41/61]

const char * dnp3::to_string ( ResponseFunction  value)

convert an instance of enum ResponseFunction into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [42/61]

const char * dnp3::to_string ( RestartDelayType  value)

convert an instance of enum RestartDelayType into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [43/61]

const char * dnp3::to_string ( RestartError  value)

convert an instance of enum RestartError into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [44/61]

const char * dnp3::to_string ( StaticAnalogInputVariation  value)

convert an instance of enum StaticAnalogInputVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [45/61]

const char * dnp3::to_string ( StaticAnalogOutputStatusVariation  value)

convert an instance of enum StaticAnalogOutputStatusVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [46/61]

const char * dnp3::to_string ( StaticBinaryInputVariation  value)

convert an instance of enum StaticBinaryInputVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [47/61]

const char * dnp3::to_string ( StaticBinaryOutputStatusVariation  value)

convert an instance of enum StaticBinaryOutputStatusVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [48/61]

const char * dnp3::to_string ( StaticCounterVariation  value)

convert an instance of enum StaticCounterVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [49/61]

const char * dnp3::to_string ( StaticDoubleBitBinaryInputVariation  value)

convert an instance of enum StaticDoubleBitBinaryInputVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [50/61]

const char * dnp3::to_string ( StaticFrozenCounterVariation  value)

convert an instance of enum StaticFrozenCounterVariation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [51/61]

const char * dnp3::to_string ( StopBits  value)

convert an instance of enum StopBits into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [52/61]

const char * dnp3::to_string ( TaskError  value)

convert an instance of enum TaskError into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [53/61]

const char * dnp3::to_string ( TaskType  value)

convert an instance of enum TaskType into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [54/61]

const char * dnp3::to_string ( TimeFormat  value)

convert an instance of enum TimeFormat into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [55/61]

const char * dnp3::to_string ( TimeQuality  value)

convert an instance of enum TimeQuality into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [56/61]

const char * dnp3::to_string ( TimeSyncError  value)

convert an instance of enum TimeSyncError into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [57/61]

const char * dnp3::to_string ( TimeSyncMode  value)

convert an instance of enum TimeSyncMode into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [58/61]

const char * dnp3::to_string ( TransportDecodeLevel  value)

convert an instance of enum TransportDecodeLevel into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [59/61]

const char * dnp3::to_string ( TripCloseCode  value)

convert an instance of enum TripCloseCode into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [60/61]

const char * dnp3::to_string ( Variation  value)

convert an instance of enum Variation into a C-style string

Parameters
valueenum value
Returns
C-style string constant

◆ to_string() [61/61]

const char * dnp3::to_string ( WriteTimeResult  value)

convert an instance of enum WriteTimeResult into a C-style string

Parameters
valueenum value
Returns
C-style string constant

Variable Documentation

◆ dnp3_version_major

constexpr uint64_t dnp3::dnp3_version_major = 1
constexpr

major version number

◆ dnp3_version_minor

constexpr uint64_t dnp3::dnp3_version_minor = 1
constexpr

minor version number

◆ dnp3_version_patch

constexpr uint64_t dnp3::dnp3_version_patch = 0
constexpr

patch version number

◆ dnp3_version_string

constexpr char const* dnp3::dnp3_version_string = "1.1.0"
constexpr

version number as the string major.minor.patch