dnp3 (C API) 1.6.0
Loading...
Searching...
No Matches
dnp3.h File Reference
#include <stdbool.h>
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  dnp3_decode_level_t
 Controls the decoding of transmitted and received data at the application, transport, link, and physical layers. More...
 
struct  dnp3_runtime_config_t
 Runtime configuration. More...
 
struct  dnp3_control_field_t
 APDU Control field. More...
 
struct  dnp3_control_code_t
 CROB (dnp3_group12_var1_t) control code. More...
 
struct  dnp3_group12_var1_t
 Control Relay Output Block. More...
 
struct  dnp3_flags_t
 Collection of individual flag bits represented by an underlying mask value. More...
 
struct  dnp3_timestamp_t
 Timestamp associated with particular measurement from the outstation. The validity of the value depends on the quality. More...
 
struct  dnp3_binary_input_t
 binary_input point More...
 
struct  dnp3_double_bit_binary_input_t
 double_bit_binary_input point More...
 
struct  dnp3_binary_output_status_t
 binary_output_status point More...
 
struct  dnp3_counter_t
 counter point More...
 
struct  dnp3_frozen_counter_t
 frozen_counter point More...
 
struct  dnp3_analog_input_t
 analog_input point More...
 
struct  dnp3_frozen_analog_input_t
 frozen_analog_input point More...
 
struct  dnp3_analog_output_status_t
 analog_output_status point More...
 
struct  dnp3_binary_output_command_event_t
 Event transferred from master to outstation when the outstation receives a corresponding command. More...
 
struct  dnp3_analog_output_command_event_t
 Event transferred from master to outstation when the outstation receives a corresponding command. More...
 
struct  dnp3_unsigned_integer_t
 Unsigned byte corresponding to group 102 variation 1. More...
 
struct  dnp3_octet_string_t
 Octet String point. More...
 
struct  dnp3_connect_strategy_t
 Timing parameters for connection attempts. More...
 
struct  dnp3_tls_client_config_t
 TLS client configuration. More...
 
struct  dnp3_attr_prop_t
 Attribute properties returned in Group0Var255. More...
 
struct  dnp3_attr_item_t
 An attribute variation and properties pair returned in Group0Var255. More...
 
struct  dnp3_port_state_listener_t
 Callback interface for receiving updates about the state of a serial port. More...
 
struct  dnp3_client_state_listener_t
 Callback for monitoring the client TCP connection state. More...
 
struct  dnp3_retry_strategy_t
 Retry strategy configuration. More...
 
struct  dnp3_serial_settings_t
 Serial port settings. More...
 
struct  dnp3_permission_set_t
 Defines read, write, execute permissions for particular group or user. More...
 
struct  dnp3_permissions_t
 Permissions for world, group, and owner. More...
 
struct  dnp3_open_file_t
 The result of opening a file on the outstation. More...
 
struct  dnp3_file_info_t
 Information about a file or directory returned from the outstation. More...
 
struct  dnp3_file_open_callback_t
 Callback interface used when opening a file. More...
 
struct  dnp3_file_operation_callback_t
 Callback interface used when closing a file or writing a block of file data. More...
 
struct  dnp3_file_auth_callback_t
 Callback interface used when obtaining an authentication key. More...
 
struct  dnp3_logging_config_t
 Logging configuration options. More...
 
struct  dnp3_logger_t
 Logging interface that receives the log messages and writes them somewhere. More...
 
struct  dnp3_iin1_t
 First IIN byte. More...
 
struct  dnp3_iin2_t
 Second IIN byte. More...
 
struct  dnp3_iin_t
 Pair of IIN bytes. More...
 
struct  dnp3_response_header_t
 Response header information. More...
 
struct  dnp3_header_info_t
 Information about the object header and specific variation. More...
 
struct  dnp3_read_handler_t
 Callback interface used to received measurement values received from the outstation. More...
 
struct  dnp3_master_channel_config_t
 Configuration for a MasterChannel that is independent of the physical layer. More...
 
struct  dnp3_empty_response_callback_t
 Callback interface for any task that expects an empty response. More...
 
struct  dnp3_association_id_t
 Association identifier. More...
 
struct  dnp3_poll_id_t
 Poll identifier. More...
 
struct  dnp3_event_classes_t
 Event classes. More...
 
struct  dnp3_classes_t
 Class 0, 1, 2 and 3 config. More...
 
struct  dnp3_association_config_t
 Association configuration. More...
 
struct  dnp3_utc_timestamp_t
 Timestamp value returned by dnp3_association_handler_t::get_current_time. More...
 
struct  dnp3_association_handler_t
 Callbacks for a particular outstation association. More...
 
struct  dnp3_association_information_t
 Informational callbacks about the current state of an outstation association. More...
 
struct  dnp3_read_task_callback_t
 Handler for read tasks. More...
 
struct  dnp3_command_task_callback_t
 Handler for command tasks. More...
 
struct  dnp3_time_sync_task_callback_t
 Handler for time synchronization tasks. More...
 
struct  dnp3_restart_task_callback_t
 Handler for restart tasks. More...
 
struct  dnp3_file_info_callback_t
 Callback interface for retrieving file info asynchronously. More...
 
struct  dnp3_file_reader_t
 Callbacks for reading a file from the outstation asynchronously. More...
 
struct  dnp3_file_read_config_t
 Configuration related to reading a file. More...
 
struct  dnp3_dir_read_config_t
 Configuration related to reading a file. More...
 
struct  dnp3_read_directory_callback_t
 Callback interface for retrieving a directory list. More...
 
struct  dnp3_link_status_callback_t
 Handler for link status check. More...
 
struct  dnp3_connection_handler_t
 Callbacks to user code that determine how the server processes connections. More...
 
struct  dnp3_link_id_config_t
 Configuration that controls how the server performs remote link identification. More...
 
struct  dnp3_update_info_t
 Defines what occurred during an update operation. Only certain id fields are valid depending on the value of the enumeration. More...
 
struct  dnp3_update_options_t
 Options that control how the update is performed. More...
 
struct  dnp3_binary_input_config_t
 Binary Input configuration. More...
 
struct  dnp3_double_bit_binary_input_config_t
 Double-Bit Binary Input configuration. More...
 
struct  dnp3_binary_output_status_config_t
 Binary Output Status configuration. More...
 
struct  dnp3_counter_config_t
 Counter configuration. More...
 
struct  dnp3_frozen_counter_config_t
 Frozen Counter configuration. More...
 
struct  dnp3_analog_input_config_t
 Analog configuration. More...
 
struct  dnp3_analog_output_status_config_t
 Analog Output Status configuration. More...
 
struct  dnp3_database_transaction_t
 Database transaction interface. More...
 
struct  dnp3_event_buffer_config_t
 Maximum number of events for each type. More...
 
struct  dnp3_class_zero_config_t
 Controls which types are reported during a Class 0 read. More...
 
struct  dnp3_outstation_features_t
 Optional outstation features that can be enabled or disabled. More...
 
struct  dnp3_outstation_config_t
 Outstation configuration. More...
 
struct  dnp3_restart_delay_t
 Restart delay used by dnp3_outstation_application_t::cold_restart and dnp3_outstation_application_t::warm_restart. More...
 
struct  dnp3_application_iin_t
 Application-controlled IIN bits. More...
 
struct  dnp3_class_count_t
 Remaining number of events in the buffer after a confirm on a per-class basis. More...
 
struct  dnp3_type_count_t
 Remaining number of events in the buffer after a confirm on a per-type basis. More...
 
struct  dnp3_buffer_state_t
 Information about the state of buffer after a CONFIRM has been processed. More...
 
struct  dnp3_outstation_application_t
 Dynamic information required by the outstation from the user application. More...
 
struct  dnp3_request_header_t
 Application-layer header for requests. More...
 
struct  dnp3_outstation_information_t
 Informational callbacks that the outstation doesn't rely on to function. More...
 
struct  dnp3_control_handler_t
 Callbacks for handling controls. More...
 
struct  dnp3_connection_state_listener_t
 Callback interface for connection state events. More...
 
struct  dnp3_outstation_udp_config_t
 UDP outstation configuration. More...
 
struct  dnp3_tls_server_config_t
 TLS server configuration. More...
 

Macros

#define DNP3_VERSION_MAJOR   1
 
#define DNP3_VERSION_MINOR   6
 
#define DNP3_VERSION_PATCH   0
 
#define DNP3_VERSION_STRING   "1.6.0"
 
#define DNP3_FLAG_ONLINE   0x01
 Object value is 'good' / 'valid' / 'nominal'. More...
 
#define DNP3_FLAG_RESTART   0x02
 Object value has not been updated since device restart. More...
 
#define DNP3_FLAG_COMM_LOST   0x04
 Object value represents the last value available before a communication failure occurred. Should never be set by originating devices. More...
 
#define DNP3_FLAG_REMOTE_FORCED   0x08
 Object value is overridden in a downstream reporting device. More...
 
#define DNP3_FLAG_LOCAL_FORCED   0x10
 Object value is overridden by the device reporting this flag. More...
 
#define DNP3_FLAG_CHATTER_FILTER   0x20
 Object value is changing state rapidly (device dependent meaning) More...
 
#define DNP3_FLAG_OVER_RANGE   0x20
 Object's true exceeds the measurement range of the reported variation. More...
 
#define DNP3_FLAG_DISCONTINUITY   0x40
 Reported counter value cannot be compared against a prior value to obtain the correct count difference. More...
 
#define DNP3_FLAG_REFERENCE_ERR   0x40
 Object's value might not have the expected level of accuracy. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_ID   0xC4
 Configuration id. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_VERSION   0xC5
 Configuration version. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_BUILD_DATE   0xC6
 Time and date that the outstation's current configuration was built defined. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_LAST_CHANGE_DATE   0xC7
 Time and date that the outstation's configuration was last modified. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_DIGEST   0xC8
 Digest (aka fingerprint) of the configuration using a CRC, HASH, MAC, or public key signature. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_DIGEST_ALGORITHM   0xC9
 Configuration digest algorithm. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_MASTER_RESOURCE_ID   0xCA
 Master resource id (mRID) More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_ALTITUDE   0xCB
 Altitude of the device. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_LONGITUDE   0xCC
 Longitude of the device from reference meridian (-180.0 to 180.0 deg) More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_LATITUDE   0xCD
 Latitude of the device from the equator (90.0 to -90.0 deg) More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_SECONDARY_OPERATOR_NAME   0xCE
 User-assigned secondary operator name. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_PRIMARY_OPERATOR_NAME   0xCF
 User-assigned primary operator name. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_SYSTEM_NAME   0xD0
 User-assigned system name. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_SECURE_AUTH_VERSION   0xD1
 Secure authentication version. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_NUM_SECURITY_STATS_PER_ASSOC   0xD2
 Number of security statistics per association. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_USER_SPECIFIC_ATTRIBUTES   0xD3
 Identification of user-specific attributes. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_NUM_MASTER_DEFINED_DATA_SET_PROTO   0xD4
 Number of master defined data-set prototypes. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_NUM_OUTSTATION_DEFINED_DATA_SET_PROTO   0xD5
 Number of outstation defined data-set prototypes. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_NUM_MASTER_DEFINED_DATA_SETS   0xD6
 Number of master defined data-sets. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_NUM_OUTSTATION_DEFINED_DATA_SETS   0xD7
 Number of outstation defined data-sets. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_OUTPUT_PER_REQUEST   0xD8
 Maximum number of binary outputs per request. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_LOCAL_TIMING_ACCURACY   0xD9
 Local timing accuracy (microseconds) More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_DURATION_OF_TIME_ACCURACY   0xDA
 Duration of time accuracy (seconds) More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_ANALOG_OUTPUT_EVENTS   0xDB
 Supports analog output events. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_MAX_ANALOG_OUTPUT_INDEX   0xDC
 Maximum analog output index. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_NUM_ANALOG_OUTPUTS   0xDD
 Number of analog outputs. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_BINARY_OUTPUT_EVENTS   0xDE
 Supports binary output events. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_OUTPUT_INDEX   0xDF
 Maximum binary output index. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_NUM_BINARY_OUTPUTS   0xE0
 Number of binary outputs. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_COUNTER_EVENTS   0xE1
 Supports frozen counter events. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_COUNTERS   0xE2
 Supports frozen counters. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_COUNTER_EVENTS   0xE3
 Supports counter events. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_MAX_COUNTER_INDEX   0xE4
 Maximum counter point index. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_NUM_COUNTER   0xE5
 Number of counter points. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_ANALOG_INPUTS   0xE6
 Supports frozen analog input events. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_ANALOG_INPUT_EVENTS   0xE7
 Supports analog input events. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_MAX_ANALOG_INPUT_INDEX   0xE8
 Maximum analog input point index. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_NUM_ANALOG_INPUT   0xE9
 Number of analog input points. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_DOUBLE_BIT_BINARY_INPUT_EVENTS   0xEA
 Supports double-bit binary input events. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_MAX_DOUBLE_BIT_BINARY_INPUT_INDEX   0xEB
 Maximum double-bit binary input point index. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_NUM_DOUBLE_BIT_BINARY_INPUT   0xEC
 Number of double-bit binary input points. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_BINARY_INPUT_EVENTS   0xED
 Support binary input events. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_INPUT_INDEX   0xEE
 Maximum binary input point index. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_NUM_BINARY_INPUT   0xEF
 Number of binary input points. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_MAX_TX_FRAGMENT_SIZE   0xF0
 Maximum transmit fragment size. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_MAX_RX_FRAGMENT_SIZE   0xF1
 Maximum receive fragment size. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURER_SOFTWARE_VERSION   0xF2
 Device manufacturer software version. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURER_HARDWARE_VERSION   0xF3
 Device manufacturer hardware version. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_OWNER_NAME   0xF4
 User-assigned owner name. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_LOCATION   0xF5
 User assigned location name. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_ID   0xF6
 User assigned ID code/number. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_DEVICE_NAME   0xF7
 User assigned device name. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_SERIAL_NUMBER   0xF8
 Device serial number. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_SUBSET_AND_CONFORMANCE   0xF9
 DNP3 subset and conformance. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_PRODUCT_NAME_AND_MODEL   0xFA
 Device manufacturer's product name and model. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURERS_NAME   0xFC
 Device manufacturer's name. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_ALL_ATTRIBUTES_REQUEST   0xFE
 Non-specific all attributes request. More...
 
#define DNP3_ATTRIBUTE_VARIATIONS_LIST_OF_VARIATIONS   0xFF
 List of attribute variations. More...
 

Typedefs

typedef struct dnp3_runtime_t dnp3_runtime_t
 Handle to the underlying runtime. More...
 
typedef struct dnp3_binary_input_iterator_t dnp3_binary_input_iterator_t
 Iterator of binary_input. More...
 
typedef struct dnp3_double_bit_binary_input_iterator_t dnp3_double_bit_binary_input_iterator_t
 Iterator of double_bit_binary_input. More...
 
typedef struct dnp3_binary_output_status_iterator_t dnp3_binary_output_status_iterator_t
 Iterator of binary_output_status. More...
 
typedef struct dnp3_counter_iterator_t dnp3_counter_iterator_t
 Iterator of counter. More...
 
typedef struct dnp3_frozen_counter_iterator_t dnp3_frozen_counter_iterator_t
 Iterator of frozen_counter. More...
 
typedef struct dnp3_analog_input_iterator_t dnp3_analog_input_iterator_t
 Iterator of analog_input. More...
 
typedef struct dnp3_frozen_analog_input_iterator_t dnp3_frozen_analog_input_iterator_t
 Iterator of frozen_analog_input. More...
 
typedef struct dnp3_analog_output_status_iterator_t dnp3_analog_output_status_iterator_t
 Iterator of analog_output_status. More...
 
typedef struct dnp3_binary_output_command_event_iterator_t dnp3_binary_output_command_event_iterator_t
 Iterator of binary_output_command_event. More...
 
typedef struct dnp3_analog_output_command_event_iterator_t dnp3_analog_output_command_event_iterator_t
 Iterator of analog_output_command_event. More...
 
typedef struct dnp3_unsigned_integer_iterator_t dnp3_unsigned_integer_iterator_t
 Iterator of unsigned_integer. More...
 
typedef struct dnp3_byte_iterator_t dnp3_byte_iterator_t
 Iterator of uint8_t. More...
 
typedef struct dnp3_octet_string_iterator_t dnp3_octet_string_iterator_t
 Iterator of octet_string. More...
 
typedef struct dnp3_connect_options_t dnp3_connect_options_t
 Options that control how TCP connections are established. More...
 
typedef struct dnp3_endpoint_list_t dnp3_endpoint_list_t
 List of IP endpoints. More...
 
typedef struct dnp3_attr_item_iter_t dnp3_attr_item_iter_t
 Iterator of attr_item. More...
 
typedef struct dnp3_byte_collection_t dnp3_byte_collection_t
 Collection of byte_collection. More...
 
typedef struct dnp3_master_channel_t dnp3_master_channel_t
 Represents a communication channel for a master station. More...
 
typedef struct dnp3_write_dead_band_request_t dnp3_write_dead_band_request_t
 Define a custom request to WRITE analog input dead-bands. More...
 
typedef struct dnp3_request_t dnp3_request_t
 Custom request. More...
 
typedef struct dnp3_command_set_t dnp3_command_set_t
 Builder type used to construct command requests. More...
 
typedef struct dnp3_file_info_iterator_t dnp3_file_info_iterator_t
 Iterator of file_info. More...
 
typedef struct dnp3_accept_handler_t dnp3_accept_handler_t
 Class used to accept a connection, reject it, or defer it to link identification. More...
 
typedef struct dnp3_identified_link_handler_t dnp3_identified_link_handler_t
 Class used to accept a connection, reject it, or defer it to link identification. More...
 
typedef struct dnp3_master_server_t dnp3_master_server_t
 Class with methods used to spawn servers. More...
 
typedef struct dnp3_database_t dnp3_database_t
 Internal database access. More...
 
typedef struct dnp3_octet_string_value_t dnp3_octet_string_value_t
 Collection of octet_string_value. More...
 
typedef struct dnp3_database_handle_t dnp3_database_handle_t
 Handle typed used to perform transactions on the database inside of control and freeze callbacks. More...
 
typedef struct dnp3_outstation_t dnp3_outstation_t
 Outstation handle. More...
 
typedef struct dnp3_address_filter_t dnp3_address_filter_t
 Filters connecting client by their IP address to associate a connecting master with an outstation on the server. More...
 
typedef struct dnp3_outstation_server_t dnp3_outstation_server_t
 TCP server that listens for connections and routes the messages to outstations. More...
 

Enumerations

enum  dnp3_param_error_t {
  DNP3_PARAM_ERROR_OK = 0 , DNP3_PARAM_ERROR_INVALID_TIMEOUT = 1 , DNP3_PARAM_ERROR_NULL_PARAMETER = 2 , DNP3_PARAM_ERROR_STRING_NOT_UTF8 = 3 ,
  DNP3_PARAM_ERROR_NO_SUPPORT = 4 , DNP3_PARAM_ERROR_ASSOCIATION_DOES_NOT_EXIST = 5 , DNP3_PARAM_ERROR_ASSOCIATION_DUPLICATE_ADDRESS = 6 , DNP3_PARAM_ERROR_INVALID_SOCKET_ADDRESS = 7 ,
  DNP3_PARAM_ERROR_INVALID_DNP3_ADDRESS = 8 , DNP3_PARAM_ERROR_INVALID_BUFFER_SIZE = 9 , DNP3_PARAM_ERROR_ADDRESS_FILTER_CONFLICT = 10 , DNP3_PARAM_ERROR_SERVER_ALREADY_STARTED = 11 ,
  DNP3_PARAM_ERROR_SERVER_BIND_ERROR = 12 , DNP3_PARAM_ERROR_MASTER_ALREADY_SHUTDOWN = 13 , DNP3_PARAM_ERROR_RUNTIME_CREATION_FAILURE = 14 , DNP3_PARAM_ERROR_RUNTIME_DESTROYED = 15 ,
  DNP3_PARAM_ERROR_RUNTIME_CANNOT_BLOCK_WITHIN_ASYNC = 16 , DNP3_PARAM_ERROR_LOGGING_ALREADY_CONFIGURED = 17 , DNP3_PARAM_ERROR_POINT_DOES_NOT_EXIST = 18 , DNP3_PARAM_ERROR_INVALID_PEER_CERTIFICATE = 19 ,
  DNP3_PARAM_ERROR_INVALID_LOCAL_CERTIFICATE = 20 , DNP3_PARAM_ERROR_INVALID_PRIVATE_KEY = 21 , DNP3_PARAM_ERROR_INVALID_DNS_NAME = 22 , DNP3_PARAM_ERROR_OTHER_TLS_ERROR = 23 ,
  DNP3_PARAM_ERROR_WRONG_CHANNEL_TYPE = 24 , DNP3_PARAM_ERROR_CONSUMED = 25
}
 Error type used throughout the library. More...
 
enum  dnp3_command_status_t {
  DNP3_COMMAND_STATUS_SUCCESS = 0 , DNP3_COMMAND_STATUS_TIMEOUT = 1 , DNP3_COMMAND_STATUS_NO_SELECT = 2 , DNP3_COMMAND_STATUS_FORMAT_ERROR = 3 ,
  DNP3_COMMAND_STATUS_NOT_SUPPORTED = 4 , DNP3_COMMAND_STATUS_ALREADY_ACTIVE = 5 , DNP3_COMMAND_STATUS_HARDWARE_ERROR = 6 , DNP3_COMMAND_STATUS_LOCAL = 7 ,
  DNP3_COMMAND_STATUS_TOO_MANY_OPS = 8 , DNP3_COMMAND_STATUS_NOT_AUTHORIZED = 9 , DNP3_COMMAND_STATUS_AUTOMATION_INHIBIT = 10 , DNP3_COMMAND_STATUS_PROCESSING_LIMITED = 11 ,
  DNP3_COMMAND_STATUS_OUT_OF_RANGE = 12 , DNP3_COMMAND_STATUS_DOWNSTREAM_LOCAL = 13 , DNP3_COMMAND_STATUS_ALREADY_COMPLETE = 14 , DNP3_COMMAND_STATUS_BLOCKED = 15 ,
  DNP3_COMMAND_STATUS_CANCELED = 16 , DNP3_COMMAND_STATUS_BLOCKED_OTHER_MASTER = 17 , DNP3_COMMAND_STATUS_DOWNSTREAM_FAIL = 18 , DNP3_COMMAND_STATUS_NON_PARTICIPATING = 19 ,
  DNP3_COMMAND_STATUS_UNKNOWN = 20
}
 Enumeration received from an outstation in response to command request. More...
 
enum  dnp3_app_decode_level_t { DNP3_APP_DECODE_LEVEL_NOTHING = 0 , DNP3_APP_DECODE_LEVEL_HEADER = 1 , DNP3_APP_DECODE_LEVEL_OBJECT_HEADERS = 2 , DNP3_APP_DECODE_LEVEL_OBJECT_VALUES = 3 }
 Controls how transmitted and received application-layer fragments are decoded at the INFO log level. More...
 
enum  dnp3_transport_decode_level_t { DNP3_TRANSPORT_DECODE_LEVEL_NOTHING = 0 , DNP3_TRANSPORT_DECODE_LEVEL_HEADER = 1 , DNP3_TRANSPORT_DECODE_LEVEL_PAYLOAD = 2 }
 Controls how transmitted and received transport segments are decoded at the INFO log level. More...
 
enum  dnp3_link_decode_level_t { DNP3_LINK_DECODE_LEVEL_NOTHING = 0 , DNP3_LINK_DECODE_LEVEL_HEADER = 1 , DNP3_LINK_DECODE_LEVEL_PAYLOAD = 2 }
 Controls how transmitted and received link frames are decoded at the INFO log level. More...
 
enum  dnp3_phys_decode_level_t { DNP3_PHYS_DECODE_LEVEL_NOTHING = 0 , DNP3_PHYS_DECODE_LEVEL_LENGTH = 1 , DNP3_PHYS_DECODE_LEVEL_DATA = 2 }
 Controls how data transmitted at the physical layer (TCP, serial, etc) is logged. More...
 
enum  dnp3_trip_close_code_t { DNP3_TRIP_CLOSE_CODE_NUL = 0 , DNP3_TRIP_CLOSE_CODE_CLOSE = 1 , DNP3_TRIP_CLOSE_CODE_TRIP = 2 , DNP3_TRIP_CLOSE_CODE_RESERVED = 3 }
 Trip-Close Code field, used in conjunction with dnp3_op_type_t to specify a control operation. More...
 
enum  dnp3_op_type_t {
  DNP3_OP_TYPE_NUL = 0 , DNP3_OP_TYPE_PULSE_ON = 1 , DNP3_OP_TYPE_PULSE_OFF = 2 , DNP3_OP_TYPE_LATCH_ON = 3 ,
  DNP3_OP_TYPE_LATCH_OFF = 4
}
 Operation Type field, used in conjunction with dnp3_trip_close_code_t to specify a control operation. More...
 
enum  dnp3_time_quality_t { DNP3_TIME_QUALITY_SYNCHRONIZED_TIME = 0 , DNP3_TIME_QUALITY_UNSYNCHRONIZED_TIME = 1 , DNP3_TIME_QUALITY_INVALID_TIME = 2 }
 Timestamp quality. More...
 
enum  dnp3_double_bit_t { DNP3_DOUBLE_BIT_INTERMEDIATE = 0 , DNP3_DOUBLE_BIT_DETERMINED_OFF = 1 , DNP3_DOUBLE_BIT_DETERMINED_ON = 2 , DNP3_DOUBLE_BIT_INDETERMINATE = 3 }
 Double-bit binary input value. More...
 
enum  dnp3_analog_command_type_t { DNP3_ANALOG_COMMAND_TYPE_I16 = 0 , DNP3_ANALOG_COMMAND_TYPE_I32 = 1 , DNP3_ANALOG_COMMAND_TYPE_F32 = 2 , DNP3_ANALOG_COMMAND_TYPE_F64 = 3 }
 Describes the encoding of the commanded value. More...
 
enum  dnp3_min_tls_version_t { DNP3_MIN_TLS_VERSION_V12 = 0 , DNP3_MIN_TLS_VERSION_V13 = 1 }
 Minimum TLS version to allow. More...
 
enum  dnp3_certificate_mode_t { DNP3_CERTIFICATE_MODE_AUTHORITY_BASED = 0 , DNP3_CERTIFICATE_MODE_SELF_SIGNED = 1 }
 Determines how the certificate(s) presented by the peer are validated. More...
 
enum  dnp3_variation_list_attr_t { DNP3_VARIATION_LIST_ATTR_UNKNOWN = 0 , DNP3_VARIATION_LIST_ATTR_LIST_OF_VARIATIONS = 1 }
 Enumeration of all the variation list attributes. More...
 
enum  dnp3_string_attr_t {
  DNP3_STRING_ATTR_UNKNOWN = 0 , DNP3_STRING_ATTR_CONFIG_ID = 1 , DNP3_STRING_ATTR_CONFIG_VERSION = 2 , DNP3_STRING_ATTR_CONFIG_DIGEST_ALGORITHM = 3 ,
  DNP3_STRING_ATTR_MASTER_RESOURCE_ID = 4 , DNP3_STRING_ATTR_USER_ASSIGNED_SECONDARY_OPERATOR_NAME = 5 , DNP3_STRING_ATTR_USER_ASSIGNED_PRIMARY_OPERATOR_NAME = 6 , DNP3_STRING_ATTR_USER_ASSIGNED_SYSTEM_NAME = 7 ,
  DNP3_STRING_ATTR_USER_SPECIFIC_ATTRIBUTES = 8 , DNP3_STRING_ATTR_DEVICE_MANUFACTURER_SOFTWARE_VERSION = 9 , DNP3_STRING_ATTR_DEVICE_MANUFACTURER_HARDWARE_VERSION = 10 , DNP3_STRING_ATTR_USER_ASSIGNED_OWNER_NAME = 11 ,
  DNP3_STRING_ATTR_USER_ASSIGNED_LOCATION = 12 , DNP3_STRING_ATTR_USER_ASSIGNED_ID = 13 , DNP3_STRING_ATTR_USER_ASSIGNED_DEVICE_NAME = 14 , DNP3_STRING_ATTR_DEVICE_SERIAL_NUMBER = 15 ,
  DNP3_STRING_ATTR_DEVICE_SUBSET_AND_CONFORMANCE = 16 , DNP3_STRING_ATTR_PRODUCT_NAME_AND_MODEL = 17 , DNP3_STRING_ATTR_DEVICE_MANUFACTURERS_NAME = 18
}
 Enumeration of all the default string attributes. More...
 
enum  dnp3_uint_attr_t {
  DNP3_UINT_ATTR_UNKNOWN = 0 , DNP3_UINT_ATTR_SECURE_AUTH_VERSION = 1 , DNP3_UINT_ATTR_NUM_SECURITY_STATS_PER_ASSOC = 2 , DNP3_UINT_ATTR_NUM_MASTER_DEFINED_DATA_SET_PROTO = 3 ,
  DNP3_UINT_ATTR_NUM_OUTSTATION_DEFINED_DATA_SET_PROTO = 4 , DNP3_UINT_ATTR_NUM_MASTER_DEFINED_DATA_SETS = 5 , DNP3_UINT_ATTR_NUM_OUTSTATION_DEFINED_DATA_SETS = 6 , DNP3_UINT_ATTR_MAX_BINARY_OUTPUT_PER_REQUEST = 7 ,
  DNP3_UINT_ATTR_LOCAL_TIMING_ACCURACY = 8 , DNP3_UINT_ATTR_DURATION_OF_TIME_ACCURACY = 9 , DNP3_UINT_ATTR_MAX_ANALOG_OUTPUT_INDEX = 10 , DNP3_UINT_ATTR_NUM_ANALOG_OUTPUTS = 11 ,
  DNP3_UINT_ATTR_MAX_BINARY_OUTPUT_INDEX = 12 , DNP3_UINT_ATTR_NUM_BINARY_OUTPUTS = 13 , DNP3_UINT_ATTR_MAX_COUNTER_INDEX = 14 , DNP3_UINT_ATTR_NUM_COUNTER = 15 ,
  DNP3_UINT_ATTR_MAX_ANALOG_INPUT_INDEX = 16 , DNP3_UINT_ATTR_NUM_ANALOG_INPUT = 17 , DNP3_UINT_ATTR_MAX_DOUBLE_BIT_BINARY_INPUT_INDEX = 18 , DNP3_UINT_ATTR_NUM_DOUBLE_BIT_BINARY_INPUT = 19 ,
  DNP3_UINT_ATTR_MAX_BINARY_INPUT_INDEX = 20 , DNP3_UINT_ATTR_NUM_BINARY_INPUT = 21 , DNP3_UINT_ATTR_MAX_TX_FRAGMENT_SIZE = 22 , DNP3_UINT_ATTR_MAX_RX_FRAGMENT_SIZE = 23
}
 Enumeration of all the default uint attributes. More...
 
enum  dnp3_int_attr_t { DNP3_INT_ATTR_UNKNOWN = 0 }
 Enumeration of all the default integer attributes. More...
 
enum  dnp3_bool_attr_t {
  DNP3_BOOL_ATTR_UNKNOWN = 0 , DNP3_BOOL_ATTR_SUPPORTS_ANALOG_OUTPUT_EVENTS = 1 , DNP3_BOOL_ATTR_SUPPORTS_BINARY_OUTPUT_EVENTS = 2 , DNP3_BOOL_ATTR_SUPPORTS_FROZEN_COUNTER_EVENTS = 3 ,
  DNP3_BOOL_ATTR_SUPPORTS_FROZEN_COUNTERS = 4 , DNP3_BOOL_ATTR_SUPPORTS_COUNTER_EVENTS = 5 , DNP3_BOOL_ATTR_SUPPORTS_FROZEN_ANALOG_INPUTS = 6 , DNP3_BOOL_ATTR_SUPPORTS_ANALOG_INPUT_EVENTS = 7 ,
  DNP3_BOOL_ATTR_SUPPORTS_DOUBLE_BIT_BINARY_INPUT_EVENTS = 8 , DNP3_BOOL_ATTR_SUPPORTS_BINARY_INPUT_EVENTS = 9
}
 Enumeration of all the known boolean attributes. More...
 
enum  dnp3_time_attr_t { DNP3_TIME_ATTR_UNKNOWN = 0 , DNP3_TIME_ATTR_CONFIG_BUILD_DATE = 1 , DNP3_TIME_ATTR_CONFIG_LAST_CHANGE_DATE = 2 }
 Enumeration of all the known DNP3 Time attributes. More...
 
enum  dnp3_octet_string_attr_t { DNP3_OCTET_STRING_ATTR_UNKNOWN = 0 , DNP3_OCTET_STRING_ATTR_CONFIG_DIGEST = 1 }
 Enumeration of all known octet-string attributes. More...
 
enum  dnp3_bit_string_attr_t { DNP3_BIT_STRING_ATTR_UNKNOWN = 0 }
 Enumeration of all known bit-string attributes. More...
 
enum  dnp3_float_attr_t { DNP3_FLOAT_ATTR_UNKNOWN = 0 , DNP3_FLOAT_ATTR_DEVICE_LOCATION_ALTITUDE = 1 , DNP3_FLOAT_ATTR_DEVICE_LOCATION_LONGITUDE = 2 , DNP3_FLOAT_ATTR_DEVICE_LOCATION_LATITUDE = 3 }
 Enumeration of all known float attributes. More...
 
enum  dnp3_nothing_t { DNP3_NOTHING_NOTHING = 0 }
 A single value enum which is used as a placeholder for futures that don't return a value. More...
 
enum  dnp3_port_state_t { DNP3_PORT_STATE_DISABLED = 0 , DNP3_PORT_STATE_WAIT = 1 , DNP3_PORT_STATE_OPEN = 2 , DNP3_PORT_STATE_SHUTDOWN = 3 }
 State of the serial port. More...
 
enum  dnp3_client_state_t {
  DNP3_CLIENT_STATE_DISABLED = 0 , DNP3_CLIENT_STATE_CONNECTING = 1 , DNP3_CLIENT_STATE_CONNECTED = 2 , DNP3_CLIENT_STATE_WAIT_AFTER_FAILED_CONNECT = 3 ,
  DNP3_CLIENT_STATE_WAIT_AFTER_DISCONNECT = 4 , DNP3_CLIENT_STATE_SHUTDOWN = 5
}
 State of the client connection. More...
 
enum  dnp3_variation_t {
  DNP3_VARIATION_GROUP0 = 0 , DNP3_VARIATION_GROUP0_VAR254 = 1 , DNP3_VARIATION_GROUP1_VAR0 = 2 , DNP3_VARIATION_GROUP1_VAR1 = 3 ,
  DNP3_VARIATION_GROUP1_VAR2 = 4 , DNP3_VARIATION_GROUP2_VAR0 = 5 , DNP3_VARIATION_GROUP2_VAR1 = 6 , DNP3_VARIATION_GROUP2_VAR2 = 7 ,
  DNP3_VARIATION_GROUP2_VAR3 = 8 , DNP3_VARIATION_GROUP3_VAR0 = 9 , DNP3_VARIATION_GROUP3_VAR1 = 10 , DNP3_VARIATION_GROUP3_VAR2 = 11 ,
  DNP3_VARIATION_GROUP4_VAR0 = 12 , DNP3_VARIATION_GROUP4_VAR1 = 13 , DNP3_VARIATION_GROUP4_VAR2 = 14 , DNP3_VARIATION_GROUP4_VAR3 = 15 ,
  DNP3_VARIATION_GROUP10_VAR0 = 16 , DNP3_VARIATION_GROUP10_VAR1 = 17 , DNP3_VARIATION_GROUP10_VAR2 = 18 , DNP3_VARIATION_GROUP11_VAR0 = 19 ,
  DNP3_VARIATION_GROUP11_VAR1 = 20 , DNP3_VARIATION_GROUP11_VAR2 = 21 , DNP3_VARIATION_GROUP12_VAR1 = 22 , DNP3_VARIATION_GROUP13_VAR1 = 23 ,
  DNP3_VARIATION_GROUP13_VAR2 = 24 , DNP3_VARIATION_GROUP20_VAR0 = 25 , DNP3_VARIATION_GROUP20_VAR1 = 26 , DNP3_VARIATION_GROUP20_VAR2 = 27 ,
  DNP3_VARIATION_GROUP20_VAR5 = 28 , DNP3_VARIATION_GROUP20_VAR6 = 29 , DNP3_VARIATION_GROUP21_VAR0 = 30 , DNP3_VARIATION_GROUP21_VAR1 = 31 ,
  DNP3_VARIATION_GROUP21_VAR2 = 32 , DNP3_VARIATION_GROUP21_VAR5 = 33 , DNP3_VARIATION_GROUP21_VAR6 = 34 , DNP3_VARIATION_GROUP21_VAR9 = 35 ,
  DNP3_VARIATION_GROUP21_VAR10 = 36 , DNP3_VARIATION_GROUP22_VAR0 = 37 , DNP3_VARIATION_GROUP22_VAR1 = 38 , DNP3_VARIATION_GROUP22_VAR2 = 39 ,
  DNP3_VARIATION_GROUP22_VAR5 = 40 , DNP3_VARIATION_GROUP22_VAR6 = 41 , DNP3_VARIATION_GROUP23_VAR0 = 42 , DNP3_VARIATION_GROUP23_VAR1 = 43 ,
  DNP3_VARIATION_GROUP23_VAR2 = 44 , DNP3_VARIATION_GROUP23_VAR5 = 45 , DNP3_VARIATION_GROUP23_VAR6 = 46 , DNP3_VARIATION_GROUP30_VAR0 = 47 ,
  DNP3_VARIATION_GROUP30_VAR1 = 48 , DNP3_VARIATION_GROUP30_VAR2 = 49 , DNP3_VARIATION_GROUP30_VAR3 = 50 , DNP3_VARIATION_GROUP30_VAR4 = 51 ,
  DNP3_VARIATION_GROUP30_VAR5 = 52 , DNP3_VARIATION_GROUP30_VAR6 = 53 , DNP3_VARIATION_GROUP31_VAR0 = 54 , DNP3_VARIATION_GROUP31_VAR1 = 55 ,
  DNP3_VARIATION_GROUP31_VAR2 = 56 , DNP3_VARIATION_GROUP31_VAR3 = 57 , DNP3_VARIATION_GROUP31_VAR4 = 58 , DNP3_VARIATION_GROUP31_VAR5 = 59 ,
  DNP3_VARIATION_GROUP31_VAR6 = 60 , DNP3_VARIATION_GROUP31_VAR7 = 61 , DNP3_VARIATION_GROUP31_VAR8 = 62 , DNP3_VARIATION_GROUP32_VAR0 = 63 ,
  DNP3_VARIATION_GROUP32_VAR1 = 64 , DNP3_VARIATION_GROUP32_VAR2 = 65 , DNP3_VARIATION_GROUP32_VAR3 = 66 , DNP3_VARIATION_GROUP32_VAR4 = 67 ,
  DNP3_VARIATION_GROUP32_VAR5 = 68 , DNP3_VARIATION_GROUP32_VAR6 = 69 , DNP3_VARIATION_GROUP32_VAR7 = 70 , DNP3_VARIATION_GROUP32_VAR8 = 71 ,
  DNP3_VARIATION_GROUP33_VAR0 = 72 , DNP3_VARIATION_GROUP33_VAR1 = 73 , DNP3_VARIATION_GROUP33_VAR2 = 74 , DNP3_VARIATION_GROUP33_VAR3 = 75 ,
  DNP3_VARIATION_GROUP33_VAR4 = 76 , DNP3_VARIATION_GROUP33_VAR5 = 77 , DNP3_VARIATION_GROUP33_VAR6 = 78 , DNP3_VARIATION_GROUP33_VAR7 = 79 ,
  DNP3_VARIATION_GROUP33_VAR8 = 80 , DNP3_VARIATION_GROUP34_VAR0 = 81 , DNP3_VARIATION_GROUP34_VAR1 = 82 , DNP3_VARIATION_GROUP34_VAR2 = 83 ,
  DNP3_VARIATION_GROUP34_VAR3 = 84 , DNP3_VARIATION_GROUP40_VAR0 = 85 , DNP3_VARIATION_GROUP40_VAR1 = 86 , DNP3_VARIATION_GROUP40_VAR2 = 87 ,
  DNP3_VARIATION_GROUP40_VAR3 = 88 , DNP3_VARIATION_GROUP40_VAR4 = 89 , DNP3_VARIATION_GROUP41_VAR1 = 90 , DNP3_VARIATION_GROUP41_VAR2 = 91 ,
  DNP3_VARIATION_GROUP41_VAR3 = 92 , DNP3_VARIATION_GROUP41_VAR4 = 93 , DNP3_VARIATION_GROUP42_VAR0 = 94 , DNP3_VARIATION_GROUP42_VAR1 = 95 ,
  DNP3_VARIATION_GROUP42_VAR2 = 96 , DNP3_VARIATION_GROUP42_VAR3 = 97 , DNP3_VARIATION_GROUP42_VAR4 = 98 , DNP3_VARIATION_GROUP42_VAR5 = 99 ,
  DNP3_VARIATION_GROUP42_VAR6 = 100 , DNP3_VARIATION_GROUP42_VAR7 = 101 , DNP3_VARIATION_GROUP42_VAR8 = 102 , DNP3_VARIATION_GROUP43_VAR1 = 103 ,
  DNP3_VARIATION_GROUP43_VAR2 = 104 , DNP3_VARIATION_GROUP43_VAR3 = 105 , DNP3_VARIATION_GROUP43_VAR4 = 106 , DNP3_VARIATION_GROUP43_VAR5 = 107 ,
  DNP3_VARIATION_GROUP43_VAR6 = 108 , DNP3_VARIATION_GROUP43_VAR7 = 109 , DNP3_VARIATION_GROUP43_VAR8 = 110 , DNP3_VARIATION_GROUP50_VAR1 = 111 ,
  DNP3_VARIATION_GROUP50_VAR2 = 112 , DNP3_VARIATION_GROUP50_VAR3 = 113 , DNP3_VARIATION_GROUP50_VAR4 = 114 , DNP3_VARIATION_GROUP51_VAR1 = 115 ,
  DNP3_VARIATION_GROUP51_VAR2 = 116 , DNP3_VARIATION_GROUP52_VAR1 = 117 , DNP3_VARIATION_GROUP52_VAR2 = 118 , DNP3_VARIATION_GROUP60_VAR1 = 119 ,
  DNP3_VARIATION_GROUP60_VAR2 = 120 , DNP3_VARIATION_GROUP60_VAR3 = 121 , DNP3_VARIATION_GROUP60_VAR4 = 122 , DNP3_VARIATION_GROUP70_VAR2 = 123 ,
  DNP3_VARIATION_GROUP70_VAR3 = 124 , DNP3_VARIATION_GROUP70_VAR4 = 125 , DNP3_VARIATION_GROUP70_VAR5 = 126 , DNP3_VARIATION_GROUP70_VAR6 = 127 ,
  DNP3_VARIATION_GROUP70_VAR7 = 128 , DNP3_VARIATION_GROUP70_VAR8 = 129 , DNP3_VARIATION_GROUP80_VAR1 = 130 , DNP3_VARIATION_GROUP102_VAR0 = 131 ,
  DNP3_VARIATION_GROUP102_VAR1 = 132 , DNP3_VARIATION_GROUP110 = 133 , DNP3_VARIATION_GROUP111 = 134
}
 Group/Variation. More...
 
enum  dnp3_data_bits_t { DNP3_DATA_BITS_FIVE = 0 , DNP3_DATA_BITS_SIX = 1 , DNP3_DATA_BITS_SEVEN = 2 , DNP3_DATA_BITS_EIGHT = 3 }
 Number of bits per character. More...
 
enum  dnp3_flow_control_t { DNP3_FLOW_CONTROL_NONE = 0 , DNP3_FLOW_CONTROL_SOFTWARE = 1 , DNP3_FLOW_CONTROL_HARDWARE = 2 }
 Flow control modes. More...
 
enum  dnp3_parity_t { DNP3_PARITY_NONE = 0 , DNP3_PARITY_ODD = 1 , DNP3_PARITY_EVEN = 2 }
 Parity checking modes. More...
 
enum  dnp3_stop_bits_t { DNP3_STOP_BITS_ONE = 0 , DNP3_STOP_BITS_TWO = 1 }
 Number of stop bits. More...
 
enum  dnp3_link_error_mode_t { DNP3_LINK_ERROR_MODE_DISCARD = 0 , DNP3_LINK_ERROR_MODE_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  dnp3_function_code_t {
  DNP3_FUNCTION_CODE_CONFIRM = 0 , DNP3_FUNCTION_CODE_READ = 1 , DNP3_FUNCTION_CODE_WRITE = 2 , DNP3_FUNCTION_CODE_SELECT = 3 ,
  DNP3_FUNCTION_CODE_OPERATE = 4 , DNP3_FUNCTION_CODE_DIRECT_OPERATE = 5 , DNP3_FUNCTION_CODE_DIRECT_OPERATE_NO_RESPONSE = 6 , DNP3_FUNCTION_CODE_IMMEDIATE_FREEZE = 7 ,
  DNP3_FUNCTION_CODE_IMMEDIATE_FREEZE_NO_RESPONSE = 8 , DNP3_FUNCTION_CODE_FREEZE_CLEAR = 9 , DNP3_FUNCTION_CODE_FREEZE_CLEAR_NO_RESPONSE = 10 , DNP3_FUNCTION_CODE_FREEZE_AT_TIME = 11 ,
  DNP3_FUNCTION_CODE_FREEZE_AT_TIME_NO_RESPONSE = 12 , DNP3_FUNCTION_CODE_COLD_RESTART = 13 , DNP3_FUNCTION_CODE_WARM_RESTART = 14 , DNP3_FUNCTION_CODE_INITIALIZE_DATA = 15 ,
  DNP3_FUNCTION_CODE_INITIALIZE_APPLICATION = 16 , DNP3_FUNCTION_CODE_START_APPLICATION = 17 , DNP3_FUNCTION_CODE_STOP_APPLICATION = 18 , DNP3_FUNCTION_CODE_SAVE_CONFIGURATION = 19 ,
  DNP3_FUNCTION_CODE_ENABLE_UNSOLICITED = 20 , DNP3_FUNCTION_CODE_DISABLE_UNSOLICITED = 21 , DNP3_FUNCTION_CODE_ASSIGN_CLASS = 22 , DNP3_FUNCTION_CODE_DELAY_MEASURE = 23 ,
  DNP3_FUNCTION_CODE_RECORD_CURRENT_TIME = 24 , DNP3_FUNCTION_CODE_OPEN_FILE = 25 , DNP3_FUNCTION_CODE_CLOSE_FILE = 26 , DNP3_FUNCTION_CODE_DELETE_FILE = 27 ,
  DNP3_FUNCTION_CODE_GET_FILE_INFO = 28 , DNP3_FUNCTION_CODE_AUTHENTICATE_FILE = 29 , DNP3_FUNCTION_CODE_ABORT_FILE = 30 , DNP3_FUNCTION_CODE_RESPONSE = 31 ,
  DNP3_FUNCTION_CODE_UNSOLICITED_RESPONSE = 32
}
 Application layer function code. More...
 
enum  dnp3_file_type_t { DNP3_FILE_TYPE_DIRECTORY = 0 , DNP3_FILE_TYPE_SIMPLE = 1 , DNP3_FILE_TYPE_OTHER = 2 }
 File type enumeration used in Group 70 objects. More...
 
enum  dnp3_file_error_t {
  DNP3_FILE_ERROR_OK = 0 , DNP3_FILE_ERROR_BAD_STATUS = 1 , DNP3_FILE_ERROR_NO_PERMISSION = 2 , DNP3_FILE_ERROR_BAD_BLOCK_NUM = 3 ,
  DNP3_FILE_ERROR_ABORT_BY_USER = 4 , DNP3_FILE_ERROR_MAX_LENGTH_EXCEEDED = 5 , DNP3_FILE_ERROR_WRONG_HANDLE = 6 , DNP3_FILE_ERROR_TOO_MANY_REQUESTS = 7 ,
  DNP3_FILE_ERROR_IIN_ERROR = 8 , DNP3_FILE_ERROR_BAD_RESPONSE = 9 , DNP3_FILE_ERROR_RESPONSE_TIMEOUT = 10 , DNP3_FILE_ERROR_WRITE_ERROR = 11 ,
  DNP3_FILE_ERROR_NO_CONNECTION = 12 , DNP3_FILE_ERROR_SHUTDOWN = 13 , DNP3_FILE_ERROR_ASSOCIATION_REMOVED = 14 , DNP3_FILE_ERROR_BAD_ENCODING = 15
}
 Errors that can occur during file transfer. More...
 
enum  dnp3_file_mode_t { DNP3_FILE_MODE_READ = 0 , DNP3_FILE_MODE_WRITE = 1 , DNP3_FILE_MODE_APPEND = 2 }
 Different modes in which files may be opened. More...
 
enum  dnp3_udp_socket_mode_t { DNP3_UDP_SOCKET_MODE_ONE_TO_ONE = 0 , DNP3_UDP_SOCKET_MODE_ONE_TO_MANY = 1 }
 Describes how the UDP socket reads and writes datagrams from remote endpoint(s) More...
 
enum  dnp3_link_read_mode_t { DNP3_LINK_READ_MODE_STREAM = 0 , DNP3_LINK_READ_MODE_DATAGRAM = 1 }
 Controls how the link-layer parser treats frames that span multiple calls to read of the physical layer. More...
 
enum  dnp3_log_level_t {
  DNP3_LOG_LEVEL_ERROR = 0 , DNP3_LOG_LEVEL_WARN = 1 , DNP3_LOG_LEVEL_INFO = 2 , DNP3_LOG_LEVEL_DEBUG = 3 ,
  DNP3_LOG_LEVEL_TRACE = 4
}
 Log level. More...
 
enum  dnp3_log_output_format_t { DNP3_LOG_OUTPUT_FORMAT_TEXT = 0 , DNP3_LOG_OUTPUT_FORMAT_JSON = 1 }
 Describes how each log event is formatted. More...
 
enum  dnp3_time_format_t { DNP3_TIME_FORMAT_NONE = 0 , DNP3_TIME_FORMAT_RFC_3339 = 1 , DNP3_TIME_FORMAT_SYSTEM = 2 }
 Describes if and how the time will be formatted in log messages. More...
 
enum  dnp3_response_function_t { DNP3_RESPONSE_FUNCTION_RESPONSE = 0 , DNP3_RESPONSE_FUNCTION_UNSOLICITED_RESPONSE = 1 }
 Type of response. More...
 
enum  dnp3_qualifier_code_t {
  DNP3_QUALIFIER_CODE_RANGE8 = 0 , DNP3_QUALIFIER_CODE_RANGE16 = 1 , DNP3_QUALIFIER_CODE_ALL_OBJECTS = 2 , DNP3_QUALIFIER_CODE_COUNT8 = 3 ,
  DNP3_QUALIFIER_CODE_COUNT16 = 4 , DNP3_QUALIFIER_CODE_COUNT_AND_PREFIX_8 = 5 , DNP3_QUALIFIER_CODE_COUNT_AND_PREFIX_16 = 6 , DNP3_QUALIFIER_CODE_FREE_FORMAT_16 = 7
}
 Qualifier code used in the response. More...
 
enum  dnp3_read_type_t { DNP3_READ_TYPE_STARTUP_INTEGRITY = 0 , DNP3_READ_TYPE_UNSOLICITED = 1 , DNP3_READ_TYPE_SINGLE_POLL = 2 , DNP3_READ_TYPE_PERIODIC_POLL = 3 }
 Describes the source of a read event. More...
 
enum  dnp3_empty_response_error_t {
  DNP3_EMPTY_RESPONSE_ERROR_OK = 0 , DNP3_EMPTY_RESPONSE_ERROR_REJECTED_BY_IIN2 = 1 , DNP3_EMPTY_RESPONSE_ERROR_TOO_MANY_REQUESTS = 2 , DNP3_EMPTY_RESPONSE_ERROR_IIN_ERROR = 3 ,
  DNP3_EMPTY_RESPONSE_ERROR_BAD_RESPONSE = 4 , DNP3_EMPTY_RESPONSE_ERROR_RESPONSE_TIMEOUT = 5 , DNP3_EMPTY_RESPONSE_ERROR_WRITE_ERROR = 6 , DNP3_EMPTY_RESPONSE_ERROR_NO_CONNECTION = 7 ,
  DNP3_EMPTY_RESPONSE_ERROR_SHUTDOWN = 8 , DNP3_EMPTY_RESPONSE_ERROR_ASSOCIATION_REMOVED = 9 , DNP3_EMPTY_RESPONSE_ERROR_BAD_ENCODING = 10
}
 Errors that may occur when performing a request that expects a response with zero object headers. More...
 
enum  dnp3_auto_time_sync_t { DNP3_AUTO_TIME_SYNC_NONE = 0 , DNP3_AUTO_TIME_SYNC_LAN = 1 , DNP3_AUTO_TIME_SYNC_NON_LAN = 2 }
 Automatic time synchronization configuration. More...
 
enum  dnp3_task_type_t {
  DNP3_TASK_TYPE_USER_READ = 0 , DNP3_TASK_TYPE_PERIODIC_POLL = 1 , DNP3_TASK_TYPE_STARTUP_INTEGRITY = 2 , DNP3_TASK_TYPE_AUTO_EVENT_SCAN = 3 ,
  DNP3_TASK_TYPE_COMMAND = 4 , DNP3_TASK_TYPE_CLEAR_RESTART_BIT = 5 , DNP3_TASK_TYPE_ENABLE_UNSOLICITED = 6 , DNP3_TASK_TYPE_DISABLE_UNSOLICITED = 7 ,
  DNP3_TASK_TYPE_TIME_SYNC = 8 , DNP3_TASK_TYPE_RESTART = 9 , DNP3_TASK_TYPE_WRITE_DEAD_BANDS = 10 , DNP3_TASK_TYPE_GENERIC_EMPTY_RESPONSE = 11 ,
  DNP3_TASK_TYPE_FILE_READ = 12 , DNP3_TASK_TYPE_GET_FILE_INFO = 13 , DNP3_TASK_TYPE_FILE_AUTH = 14 , DNP3_TASK_TYPE_FILE_OPEN = 15 ,
  DNP3_TASK_TYPE_FILE_WRITE_BLOCK = 16 , DNP3_TASK_TYPE_FILE_CLOSE = 17
}
 Task type used in dnp3_association_information_t. More...
 
enum  dnp3_task_error_t {
  DNP3_TASK_ERROR_TOO_MANY_REQUESTS = 0 , DNP3_TASK_ERROR_IIN_ERROR = 1 , DNP3_TASK_ERROR_BAD_RESPONSE = 2 , DNP3_TASK_ERROR_RESPONSE_TIMEOUT = 3 ,
  DNP3_TASK_ERROR_WRITE_ERROR = 4 , DNP3_TASK_ERROR_NO_CONNECTION = 5 , DNP3_TASK_ERROR_SHUTDOWN = 6 , DNP3_TASK_ERROR_ASSOCIATION_REMOVED = 7 ,
  DNP3_TASK_ERROR_BAD_ENCODING = 8
}
 Task error used in dnp3_association_information_t. More...
 
enum  dnp3_read_error_t {
  DNP3_READ_ERROR_OK = 0 , DNP3_READ_ERROR_TOO_MANY_REQUESTS = 1 , DNP3_READ_ERROR_IIN_ERROR = 2 , DNP3_READ_ERROR_BAD_RESPONSE = 3 ,
  DNP3_READ_ERROR_RESPONSE_TIMEOUT = 4 , DNP3_READ_ERROR_WRITE_ERROR = 5 , DNP3_READ_ERROR_NO_CONNECTION = 6 , DNP3_READ_ERROR_SHUTDOWN = 7 ,
  DNP3_READ_ERROR_ASSOCIATION_REMOVED = 8 , DNP3_READ_ERROR_BAD_ENCODING = 9
}
 Errors that can occur during a read operation. More...
 
enum  dnp3_command_mode_t { DNP3_COMMAND_MODE_DIRECT_OPERATE = 0 , DNP3_COMMAND_MODE_SELECT_BEFORE_OPERATE = 1 }
 Command operation mode. More...
 
enum  dnp3_command_error_t {
  DNP3_COMMAND_ERROR_OK = 0 , DNP3_COMMAND_ERROR_BAD_STATUS = 1 , DNP3_COMMAND_ERROR_HEADER_MISMATCH = 2 , DNP3_COMMAND_ERROR_TOO_MANY_REQUESTS = 3 ,
  DNP3_COMMAND_ERROR_IIN_ERROR = 4 , DNP3_COMMAND_ERROR_BAD_RESPONSE = 5 , DNP3_COMMAND_ERROR_RESPONSE_TIMEOUT = 6 , DNP3_COMMAND_ERROR_WRITE_ERROR = 7 ,
  DNP3_COMMAND_ERROR_NO_CONNECTION = 8 , DNP3_COMMAND_ERROR_SHUTDOWN = 9 , DNP3_COMMAND_ERROR_ASSOCIATION_REMOVED = 10 , DNP3_COMMAND_ERROR_BAD_ENCODING = 11
}
 Result of a command. More...
 
enum  dnp3_time_sync_mode_t { DNP3_TIME_SYNC_MODE_LAN = 0 , DNP3_TIME_SYNC_MODE_NON_LAN = 1 }
 Time synchronization mode. More...
 
enum  dnp3_time_sync_error_t {
  DNP3_TIME_SYNC_ERROR_OK = 0 , DNP3_TIME_SYNC_ERROR_CLOCK_ROLLBACK = 1 , DNP3_TIME_SYNC_ERROR_SYSTEM_TIME_NOT_UNIX = 2 , DNP3_TIME_SYNC_ERROR_BAD_OUTSTATION_TIME_DELAY = 3 ,
  DNP3_TIME_SYNC_ERROR_OVERFLOW = 4 , DNP3_TIME_SYNC_ERROR_STILL_NEEDS_TIME = 5 , DNP3_TIME_SYNC_ERROR_SYSTEM_TIME_NOT_AVAILABLE = 6 , DNP3_TIME_SYNC_ERROR_TOO_MANY_REQUESTS = 7 ,
  DNP3_TIME_SYNC_ERROR_IIN_ERROR = 8 , DNP3_TIME_SYNC_ERROR_BAD_RESPONSE = 9 , DNP3_TIME_SYNC_ERROR_RESPONSE_TIMEOUT = 10 , DNP3_TIME_SYNC_ERROR_WRITE_ERROR = 11 ,
  DNP3_TIME_SYNC_ERROR_NO_CONNECTION = 12 , DNP3_TIME_SYNC_ERROR_SHUTDOWN = 13 , DNP3_TIME_SYNC_ERROR_ASSOCIATION_REMOVED = 14 , DNP3_TIME_SYNC_ERROR_BAD_ENCODING = 15
}
 Possible errors that can occur during a time synchronization procedure. More...
 
enum  dnp3_restart_error_t {
  DNP3_RESTART_ERROR_OK = 0 , DNP3_RESTART_ERROR_TOO_MANY_REQUESTS = 1 , DNP3_RESTART_ERROR_IIN_ERROR = 2 , DNP3_RESTART_ERROR_BAD_RESPONSE = 3 ,
  DNP3_RESTART_ERROR_RESPONSE_TIMEOUT = 4 , DNP3_RESTART_ERROR_WRITE_ERROR = 5 , DNP3_RESTART_ERROR_NO_CONNECTION = 6 , DNP3_RESTART_ERROR_SHUTDOWN = 7 ,
  DNP3_RESTART_ERROR_ASSOCIATION_REMOVED = 8 , DNP3_RESTART_ERROR_BAD_ENCODING = 9
}
 Errors that can occur during a cold/warm restart operation. More...
 
enum  dnp3_link_status_error_t {
  DNP3_LINK_STATUS_ERROR_OK = 0 , DNP3_LINK_STATUS_ERROR_UNEXPECTED_RESPONSE = 1 , DNP3_LINK_STATUS_ERROR_TOO_MANY_REQUESTS = 2 , DNP3_LINK_STATUS_ERROR_IIN_ERROR = 3 ,
  DNP3_LINK_STATUS_ERROR_BAD_RESPONSE = 4 , DNP3_LINK_STATUS_ERROR_RESPONSE_TIMEOUT = 5 , DNP3_LINK_STATUS_ERROR_WRITE_ERROR = 6 , DNP3_LINK_STATUS_ERROR_NO_CONNECTION = 7 ,
  DNP3_LINK_STATUS_ERROR_SHUTDOWN = 8 , DNP3_LINK_STATUS_ERROR_ASSOCIATION_REMOVED = 9 , DNP3_LINK_STATUS_ERROR_BAD_ENCODING = 10
}
 Errors that can occur during a manually initiated link status check. See dnp3_master_channel_check_link_status. More...
 
enum  dnp3_event_class_t { DNP3_EVENT_CLASS_NONE = 0 , DNP3_EVENT_CLASS_CLASS1 = 1 , DNP3_EVENT_CLASS_CLASS2 = 2 , DNP3_EVENT_CLASS_CLASS3 = 3 }
 Event class. More...
 
enum  dnp3_update_result_t { DNP3_UPDATE_RESULT_NO_POINT = 0 , DNP3_UPDATE_RESULT_NO_EVENT = 1 , DNP3_UPDATE_RESULT_CREATED = 2 , DNP3_UPDATE_RESULT_OVERFLOW = 3 }
 Defines what occurred during an update operation and which fields of dnp3_update_info_t are valid. More...
 
enum  dnp3_event_mode_t { DNP3_EVENT_MODE_DETECT = 0 , DNP3_EVENT_MODE_FORCE = 1 , DNP3_EVENT_MODE_SUPPRESS = 2 }
 Controls how events are processed when updating values in the database. More...
 
enum  dnp3_update_flags_type_t {
  DNP3_UPDATE_FLAGS_TYPE_BINARY_INPUT = 0 , DNP3_UPDATE_FLAGS_TYPE_DOUBLE_BIT_BINARY_INPUT = 1 , DNP3_UPDATE_FLAGS_TYPE_BINARY_OUTPUT_STATUS = 2 , DNP3_UPDATE_FLAGS_TYPE_COUNTER = 3 ,
  DNP3_UPDATE_FLAGS_TYPE_FROZEN_COUNTER = 4 , DNP3_UPDATE_FLAGS_TYPE_ANALOG_INPUT = 5 , DNP3_UPDATE_FLAGS_TYPE_ANALOG_OUTPUT_STATUS = 6
}
 Point type on which to update the flags. More...
 
enum  dnp3_static_binary_input_variation_t { DNP3_STATIC_BINARY_INPUT_VARIATION_GROUP1_VAR1 = 0 , DNP3_STATIC_BINARY_INPUT_VARIATION_GROUP1_VAR2 = 1 }
 Static binary input variation. More...
 
enum  dnp3_event_binary_input_variation_t { DNP3_EVENT_BINARY_INPUT_VARIATION_GROUP2_VAR1 = 0 , DNP3_EVENT_BINARY_INPUT_VARIATION_GROUP2_VAR2 = 1 , DNP3_EVENT_BINARY_INPUT_VARIATION_GROUP2_VAR3 = 2 }
 Event binary input variation. More...
 
enum  dnp3_static_double_bit_binary_input_variation_t { DNP3_STATIC_DOUBLE_BIT_BINARY_INPUT_VARIATION_GROUP3_VAR1 = 0 , DNP3_STATIC_DOUBLE_BIT_BINARY_INPUT_VARIATION_GROUP3_VAR2 = 1 }
 Static double-bit binary input variation. More...
 
enum  dnp3_event_double_bit_binary_input_variation_t { DNP3_EVENT_DOUBLE_BIT_BINARY_INPUT_VARIATION_GROUP4_VAR1 = 0 , DNP3_EVENT_DOUBLE_BIT_BINARY_INPUT_VARIATION_GROUP4_VAR2 = 1 , DNP3_EVENT_DOUBLE_BIT_BINARY_INPUT_VARIATION_GROUP4_VAR3 = 2 }
 Event double-bit binary input variation. More...
 
enum  dnp3_static_binary_output_status_variation_t { DNP3_STATIC_BINARY_OUTPUT_STATUS_VARIATION_GROUP10_VAR1 = 0 , DNP3_STATIC_BINARY_OUTPUT_STATUS_VARIATION_GROUP10_VAR2 = 1 }
 Static binary output status variation. More...
 
enum  dnp3_event_binary_output_status_variation_t { DNP3_EVENT_BINARY_OUTPUT_STATUS_VARIATION_GROUP11_VAR1 = 0 , DNP3_EVENT_BINARY_OUTPUT_STATUS_VARIATION_GROUP11_VAR2 = 1 }
 Event binary output status variation. More...
 
enum  dnp3_static_counter_variation_t { DNP3_STATIC_COUNTER_VARIATION_GROUP20_VAR1 = 0 , DNP3_STATIC_COUNTER_VARIATION_GROUP20_VAR2 = 1 , DNP3_STATIC_COUNTER_VARIATION_GROUP20_VAR5 = 2 , DNP3_STATIC_COUNTER_VARIATION_GROUP20_VAR6 = 3 }
 Static counter variation. More...
 
enum  dnp3_event_counter_variation_t { DNP3_EVENT_COUNTER_VARIATION_GROUP22_VAR1 = 0 , DNP3_EVENT_COUNTER_VARIATION_GROUP22_VAR2 = 1 , DNP3_EVENT_COUNTER_VARIATION_GROUP22_VAR5 = 2 , DNP3_EVENT_COUNTER_VARIATION_GROUP22_VAR6 = 3 }
 Event counter variation. More...
 
enum  dnp3_static_frozen_counter_variation_t {
  DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR1 = 0 , DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR2 = 1 , DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR5 = 2 , DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR6 = 3 ,
  DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR9 = 4 , DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR10 = 5
}
 Static frozen counter variation. More...
 
enum  dnp3_event_frozen_counter_variation_t { DNP3_EVENT_FROZEN_COUNTER_VARIATION_GROUP23_VAR1 = 0 , DNP3_EVENT_FROZEN_COUNTER_VARIATION_GROUP23_VAR2 = 1 , DNP3_EVENT_FROZEN_COUNTER_VARIATION_GROUP23_VAR5 = 2 , DNP3_EVENT_FROZEN_COUNTER_VARIATION_GROUP23_VAR6 = 3 }
 Event frozen counter variation. More...
 
enum  dnp3_static_analog_input_variation_t {
  DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR1 = 0 , DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR2 = 1 , DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR3 = 2 , DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR4 = 3 ,
  DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR5 = 4 , DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR6 = 5
}
 Static analog variation. More...
 
enum  dnp3_event_analog_input_variation_t {
  DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR1 = 0 , DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR2 = 1 , DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR3 = 2 , DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR4 = 3 ,
  DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR5 = 4 , DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR6 = 5 , DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR7 = 6 , DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR8 = 7
}
 Event analog variation. More...
 
enum  dnp3_static_analog_output_status_variation_t { DNP3_STATIC_ANALOG_OUTPUT_STATUS_VARIATION_GROUP40_VAR1 = 0 , DNP3_STATIC_ANALOG_OUTPUT_STATUS_VARIATION_GROUP40_VAR2 = 1 , DNP3_STATIC_ANALOG_OUTPUT_STATUS_VARIATION_GROUP40_VAR3 = 2 , DNP3_STATIC_ANALOG_OUTPUT_STATUS_VARIATION_GROUP40_VAR4 = 3 }
 Static analog output status variation. More...
 
enum  dnp3_event_analog_output_status_variation_t {
  DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR1 = 0 , DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR2 = 1 , DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR3 = 2 , DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR4 = 3 ,
  DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR5 = 4 , DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR6 = 5 , DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR7 = 6 , DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR8 = 7
}
 Event analog output status variation. More...
 
enum  dnp3_attr_def_error_t {
  DNP3_ATTR_DEF_ERROR_OK = 0 , DNP3_ATTR_DEF_ERROR_ALREADY_DEFINED = 1 , DNP3_ATTR_DEF_ERROR_RESERVED_VARIATION = 2 , DNP3_ATTR_DEF_ERROR_BAD_TYPE = 3 ,
  DNP3_ATTR_DEF_ERROR_NOT_WRITABLE = 4
}
 Errors that can occur when defining attributes. More...
 
enum  dnp3_restart_delay_type_t { DNP3_RESTART_DELAY_TYPE_NOT_SUPPORTED = 0 , DNP3_RESTART_DELAY_TYPE_SECONDS = 1 , DNP3_RESTART_DELAY_TYPE_MILLI_SECONDS = 2 }
 Type of restart delay value. Used by dnp3_restart_delay_t. More...
 
enum  dnp3_write_time_result_t { DNP3_WRITE_TIME_RESULT_OK = 0 , DNP3_WRITE_TIME_RESULT_PARAMETER_ERROR = 1 , DNP3_WRITE_TIME_RESULT_NOT_SUPPORTED = 2 }
 Write time result used by dnp3_outstation_application_t::write_absolute_time. More...
 
enum  dnp3_freeze_type_t { DNP3_FREEZE_TYPE_IMMEDIATE_FREEZE = 0 , DNP3_FREEZE_TYPE_FREEZE_AND_CLEAR = 1 }
 Freeze operation type. More...
 
enum  dnp3_freeze_result_t { DNP3_FREEZE_RESULT_OK = 0 , DNP3_FREEZE_RESULT_PARAMETER_ERROR = 1 , DNP3_FREEZE_RESULT_NOT_SUPPORTED = 2 }
 Result of a freeze operation. More...
 
enum  dnp3_broadcast_action_t { DNP3_BROADCAST_ACTION_PROCESSED = 0 , DNP3_BROADCAST_ACTION_IGNORED_BY_CONFIGURATION = 1 , DNP3_BROADCAST_ACTION_BAD_OBJECT_HEADERS = 2 , DNP3_BROADCAST_ACTION_UNSUPPORTED_FUNCTION = 3 }
 Enumeration describing how the outstation processed a broadcast request. More...
 
enum  dnp3_operate_type_t { DNP3_OPERATE_TYPE_SELECT_BEFORE_OPERATE = 0 , DNP3_OPERATE_TYPE_DIRECT_OPERATE = 1 , DNP3_OPERATE_TYPE_DIRECT_OPERATE_NO_ACK = 2 }
 Enumeration describing how the master requested the control operation. More...
 
enum  dnp3_connection_state_t { DNP3_CONNECTION_STATE_CONNECTED = 0 , DNP3_CONNECTION_STATE_DISCONNECTED = 1 }
 Outstation connection state for connection-oriented transports, e.g. TCP. More...
 

Functions

void dnp3_disable_client_tcp_no_delay ()
 By default, TCP_NODELAY is set to true for all client TCP/TLS connections. This disables Nagle's algorithm causing the OS to send data written to socket ASAP without waiting. This reduces latency and is usually the appropriate setting for DNP3. This library always writes data in units of link-layer frames so the default setting might cause more TCP fragmentation if clients send requests that exceed a single link-layer frame. More...
 
void dnp3_disable_server_tcp_no_delay ()
 By default, TCP_NODELAY is set to true for all server TCP/TLS connections. This disables Nagle's algorithm causing the OS to send data written to socket ASAP without waiting. This reduces latency and is usually the appropriate setting for DNP3. This library always writes data in units of link-layer frames so the default setting might cause more TCP fragmentation if clients send requests that exceed a single link-layer frame. More...
 
static const char * dnp3_param_error_to_string (dnp3_param_error_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_command_status_to_string (dnp3_command_status_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_app_decode_level_to_string (dnp3_app_decode_level_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_transport_decode_level_to_string (dnp3_transport_decode_level_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_link_decode_level_to_string (dnp3_link_decode_level_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_phys_decode_level_to_string (dnp3_phys_decode_level_t value)
 Converts the enum to a string. More...
 
static dnp3_decode_level_t dnp3_decode_level_init ()
 Initialize log levels to defaults. More...
 
static dnp3_decode_level_t dnp3_decode_level_nothing ()
 Initialize log levels to nothing. More...
 
static dnp3_runtime_config_t dnp3_runtime_config_init ()
 Initialize the configuration to default values. More...
 
dnp3_param_error_t dnp3_runtime_create (dnp3_runtime_config_t config, dnp3_runtime_t **out)
 Creates a new runtime for running the protocol stack. More...
 
void dnp3_runtime_destroy (dnp3_runtime_t *instance)
 Destroy a runtime. More...
 
void dnp3_runtime_set_shutdown_timeout (dnp3_runtime_t *instance, uint64_t timeout)
 By default, when the runtime shuts down, it does so without a timeout and waits indefinitely for all spawned tasks to yield. More...
 
static const char * dnp3_trip_close_code_to_string (dnp3_trip_close_code_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_op_type_to_string (dnp3_op_type_t value)
 Converts the enum to a string. More...
 
static dnp3_control_code_t dnp3_control_code_init (dnp3_trip_close_code_t tcc, bool clear, dnp3_op_type_t op_type)
 Initialize a dnp3_control_code_t instance. More...
 
static dnp3_control_code_t dnp3_control_code_from_op_type (dnp3_op_type_t op_type)
 Initialize a dnp3_control_code_t instance from a dnp3_op_type_t. More...
 
static dnp3_control_code_t dnp3_control_code_from_tcc_and_op_type (dnp3_trip_close_code_t tcc, dnp3_op_type_t op_type)
 Initialize a dnp3_control_code_t instance from a dnp3_trip_close_code_t and a dnp3_op_type_t. More...
 
static dnp3_group12_var1_t dnp3_group12_var1_init (dnp3_control_code_t code, uint8_t count, uint32_t on_time, uint32_t off_time)
 Fully construct dnp3_group12_var1_t specifying the value of each field. More...
 
static dnp3_group12_var1_t dnp3_group12_var1_from_code (dnp3_control_code_t code)
 Construct a dnp3_group12_var1_t from a dnp3_control_code_t. More...
 
static dnp3_flags_t dnp3_flags_init (uint8_t value)
 Fully construct dnp3_flags_t specifying the value of each field. More...
 
static const char * dnp3_time_quality_to_string (dnp3_time_quality_t value)
 Converts the enum to a string. More...
 
static dnp3_timestamp_t dnp3_timestamp_invalid_timestamp ()
 Creates an invalid timestamp struct. More...
 
static dnp3_timestamp_t dnp3_timestamp_synchronized_timestamp (uint64_t value)
 Creates a synchronized timestamp struct. More...
 
static dnp3_timestamp_t dnp3_timestamp_unsynchronized_timestamp (uint64_t value)
 Creates an unsynchronized timestamp struct. More...
 
static const char * dnp3_double_bit_to_string (dnp3_double_bit_t value)
 Converts the enum to a string. More...
 
static dnp3_binary_input_t dnp3_binary_input_init (uint16_t index, bool value, dnp3_flags_t flags, dnp3_timestamp_t time)
 Fully construct dnp3_binary_input_t specifying the value of each field. More...
 
dnp3_binary_input_tdnp3_binary_input_iterator_next (dnp3_binary_input_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
static dnp3_double_bit_binary_input_t dnp3_double_bit_binary_input_init (uint16_t index, dnp3_double_bit_t value, dnp3_flags_t flags, dnp3_timestamp_t time)
 Fully construct dnp3_double_bit_binary_input_t specifying the value of each field. More...
 
dnp3_double_bit_binary_input_tdnp3_double_bit_binary_input_iterator_next (dnp3_double_bit_binary_input_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
static dnp3_binary_output_status_t dnp3_binary_output_status_init (uint16_t index, bool value, dnp3_flags_t flags, dnp3_timestamp_t time)
 Fully construct dnp3_binary_output_status_t specifying the value of each field. More...
 
dnp3_binary_output_status_tdnp3_binary_output_status_iterator_next (dnp3_binary_output_status_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
static dnp3_counter_t dnp3_counter_init (uint16_t index, uint32_t value, dnp3_flags_t flags, dnp3_timestamp_t time)
 Fully construct dnp3_counter_t specifying the value of each field. More...
 
dnp3_counter_tdnp3_counter_iterator_next (dnp3_counter_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
static dnp3_frozen_counter_t dnp3_frozen_counter_init (uint16_t index, uint32_t value, dnp3_flags_t flags, dnp3_timestamp_t time)
 Fully construct dnp3_frozen_counter_t specifying the value of each field. More...
 
dnp3_frozen_counter_tdnp3_frozen_counter_iterator_next (dnp3_frozen_counter_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
static dnp3_analog_input_t dnp3_analog_input_init (uint16_t index, double value, dnp3_flags_t flags, dnp3_timestamp_t time)
 Fully construct dnp3_analog_input_t specifying the value of each field. More...
 
dnp3_analog_input_tdnp3_analog_input_iterator_next (dnp3_analog_input_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
static dnp3_frozen_analog_input_t dnp3_frozen_analog_input_init (uint16_t index, double value, dnp3_flags_t flags, dnp3_timestamp_t time)
 Fully construct dnp3_frozen_analog_input_t specifying the value of each field. More...
 
dnp3_frozen_analog_input_tdnp3_frozen_analog_input_iterator_next (dnp3_frozen_analog_input_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
static dnp3_analog_output_status_t dnp3_analog_output_status_init (uint16_t index, double value, dnp3_flags_t flags, dnp3_timestamp_t time)
 Fully construct dnp3_analog_output_status_t specifying the value of each field. More...
 
dnp3_analog_output_status_tdnp3_analog_output_status_iterator_next (dnp3_analog_output_status_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
static dnp3_binary_output_command_event_t dnp3_binary_output_command_event_init (uint16_t index, dnp3_command_status_t status, bool commanded_state, dnp3_timestamp_t time)
 Fully construct dnp3_binary_output_command_event_t specifying the value of each field. More...
 
dnp3_binary_output_command_event_tdnp3_binary_output_command_event_iterator_next (dnp3_binary_output_command_event_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
static const char * dnp3_analog_command_type_to_string (dnp3_analog_command_type_t value)
 Converts the enum to a string. More...
 
static dnp3_analog_output_command_event_t dnp3_analog_output_command_event_init (uint16_t index, dnp3_command_status_t status, double commanded_value, dnp3_analog_command_type_t command_type, dnp3_timestamp_t time)
 Fully construct dnp3_analog_output_command_event_t specifying the value of each field. More...
 
dnp3_analog_output_command_event_tdnp3_analog_output_command_event_iterator_next (dnp3_analog_output_command_event_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
static dnp3_unsigned_integer_t dnp3_unsigned_integer_init (uint16_t index, uint8_t value)
 Fully construct dnp3_unsigned_integer_t specifying the value of each field. More...
 
dnp3_unsigned_integer_tdnp3_unsigned_integer_iterator_next (dnp3_unsigned_integer_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
uint8_t * dnp3_byte_iterator_next (dnp3_byte_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
dnp3_octet_string_tdnp3_octet_string_iterator_next (dnp3_octet_string_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
dnp3_connect_options_tdnp3_connect_options_create ()
 Initialize to the defaults. More...
 
void dnp3_connect_options_destroy (dnp3_connect_options_t *instance)
 Destroy an instance. More...
 
void dnp3_connect_options_set_timeout (dnp3_connect_options_t *instance, uint64_t timeout)
 Set a timeout for the TCP connection that might be less than the default for the OS. More...
 
dnp3_param_error_t dnp3_connect_options_set_local_endpoint (dnp3_connect_options_t *instance, const char *endpoint)
 Set the local address to which the socket is bound. More...
 
dnp3_endpoint_list_tdnp3_endpoint_list_create (const char *main_endpoint)
 Create a new list of IP endpoints. More...
 
void dnp3_endpoint_list_destroy (dnp3_endpoint_list_t *instance)
 Destroy a previously allocated endpoint list. More...
 
void dnp3_endpoint_list_add (dnp3_endpoint_list_t *instance, const char *endpoint)
 Add an IP endpoint to the list. More...
 
static dnp3_connect_strategy_t dnp3_connect_strategy_init ()
 Initialize to default values. More...
 
static const char * dnp3_min_tls_version_to_string (dnp3_min_tls_version_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_certificate_mode_to_string (dnp3_certificate_mode_t value)
 Converts the enum to a string. More...
 
static dnp3_tls_client_config_t dnp3_tls_client_config_init (const char *dns_name, const char *peer_cert_path, const char *local_cert_path, const char *private_key_path, const char *password)
 construct the configuration with defaults More...
 
static const char * dnp3_variation_list_attr_to_string (dnp3_variation_list_attr_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_string_attr_to_string (dnp3_string_attr_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_uint_attr_to_string (dnp3_uint_attr_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_int_attr_to_string (dnp3_int_attr_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_bool_attr_to_string (dnp3_bool_attr_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_time_attr_to_string (dnp3_time_attr_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_octet_string_attr_to_string (dnp3_octet_string_attr_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_bit_string_attr_to_string (dnp3_bit_string_attr_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_float_attr_to_string (dnp3_float_attr_t value)
 Converts the enum to a string. More...
 
dnp3_attr_item_tdnp3_attr_item_iter_next (dnp3_attr_item_iter_t *iter)
 returns a pointer to the next value or NULL More...
 
static const char * dnp3_nothing_to_string (dnp3_nothing_t value)
 Converts the enum to a string. More...
 
dnp3_byte_collection_tdnp3_byte_collection_create (uint32_t reserve_size)
 Creates an instance of the collection. More...
 
void dnp3_byte_collection_destroy (dnp3_byte_collection_t *instance)
 Destroys an instance of the collection. More...
 
void dnp3_byte_collection_add (dnp3_byte_collection_t *instance, uint8_t value)
 Add a value to the collection. More...
 
static const char * dnp3_port_state_to_string (dnp3_port_state_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_client_state_to_string (dnp3_client_state_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_variation_to_string (dnp3_variation_t value)
 Converts the enum to a string. More...
 
static dnp3_retry_strategy_t dnp3_retry_strategy_init ()
 Initialize to defaults. More...
 
static const char * dnp3_data_bits_to_string (dnp3_data_bits_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_flow_control_to_string (dnp3_flow_control_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_parity_to_string (dnp3_parity_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_stop_bits_to_string (dnp3_stop_bits_t value)
 Converts the enum to a string. More...
 
static dnp3_serial_settings_t dnp3_serial_settings_init ()
 Initialize to default values. More...
 
static const char * dnp3_link_error_mode_to_string (dnp3_link_error_mode_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_function_code_to_string (dnp3_function_code_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_file_type_to_string (dnp3_file_type_t value)
 Converts the enum to a string. More...
 
static dnp3_permission_set_t dnp3_permission_set_init (bool execute, bool write, bool read)
 Fully construct dnp3_permission_set_t specifying the value of each field. More...
 
static dnp3_permission_set_t dnp3_permission_set_none ()
 Permission set with nothing enabled. More...
 
static dnp3_permissions_t dnp3_permissions_init (dnp3_permission_set_t world, dnp3_permission_set_t group, dnp3_permission_set_t owner)
 Fully construct dnp3_permissions_t specifying the value of each field. More...
 
static dnp3_permissions_t dnp3_permissions_none ()
 Permissions with nothing enabled. More...
 
static const char * dnp3_file_error_to_string (dnp3_file_error_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_file_mode_to_string (dnp3_file_mode_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_udp_socket_mode_to_string (dnp3_udp_socket_mode_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_link_read_mode_to_string (dnp3_link_read_mode_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_log_level_to_string (dnp3_log_level_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_log_output_format_to_string (dnp3_log_output_format_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_time_format_to_string (dnp3_time_format_t value)
 Converts the enum to a string. More...
 
static dnp3_logging_config_t dnp3_logging_config_init ()
 Initialize the configuration to default values. More...
 
dnp3_param_error_t dnp3_configure_logging (dnp3_logging_config_t config, dnp3_logger_t logger)
 Set the callback that will receive all the log messages. More...
 
static const char * dnp3_response_function_to_string (dnp3_response_function_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_qualifier_code_to_string (dnp3_qualifier_code_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_read_type_to_string (dnp3_read_type_t value)
 Converts the enum to a string. More...
 
static dnp3_master_channel_config_t dnp3_master_channel_config_init (uint16_t address)
 Initialize dnp3_master_channel_config_t to default values. More...
 
dnp3_write_dead_band_request_tdnp3_write_dead_band_request_create ()
 A builder class to create one or more headers of analog input dead-bands. More...
 
void dnp3_write_dead_band_request_destroy (dnp3_write_dead_band_request_t *instance)
 Destroy a request created with dnp3_write_dead_band_request_create. More...
 
void dnp3_write_dead_band_request_add_g34v1_u8 (dnp3_write_dead_band_request_t *instance, uint8_t index, uint16_t dead_band)
 Add a g34v1 (unsigned 16-bit) dead-band with 8-bit indexing to the request. More...
 
void dnp3_write_dead_band_request_add_g34v2_u8 (dnp3_write_dead_band_request_t *instance, uint8_t index, uint32_t dead_band)
 Add a g34v2 (unsigned 32-bit) dead-band with 8-bit indexing to the request. More...
 
void dnp3_write_dead_band_request_add_g34v3_u8 (dnp3_write_dead_band_request_t *instance, uint8_t index, float dead_band)
 Add a g34v3 (single-precision floating point) dead-band with 8-bit indexing to the request. More...
 
void dnp3_write_dead_band_request_add_g34v1_u16 (dnp3_write_dead_band_request_t *instance, uint16_t index, uint16_t dead_band)
 Add a g34v1 (unsigned 16-bit) dead-band with 16-bit indexing to the request. More...
 
void dnp3_write_dead_band_request_add_g34v2_u16 (dnp3_write_dead_band_request_t *instance, uint16_t index, uint32_t dead_band)
 Add a g34v2 (unsigned 32-bit) dead-band with 16-bit indexing to the request. More...
 
void dnp3_write_dead_band_request_add_g34v3_u16 (dnp3_write_dead_band_request_t *instance, uint16_t index, float dead_band)
 Add a g34v3 (single-precision floating point) dead-band with 16-bit indexing to the request. More...
 
void dnp3_write_dead_band_request_finish_header (dnp3_write_dead_band_request_t *instance)
 If a header is currently being written, then this will complete the header so that no new objects may be added to it. More...
 
static const char * dnp3_empty_response_error_to_string (dnp3_empty_response_error_t value)
 Converts the enum to a string. More...
 
dnp3_param_error_t dnp3_master_channel_create_tcp (dnp3_runtime_t *runtime, dnp3_link_error_mode_t link_error_mode, dnp3_master_channel_config_t config, dnp3_endpoint_list_t *endpoints, dnp3_connect_strategy_t connect_strategy, dnp3_client_state_listener_t listener, dnp3_master_channel_t **out)
 Create a master channel that connects to the specified TCP endpoint(s) More...
 
dnp3_param_error_t dnp3_master_channel_create_tcp_2 (dnp3_runtime_t *runtime, dnp3_link_error_mode_t link_error_mode, dnp3_master_channel_config_t config, dnp3_endpoint_list_t *endpoints, dnp3_connect_strategy_t connect_strategy, dnp3_connect_options_t *connect_options, dnp3_client_state_listener_t listener, dnp3_master_channel_t **out)
 Create a master channel that connects to the specified TCP endpoint(s) More...
 
dnp3_param_error_t dnp3_master_channel_create_serial (dnp3_runtime_t *runtime, dnp3_master_channel_config_t config, const char *path, dnp3_serial_settings_t serial_params, uint64_t open_retry_delay, dnp3_port_state_listener_t listener, dnp3_master_channel_t **out)
 Create a master channel on the specified serial port. More...
 
dnp3_param_error_t dnp3_master_channel_create_udp (dnp3_runtime_t *runtime, dnp3_master_channel_config_t config, const char *local_endpoint, dnp3_link_read_mode_t link_read_mode, uint64_t retry_delay, dnp3_master_channel_t **out)
 Create a UDP master channel on the local endpoint. More...
 
void dnp3_master_channel_destroy (dnp3_master_channel_t *instance)
 Shutdown a dnp3_master_channel_t and release all resources. More...
 
dnp3_param_error_t dnp3_master_channel_create_tls (dnp3_runtime_t *runtime, dnp3_link_error_mode_t link_error_mode, dnp3_master_channel_config_t config, dnp3_endpoint_list_t *endpoints, dnp3_connect_strategy_t connect_strategy, dnp3_client_state_listener_t listener, dnp3_tls_client_config_t tls_config, dnp3_master_channel_t **out)
 Create a master channel that connects to the specified TCP endpoint(s) and establish a TLS session with the remote. More...
 
dnp3_param_error_t dnp3_master_channel_create_tls_2 (dnp3_runtime_t *runtime, dnp3_link_error_mode_t link_error_mode, dnp3_master_channel_config_t config, dnp3_endpoint_list_t *endpoints, dnp3_connect_strategy_t connect_strategy, dnp3_connect_options_t *connect_options, dnp3_client_state_listener_t listener, dnp3_tls_client_config_t tls_config, dnp3_master_channel_t **out)
 Create a master channel that connects to the specified TCP endpoint(s) and establish a TLS session with the remote. More...
 
dnp3_param_error_t dnp3_master_channel_enable (dnp3_master_channel_t *instance)
 start communications More...
 
dnp3_param_error_t dnp3_master_channel_disable (dnp3_master_channel_t *instance)
 stop communications More...
 
static dnp3_event_classes_t dnp3_event_classes_init (bool class1, bool class2, bool class3)
 Fully construct dnp3_event_classes_t specifying the value of each field. More...
 
static dnp3_event_classes_t dnp3_event_classes_all ()
 Initialize all classes to true. More...
 
static dnp3_event_classes_t dnp3_event_classes_none ()
 Initialize all classes to false. More...
 
static dnp3_classes_t dnp3_classes_init (bool class0, bool class1, bool class2, bool class3)
 Fully construct dnp3_classes_t specifying the value of each field. More...
 
static dnp3_classes_t dnp3_classes_all ()
 Initialize all classes to true. More...
 
static dnp3_classes_t dnp3_classes_none ()
 Initialize all classes to false. More...
 
static const char * dnp3_auto_time_sync_to_string (dnp3_auto_time_sync_t value)
 Converts the enum to a string. More...
 
static dnp3_association_config_t dnp3_association_config_init (dnp3_event_classes_t disable_unsol_classes, dnp3_event_classes_t enable_unsol_classes, dnp3_classes_t startup_integrity_classes, dnp3_event_classes_t event_scan_on_events_available)
 Initialize the configuration with the specified values. More...
 
static dnp3_utc_timestamp_t dnp3_utc_timestamp_valid (uint64_t value)
 Construct a valid dnp3_utc_timestamp_t. More...
 
static dnp3_utc_timestamp_t dnp3_utc_timestamp_invalid ()
 Construct an invalid dnp3_utc_timestamp_t. More...
 
static const char * dnp3_task_type_to_string (dnp3_task_type_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_task_error_to_string (dnp3_task_error_t value)
 Converts the enum to a string. More...
 
dnp3_request_tdnp3_request_create ()
 Create a new request. More...
 
dnp3_request_tdnp3_request_new_class (bool class0, bool class1, bool class2, bool class3)
 Create a new request asking for classes. More...
 
dnp3_request_tdnp3_request_new_all_objects (dnp3_variation_t variation)
 Create a new request asking for all objects of a particular variation. More...
 
dnp3_request_tdnp3_request_new_one_byte_range (dnp3_variation_t variation, uint8_t start, uint8_t stop)
 Create a new request asking for range of objects (using 8-bit start/stop). More...
 
dnp3_request_tdnp3_request_new_two_byte_range (dnp3_variation_t variation, uint16_t start, uint16_t stop)
 Create a new request asking for range of objects (using 16-bit start/stop). More...
 
dnp3_request_tdnp3_request_new_one_byte_limited_count (dnp3_variation_t variation, uint8_t count)
 Create a new request asking for a limited count of objects (using 8-bit start/stop). More...
 
dnp3_request_tdnp3_request_new_two_byte_limited_count (dnp3_variation_t variation, uint16_t count)
 Create a new request asking for a limited count of objects (using 16-bit start/stop). More...
 
void dnp3_request_destroy (dnp3_request_t *instance)
 Destroy a request created with dnp3_request_create or dnp3_request_class_request. More...
 
void dnp3_request_add_specific_attribute (dnp3_request_t *instance, uint8_t variation, uint8_t set)
 Add a one-byte start/stop header for use with a READ request. More...
 
void dnp3_request_add_string_attribute (dnp3_request_t *instance, uint8_t variation, uint8_t set, const char *value)
 Add a one-byte start/stop header containing for use with a WRITE request. More...
 
void dnp3_request_add_uint_attribute (dnp3_request_t *instance, uint8_t variation, uint8_t set, uint32_t value)
 Add a one-byte start/stop header containing for use with a WRITE request. More...
 
void dnp3_request_add_one_byte_range_header (dnp3_request_t *instance, dnp3_variation_t variation, uint8_t start, uint8_t stop)
 Add a one-byte start/stop header for use with a READ request. More...
 
void dnp3_request_add_two_byte_range_header (dnp3_request_t *instance, dnp3_variation_t variation, uint16_t start, uint16_t stop)
 Add a two-byte start/stop header for use with a READ request. More...
 
void dnp3_request_add_all_objects_header (dnp3_request_t *instance, dnp3_variation_t variation)
 Add an all objects variation request. More...
 
void dnp3_request_add_one_byte_limited_count_header (dnp3_request_t *instance, dnp3_variation_t variation, uint8_t count)
 Add a one-byte limited count variation header for use with a READ request. More...
 
void dnp3_request_add_two_byte_limited_count_header (dnp3_request_t *instance, dnp3_variation_t variation, uint16_t count)
 Add a two-byte limited count variation header for use with a READ request. More...
 
void dnp3_request_add_time_and_interval (dnp3_request_t *instance, uint64_t time, uint32_t interval_ms)
 Add a single g51v1 time-and-interval. More...
 
dnp3_param_error_t dnp3_master_channel_add_association (dnp3_master_channel_t *instance, uint16_t address, dnp3_association_config_t config, dnp3_read_handler_t read_handler, dnp3_association_handler_t association_handler, dnp3_association_information_t association_information, dnp3_association_id_t *out)
 Add an association to the channel. More...
 
dnp3_param_error_t dnp3_master_channel_add_udp_association (dnp3_master_channel_t *instance, uint16_t address, const char *destination, dnp3_association_config_t config, dnp3_read_handler_t read_handler, dnp3_association_handler_t association_handler, dnp3_association_information_t association_information, dnp3_association_id_t *out)
 Add a UDP association to the channel. More...
 
dnp3_param_error_t dnp3_master_channel_remove_association (dnp3_master_channel_t *instance, dnp3_association_id_t id)
 Remove an association from the channel. More...
 
dnp3_param_error_t dnp3_master_channel_add_poll (dnp3_master_channel_t *instance, dnp3_association_id_t id, dnp3_request_t *request, uint64_t period, dnp3_poll_id_t *out)
 Add a periodic poll to an association. More...
 
dnp3_param_error_t dnp3_master_channel_remove_poll (dnp3_master_channel_t *instance, dnp3_poll_id_t poll_id)
 Add a periodic poll to an association. More...
 
dnp3_param_error_t dnp3_master_channel_demand_poll (dnp3_master_channel_t *instance, dnp3_poll_id_t poll_id)
 Demand the immediate execution of a poll previously created with dnp3_master_channel_add_poll. More...
 
dnp3_param_error_t dnp3_master_channel_set_decode_level (dnp3_master_channel_t *instance, dnp3_decode_level_t decode_level)
 Set the decoding level for the channel. More...
 
dnp3_param_error_t dnp3_master_channel_get_decode_level (dnp3_master_channel_t *instance, dnp3_decode_level_t *out)
 Get the decoding level for the channel. More...
 
static const char * dnp3_read_error_to_string (dnp3_read_error_t value)
 Converts the enum to a string. More...
 
dnp3_param_error_t dnp3_master_channel_read (dnp3_master_channel_t *instance, dnp3_association_id_t association, dnp3_request_t *request, dnp3_read_task_callback_t callback)
 Perform a read on the association. More...
 
dnp3_param_error_t dnp3_master_channel_write_dead_bands (dnp3_master_channel_t *instance, dnp3_association_id_t association, dnp3_write_dead_band_request_t *request, dnp3_empty_response_callback_t callback)
 Perform a WRITE on the association using the supplied collection of dead-band headers. More...
 
dnp3_param_error_t dnp3_master_channel_send_and_expect_empty_response (dnp3_master_channel_t *instance, dnp3_association_id_t association, dnp3_function_code_t function, dnp3_request_t *headers, dnp3_empty_response_callback_t callback)
 Send the specified request to the association using the supplied function and collection of request headers. More...
 
dnp3_param_error_t dnp3_master_channel_read_with_handler (dnp3_master_channel_t *instance, dnp3_association_id_t association, dnp3_request_t *request, dnp3_read_handler_t handler, dnp3_read_task_callback_t callback)
 Perform a read on the association. More...
 
dnp3_command_set_tdnp3_command_set_create ()
 Create a new set of commands. More...
 
void dnp3_command_set_destroy (dnp3_command_set_t *instance)
 Destroy a set of commands. More...
 
void dnp3_command_set_finish_header (dnp3_command_set_t *instance)
 Finish any partially completed header. This allows for the construction of two headers with the same type and index. More...
 
void dnp3_command_set_add_g12_v1_u8 (dnp3_command_set_t *instance, uint8_t idx, dnp3_group12_var1_t header)
 Add a CROB with 1-byte prefix index. More...
 
void dnp3_command_set_add_g12_v1_u16 (dnp3_command_set_t *instance, uint16_t idx, dnp3_group12_var1_t header)
 Add a CROB with 2-byte prefix index. More...
 
void dnp3_command_set_add_g41_v1_u8 (dnp3_command_set_t *instance, uint8_t idx, int32_t value)
 Add a Analog Output command (signed 32-bit integer) with 1-byte prefix index. More...
 
void dnp3_command_set_add_g41_v1_u16 (dnp3_command_set_t *instance, uint16_t idx, int32_t value)
 Add a Analog Output command (signed 32-bit integer) with 2-byte prefix index. More...
 
void dnp3_command_set_add_g41_v2_u8 (dnp3_command_set_t *instance, uint8_t idx, int16_t value)
 Add a Analog Output command (signed 16-bit integer) with 1-byte prefix index. More...
 
void dnp3_command_set_add_g41_v2_u16 (dnp3_command_set_t *instance, uint16_t idx, int16_t value)
 Add a Analog Output command (signed 16-bit integer) with 2-byte prefix index. More...
 
void dnp3_command_set_add_g41_v3_u8 (dnp3_command_set_t *instance, uint8_t idx, float value)
 Add a Analog Output command (single-precision float) with 1-byte prefix index. More...
 
void dnp3_command_set_add_g41_v3_u16 (dnp3_command_set_t *instance, uint16_t idx, float value)
 Add a Analog Output command (single-precision float) with 2-byte prefix index. More...
 
void dnp3_command_set_add_g41_v4_u8 (dnp3_command_set_t *instance, uint8_t idx, double value)
 Add a Analog Output command (double-precision float) with 1-byte prefix index. More...
 
void dnp3_command_set_add_g41_v4_u16 (dnp3_command_set_t *instance, uint16_t idx, double value)
 Add a Analog Output command (double-precision float) with 2-byte prefix index. More...
 
static const char * dnp3_command_mode_to_string (dnp3_command_mode_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_command_error_to_string (dnp3_command_error_t value)
 Converts the enum to a string. More...
 
dnp3_param_error_t dnp3_master_channel_operate (dnp3_master_channel_t *instance, dnp3_association_id_t association, dnp3_command_mode_t mode, dnp3_command_set_t *command, dnp3_command_task_callback_t callback)
 Asynchronously perform a command operation on the association. More...
 
static const char * dnp3_time_sync_mode_to_string (dnp3_time_sync_mode_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_time_sync_error_to_string (dnp3_time_sync_error_t value)
 Converts the enum to a string. More...
 
dnp3_param_error_t dnp3_master_channel_synchronize_time (dnp3_master_channel_t *instance, dnp3_association_id_t association, dnp3_time_sync_mode_t mode, dnp3_time_sync_task_callback_t callback)
 Asynchronously perform a time sync operation to the association. More...
 
static const char * dnp3_restart_error_to_string (dnp3_restart_error_t value)
 Converts the enum to a string. More...
 
dnp3_param_error_t dnp3_master_channel_cold_restart (dnp3_master_channel_t *instance, dnp3_association_id_t association, dnp3_restart_task_callback_t callback)
 Asynchronously perform a cold restart operation to the association. More...
 
dnp3_param_error_t dnp3_master_channel_warm_restart (dnp3_master_channel_t *instance, dnp3_association_id_t association, dnp3_restart_task_callback_t callback)
 Asynchronously perform a warm restart operation to the association. More...
 
static dnp3_file_read_config_t dnp3_file_read_config_defaults ()
 Initialize the configuration to default values. More...
 
static dnp3_dir_read_config_t dnp3_dir_read_config_defaults ()
 Initialize the configuration to default values. More...
 
dnp3_param_error_t dnp3_master_channel_read_file (dnp3_master_channel_t *instance, dnp3_association_id_t association, const char *remote_file_path, dnp3_file_read_config_t config, dnp3_file_reader_t reader)
 Start an operation to READ a file from the outstation using a dnp3_file_reader_t to receive data. More...
 
dnp3_param_error_t dnp3_master_channel_read_file_with_auth (dnp3_master_channel_t *instance, dnp3_association_id_t association, const char *remote_file_path, dnp3_file_read_config_t config, dnp3_file_reader_t reader, const char *user_name, const char *password)
 Start an operation to READ a file from the outstation using a dnp3_file_reader_t to receive data. More...
 
dnp3_param_error_t dnp3_master_channel_get_file_auth_key (dnp3_master_channel_t *instance, dnp3_association_id_t association, const char *username, const char *password, dnp3_file_auth_callback_t callback)
 Obtain a file authentication key. More...
 
dnp3_param_error_t dnp3_master_channel_open_file (dnp3_master_channel_t *instance, dnp3_association_id_t association, const char *file_name, uint32_t auth_key, dnp3_permissions_t permissions, uint32_t file_size, dnp3_file_mode_t file_mode, uint16_t max_block_size, dnp3_file_open_callback_t callback)
 Asynchronously open a file. More...
 
dnp3_param_error_t dnp3_master_channel_write_file_block (dnp3_master_channel_t *instance, dnp3_association_id_t association, uint32_t handle, uint32_t block_number, bool final_block, dnp3_byte_collection_t *block_data, dnp3_file_operation_callback_t callback)
 Asynchronously write a block of file data to the outstation. More...
 
dnp3_param_error_t dnp3_master_channel_close_file (dnp3_master_channel_t *instance, dnp3_association_id_t association, uint32_t handle, dnp3_file_operation_callback_t callback)
 Asynchronously close a file. More...
 
dnp3_param_error_t dnp3_master_channel_get_file_info (dnp3_master_channel_t *instance, dnp3_association_id_t association, const char *file_name, dnp3_file_info_callback_t callback)
 Asynchronously retrieve information on a particular file. More...
 
dnp3_file_info_tdnp3_file_info_iterator_next (dnp3_file_info_iterator_t *iter)
 returns a pointer to the next value or NULL More...
 
dnp3_param_error_t dnp3_master_channel_read_directory (dnp3_master_channel_t *instance, dnp3_association_id_t association, const char *dir_path, dnp3_dir_read_config_t config, dnp3_read_directory_callback_t callback)
 Asynchronously retrieve a directory listing. More...
 
dnp3_param_error_t dnp3_master_channel_read_directory_with_auth (dnp3_master_channel_t *instance, dnp3_association_id_t association, const char *dir_path, dnp3_dir_read_config_t config, const char *user_name, const char *password, dnp3_read_directory_callback_t callback)
 Asynchronously retrieve a directory listing by first obtaining an authentication key. More...
 
static const char * dnp3_link_status_error_to_string (dnp3_link_status_error_t value)
 Converts the enum to a string. More...
 
dnp3_param_error_t dnp3_master_channel_check_link_status (dnp3_master_channel_t *instance, dnp3_association_id_t association, dnp3_link_status_callback_t callback)
 Asynchronously perform a link status check. More...
 
dnp3_param_error_t dnp3_accept_handler_accept (dnp3_accept_handler_t *instance, dnp3_link_error_mode_t error_mode, dnp3_master_channel_config_t config)
 Accept the connection and create a master channel. More...
 
dnp3_param_error_t dnp3_accept_handler_get_link_identity (dnp3_accept_handler_t *instance)
 Request that server attempt to identify the outstation by reading a link-layer header from the physical layer within a timeout. More...
 
dnp3_param_error_t dnp3_identified_link_handler_accept (dnp3_identified_link_handler_t *instance, dnp3_link_error_mode_t error_mode, dnp3_master_channel_config_t config)
 Accept the connection and create a master channel. More...
 
static dnp3_link_id_config_t dnp3_link_id_config_init ()
 Initialize to default values. More...
 
void dnp3_master_server_destroy (dnp3_master_server_t *instance)
 Shutdown down the server. More...
 
dnp3_param_error_t dnp3_create_master_tcp_server (dnp3_runtime_t *runtime, const char *local_addr, dnp3_link_id_config_t link_id_config, dnp3_connection_handler_t connection_handler, dnp3_master_server_t **out)
 Spawn a TCP server that accepts connections from outstations. More...
 
static const char * dnp3_event_class_to_string (dnp3_event_class_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_update_result_to_string (dnp3_update_result_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_event_mode_to_string (dnp3_event_mode_t value)
 Converts the enum to a string. More...
 
static dnp3_update_options_t dnp3_update_options_detect_event ()
 Default event detection mode. Updates the static value and automatically detects event. More...
 
static dnp3_update_options_t dnp3_update_options_no_event ()
 Only update the static value. Usefull during initialization of the database. More...
 
static const char * dnp3_update_flags_type_to_string (dnp3_update_flags_type_t value)
 Converts the enum to a string. More...
 
dnp3_update_info_t dnp3_database_update_flags (dnp3_database_t *instance, uint16_t index, dnp3_update_flags_type_t flags_type, dnp3_flags_t flags, dnp3_timestamp_t time, dnp3_update_options_t options)
 Update the flags for the specified point without changing the value. More...
 
static const char * dnp3_static_binary_input_variation_to_string (dnp3_static_binary_input_variation_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_event_binary_input_variation_to_string (dnp3_event_binary_input_variation_t value)
 Converts the enum to a string. More...
 
static dnp3_binary_input_config_t dnp3_binary_input_config_create (dnp3_static_binary_input_variation_t static_variation, dnp3_event_binary_input_variation_t event_variation)
 Fully construct dnp3_binary_input_config_t specifying the value of each field. More...
 
static dnp3_binary_input_config_t dnp3_binary_input_config_init ()
 Initialize to defaults. More...
 
bool dnp3_database_add_binary_input (dnp3_database_t *instance, uint16_t index, dnp3_event_class_t point_class, dnp3_binary_input_config_t config)
 Add a new BinaryInput point. More...
 
bool dnp3_database_remove_binary_input (dnp3_database_t *instance, uint16_t index)
 Remove a BinaryInput point. More...
 
bool dnp3_database_update_binary_input (dnp3_database_t *instance, dnp3_binary_input_t value, dnp3_update_options_t options)
 Update a BinaryInput point. More...
 
dnp3_update_info_t dnp3_database_update_binary_input_2 (dnp3_database_t *instance, dnp3_binary_input_t value, dnp3_update_options_t options)
 Update a BinaryInput point. More...
 
dnp3_param_error_t dnp3_database_get_binary_input (dnp3_database_t *instance, uint16_t index, dnp3_binary_input_t *out)
 Get a BinaryInput point. More...
 
static const char * dnp3_static_double_bit_binary_input_variation_to_string (dnp3_static_double_bit_binary_input_variation_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_event_double_bit_binary_input_variation_to_string (dnp3_event_double_bit_binary_input_variation_t value)
 Converts the enum to a string. More...
 
static dnp3_double_bit_binary_input_config_t dnp3_double_bit_binary_input_config_create (dnp3_static_double_bit_binary_input_variation_t static_variation, dnp3_event_double_bit_binary_input_variation_t event_variation)
 Fully construct dnp3_double_bit_binary_input_config_t specifying the value of each field. More...
 
static dnp3_double_bit_binary_input_config_t dnp3_double_bit_binary_input_config_init ()
 Initialize to defaults. More...
 
bool dnp3_database_add_double_bit_binary_input (dnp3_database_t *instance, uint16_t index, dnp3_event_class_t point_class, dnp3_double_bit_binary_input_config_t config)
 Add a new Double-Bit Binary Input point. More...
 
bool dnp3_database_remove_double_bit_binary_input (dnp3_database_t *instance, uint16_t index)
 Remove a Double-Bit Binary Input point. More...
 
bool dnp3_database_update_double_bit_binary_input (dnp3_database_t *instance, dnp3_double_bit_binary_input_t value, dnp3_update_options_t options)
 Update a Double-Bit Binary Input point. More...
 
dnp3_update_info_t dnp3_database_update_double_bit_binary_input_2 (dnp3_database_t *instance, dnp3_double_bit_binary_input_t value, dnp3_update_options_t options)
 Update a Double-Bit Binary Input point. More...
 
dnp3_param_error_t dnp3_database_get_double_bit_binary_input (dnp3_database_t *instance, uint16_t index, dnp3_double_bit_binary_input_t *out)
 Get a Double-Bit Binary Input point. More...
 
static const char * dnp3_static_binary_output_status_variation_to_string (dnp3_static_binary_output_status_variation_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_event_binary_output_status_variation_to_string (dnp3_event_binary_output_status_variation_t value)
 Converts the enum to a string. More...
 
static dnp3_binary_output_status_config_t dnp3_binary_output_status_config_create (dnp3_static_binary_output_status_variation_t static_variation, dnp3_event_binary_output_status_variation_t event_variation)
 Fully construct dnp3_binary_output_status_config_t specifying the value of each field. More...
 
static dnp3_binary_output_status_config_t dnp3_binary_output_status_config_init ()
 Initialize to defaults. More...
 
bool dnp3_database_add_binary_output_status (dnp3_database_t *instance, uint16_t index, dnp3_event_class_t point_class, dnp3_binary_output_status_config_t config)
 Add a new Binary Output Status point. More...
 
bool dnp3_database_remove_binary_output_status (dnp3_database_t *instance, uint16_t index)
 Remove a Binary Output Status point. More...
 
bool dnp3_database_update_binary_output_status (dnp3_database_t *instance, dnp3_binary_output_status_t value, dnp3_update_options_t options)
 Update a Binary Output Status point. More...
 
dnp3_update_info_t dnp3_database_update_binary_output_status_2 (dnp3_database_t *instance, dnp3_binary_output_status_t value, dnp3_update_options_t options)
 Update a Binary Output Status point. More...
 
dnp3_param_error_t dnp3_database_get_binary_output_status (dnp3_database_t *instance, uint16_t index, dnp3_binary_output_status_t *out)
 Get a Binary Output Status point. More...
 
static const char * dnp3_static_counter_variation_to_string (dnp3_static_counter_variation_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_event_counter_variation_to_string (dnp3_event_counter_variation_t value)
 Converts the enum to a string. More...
 
static dnp3_counter_config_t dnp3_counter_config_create (dnp3_static_counter_variation_t static_variation, dnp3_event_counter_variation_t event_variation, uint32_t deadband)
 Fully construct dnp3_counter_config_t specifying the value of each field. More...
 
static dnp3_counter_config_t dnp3_counter_config_init ()
 Initialize to defaults. More...
 
bool dnp3_database_add_counter (dnp3_database_t *instance, uint16_t index, dnp3_event_class_t point_class, dnp3_counter_config_t config)
 Add a new Counter point. More...
 
bool dnp3_database_remove_counter (dnp3_database_t *instance, uint16_t index)
 Remove a Counter point. More...
 
bool dnp3_database_update_counter (dnp3_database_t *instance, dnp3_counter_t value, dnp3_update_options_t options)
 Update a Counter point. More...
 
dnp3_update_info_t dnp3_database_update_counter_2 (dnp3_database_t *instance, dnp3_counter_t value, dnp3_update_options_t options)
 Update a Counter point. More...
 
dnp3_param_error_t dnp3_database_get_counter (dnp3_database_t *instance, uint16_t index, dnp3_counter_t *out)
 Get a Counter point. More...
 
static const char * dnp3_static_frozen_counter_variation_to_string (dnp3_static_frozen_counter_variation_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_event_frozen_counter_variation_to_string (dnp3_event_frozen_counter_variation_t value)
 Converts the enum to a string. More...
 
static dnp3_frozen_counter_config_t dnp3_frozen_counter_config_create (dnp3_static_frozen_counter_variation_t static_variation, dnp3_event_frozen_counter_variation_t event_variation, uint32_t deadband)
 Fully construct dnp3_frozen_counter_config_t specifying the value of each field. More...
 
static dnp3_frozen_counter_config_t dnp3_frozen_counter_config_init ()
 Initialize to defaults. More...
 
bool dnp3_database_add_frozen_counter (dnp3_database_t *instance, uint16_t index, dnp3_event_class_t point_class, dnp3_frozen_counter_config_t config)
 Add a new Frozen Counter point. More...
 
bool dnp3_database_remove_frozen_counter (dnp3_database_t *instance, uint16_t index)
 Remove a Frozen Counter point. More...
 
bool dnp3_database_update_frozen_counter (dnp3_database_t *instance, dnp3_frozen_counter_t value, dnp3_update_options_t options)
 Update an Frozen Counter point. More...
 
dnp3_update_info_t dnp3_database_update_frozen_counter_2 (dnp3_database_t *instance, dnp3_frozen_counter_t value, dnp3_update_options_t options)
 Update an Frozen Counter point. More...
 
dnp3_param_error_t dnp3_database_get_frozen_counter (dnp3_database_t *instance, uint16_t index, dnp3_frozen_counter_t *out)
 Get a Frozen Counter point. More...
 
static const char * dnp3_static_analog_input_variation_to_string (dnp3_static_analog_input_variation_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_event_analog_input_variation_to_string (dnp3_event_analog_input_variation_t value)
 Converts the enum to a string. More...
 
static dnp3_analog_input_config_t dnp3_analog_input_config_create (dnp3_static_analog_input_variation_t static_variation, dnp3_event_analog_input_variation_t event_variation, double deadband)
 Fully construct dnp3_analog_input_config_t specifying the value of each field. More...
 
static dnp3_analog_input_config_t dnp3_analog_input_config_init ()
 Initialize to defaults. More...
 
bool dnp3_database_add_analog_input (dnp3_database_t *instance, uint16_t index, dnp3_event_class_t point_class, dnp3_analog_input_config_t config)
 Add a new AnalogInput point. More...
 
bool dnp3_database_remove_analog_input (dnp3_database_t *instance, uint16_t index)
 Remove an AnalogInput point. More...
 
bool dnp3_database_update_analog_input (dnp3_database_t *instance, dnp3_analog_input_t value, dnp3_update_options_t options)
 Update a AnalogInput point. More...
 
dnp3_update_info_t dnp3_database_update_analog_input_2 (dnp3_database_t *instance, dnp3_analog_input_t value, dnp3_update_options_t options)
 Update a AnalogInput point. More...
 
dnp3_param_error_t dnp3_database_get_analog_input (dnp3_database_t *instance, uint16_t index, dnp3_analog_input_t *out)
 Get a AnalogInput point. More...
 
static const char * dnp3_static_analog_output_status_variation_to_string (dnp3_static_analog_output_status_variation_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_event_analog_output_status_variation_to_string (dnp3_event_analog_output_status_variation_t value)
 Converts the enum to a string. More...
 
static dnp3_analog_output_status_config_t dnp3_analog_output_status_config_create (dnp3_static_analog_output_status_variation_t static_variation, dnp3_event_analog_output_status_variation_t event_variation, double deadband)
 Fully construct dnp3_analog_output_status_config_t specifying the value of each field. More...
 
static dnp3_analog_output_status_config_t dnp3_analog_output_status_config_init ()
 Initialize to defaults. More...
 
bool dnp3_database_add_analog_output_status (dnp3_database_t *instance, uint16_t index, dnp3_event_class_t point_class, dnp3_analog_output_status_config_t config)
 Add a new Analog Output Status point. More...
 
bool dnp3_database_remove_analog_output_status (dnp3_database_t *instance, uint16_t index)
 Remove an Analog Output Status point. More...
 
bool dnp3_database_update_analog_output_status (dnp3_database_t *instance, dnp3_analog_output_status_t value, dnp3_update_options_t options)
 Update a Analog Output Status point. More...
 
dnp3_update_info_t dnp3_database_update_analog_output_status_2 (dnp3_database_t *instance, dnp3_analog_output_status_t value, dnp3_update_options_t options)
 Update a Analog Output Status point. More...
 
dnp3_param_error_t dnp3_database_get_analog_output_status (dnp3_database_t *instance, uint16_t index, dnp3_analog_output_status_t *out)
 Get a Analog Output Status point. More...
 
dnp3_octet_string_value_tdnp3_octet_string_value_create ()
 Creates an instance of the collection. More...
 
void dnp3_octet_string_value_destroy (dnp3_octet_string_value_t *instance)
 Destroys an instance of the collection. More...
 
void dnp3_octet_string_value_add (dnp3_octet_string_value_t *instance, uint8_t value)
 Add a value to the collection. More...
 
bool dnp3_database_add_octet_string (dnp3_database_t *instance, uint16_t index, dnp3_event_class_t point_class)
 Add a new Octet String point. More...
 
bool dnp3_database_remove_octet_string (dnp3_database_t *instance, uint16_t index)
 Remove an Octet String point. More...
 
bool dnp3_database_update_octet_string (dnp3_database_t *instance, uint16_t index, dnp3_octet_string_value_t *value, dnp3_update_options_t options)
 Update an Octet String point. More...
 
dnp3_update_info_t dnp3_database_update_octet_string_2 (dnp3_database_t *instance, uint16_t index, dnp3_octet_string_value_t *value, dnp3_update_options_t options)
 Update an Octet String point. More...
 
static const char * dnp3_attr_def_error_to_string (dnp3_attr_def_error_t value)
 Converts the enum to a string. More...
 
dnp3_attr_def_error_t dnp3_database_define_string_attr (dnp3_database_t *instance, uint8_t set, bool writable, uint8_t variation, const char *value)
 Define a string attribute. More...
 
dnp3_attr_def_error_t dnp3_database_define_float_attr (dnp3_database_t *instance, uint8_t set, bool writable, uint8_t variation, float value)
 Define a 32-bit floating point attribute. More...
 
dnp3_attr_def_error_t dnp3_database_define_double_attr (dnp3_database_t *instance, uint8_t set, bool writable, uint8_t variation, double value)
 Define a 64-bit floating point attribute. More...
 
dnp3_attr_def_error_t dnp3_database_define_uint_attr (dnp3_database_t *instance, uint8_t set, bool writable, uint8_t variation, uint32_t value)
 Define an unsigned integer attribute. More...
 
dnp3_attr_def_error_t dnp3_database_define_int_attr (dnp3_database_t *instance, uint8_t set, bool writable, uint8_t variation, int32_t value)
 Define a signed integer attribute. More...
 
dnp3_attr_def_error_t dnp3_database_define_time_attr (dnp3_database_t *instance, uint8_t set, bool writable, uint8_t variation, uint64_t value)
 Define a DNP3 time attribute. More...
 
dnp3_attr_def_error_t dnp3_database_define_bool_attr (dnp3_database_t *instance, uint8_t set, bool writable, uint8_t variation, bool value)
 Define a boolean attribute which is mapped to an unsigned integer internally. More...
 
void dnp3_database_handle_transaction (dnp3_database_handle_t *instance, dnp3_database_transaction_t callback)
 Acquire a mutex on the underlying database and apply a set of changes as a transaction. More...
 
static dnp3_event_buffer_config_t dnp3_event_buffer_config_init (uint16_t max_binary, uint16_t max_double_bit_binary, uint16_t max_binary_output_status, uint16_t max_counter, uint16_t max_frozen_counter, uint16_t max_analog, uint16_t max_analog_output_status, uint16_t max_octet_string)
 Fully construct dnp3_event_buffer_config_t specifying the value of each field. More...
 
static dnp3_event_buffer_config_t dnp3_event_buffer_config_no_events ()
 Create a configuration where no events are buffered. More...
 
static dnp3_class_zero_config_t dnp3_class_zero_config_init ()
 Initialize to default values. More...
 
static dnp3_outstation_features_t dnp3_outstation_features_init ()
 Initialize to default values. More...
 
static dnp3_outstation_config_t dnp3_outstation_config_init (uint16_t outstation_address, uint16_t master_address, dnp3_event_buffer_config_t event_buffer_config)
 Initialize to defaults. More...
 
static const char * dnp3_restart_delay_type_to_string (dnp3_restart_delay_type_t value)
 Converts the enum to a string. More...
 
static dnp3_restart_delay_t dnp3_restart_delay_not_supported ()
 RestartDelay indicating that the request is not supported. More...
 
static dnp3_restart_delay_t dnp3_restart_delay_seconds (uint16_t value)
 RestartDelay with a count of seconds. More...
 
static dnp3_restart_delay_t dnp3_restart_delay_milliseconds (uint16_t value)
 RestartDelay with a count of milliseconds. More...
 
static const char * dnp3_write_time_result_to_string (dnp3_write_time_result_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_freeze_type_to_string (dnp3_freeze_type_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_freeze_result_to_string (dnp3_freeze_result_t value)
 Converts the enum to a string. More...
 
static dnp3_application_iin_t dnp3_application_iin_init ()
 Initialize all fields in dnp3_application_iin_t to false. More...
 
static const char * dnp3_broadcast_action_to_string (dnp3_broadcast_action_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_operate_type_to_string (dnp3_operate_type_t value)
 Converts the enum to a string. More...
 
static const char * dnp3_connection_state_to_string (dnp3_connection_state_t value)
 Converts the enum to a string. More...
 
dnp3_param_error_t dnp3_outstation_create_tcp_client (dnp3_runtime_t *runtime, dnp3_link_error_mode_t link_error_mode, dnp3_endpoint_list_t *endpoints, dnp3_connect_strategy_t connect_strategy, dnp3_connect_options_t *connect_options, dnp3_outstation_config_t config, dnp3_outstation_application_t application, dnp3_outstation_information_t information, dnp3_control_handler_t control_handler, dnp3_client_state_listener_t listener, dnp3_outstation_t **out)
 Create an outstation instance running as a TCP client. More...
 
dnp3_param_error_t dnp3_outstation_create_tls_client (dnp3_runtime_t *runtime, dnp3_link_error_mode_t link_error_mode, dnp3_endpoint_list_t *endpoints, dnp3_connect_strategy_t connect_strategy, dnp3_connect_options_t *connect_options, dnp3_outstation_config_t config, dnp3_outstation_application_t application, dnp3_outstation_information_t information, dnp3_control_handler_t control_handler, dnp3_client_state_listener_t listener, dnp3_tls_client_config_t tls_config, dnp3_outstation_t **out)
 Create an outstation instance running as a TLS client. More...
 
dnp3_param_error_t dnp3_outstation_create_serial_session (dnp3_runtime_t *runtime, const char *serial_path, dnp3_serial_settings_t settings, dnp3_outstation_config_t config, dnp3_outstation_application_t application, dnp3_outstation_information_t information, dnp3_control_handler_t control_handler, dnp3_outstation_t **out)
 Create an outstation instance running on a serial port. More...
 
dnp3_param_error_t dnp3_outstation_create_serial_session_fault_tolerant (dnp3_runtime_t *runtime, const char *serial_path, dnp3_serial_settings_t settings, uint64_t open_retry_delay, dnp3_outstation_config_t config, dnp3_outstation_application_t application, dnp3_outstation_information_t information, dnp3_control_handler_t control_handler, dnp3_outstation_t **out)
 This method is implemented in terms of dnp3_outstation_create_serial_session_2 but without a port listener. More...
 
dnp3_param_error_t dnp3_outstation_create_serial_session_2 (dnp3_runtime_t *runtime, const char *serial_path, dnp3_serial_settings_t settings, uint64_t open_retry_delay, dnp3_outstation_config_t config, dnp3_outstation_application_t application, dnp3_outstation_information_t information, dnp3_control_handler_t control_handler, dnp3_port_state_listener_t port_listener, dnp3_outstation_t **out)
 Create an outstation instance running on a serial port which is tolerant to the serial port being added and removed. More...
 
static dnp3_outstation_udp_config_t dnp3_outstation_udp_config_init (const char *local_endpoint, const char *remote_endpoint)
 Initialize the configuration with default settings for unspecified parameter. More...
 
dnp3_param_error_t dnp3_outstation_create_udp (dnp3_runtime_t *runtime, dnp3_outstation_udp_config_t udp_config, dnp3_outstation_config_t config, dnp3_outstation_application_t application, dnp3_outstation_information_t information, dnp3_control_handler_t control_handler, dnp3_outstation_t **out)
 Create an outstation instance running on a serial port which is tolerant to the serial port being added and removed. More...
 
void dnp3_outstation_destroy (dnp3_outstation_t *instance)
 Free resources of the outstation. More...
 
void dnp3_outstation_transaction (dnp3_outstation_t *instance, dnp3_database_transaction_t callback)
 Acquire a mutex on the underlying database and apply a set of changes as a transaction. More...
 
dnp3_param_error_t dnp3_outstation_set_decode_level (dnp3_outstation_t *instance, dnp3_decode_level_t level)
 Set decoding log level. More...
 
dnp3_param_error_t dnp3_outstation_enable (dnp3_outstation_t *instance)
 enable communications More...
 
dnp3_param_error_t dnp3_outstation_disable (dnp3_outstation_t *instance)
 disable communications More...
 
dnp3_address_filter_tdnp3_address_filter_any ()
 Create an address filter that accepts any IP address. More...
 
dnp3_param_error_t dnp3_address_filter_create (const char *address, dnp3_address_filter_t **out)
 Create an address filter that matches a specific address or wildcards. More...
 
dnp3_param_error_t dnp3_address_filter_add (dnp3_address_filter_t *instance, const char *address)
 Add an accepted IP address to the filter. More...
 
void dnp3_address_filter_destroy (dnp3_address_filter_t *instance)
 Destroy an address filter. More...
 
static dnp3_tls_server_config_t dnp3_tls_server_config_init (const char *dns_name, const char *peer_cert_path, const char *local_cert_path, const char *private_key_path, const char *password)
 construct the configuration with defaults More...
 
dnp3_param_error_t dnp3_outstation_server_create_tcp_server (dnp3_runtime_t *runtime, dnp3_link_error_mode_t link_error_mode, const char *address, dnp3_outstation_server_t **out)
 Create a new TCP server. More...
 
dnp3_param_error_t dnp3_outstation_server_create_tls_server (dnp3_runtime_t *runtime, dnp3_link_error_mode_t link_error_mode, const char *address, dnp3_tls_server_config_t tls_config, dnp3_outstation_server_t **out)
 Create a new TLS server. More...
 
dnp3_param_error_t dnp3_outstation_server_add_outstation (dnp3_outstation_server_t *instance, dnp3_outstation_config_t config, dnp3_outstation_application_t application, dnp3_outstation_information_t information, dnp3_control_handler_t control_handler, dnp3_connection_state_listener_t listener, dnp3_address_filter_t *filter, dnp3_outstation_t **out)
 Add an outstation to the server. More...
 
dnp3_param_error_t dnp3_outstation_server_bind (dnp3_outstation_server_t *instance)
 Bind the server to the port and starts listening. Also starts all the outstations associated to it. More...
 
void dnp3_outstation_server_destroy (dnp3_outstation_server_t *instance)
 Gracefully shutdown all the outstations associated to this server, stops the server and release resources. More...
 
const char * dnp3_version ()
 Get the version of the library as a string. More...
 

Detailed Description

C API for the dnp3 library

Macro Definition Documentation

◆ DNP3_ATTRIBUTE_VARIATIONS_ALL_ATTRIBUTES_REQUEST

#define DNP3_ATTRIBUTE_VARIATIONS_ALL_ATTRIBUTES_REQUEST   0xFE

Non-specific all attributes request.

◆ DNP3_ATTRIBUTE_VARIATIONS_CONFIG_BUILD_DATE

#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_BUILD_DATE   0xC6

Time and date that the outstation's current configuration was built defined.

◆ DNP3_ATTRIBUTE_VARIATIONS_CONFIG_DIGEST

#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_DIGEST   0xC8

Digest (aka fingerprint) of the configuration using a CRC, HASH, MAC, or public key signature.

◆ DNP3_ATTRIBUTE_VARIATIONS_CONFIG_DIGEST_ALGORITHM

#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_DIGEST_ALGORITHM   0xC9

Configuration digest algorithm.

◆ DNP3_ATTRIBUTE_VARIATIONS_CONFIG_ID

#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_ID   0xC4

Configuration id.

◆ DNP3_ATTRIBUTE_VARIATIONS_CONFIG_LAST_CHANGE_DATE

#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_LAST_CHANGE_DATE   0xC7

Time and date that the outstation's configuration was last modified.

◆ DNP3_ATTRIBUTE_VARIATIONS_CONFIG_VERSION

#define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_VERSION   0xC5

Configuration version.

◆ DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_ALTITUDE

#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_ALTITUDE   0xCB

Altitude of the device.

◆ DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_LATITUDE

#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_LATITUDE   0xCD

Latitude of the device from the equator (90.0 to -90.0 deg)

◆ DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_LONGITUDE

#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_LONGITUDE   0xCC

Longitude of the device from reference meridian (-180.0 to 180.0 deg)

◆ DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURER_HARDWARE_VERSION

#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURER_HARDWARE_VERSION   0xF3

Device manufacturer hardware version.

◆ DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURER_SOFTWARE_VERSION

#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURER_SOFTWARE_VERSION   0xF2

Device manufacturer software version.

◆ DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURERS_NAME

#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURERS_NAME   0xFC

Device manufacturer's name.

◆ DNP3_ATTRIBUTE_VARIATIONS_DEVICE_SERIAL_NUMBER

#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_SERIAL_NUMBER   0xF8

Device serial number.

◆ DNP3_ATTRIBUTE_VARIATIONS_DEVICE_SUBSET_AND_CONFORMANCE

#define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_SUBSET_AND_CONFORMANCE   0xF9

DNP3 subset and conformance.

◆ DNP3_ATTRIBUTE_VARIATIONS_DURATION_OF_TIME_ACCURACY

#define DNP3_ATTRIBUTE_VARIATIONS_DURATION_OF_TIME_ACCURACY   0xDA

Duration of time accuracy (seconds)

◆ DNP3_ATTRIBUTE_VARIATIONS_LIST_OF_VARIATIONS

#define DNP3_ATTRIBUTE_VARIATIONS_LIST_OF_VARIATIONS   0xFF

List of attribute variations.

◆ DNP3_ATTRIBUTE_VARIATIONS_LOCAL_TIMING_ACCURACY

#define DNP3_ATTRIBUTE_VARIATIONS_LOCAL_TIMING_ACCURACY   0xD9

Local timing accuracy (microseconds)

◆ DNP3_ATTRIBUTE_VARIATIONS_MASTER_RESOURCE_ID

#define DNP3_ATTRIBUTE_VARIATIONS_MASTER_RESOURCE_ID   0xCA

Master resource id (mRID)

◆ DNP3_ATTRIBUTE_VARIATIONS_MAX_ANALOG_INPUT_INDEX

#define DNP3_ATTRIBUTE_VARIATIONS_MAX_ANALOG_INPUT_INDEX   0xE8

Maximum analog input point index.

◆ DNP3_ATTRIBUTE_VARIATIONS_MAX_ANALOG_OUTPUT_INDEX

#define DNP3_ATTRIBUTE_VARIATIONS_MAX_ANALOG_OUTPUT_INDEX   0xDC

Maximum analog output index.

◆ DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_INPUT_INDEX

#define DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_INPUT_INDEX   0xEE

Maximum binary input point index.

◆ DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_OUTPUT_INDEX

#define DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_OUTPUT_INDEX   0xDF

Maximum binary output index.

◆ DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_OUTPUT_PER_REQUEST

#define DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_OUTPUT_PER_REQUEST   0xD8

Maximum number of binary outputs per request.

◆ DNP3_ATTRIBUTE_VARIATIONS_MAX_COUNTER_INDEX

#define DNP3_ATTRIBUTE_VARIATIONS_MAX_COUNTER_INDEX   0xE4

Maximum counter point index.

◆ DNP3_ATTRIBUTE_VARIATIONS_MAX_DOUBLE_BIT_BINARY_INPUT_INDEX

#define DNP3_ATTRIBUTE_VARIATIONS_MAX_DOUBLE_BIT_BINARY_INPUT_INDEX   0xEB

Maximum double-bit binary input point index.

◆ DNP3_ATTRIBUTE_VARIATIONS_MAX_RX_FRAGMENT_SIZE

#define DNP3_ATTRIBUTE_VARIATIONS_MAX_RX_FRAGMENT_SIZE   0xF1

Maximum receive fragment size.

◆ DNP3_ATTRIBUTE_VARIATIONS_MAX_TX_FRAGMENT_SIZE

#define DNP3_ATTRIBUTE_VARIATIONS_MAX_TX_FRAGMENT_SIZE   0xF0

Maximum transmit fragment size.

◆ DNP3_ATTRIBUTE_VARIATIONS_NUM_ANALOG_INPUT

#define DNP3_ATTRIBUTE_VARIATIONS_NUM_ANALOG_INPUT   0xE9

Number of analog input points.

◆ DNP3_ATTRIBUTE_VARIATIONS_NUM_ANALOG_OUTPUTS

#define DNP3_ATTRIBUTE_VARIATIONS_NUM_ANALOG_OUTPUTS   0xDD

Number of analog outputs.

◆ DNP3_ATTRIBUTE_VARIATIONS_NUM_BINARY_INPUT

#define DNP3_ATTRIBUTE_VARIATIONS_NUM_BINARY_INPUT   0xEF

Number of binary input points.

◆ DNP3_ATTRIBUTE_VARIATIONS_NUM_BINARY_OUTPUTS

#define DNP3_ATTRIBUTE_VARIATIONS_NUM_BINARY_OUTPUTS   0xE0

Number of binary outputs.

◆ DNP3_ATTRIBUTE_VARIATIONS_NUM_COUNTER

#define DNP3_ATTRIBUTE_VARIATIONS_NUM_COUNTER   0xE5

Number of counter points.

◆ DNP3_ATTRIBUTE_VARIATIONS_NUM_DOUBLE_BIT_BINARY_INPUT

#define DNP3_ATTRIBUTE_VARIATIONS_NUM_DOUBLE_BIT_BINARY_INPUT   0xEC

Number of double-bit binary input points.

◆ DNP3_ATTRIBUTE_VARIATIONS_NUM_MASTER_DEFINED_DATA_SET_PROTO

#define DNP3_ATTRIBUTE_VARIATIONS_NUM_MASTER_DEFINED_DATA_SET_PROTO   0xD4

Number of master defined data-set prototypes.

◆ DNP3_ATTRIBUTE_VARIATIONS_NUM_MASTER_DEFINED_DATA_SETS

#define DNP3_ATTRIBUTE_VARIATIONS_NUM_MASTER_DEFINED_DATA_SETS   0xD6

Number of master defined data-sets.

◆ DNP3_ATTRIBUTE_VARIATIONS_NUM_OUTSTATION_DEFINED_DATA_SET_PROTO

#define DNP3_ATTRIBUTE_VARIATIONS_NUM_OUTSTATION_DEFINED_DATA_SET_PROTO   0xD5

Number of outstation defined data-set prototypes.

◆ DNP3_ATTRIBUTE_VARIATIONS_NUM_OUTSTATION_DEFINED_DATA_SETS

#define DNP3_ATTRIBUTE_VARIATIONS_NUM_OUTSTATION_DEFINED_DATA_SETS   0xD7

Number of outstation defined data-sets.

◆ DNP3_ATTRIBUTE_VARIATIONS_NUM_SECURITY_STATS_PER_ASSOC

#define DNP3_ATTRIBUTE_VARIATIONS_NUM_SECURITY_STATS_PER_ASSOC   0xD2

Number of security statistics per association.

◆ DNP3_ATTRIBUTE_VARIATIONS_PRODUCT_NAME_AND_MODEL

#define DNP3_ATTRIBUTE_VARIATIONS_PRODUCT_NAME_AND_MODEL   0xFA

Device manufacturer's product name and model.

◆ DNP3_ATTRIBUTE_VARIATIONS_SECURE_AUTH_VERSION

#define DNP3_ATTRIBUTE_VARIATIONS_SECURE_AUTH_VERSION   0xD1

Secure authentication version.

◆ DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_ANALOG_INPUT_EVENTS

#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_ANALOG_INPUT_EVENTS   0xE7

Supports analog input events.

◆ DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_ANALOG_OUTPUT_EVENTS

#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_ANALOG_OUTPUT_EVENTS   0xDB

Supports analog output events.

◆ DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_BINARY_INPUT_EVENTS

#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_BINARY_INPUT_EVENTS   0xED

Support binary input events.

◆ DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_BINARY_OUTPUT_EVENTS

#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_BINARY_OUTPUT_EVENTS   0xDE

Supports binary output events.

◆ DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_COUNTER_EVENTS

#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_COUNTER_EVENTS   0xE3

Supports counter events.

◆ DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_DOUBLE_BIT_BINARY_INPUT_EVENTS

#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_DOUBLE_BIT_BINARY_INPUT_EVENTS   0xEA

Supports double-bit binary input events.

◆ DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_ANALOG_INPUTS

#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_ANALOG_INPUTS   0xE6

Supports frozen analog input events.

◆ DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_COUNTER_EVENTS

#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_COUNTER_EVENTS   0xE1

Supports frozen counter events.

◆ DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_COUNTERS

#define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_COUNTERS   0xE2

Supports frozen counters.

◆ DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_DEVICE_NAME

#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_DEVICE_NAME   0xF7

User assigned device name.

◆ DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_ID

#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_ID   0xF6

User assigned ID code/number.

◆ DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_LOCATION

#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_LOCATION   0xF5

User assigned location name.

◆ DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_OWNER_NAME

#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_OWNER_NAME   0xF4

User-assigned owner name.

◆ DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_PRIMARY_OPERATOR_NAME

#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_PRIMARY_OPERATOR_NAME   0xCF

User-assigned primary operator name.

◆ DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_SECONDARY_OPERATOR_NAME

#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_SECONDARY_OPERATOR_NAME   0xCE

User-assigned secondary operator name.

◆ DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_SYSTEM_NAME

#define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_SYSTEM_NAME   0xD0

User-assigned system name.

◆ DNP3_ATTRIBUTE_VARIATIONS_USER_SPECIFIC_ATTRIBUTES

#define DNP3_ATTRIBUTE_VARIATIONS_USER_SPECIFIC_ATTRIBUTES   0xD3

Identification of user-specific attributes.

◆ DNP3_FLAG_CHATTER_FILTER

#define DNP3_FLAG_CHATTER_FILTER   0x20

Object value is changing state rapidly (device dependent meaning)

◆ DNP3_FLAG_COMM_LOST

#define DNP3_FLAG_COMM_LOST   0x04

Object value represents the last value available before a communication failure occurred. Should never be set by originating devices.

◆ DNP3_FLAG_DISCONTINUITY

#define DNP3_FLAG_DISCONTINUITY   0x40

Reported counter value cannot be compared against a prior value to obtain the correct count difference.

◆ DNP3_FLAG_LOCAL_FORCED

#define DNP3_FLAG_LOCAL_FORCED   0x10

Object value is overridden by the device reporting this flag.

◆ DNP3_FLAG_ONLINE

#define DNP3_FLAG_ONLINE   0x01

Object value is 'good' / 'valid' / 'nominal'.

◆ DNP3_FLAG_OVER_RANGE

#define DNP3_FLAG_OVER_RANGE   0x20

Object's true exceeds the measurement range of the reported variation.

◆ DNP3_FLAG_REFERENCE_ERR

#define DNP3_FLAG_REFERENCE_ERR   0x40

Object's value might not have the expected level of accuracy.

◆ DNP3_FLAG_REMOTE_FORCED

#define DNP3_FLAG_REMOTE_FORCED   0x08

Object value is overridden in a downstream reporting device.

◆ DNP3_FLAG_RESTART

#define DNP3_FLAG_RESTART   0x02

Object value has not been updated since device restart.

Typedef Documentation

◆ dnp3_accept_handler_t

Class used to accept a connection, reject it, or defer it to link identification.

◆ dnp3_address_filter_t

Filters connecting client by their IP address to associate a connecting master with an outstation on the server.

Address filters must be DISJOINT, i.e. two filters cannot accept the same IP address. The dnp3_outstation_server_add_outstation method will fail if the filter conflicts with a previously added filter.

◆ dnp3_analog_input_iterator_t

Iterator of analog_input.

◆ dnp3_analog_output_command_event_iterator_t

Iterator of analog_output_command_event.

◆ dnp3_analog_output_status_iterator_t

Iterator of analog_output_status.

◆ dnp3_attr_item_iter_t

Iterator of attr_item.

◆ dnp3_binary_input_iterator_t

Iterator of binary_input.

◆ dnp3_binary_output_command_event_iterator_t

Iterator of binary_output_command_event.

◆ dnp3_binary_output_status_iterator_t

Iterator of binary_output_status.

◆ dnp3_byte_collection_t

Collection of byte_collection.

◆ dnp3_byte_iterator_t

Iterator of uint8_t.

◆ dnp3_command_set_t

Builder type used to construct command requests.

◆ dnp3_connect_options_t

Options that control how TCP connections are established.

◆ dnp3_counter_iterator_t

Iterator of counter.

◆ dnp3_database_handle_t

Handle typed used to perform transactions on the database inside of control and freeze callbacks.

This type has the same transaction method as dnp3_outstation_transaction but it is only used in these callbacks.

◆ dnp3_database_t

Internal database access.

Warning
This object is only valid within a transaction

◆ dnp3_double_bit_binary_input_iterator_t

Iterator of double_bit_binary_input.

◆ dnp3_endpoint_list_t

List of IP endpoints.

You can write IP addresses or DNS names and the port to connect to. e.g. "127.0.0.1:20000" or "dnp3.myorg.com:20000".

◆ dnp3_file_info_iterator_t

Iterator of file_info.

◆ dnp3_frozen_analog_input_iterator_t

Iterator of frozen_analog_input.

◆ dnp3_frozen_counter_iterator_t

Iterator of frozen_counter.

◆ dnp3_identified_link_handler_t

Class used to accept a connection, reject it, or defer it to link identification.

◆ dnp3_master_channel_t

Represents a communication channel for a master station.

To communicate with a particular outstation, you need to add an association with dnp3_master_channel_add_association.

Warning
The class methods that return a value (e.g. as dnp3_master_channel_add_association) cannot be called from within a callback.

◆ dnp3_master_server_t

Class with methods used to spawn servers.

◆ dnp3_octet_string_iterator_t

Iterator of octet_string.

◆ dnp3_octet_string_value_t

Collection of octet_string_value.

◆ dnp3_outstation_server_t

TCP server that listens for connections and routes the messages to outstations.

To add outstations to it, use dnp3_outstation_server_add_outstation. Once all the outstations are added, the server can be started with dnp3_outstation_server_bind.

dnp3_outstation_server_destroy is used to gracefully shutdown all the outstations and the server.

◆ dnp3_outstation_t

Outstation handle.

Use this handle to modify the internal database.

◆ dnp3_request_t

Custom request.

Whenever a method takes a request as a parameter, the request is internally copied. Therefore, it is possible to reuse the same requests over and over.

◆ dnp3_runtime_t

Handle to the underlying runtime.

◆ dnp3_unsigned_integer_iterator_t

Iterator of unsigned_integer.

◆ dnp3_write_dead_band_request_t

Define a custom request to WRITE analog input dead-bands.

Enumeration Type Documentation

◆ dnp3_analog_command_type_t

Describes the encoding of the commanded value.

Enumerator
DNP3_ANALOG_COMMAND_TYPE_I16 

16-bit integer

DNP3_ANALOG_COMMAND_TYPE_I32 

16-bit integer

DNP3_ANALOG_COMMAND_TYPE_F32 

single-precision floating point

DNP3_ANALOG_COMMAND_TYPE_F64 

double-precision floating point

◆ dnp3_app_decode_level_t

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

Enumerator
DNP3_APP_DECODE_LEVEL_NOTHING 

Decode nothing.

DNP3_APP_DECODE_LEVEL_HEADER 

Decode the header-only.

DNP3_APP_DECODE_LEVEL_OBJECT_HEADERS 

Decode the header and the object headers.

DNP3_APP_DECODE_LEVEL_OBJECT_VALUES 

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

◆ dnp3_attr_def_error_t

Errors that can occur when defining attributes.

Enumerator
DNP3_ATTR_DEF_ERROR_OK 

attribute defined successfully

DNP3_ATTR_DEF_ERROR_ALREADY_DEFINED 

Attribute has already been defined.

DNP3_ATTR_DEF_ERROR_RESERVED_VARIATION 

Variation is reserved and cannot be defined.

DNP3_ATTR_DEF_ERROR_BAD_TYPE 

The type does not match the required type in set 0.

DNP3_ATTR_DEF_ERROR_NOT_WRITABLE 

This attribute cannot be configured as writable.

◆ dnp3_auto_time_sync_t

Automatic time synchronization configuration.

Enumerator
DNP3_AUTO_TIME_SYNC_NONE 

Do not perform automatic time sync.

DNP3_AUTO_TIME_SYNC_LAN 

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

DNP3_AUTO_TIME_SYNC_NON_LAN 

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

◆ dnp3_bit_string_attr_t

Enumeration of all known bit-string attributes.

Enumerator
DNP3_BIT_STRING_ATTR_UNKNOWN 

The attribute variation is not defined or is not part of the default set.

◆ dnp3_bool_attr_t

Enumeration of all the known boolean attributes.

Boolean attributes are actually just encoded as signed integer attributes where 1 == true

Enumerator
DNP3_BOOL_ATTR_UNKNOWN 

The attribute variation is not defined or is not part of the default set.

DNP3_BOOL_ATTR_SUPPORTS_ANALOG_OUTPUT_EVENTS 

Variation 219 - Supports analog output events.

DNP3_BOOL_ATTR_SUPPORTS_BINARY_OUTPUT_EVENTS 

Variation 222 - Supports binary output events.

DNP3_BOOL_ATTR_SUPPORTS_FROZEN_COUNTER_EVENTS 

Variation 225 - Supports frozen counter events.

DNP3_BOOL_ATTR_SUPPORTS_FROZEN_COUNTERS 

Variation 226 - Supports frozen counters.

DNP3_BOOL_ATTR_SUPPORTS_COUNTER_EVENTS 

Variation 227 - Supports counter events.

DNP3_BOOL_ATTR_SUPPORTS_FROZEN_ANALOG_INPUTS 

Variation 230 - Supports frozen analog input events.

DNP3_BOOL_ATTR_SUPPORTS_ANALOG_INPUT_EVENTS 

Variation 231 - Supports analog input events.

DNP3_BOOL_ATTR_SUPPORTS_DOUBLE_BIT_BINARY_INPUT_EVENTS 

Variation 234 - Supports double-bit binary input events.

DNP3_BOOL_ATTR_SUPPORTS_BINARY_INPUT_EVENTS 

Variation 237 - Support binary input events.

◆ dnp3_broadcast_action_t

Enumeration describing how the outstation processed a broadcast request.

Enumerator
DNP3_BROADCAST_ACTION_PROCESSED 

Outstation processed the broadcast.

DNP3_BROADCAST_ACTION_IGNORED_BY_CONFIGURATION 

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

DNP3_BROADCAST_ACTION_BAD_OBJECT_HEADERS 

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

DNP3_BROADCAST_ACTION_UNSUPPORTED_FUNCTION 

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

◆ dnp3_certificate_mode_t

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

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

Enumerator
DNP3_CERTIFICATE_MODE_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. 
DNP3_CERTIFICATE_MODE_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. 

◆ dnp3_client_state_t

State of the client connection.

Use by the dnp3_client_state_listener_t.

Enumerator
DNP3_CLIENT_STATE_DISABLED 

Client is disabled and idle until enabled.

DNP3_CLIENT_STATE_CONNECTING 

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

DNP3_CLIENT_STATE_CONNECTED 

Client is connected to the remote device.

DNP3_CLIENT_STATE_WAIT_AFTER_FAILED_CONNECT 

Failed to establish a connection, waiting before retrying.

DNP3_CLIENT_STATE_WAIT_AFTER_DISCONNECT 

Client was disconnected, waiting before retrying.

DNP3_CLIENT_STATE_SHUTDOWN 

Client is shutting down.

◆ dnp3_command_error_t

Result of a command.

Enumerator
DNP3_COMMAND_ERROR_OK 

Success, i.e. no error occurred.

DNP3_COMMAND_ERROR_BAD_STATUS 

Outstation indicated that a command was not SUCCESS.

DNP3_COMMAND_ERROR_HEADER_MISMATCH 

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

DNP3_COMMAND_ERROR_TOO_MANY_REQUESTS 

too many user requests queued

DNP3_COMMAND_ERROR_IIN_ERROR 

outstation returned an IIN.2 error bit

DNP3_COMMAND_ERROR_BAD_RESPONSE 

response was malformed or contained object headers

DNP3_COMMAND_ERROR_RESPONSE_TIMEOUT 

timeout occurred before receiving a response

DNP3_COMMAND_ERROR_WRITE_ERROR 

insufficient buffer space to serialize the request

DNP3_COMMAND_ERROR_NO_CONNECTION 

no connection

DNP3_COMMAND_ERROR_SHUTDOWN 

master was shutdown

DNP3_COMMAND_ERROR_ASSOCIATION_REMOVED 

association was removed mid-task

DNP3_COMMAND_ERROR_BAD_ENCODING 

request data could not be encoded

◆ dnp3_command_mode_t

Command operation mode.

Enumerator
DNP3_COMMAND_MODE_DIRECT_OPERATE 

Perform a Direct Operate (0x05)

DNP3_COMMAND_MODE_SELECT_BEFORE_OPERATE 

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

◆ dnp3_command_status_t

Enumeration received from an outstation in response to command request.

Enumerator
DNP3_COMMAND_STATUS_SUCCESS 

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

DNP3_COMMAND_STATUS_TIMEOUT 

command timed out before completing (value == 1)

DNP3_COMMAND_STATUS_NO_SELECT 

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

DNP3_COMMAND_STATUS_FORMAT_ERROR 

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

DNP3_COMMAND_STATUS_NOT_SUPPORTED 

command is not implemented (value == 4)

DNP3_COMMAND_STATUS_ALREADY_ACTIVE 

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

DNP3_COMMAND_STATUS_HARDWARE_ERROR 

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

DNP3_COMMAND_STATUS_LOCAL 

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

DNP3_COMMAND_STATUS_TOO_MANY_OPS 

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

DNP3_COMMAND_STATUS_NOT_AUTHORIZED 

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

DNP3_COMMAND_STATUS_AUTOMATION_INHIBIT 

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

DNP3_COMMAND_STATUS_PROCESSING_LIMITED 

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

DNP3_COMMAND_STATUS_OUT_OF_RANGE 

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

DNP3_COMMAND_STATUS_DOWNSTREAM_LOCAL 

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

DNP3_COMMAND_STATUS_ALREADY_COMPLETE 

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

DNP3_COMMAND_STATUS_BLOCKED 

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

DNP3_COMMAND_STATUS_CANCELED 

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

DNP3_COMMAND_STATUS_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)

DNP3_COMMAND_STATUS_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)

DNP3_COMMAND_STATUS_NON_PARTICIPATING 

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

DNP3_COMMAND_STATUS_UNKNOWN 

captures any value not defined in the enumeration

◆ dnp3_connection_state_t

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

Enumerator
DNP3_CONNECTION_STATE_CONNECTED 

Connected to the master.

DNP3_CONNECTION_STATE_DISCONNECTED 

Disconnected from the master.

◆ dnp3_data_bits_t

Number of bits per character.

Enumerator
DNP3_DATA_BITS_FIVE 

5 bits per character

DNP3_DATA_BITS_SIX 

6 bits per character

DNP3_DATA_BITS_SEVEN 

7 bits per character

DNP3_DATA_BITS_EIGHT 

8 bits per character

◆ dnp3_double_bit_t

Double-bit binary input value.

Enumerator
DNP3_DOUBLE_BIT_INTERMEDIATE 

Transition between conditions.

DNP3_DOUBLE_BIT_DETERMINED_OFF 

Determined to be OFF.

DNP3_DOUBLE_BIT_DETERMINED_ON 

Determined to be ON.

DNP3_DOUBLE_BIT_INDETERMINATE 

Abnormal or custom condition.

◆ dnp3_empty_response_error_t

Errors that may occur when performing a request that expects a response with zero object headers.

Enumerator
DNP3_EMPTY_RESPONSE_ERROR_OK 

Success, i.e. no error occurred.

DNP3_EMPTY_RESPONSE_ERROR_REJECTED_BY_IIN2 

IIN2 indicates request was not completely successful.

DNP3_EMPTY_RESPONSE_ERROR_TOO_MANY_REQUESTS 

too many user requests queued

DNP3_EMPTY_RESPONSE_ERROR_IIN_ERROR 

outstation returned an IIN.2 error bit

DNP3_EMPTY_RESPONSE_ERROR_BAD_RESPONSE 

response was malformed or contained object headers

DNP3_EMPTY_RESPONSE_ERROR_RESPONSE_TIMEOUT 

timeout occurred before receiving a response

DNP3_EMPTY_RESPONSE_ERROR_WRITE_ERROR 

insufficient buffer space to serialize the request

DNP3_EMPTY_RESPONSE_ERROR_NO_CONNECTION 

no connection

DNP3_EMPTY_RESPONSE_ERROR_SHUTDOWN 

master was shutdown

DNP3_EMPTY_RESPONSE_ERROR_ASSOCIATION_REMOVED 

association was removed mid-task

DNP3_EMPTY_RESPONSE_ERROR_BAD_ENCODING 

request data could not be encoded

◆ dnp3_event_analog_input_variation_t

Event analog variation.

Enumerator
DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR1 

Analog input event - 32-bit without time.

DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR2 

Analog input event - 16-bit without time.

DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR3 

Analog input event - 32-bit with time.

DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR4 

Analog input event - 16-bit with time.

DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR5 

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

DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR6 

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

DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR7 

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

DNP3_EVENT_ANALOG_INPUT_VARIATION_GROUP32_VAR8 

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

◆ dnp3_event_analog_output_status_variation_t

Event analog output status variation.

Enumerator
DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR1 

Analog output event - 32-bit without time.

DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR2 

Analog output event - 16-bit without time.

DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR3 

Analog output event - 32-bit with time.

DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR4 

Analog output event - 16-bit with time.

DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR5 

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

DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR6 

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

DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR7 

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

DNP3_EVENT_ANALOG_OUTPUT_STATUS_VARIATION_GROUP42_VAR8 

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

◆ dnp3_event_binary_input_variation_t

Event binary input variation.

Enumerator
DNP3_EVENT_BINARY_INPUT_VARIATION_GROUP2_VAR1 

Binary input event - without time.

DNP3_EVENT_BINARY_INPUT_VARIATION_GROUP2_VAR2 

Binary input event - with absolute time.

DNP3_EVENT_BINARY_INPUT_VARIATION_GROUP2_VAR3 

Binary input event - with relative time.

◆ dnp3_event_binary_output_status_variation_t

Event binary output status variation.

Enumerator
DNP3_EVENT_BINARY_OUTPUT_STATUS_VARIATION_GROUP11_VAR1 

Binary output event - status without time.

DNP3_EVENT_BINARY_OUTPUT_STATUS_VARIATION_GROUP11_VAR2 

Binary output event - status with time.

◆ dnp3_event_class_t

Event class.

Enumerator
DNP3_EVENT_CLASS_NONE 

Does not generate events.

DNP3_EVENT_CLASS_CLASS1 

Class 1 event.

DNP3_EVENT_CLASS_CLASS2 

Class 2 event.

DNP3_EVENT_CLASS_CLASS3 

Class 3 event.

◆ dnp3_event_counter_variation_t

Event counter variation.

Enumerator
DNP3_EVENT_COUNTER_VARIATION_GROUP22_VAR1 

Counter event - 32-bit with flag.

DNP3_EVENT_COUNTER_VARIATION_GROUP22_VAR2 

Counter event - 16-bit with flag.

DNP3_EVENT_COUNTER_VARIATION_GROUP22_VAR5 

Counter event - 32-bit with flag and time.

DNP3_EVENT_COUNTER_VARIATION_GROUP22_VAR6 

Counter event - 16-bit with flag and time.

◆ dnp3_event_double_bit_binary_input_variation_t

Event double-bit binary input variation.

Enumerator
DNP3_EVENT_DOUBLE_BIT_BINARY_INPUT_VARIATION_GROUP4_VAR1 

Double-bit binary input event - without time.

DNP3_EVENT_DOUBLE_BIT_BINARY_INPUT_VARIATION_GROUP4_VAR2 

Double-bit binary input event - with absolute time.

DNP3_EVENT_DOUBLE_BIT_BINARY_INPUT_VARIATION_GROUP4_VAR3 

Double-bit binary input event - with relative time.

◆ dnp3_event_frozen_counter_variation_t

Event frozen counter variation.

Enumerator
DNP3_EVENT_FROZEN_COUNTER_VARIATION_GROUP23_VAR1 

Frozen Counter event - 32-bit with flag.

DNP3_EVENT_FROZEN_COUNTER_VARIATION_GROUP23_VAR2 

Frozen Counter event - 16-bit with flag.

DNP3_EVENT_FROZEN_COUNTER_VARIATION_GROUP23_VAR5 

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

DNP3_EVENT_FROZEN_COUNTER_VARIATION_GROUP23_VAR6 

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

◆ dnp3_event_mode_t

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

Enumerator
DNP3_EVENT_MODE_DETECT 

Detect events in a type dependent fashion.

This is the default mode that should be used. 
DNP3_EVENT_MODE_FORCE 

Produce an event whether the value has changed or not.

DNP3_EVENT_MODE_SUPPRESS 

Never produce an event regardless of change.

◆ dnp3_file_error_t

Errors that can occur during file transfer.

Enumerator
DNP3_FILE_ERROR_OK 

Success, i.e. no error occurred.

DNP3_FILE_ERROR_BAD_STATUS 

Outstation returned an error status code.

DNP3_FILE_ERROR_NO_PERMISSION 

Outstation indicated no permission to access file.

DNP3_FILE_ERROR_BAD_BLOCK_NUM 

Received an unexpected block number.

DNP3_FILE_ERROR_ABORT_BY_USER 

File transfer aborted by user.

DNP3_FILE_ERROR_MAX_LENGTH_EXCEEDED 

Exceeded the maximum length specified by the user.

DNP3_FILE_ERROR_WRONG_HANDLE 

File handle returned by the outstation did not match the request.

DNP3_FILE_ERROR_TOO_MANY_REQUESTS 

too many user requests queued

DNP3_FILE_ERROR_IIN_ERROR 

outstation returned an IIN.2 error bit

DNP3_FILE_ERROR_BAD_RESPONSE 

response was malformed or contained object headers

DNP3_FILE_ERROR_RESPONSE_TIMEOUT 

timeout occurred before receiving a response

DNP3_FILE_ERROR_WRITE_ERROR 

insufficient buffer space to serialize the request

DNP3_FILE_ERROR_NO_CONNECTION 

no connection

DNP3_FILE_ERROR_SHUTDOWN 

master was shutdown

DNP3_FILE_ERROR_ASSOCIATION_REMOVED 

association was removed mid-task

DNP3_FILE_ERROR_BAD_ENCODING 

request data could not be encoded

◆ dnp3_file_mode_t

Different modes in which files may be opened.

Enumerator
DNP3_FILE_MODE_READ 

Specifies that an existing file is to be opened for reading.

DNP3_FILE_MODE_WRITE 

Specifies that the file is to be opened for writing, truncating any existing file to length 0.

DNP3_FILE_MODE_APPEND 

Specifies that the file is to be opened for writing, appending to the end of the file.

◆ dnp3_file_type_t

File type enumeration used in Group 70 objects.

Enumerator
DNP3_FILE_TYPE_DIRECTORY 

File is a directory.

DNP3_FILE_TYPE_SIMPLE 

File is a simple file type suitable for sequential file transfer.

DNP3_FILE_TYPE_OTHER 

Some other unspecified value.

◆ dnp3_float_attr_t

Enumeration of all known float attributes.

Enumerator
DNP3_FLOAT_ATTR_UNKNOWN 

The attribute variation is not defined or is not part of the default set.

DNP3_FLOAT_ATTR_DEVICE_LOCATION_ALTITUDE 

Variation 203 - Altitude of the device.

DNP3_FLOAT_ATTR_DEVICE_LOCATION_LONGITUDE 

Variation 204 - Longitude of the device from reference meridian (-180.0 to 180.0 deg)

DNP3_FLOAT_ATTR_DEVICE_LOCATION_LATITUDE 

Variation 205 - Latitude of the device from the equator (90.0 to -90.0 deg)

◆ dnp3_flow_control_t

Flow control modes.

Enumerator
DNP3_FLOW_CONTROL_NONE 

No flow control.

DNP3_FLOW_CONTROL_SOFTWARE 

Flow control using XON/XOFF bytes.

DNP3_FLOW_CONTROL_HARDWARE 

Flow control using RTS/CTS signals.

◆ dnp3_freeze_result_t

Result of a freeze operation.

Enumerator
DNP3_FREEZE_RESULT_OK 

Freeze operation was successful.

DNP3_FREEZE_RESULT_PARAMETER_ERROR 

The request parameters are nonsensical.

DNP3_FREEZE_RESULT_NOT_SUPPORTED 

The demanded freeze operation is not supported by this device.

◆ dnp3_freeze_type_t

Freeze operation type.

Enumerator
DNP3_FREEZE_TYPE_IMMEDIATE_FREEZE 

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

DNP3_FREEZE_TYPE_FREEZE_AND_CLEAR 

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

◆ dnp3_function_code_t

Application layer function code.

Enumerator
DNP3_FUNCTION_CODE_CONFIRM 

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

DNP3_FUNCTION_CODE_READ 

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

DNP3_FUNCTION_CODE_WRITE 

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

DNP3_FUNCTION_CODE_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)

DNP3_FUNCTION_CODE_OPERATE 

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

DNP3_FUNCTION_CODE_DIRECT_OPERATE 

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

DNP3_FUNCTION_CODE_DIRECT_OPERATE_NO_RESPONSE 

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

DNP3_FUNCTION_CODE_IMMEDIATE_FREEZE 

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

DNP3_FUNCTION_CODE_IMMEDIATE_FREEZE_NO_RESPONSE 

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

DNP3_FUNCTION_CODE_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)

DNP3_FUNCTION_CODE_FREEZE_CLEAR_NO_RESPONSE 

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

DNP3_FUNCTION_CODE_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)

DNP3_FUNCTION_CODE_FREEZE_AT_TIME_NO_RESPONSE 

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

DNP3_FUNCTION_CODE_COLD_RESTART 

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

DNP3_FUNCTION_CODE_WARM_RESTART 

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

DNP3_FUNCTION_CODE_INITIALIZE_DATA 

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

DNP3_FUNCTION_CODE_INITIALIZE_APPLICATION 

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

DNP3_FUNCTION_CODE_START_APPLICATION 

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

DNP3_FUNCTION_CODE_STOP_APPLICATION 

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

DNP3_FUNCTION_CODE_SAVE_CONFIGURATION 

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

DNP3_FUNCTION_CODE_ENABLE_UNSOLICITED 

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

DNP3_FUNCTION_CODE_DISABLE_UNSOLICITED 

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

DNP3_FUNCTION_CODE_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)

DNP3_FUNCTION_CODE_DELAY_MEASURE 

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

DNP3_FUNCTION_CODE_RECORD_CURRENT_TIME 

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

DNP3_FUNCTION_CODE_OPEN_FILE 

Outstation shall open a file (value == 25)

DNP3_FUNCTION_CODE_CLOSE_FILE 

Outstation shall close a file (value == 26)

DNP3_FUNCTION_CODE_DELETE_FILE 

Outstation shall delete a file (value == 27)

DNP3_FUNCTION_CODE_GET_FILE_INFO 

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

DNP3_FUNCTION_CODE_AUTHENTICATE_FILE 

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

DNP3_FUNCTION_CODE_ABORT_FILE 

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

DNP3_FUNCTION_CODE_RESPONSE 

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

DNP3_FUNCTION_CODE_UNSOLICITED_RESPONSE 

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

◆ dnp3_int_attr_t

Enumeration of all the default integer attributes.

In 1815-2012 all integer attributes are mapped to boolean values

Enumerator
DNP3_INT_ATTR_UNKNOWN 

The attribute variation is not defined or is not part of the default set.

◆ dnp3_link_decode_level_t

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

Enumerator
DNP3_LINK_DECODE_LEVEL_NOTHING 

Decode nothing.

DNP3_LINK_DECODE_LEVEL_HEADER 

Decode the header.

DNP3_LINK_DECODE_LEVEL_PAYLOAD 

Decode the header and the raw payload as hexadecimal.

◆ dnp3_link_error_mode_t

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
DNP3_LINK_ERROR_MODE_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.

DNP3_LINK_ERROR_MODE_CLOSE 

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

◆ dnp3_link_read_mode_t

Controls how the link-layer parser treats frames that span multiple calls to read of the physical layer.

UDP is unique in that the specification requires that link layer frames be wholly contained within datagrams, but this can be relaxed by configuration.

Enumerator
DNP3_LINK_READ_MODE_STREAM 

Reading from a stream (TCP, serial, etc.) where link-layer frames MAY span separate calls to read.

DNP3_LINK_READ_MODE_DATAGRAM 

Reading datagrams (UDP) where link-layer frames MAY NOT span separate calls to read.

◆ dnp3_link_status_error_t

Errors that can occur during a manually initiated link status check. See dnp3_master_channel_check_link_status.

Enumerator
DNP3_LINK_STATUS_ERROR_OK 

Success, i.e. no error occurred.

DNP3_LINK_STATUS_ERROR_UNEXPECTED_RESPONSE 

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

DNP3_LINK_STATUS_ERROR_TOO_MANY_REQUESTS 

too many user requests queued

DNP3_LINK_STATUS_ERROR_IIN_ERROR 

outstation returned an IIN.2 error bit

DNP3_LINK_STATUS_ERROR_BAD_RESPONSE 

response was malformed or contained object headers

DNP3_LINK_STATUS_ERROR_RESPONSE_TIMEOUT 

timeout occurred before receiving a response

DNP3_LINK_STATUS_ERROR_WRITE_ERROR 

insufficient buffer space to serialize the request

DNP3_LINK_STATUS_ERROR_NO_CONNECTION 

no connection

DNP3_LINK_STATUS_ERROR_SHUTDOWN 

master was shutdown

DNP3_LINK_STATUS_ERROR_ASSOCIATION_REMOVED 

association was removed mid-task

DNP3_LINK_STATUS_ERROR_BAD_ENCODING 

request data could not be encoded

◆ dnp3_log_level_t

Log level.

Used in dnp3_logger_t::on_message callback to identify the log level of a message.

Enumerator
DNP3_LOG_LEVEL_ERROR 

Error log level.

DNP3_LOG_LEVEL_WARN 

Warning log level.

DNP3_LOG_LEVEL_INFO 

Information log level.

DNP3_LOG_LEVEL_DEBUG 

Debugging log level.

DNP3_LOG_LEVEL_TRACE 

Trace log level.

◆ dnp3_log_output_format_t

Describes how each log event is formatted.

Enumerator
DNP3_LOG_OUTPUT_FORMAT_TEXT 

A simple text-based format.

DNP3_LOG_OUTPUT_FORMAT_JSON 

Output formatted as JSON.

◆ dnp3_min_tls_version_t

Minimum TLS version to allow.

Enumerator
DNP3_MIN_TLS_VERSION_V12 

Allow TLS 1.2 and 1.3.

DNP3_MIN_TLS_VERSION_V13 

Only allow TLS 1.3.

◆ dnp3_nothing_t

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

Enumerator
DNP3_NOTHING_NOTHING 

The value type is meaningless.

◆ dnp3_octet_string_attr_t

Enumeration of all known octet-string attributes.

Enumerator
DNP3_OCTET_STRING_ATTR_UNKNOWN 

The attribute variation is not defined or is not part of the default set.

DNP3_OCTET_STRING_ATTR_CONFIG_DIGEST 

Variation 200 - Digest (aka fingerprint) of the configuration using a CRC, HASH, MAC, or public key signature.

◆ dnp3_op_type_t

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

Enumerator
DNP3_OP_TYPE_NUL 

NUL (0)

DNP3_OP_TYPE_PULSE_ON 

PULSE_ON (1)

DNP3_OP_TYPE_PULSE_OFF 

PULSE_OFF (2)

DNP3_OP_TYPE_LATCH_ON 

LATCH_ON (3)

DNP3_OP_TYPE_LATCH_OFF 

LATCH_OFF(4)

◆ dnp3_operate_type_t

Enumeration describing how the master requested the control operation.

Enumerator
DNP3_OPERATE_TYPE_SELECT_BEFORE_OPERATE 

control point was properly selected before the operate request

DNP3_OPERATE_TYPE_DIRECT_OPERATE 

operate the control via a DirectOperate request

DNP3_OPERATE_TYPE_DIRECT_OPERATE_NO_ACK 

operate the control via a DirectOperateNoAck request

◆ dnp3_param_error_t

Error type used throughout the library.

Enumerator
DNP3_PARAM_ERROR_OK 

Success, i.e. no error occurred.

DNP3_PARAM_ERROR_INVALID_TIMEOUT 

The supplied timeout value is too small or too large.

DNP3_PARAM_ERROR_NULL_PARAMETER 

Null parameter.

DNP3_PARAM_ERROR_STRING_NOT_UTF8 

Provided string argument is not UTF-8.

DNP3_PARAM_ERROR_NO_SUPPORT 

Native library was compiled without support for this feature.

DNP3_PARAM_ERROR_ASSOCIATION_DOES_NOT_EXIST 

The specified association does not exist.

DNP3_PARAM_ERROR_ASSOCIATION_DUPLICATE_ADDRESS 

Duplicate association address.

DNP3_PARAM_ERROR_INVALID_SOCKET_ADDRESS 

Invalid socket address.

DNP3_PARAM_ERROR_INVALID_DNP3_ADDRESS 

Invalid link-layer DNP3 address.

DNP3_PARAM_ERROR_INVALID_BUFFER_SIZE 

Invalid buffer size.

DNP3_PARAM_ERROR_ADDRESS_FILTER_CONFLICT 

Conflict in the address filter specification.

DNP3_PARAM_ERROR_SERVER_ALREADY_STARTED 

Server already started.

DNP3_PARAM_ERROR_SERVER_BIND_ERROR 

Server failed to bind to the specified port.

DNP3_PARAM_ERROR_MASTER_ALREADY_SHUTDOWN 

Master was already shutdown.

DNP3_PARAM_ERROR_RUNTIME_CREATION_FAILURE 

Failed to create Tokio runtime.

DNP3_PARAM_ERROR_RUNTIME_DESTROYED 

Runtime has already been disposed.

DNP3_PARAM_ERROR_RUNTIME_CANNOT_BLOCK_WITHIN_ASYNC 

Runtime cannot execute blocking call within asynchronous context.

DNP3_PARAM_ERROR_LOGGING_ALREADY_CONFIGURED 

Logging can only be configured once.

DNP3_PARAM_ERROR_POINT_DOES_NOT_EXIST 

Point does not exist.

DNP3_PARAM_ERROR_INVALID_PEER_CERTIFICATE 

Invalid peer certificate file.

DNP3_PARAM_ERROR_INVALID_LOCAL_CERTIFICATE 

Invalid local certificate file.

DNP3_PARAM_ERROR_INVALID_PRIVATE_KEY 

Invalid private key file.

DNP3_PARAM_ERROR_INVALID_DNS_NAME 

Invalid DNS name.

DNP3_PARAM_ERROR_OTHER_TLS_ERROR 

Other TLS error.

DNP3_PARAM_ERROR_WRONG_CHANNEL_TYPE 

This operation cannot be performed on this channel type.

DNP3_PARAM_ERROR_CONSUMED 

This object is consumed and cannot be used again.

◆ dnp3_parity_t

Parity checking modes.

Enumerator
DNP3_PARITY_NONE 

No parity bit.

DNP3_PARITY_ODD 

Parity bit sets odd number of 1 bits.

DNP3_PARITY_EVEN 

Parity bit sets even number of 1 bits.

◆ dnp3_phys_decode_level_t

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

Enumerator
DNP3_PHYS_DECODE_LEVEL_NOTHING 

Log nothing.

DNP3_PHYS_DECODE_LEVEL_LENGTH 

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

DNP3_PHYS_DECODE_LEVEL_DATA 

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

◆ dnp3_port_state_t

State of the serial port.

Enumerator
DNP3_PORT_STATE_DISABLED 

Disabled until enabled.

DNP3_PORT_STATE_WAIT 

Waiting to perform an open retry.

DNP3_PORT_STATE_OPEN 

Port is open.

DNP3_PORT_STATE_SHUTDOWN 

Task has been shut down.

◆ dnp3_qualifier_code_t

Qualifier code used in the response.

Enumerator
DNP3_QUALIFIER_CODE_RANGE8 

8-bit start stop (0x00)

DNP3_QUALIFIER_CODE_RANGE16 

16-bit start stop (0x01)

DNP3_QUALIFIER_CODE_ALL_OBJECTS 

All objects (0x06)

DNP3_QUALIFIER_CODE_COUNT8 

8-bit count (0x07)

DNP3_QUALIFIER_CODE_COUNT16 

16-bit count (0x08)

DNP3_QUALIFIER_CODE_COUNT_AND_PREFIX_8 

8-bit count and prefix (0x17)

DNP3_QUALIFIER_CODE_COUNT_AND_PREFIX_16 

16-bit count and prefix (0x28)

DNP3_QUALIFIER_CODE_FREE_FORMAT_16 

16-bit free format (0x5B)

◆ dnp3_read_error_t

Errors that can occur during a read operation.

Enumerator
DNP3_READ_ERROR_OK 

Success, i.e. no error occurred.

DNP3_READ_ERROR_TOO_MANY_REQUESTS 

too many user requests queued

DNP3_READ_ERROR_IIN_ERROR 

outstation returned an IIN.2 error bit

DNP3_READ_ERROR_BAD_RESPONSE 

response was malformed or contained object headers

DNP3_READ_ERROR_RESPONSE_TIMEOUT 

timeout occurred before receiving a response

DNP3_READ_ERROR_WRITE_ERROR 

insufficient buffer space to serialize the request

DNP3_READ_ERROR_NO_CONNECTION 

no connection

DNP3_READ_ERROR_SHUTDOWN 

master was shutdown

DNP3_READ_ERROR_ASSOCIATION_REMOVED 

association was removed mid-task

DNP3_READ_ERROR_BAD_ENCODING 

request data could not be encoded

◆ dnp3_read_type_t

Describes the source of a read event.

Enumerator
DNP3_READ_TYPE_STARTUP_INTEGRITY 

Startup integrity poll.

DNP3_READ_TYPE_UNSOLICITED 

Unsolicited message.

DNP3_READ_TYPE_SINGLE_POLL 

Single poll requested by the user.

DNP3_READ_TYPE_PERIODIC_POLL 

Periodic poll configured by the user.

◆ dnp3_response_function_t

Type of response.

Enumerator
DNP3_RESPONSE_FUNCTION_RESPONSE 

Solicited response.

DNP3_RESPONSE_FUNCTION_UNSOLICITED_RESPONSE 

Unsolicited response.

◆ dnp3_restart_delay_type_t

Type of restart delay value. Used by dnp3_restart_delay_t.

Enumerator
DNP3_RESTART_DELAY_TYPE_NOT_SUPPORTED 

Restart mode not supported.

DNP3_RESTART_DELAY_TYPE_SECONDS 

Value is in seconds (corresponds to g51v1)

DNP3_RESTART_DELAY_TYPE_MILLI_SECONDS 

Value is in milliseconds (corresponds to g51v2)

◆ dnp3_restart_error_t

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

Enumerator
DNP3_RESTART_ERROR_OK 

Success, i.e. no error occurred.

DNP3_RESTART_ERROR_TOO_MANY_REQUESTS 

too many user requests queued

DNP3_RESTART_ERROR_IIN_ERROR 

outstation returned an IIN.2 error bit

DNP3_RESTART_ERROR_BAD_RESPONSE 

response was malformed or contained object headers

DNP3_RESTART_ERROR_RESPONSE_TIMEOUT 

timeout occurred before receiving a response

DNP3_RESTART_ERROR_WRITE_ERROR 

insufficient buffer space to serialize the request

DNP3_RESTART_ERROR_NO_CONNECTION 

no connection

DNP3_RESTART_ERROR_SHUTDOWN 

master was shutdown

DNP3_RESTART_ERROR_ASSOCIATION_REMOVED 

association was removed mid-task

DNP3_RESTART_ERROR_BAD_ENCODING 

request data could not be encoded

◆ dnp3_static_analog_input_variation_t

Static analog variation.

Enumerator
DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR1 

Analog input - 32-bit with flag.

DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR2 

Analog input - 16-bit with flag.

DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR3 

Analog input - 32-bit without flag.

DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR4 

Analog input - 16-bit without flag.

DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR5 

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

DNP3_STATIC_ANALOG_INPUT_VARIATION_GROUP30_VAR6 

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

◆ dnp3_static_analog_output_status_variation_t

Static analog output status variation.

Enumerator
DNP3_STATIC_ANALOG_OUTPUT_STATUS_VARIATION_GROUP40_VAR1 

Analog output status - 32-bit with flag.

DNP3_STATIC_ANALOG_OUTPUT_STATUS_VARIATION_GROUP40_VAR2 

Analog output status - 16-bit with flag.

DNP3_STATIC_ANALOG_OUTPUT_STATUS_VARIATION_GROUP40_VAR3 

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

DNP3_STATIC_ANALOG_OUTPUT_STATUS_VARIATION_GROUP40_VAR4 

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

◆ dnp3_static_binary_input_variation_t

Static binary input variation.

Enumerator
DNP3_STATIC_BINARY_INPUT_VARIATION_GROUP1_VAR1 

Binary input - packed format.

DNP3_STATIC_BINARY_INPUT_VARIATION_GROUP1_VAR2 

Binary input - with flags.

◆ dnp3_static_binary_output_status_variation_t

Static binary output status variation.

Enumerator
DNP3_STATIC_BINARY_OUTPUT_STATUS_VARIATION_GROUP10_VAR1 

Binary output - packed format.

DNP3_STATIC_BINARY_OUTPUT_STATUS_VARIATION_GROUP10_VAR2 

Binary output - output status with flags.

◆ dnp3_static_counter_variation_t

Static counter variation.

Enumerator
DNP3_STATIC_COUNTER_VARIATION_GROUP20_VAR1 

Counter - 32-bit with flag.

DNP3_STATIC_COUNTER_VARIATION_GROUP20_VAR2 

Counter - 16-bit with flag.

DNP3_STATIC_COUNTER_VARIATION_GROUP20_VAR5 

Counter - 32-bit without flag.

DNP3_STATIC_COUNTER_VARIATION_GROUP20_VAR6 

Counter - 16-bit without flag.

◆ dnp3_static_double_bit_binary_input_variation_t

Static double-bit binary input variation.

Enumerator
DNP3_STATIC_DOUBLE_BIT_BINARY_INPUT_VARIATION_GROUP3_VAR1 

Double-bit binary input - packed format.

DNP3_STATIC_DOUBLE_BIT_BINARY_INPUT_VARIATION_GROUP3_VAR2 

Double-bit binary input - with flags.

◆ dnp3_static_frozen_counter_variation_t

Static frozen counter variation.

Enumerator
DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR1 

Frozen Counter - 32-bit with flag.

DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR2 

Frozen Counter - 16-bit with flag.

DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR5 

Frozen Counter - 32-bit with flag and time.

DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR6 

Frozen Counter - 16-bit with flag and time.

DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR9 

Frozen Counter - 32-bit without flag.

DNP3_STATIC_FROZEN_COUNTER_VARIATION_GROUP21_VAR10 

Frozen Counter - 16-bit without flag.

◆ dnp3_stop_bits_t

Number of stop bits.

Enumerator
DNP3_STOP_BITS_ONE 

One stop bit.

DNP3_STOP_BITS_TWO 

Two stop bits.

◆ dnp3_string_attr_t

Enumeration of all the default string attributes.

Enumerator
DNP3_STRING_ATTR_UNKNOWN 

The attribute variation is not defined or is not part of the default set.

DNP3_STRING_ATTR_CONFIG_ID 

Variation 196 - Configuration id.

DNP3_STRING_ATTR_CONFIG_VERSION 

Variation 197 - Configuration version.

DNP3_STRING_ATTR_CONFIG_DIGEST_ALGORITHM 

Variation 201 - Configuration digest algorithm.

DNP3_STRING_ATTR_MASTER_RESOURCE_ID 

Variation 202 - Master resource id (mRID)

DNP3_STRING_ATTR_USER_ASSIGNED_SECONDARY_OPERATOR_NAME 

Variation 206 - User-assigned secondary operator name.

DNP3_STRING_ATTR_USER_ASSIGNED_PRIMARY_OPERATOR_NAME 

Variation 207 - User-assigned primary operator name.

DNP3_STRING_ATTR_USER_ASSIGNED_SYSTEM_NAME 

Variation 208 - User-assigned system name.

DNP3_STRING_ATTR_USER_SPECIFIC_ATTRIBUTES 

Variation 211 - Identification of user-specific attributes.

DNP3_STRING_ATTR_DEVICE_MANUFACTURER_SOFTWARE_VERSION 

Variation 242 - Device manufacturer software version.

DNP3_STRING_ATTR_DEVICE_MANUFACTURER_HARDWARE_VERSION 

Variation 243 - Device manufacturer hardware version.

DNP3_STRING_ATTR_USER_ASSIGNED_OWNER_NAME 

Variation 244 - User-assigned owner name.

DNP3_STRING_ATTR_USER_ASSIGNED_LOCATION 

Variation 245 - User assigned location name.

DNP3_STRING_ATTR_USER_ASSIGNED_ID 

Variation 246 - User assigned ID code/number.

DNP3_STRING_ATTR_USER_ASSIGNED_DEVICE_NAME 

Variation 247 - User assigned device name.

DNP3_STRING_ATTR_DEVICE_SERIAL_NUMBER 

Variation 248 - Device serial number.

DNP3_STRING_ATTR_DEVICE_SUBSET_AND_CONFORMANCE 

Variation 249 - DNP3 subset and conformance.

DNP3_STRING_ATTR_PRODUCT_NAME_AND_MODEL 

Variation 250 - Device manufacturer's product name and model.

DNP3_STRING_ATTR_DEVICE_MANUFACTURERS_NAME 

Variation 252 - Device manufacturer's name.

◆ dnp3_task_error_t

Task error used in dnp3_association_information_t.

Enumerator
DNP3_TASK_ERROR_TOO_MANY_REQUESTS 

too many user requests queued

DNP3_TASK_ERROR_IIN_ERROR 

outstation returned an IIN.2 error bit

DNP3_TASK_ERROR_BAD_RESPONSE 

response was malformed or contained object headers

DNP3_TASK_ERROR_RESPONSE_TIMEOUT 

timeout occurred before receiving a response

DNP3_TASK_ERROR_WRITE_ERROR 

insufficient buffer space to serialize the request

DNP3_TASK_ERROR_NO_CONNECTION 

no connection

DNP3_TASK_ERROR_SHUTDOWN 

master was shutdown

DNP3_TASK_ERROR_ASSOCIATION_REMOVED 

association was removed mid-task

DNP3_TASK_ERROR_BAD_ENCODING 

request data could not be encoded

◆ dnp3_task_type_t

Task type used in dnp3_association_information_t.

Enumerator
DNP3_TASK_TYPE_USER_READ 

User-defined read request.

DNP3_TASK_TYPE_PERIODIC_POLL 

Periodic poll task.

DNP3_TASK_TYPE_STARTUP_INTEGRITY 

Startup integrity scan.

DNP3_TASK_TYPE_AUTO_EVENT_SCAN 

Automatic event scan caused by RESTART IIN bit detection.

DNP3_TASK_TYPE_COMMAND 

Command request.

DNP3_TASK_TYPE_CLEAR_RESTART_BIT 

Clear RESTART IIN bit.

DNP3_TASK_TYPE_ENABLE_UNSOLICITED 

Enable unsolicited startup request.

DNP3_TASK_TYPE_DISABLE_UNSOLICITED 

Disable unsolicited startup request.

DNP3_TASK_TYPE_TIME_SYNC 

Time synchronisation task.

DNP3_TASK_TYPE_RESTART 

Cold or warm restart task.

DNP3_TASK_TYPE_WRITE_DEAD_BANDS 

Write analog input dead-bands.

DNP3_TASK_TYPE_GENERIC_EMPTY_RESPONSE 

Generic request that expects an empty response.

DNP3_TASK_TYPE_FILE_READ 

Read a file from the outstation.

DNP3_TASK_TYPE_GET_FILE_INFO 

Get information about a file.

DNP3_TASK_TYPE_FILE_AUTH 

Send username and password and get back an auth key from the outstation.

DNP3_TASK_TYPE_FILE_OPEN 

Open a file on the outstation.

DNP3_TASK_TYPE_FILE_WRITE_BLOCK 

Write a file block to the outstation.

DNP3_TASK_TYPE_FILE_CLOSE 

Close a file on the outstation.

◆ dnp3_time_attr_t

Enumeration of all the known DNP3 Time attributes.

Enumerator
DNP3_TIME_ATTR_UNKNOWN 

The attribute variation is not defined or is not part of the default set.

DNP3_TIME_ATTR_CONFIG_BUILD_DATE 

Variation 198 - Time and date that the outstation's current configuration was built defined.

DNP3_TIME_ATTR_CONFIG_LAST_CHANGE_DATE 

Variation 199 - Time and date that the outstation's configuration was last modified.

◆ dnp3_time_format_t

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

Enumerator
DNP3_TIME_FORMAT_NONE 

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

DNP3_TIME_FORMAT_RFC_3339 

Format the time using RFC 3339.

DNP3_TIME_FORMAT_SYSTEM 

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

◆ dnp3_time_quality_t

Timestamp quality.

Enumerator
DNP3_TIME_QUALITY_SYNCHRONIZED_TIME 

The timestamp is UTC synchronized at the remote device.

DNP3_TIME_QUALITY_UNSYNCHRONIZED_TIME 

The device indicates the timestamp may be not be synchronized.

DNP3_TIME_QUALITY_INVALID_TIME 

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

◆ dnp3_time_sync_error_t

Possible errors that can occur during a time synchronization procedure.

Enumerator
DNP3_TIME_SYNC_ERROR_OK 

Success, i.e. no error occurred.

DNP3_TIME_SYNC_ERROR_CLOCK_ROLLBACK 

Detected a clock rollback.

DNP3_TIME_SYNC_ERROR_SYSTEM_TIME_NOT_UNIX 

The system time cannot be converted to a Unix timestamp.

DNP3_TIME_SYNC_ERROR_BAD_OUTSTATION_TIME_DELAY 

Outstation time delay exceeded the response delay.

DNP3_TIME_SYNC_ERROR_OVERFLOW 

Overflow in calculation.

DNP3_TIME_SYNC_ERROR_STILL_NEEDS_TIME 

Outstation did not clear the NEED_TIME IIN bit.

DNP3_TIME_SYNC_ERROR_SYSTEM_TIME_NOT_AVAILABLE 

System time not available.

DNP3_TIME_SYNC_ERROR_TOO_MANY_REQUESTS 

too many user requests queued

DNP3_TIME_SYNC_ERROR_IIN_ERROR 

outstation returned an IIN.2 error bit

DNP3_TIME_SYNC_ERROR_BAD_RESPONSE 

response was malformed or contained object headers

DNP3_TIME_SYNC_ERROR_RESPONSE_TIMEOUT 

timeout occurred before receiving a response

DNP3_TIME_SYNC_ERROR_WRITE_ERROR 

insufficient buffer space to serialize the request

DNP3_TIME_SYNC_ERROR_NO_CONNECTION 

no connection

DNP3_TIME_SYNC_ERROR_SHUTDOWN 

master was shutdown

DNP3_TIME_SYNC_ERROR_ASSOCIATION_REMOVED 

association was removed mid-task

DNP3_TIME_SYNC_ERROR_BAD_ENCODING 

request data could not be encoded

◆ dnp3_time_sync_mode_t

Time synchronization mode.

Enumerator
DNP3_TIME_SYNC_MODE_LAN 

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

DNP3_TIME_SYNC_MODE_NON_LAN 

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

◆ dnp3_transport_decode_level_t

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

Enumerator
DNP3_TRANSPORT_DECODE_LEVEL_NOTHING 

Decode nothing.

DNP3_TRANSPORT_DECODE_LEVEL_HEADER 

Decode the header.

DNP3_TRANSPORT_DECODE_LEVEL_PAYLOAD 

Decode the header and the raw payload as hexadecimal.

◆ dnp3_trip_close_code_t

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

Enumerator
DNP3_TRIP_CLOSE_CODE_NUL 

NUL (0)

DNP3_TRIP_CLOSE_CODE_CLOSE 

CLOSE (1)

DNP3_TRIP_CLOSE_CODE_TRIP 

TRIP (2)

DNP3_TRIP_CLOSE_CODE_RESERVED 

RESERVED (3)

◆ dnp3_udp_socket_mode_t

Describes how the UDP socket reads and writes datagrams from remote endpoint(s)

Enumerator
DNP3_UDP_SOCKET_MODE_ONE_TO_ONE 

The UDP endpoint will only communicate with the specified remote endpoint.

DNP3_UDP_SOCKET_MODE_ONE_TO_MANY 

The UDP endpoint will accept packets any remote endpoint.

When this mode is used with an outstation, the outstation will respond to the address from which the request was sent. It will use the supplied remote endpoint only for sending unsolicited responses. 

◆ dnp3_uint_attr_t

Enumeration of all the default uint attributes.

Enumerator
DNP3_UINT_ATTR_UNKNOWN 

The attribute variation is not defined or is not part of the default set.

DNP3_UINT_ATTR_SECURE_AUTH_VERSION 

Variation 209 - Secure authentication version.

DNP3_UINT_ATTR_NUM_SECURITY_STATS_PER_ASSOC 

Variation 210 - Number of security statistics per association.

DNP3_UINT_ATTR_NUM_MASTER_DEFINED_DATA_SET_PROTO 

Variation 212 - Number of master defined data-set prototypes.

DNP3_UINT_ATTR_NUM_OUTSTATION_DEFINED_DATA_SET_PROTO 

Variation 213 - Number of outstation defined data-set prototypes.

DNP3_UINT_ATTR_NUM_MASTER_DEFINED_DATA_SETS 

Variation 214 - Number of master defined data-sets.

DNP3_UINT_ATTR_NUM_OUTSTATION_DEFINED_DATA_SETS 

Variation 215 - Number of outstation defined data-sets.

DNP3_UINT_ATTR_MAX_BINARY_OUTPUT_PER_REQUEST 

Variation 216 - Maximum number of binary outputs per request.

DNP3_UINT_ATTR_LOCAL_TIMING_ACCURACY 

Variation 217 - Local timing accuracy (microseconds)

DNP3_UINT_ATTR_DURATION_OF_TIME_ACCURACY 

Variation 218 - Duration of time accuracy (seconds)

DNP3_UINT_ATTR_MAX_ANALOG_OUTPUT_INDEX 

Variation 220 - Maximum analog output index.

DNP3_UINT_ATTR_NUM_ANALOG_OUTPUTS 

Variation 221 - Number of analog outputs.

DNP3_UINT_ATTR_MAX_BINARY_OUTPUT_INDEX 

Variation 223 - Maximum binary output index.

DNP3_UINT_ATTR_NUM_BINARY_OUTPUTS 

Variation 224 - Number of binary outputs.

DNP3_UINT_ATTR_MAX_COUNTER_INDEX 

Variation 228 - Maximum counter point index.

DNP3_UINT_ATTR_NUM_COUNTER 

Variation 229 - Number of counter points.

DNP3_UINT_ATTR_MAX_ANALOG_INPUT_INDEX 

Variation 232 - Maximum analog input point index.

DNP3_UINT_ATTR_NUM_ANALOG_INPUT 

Variation 233 - Number of analog input points.

DNP3_UINT_ATTR_MAX_DOUBLE_BIT_BINARY_INPUT_INDEX 

Variation 235 - Maximum double-bit binary input point index.

DNP3_UINT_ATTR_NUM_DOUBLE_BIT_BINARY_INPUT 

Variation 236 - Number of double-bit binary input points.

DNP3_UINT_ATTR_MAX_BINARY_INPUT_INDEX 

Variation 238 - Maximum binary input point index.

DNP3_UINT_ATTR_NUM_BINARY_INPUT 

Variation 239 - Number of binary input points.

DNP3_UINT_ATTR_MAX_TX_FRAGMENT_SIZE 

Variation 240 - Maximum transmit fragment size.

DNP3_UINT_ATTR_MAX_RX_FRAGMENT_SIZE 

Variation 241 - Maximum receive fragment size.

◆ dnp3_update_flags_type_t

Point type on which to update the flags.

Enumerator
DNP3_UPDATE_FLAGS_TYPE_BINARY_INPUT 

Binary input.

DNP3_UPDATE_FLAGS_TYPE_DOUBLE_BIT_BINARY_INPUT 

Doubl-bit binary input.

DNP3_UPDATE_FLAGS_TYPE_BINARY_OUTPUT_STATUS 

Binary output status.

DNP3_UPDATE_FLAGS_TYPE_COUNTER 

Counter.

DNP3_UPDATE_FLAGS_TYPE_FROZEN_COUNTER 

Frozen counter.

DNP3_UPDATE_FLAGS_TYPE_ANALOG_INPUT 

Analog input.

DNP3_UPDATE_FLAGS_TYPE_ANALOG_OUTPUT_STATUS 

Analog output status.

◆ dnp3_update_result_t

Defines what occurred during an update operation and which fields of dnp3_update_info_t are valid.

Enumerator
DNP3_UPDATE_RESULT_NO_POINT 

No point exists for this type and index.

DNP3_UPDATE_RESULT_NO_EVENT 

The point exists, but the update did not create an event.

DNP3_UPDATE_RESULT_CREATED 

An event was created with the specified id.

DNP3_UPDATE_RESULT_OVERFLOW 

An event was created with the specified, but inserting it caused an event to be discarded.

◆ dnp3_variation_list_attr_t

Enumeration of all the variation list attributes.

Enumerator
DNP3_VARIATION_LIST_ATTR_UNKNOWN 

The attribute variation is not defined or is not part of the default set.

DNP3_VARIATION_LIST_ATTR_LIST_OF_VARIATIONS 

Variation 255 - List of attribute variations.

◆ dnp3_variation_t

Group/Variation.

Enumerator
DNP3_VARIATION_GROUP0 

Device Attributes - Variations 0 to 253 and 255.

DNP3_VARIATION_GROUP0_VAR254 

Device Attributes - Non-Specific All Attributes Request.

DNP3_VARIATION_GROUP1_VAR0 

Binary Input - Default variation.

DNP3_VARIATION_GROUP1_VAR1 

Binary Input - Packed format.

DNP3_VARIATION_GROUP1_VAR2 

Binary Input - With flags.

DNP3_VARIATION_GROUP2_VAR0 

Binary Input Event - Default variation.

DNP3_VARIATION_GROUP2_VAR1 

Binary Input Event - Without time.

DNP3_VARIATION_GROUP2_VAR2 

Binary Input Event - With absolute time.

DNP3_VARIATION_GROUP2_VAR3 

Binary Input Event - With relative time.

DNP3_VARIATION_GROUP3_VAR0 

Double-bit Binary Input - Default variation.

DNP3_VARIATION_GROUP3_VAR1 

Double-bit Binary Input - Packed format.

DNP3_VARIATION_GROUP3_VAR2 

Double-bit Binary Input - With flags.

DNP3_VARIATION_GROUP4_VAR0 

Double-bit Binary Input Event - Default variation.

DNP3_VARIATION_GROUP4_VAR1 

Double-bit Binary Input Event - Without time.

DNP3_VARIATION_GROUP4_VAR2 

Double-bit Binary Input Event - With absolute time.

DNP3_VARIATION_GROUP4_VAR3 

Double-bit Binary Input Event - With relative time.

DNP3_VARIATION_GROUP10_VAR0 

Binary Output - Default variation.

DNP3_VARIATION_GROUP10_VAR1 

Binary Output - Packed format.

DNP3_VARIATION_GROUP10_VAR2 

Binary Output - With flags.

DNP3_VARIATION_GROUP11_VAR0 

Binary Output Event - Default variation.

DNP3_VARIATION_GROUP11_VAR1 

Binary Output Event - Without time.

DNP3_VARIATION_GROUP11_VAR2 

Binary Output Event - With time.

DNP3_VARIATION_GROUP12_VAR1 

Binary Output Command - Control Relay Output Block.

DNP3_VARIATION_GROUP13_VAR1 

Binary Output Command Event - command status without time.

DNP3_VARIATION_GROUP13_VAR2 

Binary Output Command Event - command status with time.

DNP3_VARIATION_GROUP20_VAR0 

Counter - Default variation.

DNP3_VARIATION_GROUP20_VAR1 

Counter - 32-bit with flags.

DNP3_VARIATION_GROUP20_VAR2 

Counter - 16-bit with flags.

DNP3_VARIATION_GROUP20_VAR5 

Counter - 32-bit without flag.

DNP3_VARIATION_GROUP20_VAR6 

Counter - 16-bit without flag.

DNP3_VARIATION_GROUP21_VAR0 

Frozen Counter - Default variation.

DNP3_VARIATION_GROUP21_VAR1 

Frozen Counter - 32-bit with flags.

DNP3_VARIATION_GROUP21_VAR2 

Frozen Counter - 16-bit with flags.

DNP3_VARIATION_GROUP21_VAR5 

Frozen Counter - 32-bit with flags and time.

DNP3_VARIATION_GROUP21_VAR6 

Frozen Counter - 16-bit with flags and time.

DNP3_VARIATION_GROUP21_VAR9 

Frozen Counter - 32-bit without flag.

DNP3_VARIATION_GROUP21_VAR10 

Frozen Counter - 16-bit without flag.

DNP3_VARIATION_GROUP22_VAR0 

Counter Event - Default variation.

DNP3_VARIATION_GROUP22_VAR1 

Counter Event - 32-bit with flags.

DNP3_VARIATION_GROUP22_VAR2 

Counter Event - 16-bit with flags.

DNP3_VARIATION_GROUP22_VAR5 

Counter Event - 32-bit with flags and time.

DNP3_VARIATION_GROUP22_VAR6 

Counter Event - 16-bit with flags and time.

DNP3_VARIATION_GROUP23_VAR0 

Frozen Counter Event - Default variation.

DNP3_VARIATION_GROUP23_VAR1 

Frozen Counter Event - 32-bit with flags.

DNP3_VARIATION_GROUP23_VAR2 

Frozen Counter Event - 16-bit with flags.

DNP3_VARIATION_GROUP23_VAR5 

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

DNP3_VARIATION_GROUP23_VAR6 

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

DNP3_VARIATION_GROUP30_VAR0 

Analog Input - Default variation.

DNP3_VARIATION_GROUP30_VAR1 

Analog Input - 32-bit with flags.

DNP3_VARIATION_GROUP30_VAR2 

Analog Input - 16-bit with flags.

DNP3_VARIATION_GROUP30_VAR3 

Analog Input - 32-bit without flag.

DNP3_VARIATION_GROUP30_VAR4 

Analog Input - 16-bit without flag.

DNP3_VARIATION_GROUP30_VAR5 

Analog Input - Single-precision floating point with flags.

DNP3_VARIATION_GROUP30_VAR6 

Analog Input - Double-precision floating point with flags.

DNP3_VARIATION_GROUP31_VAR0 

Frozen Analog Input - Default variation.

DNP3_VARIATION_GROUP31_VAR1 

Frozen Analog Input - 32-bit with flags.

DNP3_VARIATION_GROUP31_VAR2 

Frozen Analog Input - 16-bit with flags.

DNP3_VARIATION_GROUP31_VAR3 

Frozen Analog Input - 32-bit with flags and time-of-freeze.

DNP3_VARIATION_GROUP31_VAR4 

Frozen Analog Input - 16-bit with flags and time-of-freeze.

DNP3_VARIATION_GROUP31_VAR5 

Frozen Analog Input - 32-bit without flags.

DNP3_VARIATION_GROUP31_VAR6 

Frozen Analog Input - 16-bit without flags.

DNP3_VARIATION_GROUP31_VAR7 

Frozen Analog Input - Single-precision floating point with flags.

DNP3_VARIATION_GROUP31_VAR8 

Frozen Analog Input - Double-precision floating point with flags.

DNP3_VARIATION_GROUP32_VAR0 

Analog Input Event - Default variation.

DNP3_VARIATION_GROUP32_VAR1 

Analog Input Event - 32-bit without time.

DNP3_VARIATION_GROUP32_VAR2 

Analog Input Event - 16-bit without time.

DNP3_VARIATION_GROUP32_VAR3 

Analog Input Event - 32-bit with time.

DNP3_VARIATION_GROUP32_VAR4 

Analog Input Event - 16-bit with time.

DNP3_VARIATION_GROUP32_VAR5 

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

DNP3_VARIATION_GROUP32_VAR6 

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

DNP3_VARIATION_GROUP32_VAR7 

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

DNP3_VARIATION_GROUP32_VAR8 

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

DNP3_VARIATION_GROUP33_VAR0 

Frozen Analog Input Event - Default variation.

DNP3_VARIATION_GROUP33_VAR1 

Frozen Analog Input Event - 32-bit without time.

DNP3_VARIATION_GROUP33_VAR2 

Frozen Analog Input Event - 16-bit without time.

DNP3_VARIATION_GROUP33_VAR3 

Frozen Analog Input Event - 32-bit with time.

DNP3_VARIATION_GROUP33_VAR4 

Frozen Analog Input Event - 16-bit with time.

DNP3_VARIATION_GROUP33_VAR5 

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

DNP3_VARIATION_GROUP33_VAR6 

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

DNP3_VARIATION_GROUP33_VAR7 

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

DNP3_VARIATION_GROUP33_VAR8 

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

DNP3_VARIATION_GROUP34_VAR0 

Analog Input Reporting Deadband - Default variation.

DNP3_VARIATION_GROUP34_VAR1 

Analog Input Reporting Deadband - 16-bit.

DNP3_VARIATION_GROUP34_VAR2 

Analog Input Reporting Deadband - 32-bit.

DNP3_VARIATION_GROUP34_VAR3 

Analog Input Reporting Deadband - Single-precision floating point.

DNP3_VARIATION_GROUP40_VAR0 

Analog Output Status - Default variation.

DNP3_VARIATION_GROUP40_VAR1 

Analog Output Status - 32-bit with flags.

DNP3_VARIATION_GROUP40_VAR2 

Analog Output Status - 16-bit with flags.

DNP3_VARIATION_GROUP40_VAR3 

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

DNP3_VARIATION_GROUP40_VAR4 

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

DNP3_VARIATION_GROUP41_VAR1 

Analog Output - 32-bit.

DNP3_VARIATION_GROUP41_VAR2 

Analog Output - 16-bit.

DNP3_VARIATION_GROUP41_VAR3 

Analog Output - Single-precision floating point.

DNP3_VARIATION_GROUP41_VAR4 

Analog Output - Double-precision floating point.

DNP3_VARIATION_GROUP42_VAR0 

Analog Output Event - Default variation.

DNP3_VARIATION_GROUP42_VAR1 

Analog Output Event - 32-bit without time.

DNP3_VARIATION_GROUP42_VAR2 

Analog Output Event - 16-bit without time.

DNP3_VARIATION_GROUP42_VAR3 

Analog Output Event - 32-bit with time.

DNP3_VARIATION_GROUP42_VAR4 

Analog Output Event - 16-bit with time.

DNP3_VARIATION_GROUP42_VAR5 

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

DNP3_VARIATION_GROUP42_VAR6 

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

DNP3_VARIATION_GROUP42_VAR7 

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

DNP3_VARIATION_GROUP42_VAR8 

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

DNP3_VARIATION_GROUP43_VAR1 

Analog Output Command Event - 32-bit without time.

DNP3_VARIATION_GROUP43_VAR2 

Analog Output Command Event - 16-bit without time.

DNP3_VARIATION_GROUP43_VAR3 

Analog Output Command Event - 32-bit with time.

DNP3_VARIATION_GROUP43_VAR4 

Analog Output Command Event - 16-bit with time.

DNP3_VARIATION_GROUP43_VAR5 

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

DNP3_VARIATION_GROUP43_VAR6 

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

DNP3_VARIATION_GROUP43_VAR7 

Analog Output Command Event - Single-precision floating point with time.

DNP3_VARIATION_GROUP43_VAR8 

Analog Output Command Event - Double-precision floating point with time.

DNP3_VARIATION_GROUP50_VAR1 

Time and Date - Absolute time.

DNP3_VARIATION_GROUP50_VAR2 

Time and Date - Absolute time and interval.

DNP3_VARIATION_GROUP50_VAR3 

Time and Date - Absolute time at last recorded time.

DNP3_VARIATION_GROUP50_VAR4 

Time and Date - Indexed absolute time and long interval.

DNP3_VARIATION_GROUP51_VAR1 

Time and date CTO - Absolute time, synchronized.

DNP3_VARIATION_GROUP51_VAR2 

Time and date CTO - Absolute time, unsynchronized.

DNP3_VARIATION_GROUP52_VAR1 

Time delay - Coarse.

DNP3_VARIATION_GROUP52_VAR2 

Time delay - Fine.

DNP3_VARIATION_GROUP60_VAR1 

Class objects - Class 0 data.

DNP3_VARIATION_GROUP60_VAR2 

Class objects - Class 1 data.

DNP3_VARIATION_GROUP60_VAR3 

Class objects - Class 2 data.

DNP3_VARIATION_GROUP60_VAR4 

Class objects - Class 3 data.

DNP3_VARIATION_GROUP70_VAR2 

File control - authentication.

DNP3_VARIATION_GROUP70_VAR3 

File control - file command.

DNP3_VARIATION_GROUP70_VAR4 

File control - file command status.

DNP3_VARIATION_GROUP70_VAR5 

File control - file transport.

DNP3_VARIATION_GROUP70_VAR6 

File control - file transport status.

DNP3_VARIATION_GROUP70_VAR7 

File control - file descriptor.

DNP3_VARIATION_GROUP70_VAR8 

File control - file specification string.

DNP3_VARIATION_GROUP80_VAR1 

Internal Indications - Packed format.

DNP3_VARIATION_GROUP102_VAR0 

Unsigned Integer - Default Variation.

DNP3_VARIATION_GROUP102_VAR1 

Unsigned Integer - 8-bit.

DNP3_VARIATION_GROUP110 

Octet String.

DNP3_VARIATION_GROUP111 

Octet String Event.

◆ dnp3_write_time_result_t

Write time result used by dnp3_outstation_application_t::write_absolute_time.

Enumerator
DNP3_WRITE_TIME_RESULT_OK 

The write time operation succeeded.

DNP3_WRITE_TIME_RESULT_PARAMETER_ERROR 

The request parameters are nonsensical.

DNP3_WRITE_TIME_RESULT_NOT_SUPPORTED 

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

Function Documentation

◆ dnp3_accept_handler_accept()

dnp3_param_error_t dnp3_accept_handler_accept ( dnp3_accept_handler_t instance,
dnp3_link_error_mode_t  error_mode,
dnp3_master_channel_config_t  config 
)

Accept the connection and create a master channel.

Parameters
instanceInstance of dnp3_accept_handler_t
error_modeError mode to use for the link-layer. This should typically be DNP3_LINK_ERROR_MODE_CLOSE
configConfiguration of the channel
Returns
Enumeration describing the result of the operation

◆ dnp3_accept_handler_get_link_identity()

dnp3_param_error_t dnp3_accept_handler_get_link_identity ( dnp3_accept_handler_t instance)

Request that server attempt to identify the outstation by reading a link-layer header from the physical layer within a timeout.

This header is typically the beginning of an unsolicited fragment from the outstation.

Parameters
instanceInstance of dnp3_accept_handler_t
Returns
Enumeration describing the result of the operation

◆ dnp3_address_filter_add()

dnp3_param_error_t dnp3_address_filter_add ( dnp3_address_filter_t instance,
const char *  address 
)

Add an accepted IP address to the filter.

Parameters
instanceInstance of dnp3_address_filter_t
addressIP address to add
Returns
Error code

◆ dnp3_address_filter_any()

dnp3_address_filter_t * dnp3_address_filter_any ( )

Create an address filter that accepts any IP address.

Returns
Address filter

◆ dnp3_address_filter_create()

dnp3_param_error_t dnp3_address_filter_create ( const char *  address,
dnp3_address_filter_t **  out 
)

Create an address filter that matches a specific address or wildcards.

Examples: 192.168.1.26, 192.168.0.*, *.*.*.*

Wildcards are only supported for IPv4 addresses

Parameters
addressIP address to accept
outInstance of dnp3_address_filter_t
Returns
Error code

◆ dnp3_address_filter_destroy()

void dnp3_address_filter_destroy ( dnp3_address_filter_t instance)

Destroy an address filter.

Parameters
instanceInstance of dnp3_address_filter_t to destroy

◆ dnp3_analog_command_type_to_string()

static const char * dnp3_analog_command_type_to_string ( dnp3_analog_command_type_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_analog_input_config_create()

static dnp3_analog_input_config_t dnp3_analog_input_config_create ( dnp3_static_analog_input_variation_t  static_variation,
dnp3_event_analog_input_variation_t  event_variation,
double  deadband 
)
static

Fully construct dnp3_analog_input_config_t specifying the value of each field.

Parameters
static_variationDefault static variation
event_variationDefault event variation
deadbandDeadband value
Returns
New instance of dnp3_analog_input_config_t

◆ dnp3_analog_input_config_init()

◆ dnp3_analog_input_init()

static dnp3_analog_input_t dnp3_analog_input_init ( uint16_t  index,
double  value,
dnp3_flags_t  flags,
dnp3_timestamp_t  time 
)
static

Fully construct dnp3_analog_input_t specifying the value of each field.

Parameters
indexPoint index
valuePoint value
flagsPoint flags
timePoint timestamp
Returns
New instance of dnp3_analog_input_t

◆ dnp3_analog_input_iterator_next()

dnp3_analog_input_t * dnp3_analog_input_iterator_next ( dnp3_analog_input_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_analog_output_command_event_init()

static dnp3_analog_output_command_event_t dnp3_analog_output_command_event_init ( uint16_t  index,
dnp3_command_status_t  status,
double  commanded_value,
dnp3_analog_command_type_t  command_type,
dnp3_timestamp_t  time 
)
static

Fully construct dnp3_analog_output_command_event_t specifying the value of each field.

Parameters
indexIndex of the command event
statusStatus from processing the command that triggered this event
commanded_valueCommanded state of the binary output
command_typeDescribes how the value was encoded in the protocol
timeAssociated timestamp
Returns
New instance of dnp3_analog_output_command_event_t

◆ dnp3_analog_output_command_event_iterator_next()

dnp3_analog_output_command_event_t * dnp3_analog_output_command_event_iterator_next ( dnp3_analog_output_command_event_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_analog_output_status_config_create()

static dnp3_analog_output_status_config_t dnp3_analog_output_status_config_create ( dnp3_static_analog_output_status_variation_t  static_variation,
dnp3_event_analog_output_status_variation_t  event_variation,
double  deadband 
)
static

Fully construct dnp3_analog_output_status_config_t specifying the value of each field.

Parameters
static_variationDefault static variation
event_variationDefault event variation
deadbandDeadband value
Returns
New instance of dnp3_analog_output_status_config_t

◆ dnp3_analog_output_status_config_init()

◆ dnp3_analog_output_status_init()

static dnp3_analog_output_status_t dnp3_analog_output_status_init ( uint16_t  index,
double  value,
dnp3_flags_t  flags,
dnp3_timestamp_t  time 
)
static

Fully construct dnp3_analog_output_status_t specifying the value of each field.

Parameters
indexPoint index
valuePoint value
flagsPoint flags
timePoint timestamp
Returns
New instance of dnp3_analog_output_status_t

◆ dnp3_analog_output_status_iterator_next()

dnp3_analog_output_status_t * dnp3_analog_output_status_iterator_next ( dnp3_analog_output_status_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_app_decode_level_to_string()

static const char * dnp3_app_decode_level_to_string ( dnp3_app_decode_level_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_application_iin_init()

static dnp3_application_iin_t dnp3_application_iin_init ( )
static

Initialize all fields in dnp3_application_iin_t to false.

Note
Values are initialized to:
Returns
New instance of dnp3_application_iin_t

◆ dnp3_association_config_init()

static dnp3_association_config_t dnp3_association_config_init ( dnp3_event_classes_t  disable_unsol_classes,
dnp3_event_classes_t  enable_unsol_classes,
dnp3_classes_t  startup_integrity_classes,
dnp3_event_classes_t  event_scan_on_events_available 
)
static

Initialize the configuration with the specified values.

Note
Values are initialized to:
Parameters
disable_unsol_classesClasses to disable unsolicited responses at startup
enable_unsol_classesClasses to enable unsolicited responses at startup
startup_integrity_classesStartup integrity classes to ask on master startup and when an outstation restart is detected.
event_scan_on_events_availableClasses to automatically send reads when the IIN bit is asserted
Returns
New instance of dnp3_association_config_t

◆ dnp3_attr_def_error_to_string()

static const char * dnp3_attr_def_error_to_string ( dnp3_attr_def_error_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_attr_item_iter_next()

dnp3_attr_item_t * dnp3_attr_item_iter_next ( dnp3_attr_item_iter_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_auto_time_sync_to_string()

static const char * dnp3_auto_time_sync_to_string ( dnp3_auto_time_sync_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_binary_input_config_create()

static dnp3_binary_input_config_t dnp3_binary_input_config_create ( dnp3_static_binary_input_variation_t  static_variation,
dnp3_event_binary_input_variation_t  event_variation 
)
static

Fully construct dnp3_binary_input_config_t specifying the value of each field.

Parameters
static_variationDefault static variation
event_variationDefault event variation
Returns
New instance of dnp3_binary_input_config_t

◆ dnp3_binary_input_config_init()

◆ dnp3_binary_input_init()

static dnp3_binary_input_t dnp3_binary_input_init ( uint16_t  index,
bool  value,
dnp3_flags_t  flags,
dnp3_timestamp_t  time 
)
static

Fully construct dnp3_binary_input_t specifying the value of each field.

Parameters
indexPoint index
valuePoint value
flagsPoint flags
timePoint timestamp
Returns
New instance of dnp3_binary_input_t

◆ dnp3_binary_input_iterator_next()

dnp3_binary_input_t * dnp3_binary_input_iterator_next ( dnp3_binary_input_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_binary_output_command_event_init()

static dnp3_binary_output_command_event_t dnp3_binary_output_command_event_init ( uint16_t  index,
dnp3_command_status_t  status,
bool  commanded_state,
dnp3_timestamp_t  time 
)
static

Fully construct dnp3_binary_output_command_event_t specifying the value of each field.

Parameters
indexIndex of the binary command event
statusStatus from processing the command that triggered this event
commanded_stateCommanded state of the binary output
timeAssociated timestamp
Returns
New instance of dnp3_binary_output_command_event_t

◆ dnp3_binary_output_command_event_iterator_next()

dnp3_binary_output_command_event_t * dnp3_binary_output_command_event_iterator_next ( dnp3_binary_output_command_event_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_binary_output_status_config_create()

static dnp3_binary_output_status_config_t dnp3_binary_output_status_config_create ( dnp3_static_binary_output_status_variation_t  static_variation,
dnp3_event_binary_output_status_variation_t  event_variation 
)
static

Fully construct dnp3_binary_output_status_config_t specifying the value of each field.

Parameters
static_variationDefault static variation
event_variationDefault event variation
Returns
New instance of dnp3_binary_output_status_config_t

◆ dnp3_binary_output_status_config_init()

◆ dnp3_binary_output_status_init()

static dnp3_binary_output_status_t dnp3_binary_output_status_init ( uint16_t  index,
bool  value,
dnp3_flags_t  flags,
dnp3_timestamp_t  time 
)
static

Fully construct dnp3_binary_output_status_t specifying the value of each field.

Parameters
indexPoint index
valuePoint value
flagsPoint flags
timePoint timestamp
Returns
New instance of dnp3_binary_output_status_t

◆ dnp3_binary_output_status_iterator_next()

dnp3_binary_output_status_t * dnp3_binary_output_status_iterator_next ( dnp3_binary_output_status_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_bit_string_attr_to_string()

static const char * dnp3_bit_string_attr_to_string ( dnp3_bit_string_attr_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_bool_attr_to_string()

static const char * dnp3_bool_attr_to_string ( dnp3_bool_attr_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_broadcast_action_to_string()

static const char * dnp3_broadcast_action_to_string ( dnp3_broadcast_action_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_byte_collection_add()

void dnp3_byte_collection_add ( dnp3_byte_collection_t instance,
uint8_t  value 
)

Add a value to the collection.

Parameters
instanceinstance to which to add the value
valuevalue to add to the instance

◆ dnp3_byte_collection_create()

dnp3_byte_collection_t * dnp3_byte_collection_create ( uint32_t  reserve_size)

Creates an instance of the collection.

Parameters
reserve_sizepreallocate a particular size
Returns
Allocated opaque collection instance

◆ dnp3_byte_collection_destroy()

void dnp3_byte_collection_destroy ( dnp3_byte_collection_t instance)

Destroys an instance of the collection.

Parameters
instanceinstance to destroy

◆ dnp3_byte_iterator_next()

uint8_t * dnp3_byte_iterator_next ( dnp3_byte_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_certificate_mode_to_string()

static const char * dnp3_certificate_mode_to_string ( dnp3_certificate_mode_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_class_zero_config_init()

◆ dnp3_classes_all()

static dnp3_classes_t dnp3_classes_all ( )
static

Initialize all classes to true.

Note
Values are initialized to:
Returns
New instance of dnp3_classes_t

◆ dnp3_classes_init()

static dnp3_classes_t dnp3_classes_init ( bool  class0,
bool  class1,
bool  class2,
bool  class3 
)
static

Fully construct dnp3_classes_t specifying the value of each field.

Parameters
class0Class 0 (static data)
class1Class 1 events
class2Class 2 events
class3Class 3 events
Returns
New instance of dnp3_classes_t

◆ dnp3_classes_none()

static dnp3_classes_t dnp3_classes_none ( )
static

Initialize all classes to false.

Note
Values are initialized to:
Returns
New instance of dnp3_classes_t

◆ dnp3_client_state_to_string()

static const char * dnp3_client_state_to_string ( dnp3_client_state_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_command_error_to_string()

static const char * dnp3_command_error_to_string ( dnp3_command_error_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_command_mode_to_string()

static const char * dnp3_command_mode_to_string ( dnp3_command_mode_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_command_set_add_g12_v1_u16()

void dnp3_command_set_add_g12_v1_u16 ( dnp3_command_set_t instance,
uint16_t  idx,
dnp3_group12_var1_t  header 
)

Add a CROB with 2-byte prefix index.

Parameters
instanceInstance of dnp3_command_set_t
idxIndex of the point to send the command to
headerCROB data

◆ dnp3_command_set_add_g12_v1_u8()

void dnp3_command_set_add_g12_v1_u8 ( dnp3_command_set_t instance,
uint8_t  idx,
dnp3_group12_var1_t  header 
)

Add a CROB with 1-byte prefix index.

Parameters
instanceInstance of dnp3_command_set_t
idxIndex of the point to send the command to
headerCROB data

◆ dnp3_command_set_add_g41_v1_u16()

void dnp3_command_set_add_g41_v1_u16 ( dnp3_command_set_t instance,
uint16_t  idx,
int32_t  value 
)

Add a Analog Output command (signed 32-bit integer) with 2-byte prefix index.

Parameters
instanceInstance of dnp3_command_set_t
idxIndex of the point to send the command to
valueValue to set the analog output to

◆ dnp3_command_set_add_g41_v1_u8()

void dnp3_command_set_add_g41_v1_u8 ( dnp3_command_set_t instance,
uint8_t  idx,
int32_t  value 
)

Add a Analog Output command (signed 32-bit integer) with 1-byte prefix index.

Parameters
instanceInstance of dnp3_command_set_t
idxIndex of the point to send the command to
valueValue to set the analog output to

◆ dnp3_command_set_add_g41_v2_u16()

void dnp3_command_set_add_g41_v2_u16 ( dnp3_command_set_t instance,
uint16_t  idx,
int16_t  value 
)

Add a Analog Output command (signed 16-bit integer) with 2-byte prefix index.

Parameters
instanceInstance of dnp3_command_set_t
idxIndex of the point to send the command to
valueValue to set the analog output to

◆ dnp3_command_set_add_g41_v2_u8()

void dnp3_command_set_add_g41_v2_u8 ( dnp3_command_set_t instance,
uint8_t  idx,
int16_t  value 
)

Add a Analog Output command (signed 16-bit integer) with 1-byte prefix index.

Parameters
instanceInstance of dnp3_command_set_t
idxIndex of the point to send the command to
valueValue to set the analog output to

◆ dnp3_command_set_add_g41_v3_u16()

void dnp3_command_set_add_g41_v3_u16 ( dnp3_command_set_t instance,
uint16_t  idx,
float  value 
)

Add a Analog Output command (single-precision float) with 2-byte prefix index.

Parameters
instanceInstance of dnp3_command_set_t
idxIndex of the point to send the command to
valueValue to set the analog output to

◆ dnp3_command_set_add_g41_v3_u8()

void dnp3_command_set_add_g41_v3_u8 ( dnp3_command_set_t instance,
uint8_t  idx,
float  value 
)

Add a Analog Output command (single-precision float) with 1-byte prefix index.

Parameters
instanceInstance of dnp3_command_set_t
idxIndex of the point to send the command to
valueValue to set the analog output to

◆ dnp3_command_set_add_g41_v4_u16()

void dnp3_command_set_add_g41_v4_u16 ( dnp3_command_set_t instance,
uint16_t  idx,
double  value 
)

Add a Analog Output command (double-precision float) with 2-byte prefix index.

Parameters
instanceInstance of dnp3_command_set_t
idxIndex of the point to send the command to
valueValue to set the analog output to

◆ dnp3_command_set_add_g41_v4_u8()

void dnp3_command_set_add_g41_v4_u8 ( dnp3_command_set_t instance,
uint8_t  idx,
double  value 
)

Add a Analog Output command (double-precision float) with 1-byte prefix index.

Parameters
instanceInstance of dnp3_command_set_t
idxIndex of the point to send the command to
valueValue to set the analog output to

◆ dnp3_command_set_create()

dnp3_command_set_t * dnp3_command_set_create ( )

Create a new set of commands.

Returns
Instance of dnp3_command_set_t

◆ dnp3_command_set_destroy()

void dnp3_command_set_destroy ( dnp3_command_set_t instance)

Destroy a set of commands.

Parameters
instanceInstance of dnp3_command_set_t to destroy

◆ dnp3_command_set_finish_header()

void dnp3_command_set_finish_header ( dnp3_command_set_t instance)

Finish any partially completed header. This allows for the construction of two headers with the same type and index.

Parameters
instanceInstance of dnp3_command_set_t

◆ dnp3_command_status_to_string()

static const char * dnp3_command_status_to_string ( dnp3_command_status_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_configure_logging()

dnp3_param_error_t dnp3_configure_logging ( dnp3_logging_config_t  config,
dnp3_logger_t  logger 
)

Set the callback that will receive all the log messages.

There is only a single globally allocated logger. Calling this method a second time will return an error.

If this method is never called, no logging will be performed.

Parameters
configConfiguration options for logging
loggerLogger that will receive each logged message
Returns
Error code

◆ dnp3_connect_options_create()

dnp3_connect_options_t * dnp3_connect_options_create ( )

Initialize to the defaults.

Returns
Instance of dnp3_connect_options_t

◆ dnp3_connect_options_destroy()

void dnp3_connect_options_destroy ( dnp3_connect_options_t instance)

Destroy an instance.

Parameters
instanceInstance of dnp3_connect_options_t to destroy

◆ dnp3_connect_options_set_local_endpoint()

dnp3_param_error_t dnp3_connect_options_set_local_endpoint ( dnp3_connect_options_t instance,
const char *  endpoint 
)

Set the local address to which the socket is bound.

If not specified, then any available adapter may be used with an OS assigned port.

Parameters
instanceInstance of dnp3_connect_options_t
endpointString in 'address:port' format, where address can be IPv4 or IPv6. Using 0 for the port results in an OS assigned port
Returns
Error code

◆ dnp3_connect_options_set_timeout()

void dnp3_connect_options_set_timeout ( dnp3_connect_options_t instance,
uint64_t  timeout 
)

Set a timeout for the TCP connection that might be less than the default for the OS.

Parameters
instanceInstance of dnp3_connect_options_t
timeoutTimeout value (seconds)

◆ dnp3_connect_strategy_init()

static dnp3_connect_strategy_t dnp3_connect_strategy_init ( )
static

Initialize to default values.

Note
Values are initialized to:
Returns
New instance of dnp3_connect_strategy_t

◆ dnp3_connection_state_to_string()

static const char * dnp3_connection_state_to_string ( dnp3_connection_state_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_control_code_from_op_type()

static dnp3_control_code_t dnp3_control_code_from_op_type ( dnp3_op_type_t  op_type)
static

Initialize a dnp3_control_code_t instance from a dnp3_op_type_t.

Note
Values are initialized to:
Parameters
op_typeThis field is used in conjunction with the dnp3_control_code_t::tcc field to specify a control operation
Returns
New instance of dnp3_control_code_t

◆ dnp3_control_code_from_tcc_and_op_type()

static dnp3_control_code_t dnp3_control_code_from_tcc_and_op_type ( dnp3_trip_close_code_t  tcc,
dnp3_op_type_t  op_type 
)
static

Initialize a dnp3_control_code_t instance from a dnp3_trip_close_code_t and a dnp3_op_type_t.

Note
Values are initialized to:
Parameters
tccThis field is used in conjunction with dnp3_control_code_t::op_type to specify a control operation
op_typeThis field is used in conjunction with the dnp3_control_code_t::tcc field to specify a control operation
Returns
New instance of dnp3_control_code_t

◆ dnp3_control_code_init()

static dnp3_control_code_t dnp3_control_code_init ( dnp3_trip_close_code_t  tcc,
bool  clear,
dnp3_op_type_t  op_type 
)
static

Initialize a dnp3_control_code_t instance.

Note
Values are initialized to:
Parameters
tccThis field is used in conjunction with dnp3_control_code_t::op_type to specify a control operation
clearSupport for this field is optional. When the clear bit is set, the device shall remove pending control commands for that index and stop any control operation that is in progress for that index. The indexed point shall go to the state that it would have if the command were allowed to complete normally.
op_typeThis field is used in conjunction with the dnp3_control_code_t::tcc field to specify a control operation
Returns
New instance of dnp3_control_code_t

◆ dnp3_counter_config_create()

static dnp3_counter_config_t dnp3_counter_config_create ( dnp3_static_counter_variation_t  static_variation,
dnp3_event_counter_variation_t  event_variation,
uint32_t  deadband 
)
static

Fully construct dnp3_counter_config_t specifying the value of each field.

Parameters
static_variationDefault static variation
event_variationDefault event variation
deadbandDeadband value
Returns
New instance of dnp3_counter_config_t

◆ dnp3_counter_config_init()

◆ dnp3_counter_init()

static dnp3_counter_t dnp3_counter_init ( uint16_t  index,
uint32_t  value,
dnp3_flags_t  flags,
dnp3_timestamp_t  time 
)
static

Fully construct dnp3_counter_t specifying the value of each field.

Parameters
indexPoint index
valuePoint value
flagsPoint flags
timePoint timestamp
Returns
New instance of dnp3_counter_t

◆ dnp3_counter_iterator_next()

dnp3_counter_t * dnp3_counter_iterator_next ( dnp3_counter_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_create_master_tcp_server()

dnp3_param_error_t dnp3_create_master_tcp_server ( dnp3_runtime_t runtime,
const char *  local_addr,
dnp3_link_id_config_t  link_id_config,
dnp3_connection_handler_t  connection_handler,
dnp3_master_server_t **  out 
)

Spawn a TCP server that accepts connections from outstations.

The behavior of each connection is controlled by callbacks to a user-defined implementation of a dnp3_connection_handler_t.

Parameters
runtimeRuntime on which to spawn the server
local_addrLocal address on which the server will accept connections
link_id_configConfiguration used when identifying outstations based on received link-frames
connection_handlerCallbacks used to accept and start communication sessions
outHandle to the running server that allows it to be shut down
Returns
Error code

◆ dnp3_data_bits_to_string()

static const char * dnp3_data_bits_to_string ( dnp3_data_bits_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_database_add_analog_input()

bool dnp3_database_add_analog_input ( dnp3_database_t instance,
uint16_t  index,
dnp3_event_class_t  point_class,
dnp3_analog_input_config_t  config 
)

Add a new AnalogInput point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
point_classEvent class
configConfiguration
Returns
True if the point was successfully added, false otherwise

◆ dnp3_database_add_analog_output_status()

bool dnp3_database_add_analog_output_status ( dnp3_database_t instance,
uint16_t  index,
dnp3_event_class_t  point_class,
dnp3_analog_output_status_config_t  config 
)

Add a new Analog Output Status point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
point_classEvent class
configConfiguration
Returns
True if the point was successfully added, false otherwise

◆ dnp3_database_add_binary_input()

bool dnp3_database_add_binary_input ( dnp3_database_t instance,
uint16_t  index,
dnp3_event_class_t  point_class,
dnp3_binary_input_config_t  config 
)

Add a new BinaryInput point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
point_classEvent class
configConfiguration
Returns
True if the point was successfully added, false otherwise

◆ dnp3_database_add_binary_output_status()

bool dnp3_database_add_binary_output_status ( dnp3_database_t instance,
uint16_t  index,
dnp3_event_class_t  point_class,
dnp3_binary_output_status_config_t  config 
)

Add a new Binary Output Status point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
point_classEvent class
configConfiguration
Returns
True if the point was successfully added, false otherwise

◆ dnp3_database_add_counter()

bool dnp3_database_add_counter ( dnp3_database_t instance,
uint16_t  index,
dnp3_event_class_t  point_class,
dnp3_counter_config_t  config 
)

Add a new Counter point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
point_classEvent class
configConfiguration
Returns
True if the point was successfully added, false otherwise

◆ dnp3_database_add_double_bit_binary_input()

bool dnp3_database_add_double_bit_binary_input ( dnp3_database_t instance,
uint16_t  index,
dnp3_event_class_t  point_class,
dnp3_double_bit_binary_input_config_t  config 
)

Add a new Double-Bit Binary Input point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
point_classEvent class
configConfiguration
Returns
True if the point was successfully added, false otherwise

◆ dnp3_database_add_frozen_counter()

bool dnp3_database_add_frozen_counter ( dnp3_database_t instance,
uint16_t  index,
dnp3_event_class_t  point_class,
dnp3_frozen_counter_config_t  config 
)

Add a new Frozen Counter point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
point_classEvent class
configConfiguration
Returns
True if the point was successfully added, false otherwise

◆ dnp3_database_add_octet_string()

bool dnp3_database_add_octet_string ( dnp3_database_t instance,
uint16_t  index,
dnp3_event_class_t  point_class 
)

Add a new Octet String point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
point_classEvent class
Returns
True if the point was successfully added, false otherwise

◆ dnp3_database_define_bool_attr()

dnp3_attr_def_error_t dnp3_database_define_bool_attr ( dnp3_database_t instance,
uint8_t  set,
bool  writable,
uint8_t  variation,
bool  value 
)

Define a boolean attribute which is mapped to an unsigned integer internally.

Parameters
instanceInstance of dnp3_database_t
setThe set to which the attribute belongs
writableTrue if the attribute may be written
variationThe variation of the attribute
valueThe value of the attribute
Returns
Enumeration indicating if the operation was successful

◆ dnp3_database_define_double_attr()

dnp3_attr_def_error_t dnp3_database_define_double_attr ( dnp3_database_t instance,
uint8_t  set,
bool  writable,
uint8_t  variation,
double  value 
)

Define a 64-bit floating point attribute.

Parameters
instanceInstance of dnp3_database_t
setThe set to which the attribute belongs
writableTrue if the attribute may be written
variationThe variation of the attribute
valueThe value of the attribute
Returns
Enumeration indicating if the operation was successful

◆ dnp3_database_define_float_attr()

dnp3_attr_def_error_t dnp3_database_define_float_attr ( dnp3_database_t instance,
uint8_t  set,
bool  writable,
uint8_t  variation,
float  value 
)

Define a 32-bit floating point attribute.

Parameters
instanceInstance of dnp3_database_t
setThe set to which the attribute belongs
writableTrue if the attribute may be written
variationThe variation of the attribute
valueThe value of the attribute
Returns
Enumeration indicating if the operation was successful

◆ dnp3_database_define_int_attr()

dnp3_attr_def_error_t dnp3_database_define_int_attr ( dnp3_database_t instance,
uint8_t  set,
bool  writable,
uint8_t  variation,
int32_t  value 
)

Define a signed integer attribute.

Parameters
instanceInstance of dnp3_database_t
setThe set to which the attribute belongs
writableTrue if the attribute may be written
variationThe variation of the attribute
valueThe value of the attribute
Returns
Enumeration indicating if the operation was successful

◆ dnp3_database_define_string_attr()

dnp3_attr_def_error_t dnp3_database_define_string_attr ( dnp3_database_t instance,
uint8_t  set,
bool  writable,
uint8_t  variation,
const char *  value 
)

Define a string attribute.

Parameters
instanceInstance of dnp3_database_t
setThe set to which the attribute belongs
writableTrue if the attribute may be written
variationThe variation of the attribute
valueThe value of the attribute
Returns
Enumeration indicating if the operation was successful

◆ dnp3_database_define_time_attr()

dnp3_attr_def_error_t dnp3_database_define_time_attr ( dnp3_database_t instance,
uint8_t  set,
bool  writable,
uint8_t  variation,
uint64_t  value 
)

Define a DNP3 time attribute.

Parameters
instanceInstance of dnp3_database_t
setThe set to which the attribute belongs
writableTrue if the attribute may be written
variationThe variation of the attribute
valueThe DNP3 timestamp value of the attribute. Only the lower 48-bits are used.
Returns
Enumeration indicating if the operation was successful

◆ dnp3_database_define_uint_attr()

dnp3_attr_def_error_t dnp3_database_define_uint_attr ( dnp3_database_t instance,
uint8_t  set,
bool  writable,
uint8_t  variation,
uint32_t  value 
)

Define an unsigned integer attribute.

Parameters
instanceInstance of dnp3_database_t
setThe set to which the attribute belongs
writableTrue if the attribute may be written
variationThe variation of the attribute
valueThe value of the attribute
Returns
Enumeration indicating if the operation was successful

◆ dnp3_database_get_analog_input()

dnp3_param_error_t dnp3_database_get_analog_input ( dnp3_database_t instance,
uint16_t  index,
dnp3_analog_input_t out 
)

Get a AnalogInput point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point to get
outAnalog point
Returns
Error code

◆ dnp3_database_get_analog_output_status()

dnp3_param_error_t dnp3_database_get_analog_output_status ( dnp3_database_t instance,
uint16_t  index,
dnp3_analog_output_status_t out 
)

Get a Analog Output Status point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point to get
outAnalog Output Status point
Returns
Error code

◆ dnp3_database_get_binary_input()

dnp3_param_error_t dnp3_database_get_binary_input ( dnp3_database_t instance,
uint16_t  index,
dnp3_binary_input_t out 
)

Get a BinaryInput point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point to get
outBinary Input point
Returns
Error code

◆ dnp3_database_get_binary_output_status()

dnp3_param_error_t dnp3_database_get_binary_output_status ( dnp3_database_t instance,
uint16_t  index,
dnp3_binary_output_status_t out 
)

Get a Binary Output Status point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point to get
outBinary Output Status point
Returns
Error code

◆ dnp3_database_get_counter()

dnp3_param_error_t dnp3_database_get_counter ( dnp3_database_t instance,
uint16_t  index,
dnp3_counter_t out 
)

Get a Counter point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point to get
outCounter point
Returns
Error code

◆ dnp3_database_get_double_bit_binary_input()

dnp3_param_error_t dnp3_database_get_double_bit_binary_input ( dnp3_database_t instance,
uint16_t  index,
dnp3_double_bit_binary_input_t out 
)

Get a Double-Bit Binary Input point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point to get
outDouble-Bit Binary Input point
Returns
Error code

◆ dnp3_database_get_frozen_counter()

dnp3_param_error_t dnp3_database_get_frozen_counter ( dnp3_database_t instance,
uint16_t  index,
dnp3_frozen_counter_t out 
)

Get a Frozen Counter point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point to get
outFrozen Counter point
Returns
Error code

◆ dnp3_database_handle_transaction()

void dnp3_database_handle_transaction ( dnp3_database_handle_t instance,
dnp3_database_transaction_t  callback 
)

Acquire a mutex on the underlying database and apply a set of changes as a transaction.

Parameters
instanceInstance of dnp3_database_handle_t
callbackcallback interface

◆ dnp3_database_remove_analog_input()

bool dnp3_database_remove_analog_input ( dnp3_database_t instance,
uint16_t  index 
)

Remove an AnalogInput point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
Returns
True if the point was successfully removed, false otherwise

◆ dnp3_database_remove_analog_output_status()

bool dnp3_database_remove_analog_output_status ( dnp3_database_t instance,
uint16_t  index 
)

Remove an Analog Output Status point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
Returns
True if the point was successfully removed, false otherwise

◆ dnp3_database_remove_binary_input()

bool dnp3_database_remove_binary_input ( dnp3_database_t instance,
uint16_t  index 
)

Remove a BinaryInput point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
Returns
True if the point was successfully removed, false otherwise

◆ dnp3_database_remove_binary_output_status()

bool dnp3_database_remove_binary_output_status ( dnp3_database_t instance,
uint16_t  index 
)

Remove a Binary Output Status point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
Returns
True if the point was successfully removed, false otherwise

◆ dnp3_database_remove_counter()

bool dnp3_database_remove_counter ( dnp3_database_t instance,
uint16_t  index 
)

Remove a Counter point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
Returns
True if the point was successfully removed, false otherwise

◆ dnp3_database_remove_double_bit_binary_input()

bool dnp3_database_remove_double_bit_binary_input ( dnp3_database_t instance,
uint16_t  index 
)

Remove a Double-Bit Binary Input point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
Returns
True if the point was successfully removed, false otherwise

◆ dnp3_database_remove_frozen_counter()

bool dnp3_database_remove_frozen_counter ( dnp3_database_t instance,
uint16_t  index 
)

Remove a Frozen Counter point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
Returns
True if the point was successfully removed, false otherwise

◆ dnp3_database_remove_octet_string()

bool dnp3_database_remove_octet_string ( dnp3_database_t instance,
uint16_t  index 
)

Remove an Octet String point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the point
Returns
True if the point was successfully removed, false otherwise

◆ dnp3_database_update_analog_input()

bool dnp3_database_update_analog_input ( dnp3_database_t instance,
dnp3_analog_input_t  value,
dnp3_update_options_t  options 
)

Update a AnalogInput point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
True if the point was successfully updated, false otherwise

◆ dnp3_database_update_analog_input_2()

dnp3_update_info_t dnp3_database_update_analog_input_2 ( dnp3_database_t instance,
dnp3_analog_input_t  value,
dnp3_update_options_t  options 
)

Update a AnalogInput point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
Provides detailed information about what occurred during the update operation

◆ dnp3_database_update_analog_output_status()

bool dnp3_database_update_analog_output_status ( dnp3_database_t instance,
dnp3_analog_output_status_t  value,
dnp3_update_options_t  options 
)

Update a Analog Output Status point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
True if the point was successfully updated, false otherwise

◆ dnp3_database_update_analog_output_status_2()

dnp3_update_info_t dnp3_database_update_analog_output_status_2 ( dnp3_database_t instance,
dnp3_analog_output_status_t  value,
dnp3_update_options_t  options 
)

Update a Analog Output Status point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
Provides detailed information about what occurred during the update operation

◆ dnp3_database_update_binary_input()

bool dnp3_database_update_binary_input ( dnp3_database_t instance,
dnp3_binary_input_t  value,
dnp3_update_options_t  options 
)

Update a BinaryInput point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
True if the point was successfully updated, false otherwise

◆ dnp3_database_update_binary_input_2()

dnp3_update_info_t dnp3_database_update_binary_input_2 ( dnp3_database_t instance,
dnp3_binary_input_t  value,
dnp3_update_options_t  options 
)

Update a BinaryInput point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
Provides detailed information about what occurred during the update operation

◆ dnp3_database_update_binary_output_status()

bool dnp3_database_update_binary_output_status ( dnp3_database_t instance,
dnp3_binary_output_status_t  value,
dnp3_update_options_t  options 
)

Update a Binary Output Status point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
True if the point was successfully updated, false otherwise

◆ dnp3_database_update_binary_output_status_2()

dnp3_update_info_t dnp3_database_update_binary_output_status_2 ( dnp3_database_t instance,
dnp3_binary_output_status_t  value,
dnp3_update_options_t  options 
)

Update a Binary Output Status point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
Provides detailed information about what occurred during the update operation

◆ dnp3_database_update_counter()

bool dnp3_database_update_counter ( dnp3_database_t instance,
dnp3_counter_t  value,
dnp3_update_options_t  options 
)

Update a Counter point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
True if the point was successfully updated, false otherwise

◆ dnp3_database_update_counter_2()

dnp3_update_info_t dnp3_database_update_counter_2 ( dnp3_database_t instance,
dnp3_counter_t  value,
dnp3_update_options_t  options 
)

Update a Counter point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
Provides detailed information about what occurred during the update operation

◆ dnp3_database_update_double_bit_binary_input()

bool dnp3_database_update_double_bit_binary_input ( dnp3_database_t instance,
dnp3_double_bit_binary_input_t  value,
dnp3_update_options_t  options 
)

Update a Double-Bit Binary Input point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
True if the point was successfully updated, false otherwise

◆ dnp3_database_update_double_bit_binary_input_2()

dnp3_update_info_t dnp3_database_update_double_bit_binary_input_2 ( dnp3_database_t instance,
dnp3_double_bit_binary_input_t  value,
dnp3_update_options_t  options 
)

Update a Double-Bit Binary Input point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
Provides detailed information about what occurred during the update operation

◆ dnp3_database_update_flags()

dnp3_update_info_t dnp3_database_update_flags ( dnp3_database_t instance,
uint16_t  index,
dnp3_update_flags_type_t  flags_type,
dnp3_flags_t  flags,
dnp3_timestamp_t  time,
dnp3_update_options_t  options 
)

Update the flags for the specified point without changing the value.

This is equivalent to getting the current value, changing the flags and the timestamp, then calling update

Parameters
instanceInstance of dnp3_database_t
indexIndex on which to perform the operation
flags_typePoint type on which to perform the operation
flagsNew flags applied to the point
timeNew timestamp applied to the point
optionsOptions that control how events and static values are handled
Returns
Provides detailed information about what occurred during the update operation

◆ dnp3_database_update_frozen_counter()

bool dnp3_database_update_frozen_counter ( dnp3_database_t instance,
dnp3_frozen_counter_t  value,
dnp3_update_options_t  options 
)

Update an Frozen Counter point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
True if the point was successfully updated, false otherwise

◆ dnp3_database_update_frozen_counter_2()

dnp3_update_info_t dnp3_database_update_frozen_counter_2 ( dnp3_database_t instance,
dnp3_frozen_counter_t  value,
dnp3_update_options_t  options 
)

Update an Frozen Counter point.

Parameters
instanceInstance of dnp3_database_t
valueNew value of the point
optionsUpdate options
Returns
Provides detailed information about what occurred during the update operation

◆ dnp3_database_update_octet_string()

bool dnp3_database_update_octet_string ( dnp3_database_t instance,
uint16_t  index,
dnp3_octet_string_value_t value,
dnp3_update_options_t  options 
)

Update an Octet String point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the octet string
valueNew value of the point
optionsUpdate options
Returns
True if the point was successfully updated, false otherwise

◆ dnp3_database_update_octet_string_2()

dnp3_update_info_t dnp3_database_update_octet_string_2 ( dnp3_database_t instance,
uint16_t  index,
dnp3_octet_string_value_t value,
dnp3_update_options_t  options 
)

Update an Octet String point.

Parameters
instanceInstance of dnp3_database_t
indexIndex of the octet string
valueNew value of the point
optionsUpdate options
Returns
Provides detailed information about what occurred during the update operation

◆ dnp3_decode_level_init()

◆ dnp3_decode_level_nothing()

◆ dnp3_dir_read_config_defaults()

static dnp3_dir_read_config_t dnp3_dir_read_config_defaults ( )
static

Initialize the configuration to default values.

Note
Values are initialized to:
Returns
New instance of dnp3_dir_read_config_t

◆ dnp3_disable_client_tcp_no_delay()

void dnp3_disable_client_tcp_no_delay ( )

By default, TCP_NODELAY is set to true for all client TCP/TLS connections. This disables Nagle's algorithm causing the OS to send data written to socket ASAP without waiting. This reduces latency and is usually the appropriate setting for DNP3. This library always writes data in units of link-layer frames so the default setting might cause more TCP fragmentation if clients send requests that exceed a single link-layer frame.

Calling this function will enable Nagle's algorithm for all future outbound TCP connections.

This would typically be called prior to creating any TCP/TLS clients. In a future 2.0 release, this flag will likely be settable on a per-session basis but is done globally to preserve API compatibility

◆ dnp3_disable_server_tcp_no_delay()

void dnp3_disable_server_tcp_no_delay ( )

By default, TCP_NODELAY is set to true for all server TCP/TLS connections. This disables Nagle's algorithm causing the OS to send data written to socket ASAP without waiting. This reduces latency and is usually the appropriate setting for DNP3. This library always writes data in units of link-layer frames so the default setting might cause more TCP fragmentation if clients send requests that exceed a single link-layer frame.

Calling this function will enable Nagle's algorithm for all future TCP/TLS connections accepted by servers

This would typically be called prior to creating any TCP/TLS clients. In a future 2.0 release, this flag will likely be settable on a per-session basis but is done globally to preserve API compatibility

◆ dnp3_double_bit_binary_input_config_create()

static dnp3_double_bit_binary_input_config_t dnp3_double_bit_binary_input_config_create ( dnp3_static_double_bit_binary_input_variation_t  static_variation,
dnp3_event_double_bit_binary_input_variation_t  event_variation 
)
static

Fully construct dnp3_double_bit_binary_input_config_t specifying the value of each field.

Parameters
static_variationDefault static variation
event_variationDefault event variation
Returns
New instance of dnp3_double_bit_binary_input_config_t

◆ dnp3_double_bit_binary_input_config_init()

◆ dnp3_double_bit_binary_input_init()

static dnp3_double_bit_binary_input_t dnp3_double_bit_binary_input_init ( uint16_t  index,
dnp3_double_bit_t  value,
dnp3_flags_t  flags,
dnp3_timestamp_t  time 
)
static

Fully construct dnp3_double_bit_binary_input_t specifying the value of each field.

Parameters
indexPoint index
valuePoint value
flagsPoint flags
timePoint timestamp
Returns
New instance of dnp3_double_bit_binary_input_t

◆ dnp3_double_bit_binary_input_iterator_next()

dnp3_double_bit_binary_input_t * dnp3_double_bit_binary_input_iterator_next ( dnp3_double_bit_binary_input_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_double_bit_to_string()

static const char * dnp3_double_bit_to_string ( dnp3_double_bit_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_empty_response_error_to_string()

static const char * dnp3_empty_response_error_to_string ( dnp3_empty_response_error_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_endpoint_list_add()

void dnp3_endpoint_list_add ( dnp3_endpoint_list_t instance,
const char *  endpoint 
)

Add an IP endpoint to the list.

You can write IP addresses or DNS names and the port to connect to. e.g. "127.0.0.1:20000" or "dnp3.myorg.com:20000".

Parameters
instanceInstance of dnp3_endpoint_list_t
endpointEndpoint to add to the list

◆ dnp3_endpoint_list_create()

dnp3_endpoint_list_t * dnp3_endpoint_list_create ( const char *  main_endpoint)

Create a new list of IP endpoints.

You can write IP addresses or DNS names and the port to connect to. e.g. "127.0.0.1:20000" or "dnp3.myorg.com:20000".

Parameters
main_endpointMain endpoint
Returns
Instance of dnp3_endpoint_list_t

◆ dnp3_endpoint_list_destroy()

void dnp3_endpoint_list_destroy ( dnp3_endpoint_list_t instance)

Destroy a previously allocated endpoint list.

Parameters
instanceInstance of dnp3_endpoint_list_t to destroy

◆ dnp3_event_analog_input_variation_to_string()

static const char * dnp3_event_analog_input_variation_to_string ( dnp3_event_analog_input_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_event_analog_output_status_variation_to_string()

static const char * dnp3_event_analog_output_status_variation_to_string ( dnp3_event_analog_output_status_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_event_binary_input_variation_to_string()

static const char * dnp3_event_binary_input_variation_to_string ( dnp3_event_binary_input_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_event_binary_output_status_variation_to_string()

static const char * dnp3_event_binary_output_status_variation_to_string ( dnp3_event_binary_output_status_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_event_buffer_config_init()

static dnp3_event_buffer_config_t dnp3_event_buffer_config_init ( uint16_t  max_binary,
uint16_t  max_double_bit_binary,
uint16_t  max_binary_output_status,
uint16_t  max_counter,
uint16_t  max_frozen_counter,
uint16_t  max_analog,
uint16_t  max_analog_output_status,
uint16_t  max_octet_string 
)
static

Fully construct dnp3_event_buffer_config_t specifying the value of each field.

Parameters
max_binaryMaximum number of Binary Input events (g2)
max_double_bit_binaryMaximum number of Double-Bit Binary Input events (g4)
max_binary_output_statusMaximum number of Binary Output Status events (g11)
max_counterMaximum number of Counter events (g22)
max_frozen_counterMaximum number of Frozen Counter events (g23)
max_analogMaximum number of Analog Input events (g32)
max_analog_output_statusMaximum number of Analog Output Status events (g42)
max_octet_stringMaximum number of Octet String events (g111)
Returns
New instance of dnp3_event_buffer_config_t

◆ dnp3_event_buffer_config_no_events()

◆ dnp3_event_class_to_string()

static const char * dnp3_event_class_to_string ( dnp3_event_class_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_event_classes_all()

static dnp3_event_classes_t dnp3_event_classes_all ( )
static

Initialize all classes to true.

Note
Values are initialized to:
Returns
New instance of dnp3_event_classes_t

◆ dnp3_event_classes_init()

static dnp3_event_classes_t dnp3_event_classes_init ( bool  class1,
bool  class2,
bool  class3 
)
static

Fully construct dnp3_event_classes_t specifying the value of each field.

Parameters
class1Class 1 events
class2Class 2 events
class3Class 3 events
Returns
New instance of dnp3_event_classes_t

◆ dnp3_event_classes_none()

static dnp3_event_classes_t dnp3_event_classes_none ( )
static

Initialize all classes to false.

Note
Values are initialized to:
Returns
New instance of dnp3_event_classes_t

◆ dnp3_event_counter_variation_to_string()

static const char * dnp3_event_counter_variation_to_string ( dnp3_event_counter_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_event_double_bit_binary_input_variation_to_string()

static const char * dnp3_event_double_bit_binary_input_variation_to_string ( dnp3_event_double_bit_binary_input_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_event_frozen_counter_variation_to_string()

static const char * dnp3_event_frozen_counter_variation_to_string ( dnp3_event_frozen_counter_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_event_mode_to_string()

static const char * dnp3_event_mode_to_string ( dnp3_event_mode_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_file_error_to_string()

static const char * dnp3_file_error_to_string ( dnp3_file_error_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_file_info_iterator_next()

dnp3_file_info_t * dnp3_file_info_iterator_next ( dnp3_file_info_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_file_mode_to_string()

static const char * dnp3_file_mode_to_string ( dnp3_file_mode_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_file_read_config_defaults()

static dnp3_file_read_config_t dnp3_file_read_config_defaults ( )
static

Initialize the configuration to default values.

Note
Values are initialized to:
Returns
New instance of dnp3_file_read_config_t

◆ dnp3_file_type_to_string()

static const char * dnp3_file_type_to_string ( dnp3_file_type_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_flags_init()

static dnp3_flags_t dnp3_flags_init ( uint8_t  value)
static

Fully construct dnp3_flags_t specifying the value of each field.

Parameters
valuebit-mask representing a set of individual flag bits
Returns
New instance of dnp3_flags_t

◆ dnp3_float_attr_to_string()

static const char * dnp3_float_attr_to_string ( dnp3_float_attr_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_flow_control_to_string()

static const char * dnp3_flow_control_to_string ( dnp3_flow_control_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_freeze_result_to_string()

static const char * dnp3_freeze_result_to_string ( dnp3_freeze_result_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_freeze_type_to_string()

static const char * dnp3_freeze_type_to_string ( dnp3_freeze_type_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_frozen_analog_input_init()

static dnp3_frozen_analog_input_t dnp3_frozen_analog_input_init ( uint16_t  index,
double  value,
dnp3_flags_t  flags,
dnp3_timestamp_t  time 
)
static

Fully construct dnp3_frozen_analog_input_t specifying the value of each field.

Parameters
indexPoint index
valuePoint value
flagsPoint flags
timePoint timestamp
Returns
New instance of dnp3_frozen_analog_input_t

◆ dnp3_frozen_analog_input_iterator_next()

dnp3_frozen_analog_input_t * dnp3_frozen_analog_input_iterator_next ( dnp3_frozen_analog_input_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_frozen_counter_config_create()

static dnp3_frozen_counter_config_t dnp3_frozen_counter_config_create ( dnp3_static_frozen_counter_variation_t  static_variation,
dnp3_event_frozen_counter_variation_t  event_variation,
uint32_t  deadband 
)
static

Fully construct dnp3_frozen_counter_config_t specifying the value of each field.

Parameters
static_variationDefault static variation
event_variationDefault event variation
deadbandDeadband value
Returns
New instance of dnp3_frozen_counter_config_t

◆ dnp3_frozen_counter_config_init()

◆ dnp3_frozen_counter_init()

static dnp3_frozen_counter_t dnp3_frozen_counter_init ( uint16_t  index,
uint32_t  value,
dnp3_flags_t  flags,
dnp3_timestamp_t  time 
)
static

Fully construct dnp3_frozen_counter_t specifying the value of each field.

Parameters
indexPoint index
valuePoint value
flagsPoint flags
timePoint timestamp
Returns
New instance of dnp3_frozen_counter_t

◆ dnp3_frozen_counter_iterator_next()

dnp3_frozen_counter_t * dnp3_frozen_counter_iterator_next ( dnp3_frozen_counter_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_function_code_to_string()

static const char * dnp3_function_code_to_string ( dnp3_function_code_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_group12_var1_from_code()

static dnp3_group12_var1_t dnp3_group12_var1_from_code ( dnp3_control_code_t  code)
static

Construct a dnp3_group12_var1_t from a dnp3_control_code_t.

Note
Values are initialized to:
Parameters
codeControl code
Returns
New instance of dnp3_group12_var1_t

◆ dnp3_group12_var1_init()

static dnp3_group12_var1_t dnp3_group12_var1_init ( dnp3_control_code_t  code,
uint8_t  count,
uint32_t  on_time,
uint32_t  off_time 
)
static

Fully construct dnp3_group12_var1_t specifying the value of each field.

Parameters
codeControl code
countCount
on_timeDuration the output drive remains active (in milliseconds)
off_timeDuration the output drive remains non-active (in milliseconds)
Returns
New instance of dnp3_group12_var1_t

◆ dnp3_identified_link_handler_accept()

dnp3_param_error_t dnp3_identified_link_handler_accept ( dnp3_identified_link_handler_t instance,
dnp3_link_error_mode_t  error_mode,
dnp3_master_channel_config_t  config 
)

Accept the connection and create a master channel.

Parameters
instanceInstance of dnp3_identified_link_handler_t
error_modeError mode to use for the link-layer. This should typically be DNP3_LINK_ERROR_MODE_CLOSE
configConfiguration of the channel
Returns
Enumeration describing the result of the operation

◆ dnp3_int_attr_to_string()

static const char * dnp3_int_attr_to_string ( dnp3_int_attr_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_link_decode_level_to_string()

static const char * dnp3_link_decode_level_to_string ( dnp3_link_decode_level_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_link_error_mode_to_string()

static const char * dnp3_link_error_mode_to_string ( dnp3_link_error_mode_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_link_id_config_init()

static dnp3_link_id_config_t dnp3_link_id_config_init ( )
static

Initialize to default values.

Note
Values are initialized to:
Returns
New instance of dnp3_link_id_config_t

◆ dnp3_link_read_mode_to_string()

static const char * dnp3_link_read_mode_to_string ( dnp3_link_read_mode_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_link_status_error_to_string()

static const char * dnp3_link_status_error_to_string ( dnp3_link_status_error_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_log_level_to_string()

static const char * dnp3_log_level_to_string ( dnp3_log_level_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_log_output_format_to_string()

static const char * dnp3_log_output_format_to_string ( dnp3_log_output_format_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_logging_config_init()

◆ dnp3_master_channel_add_association()

dnp3_param_error_t dnp3_master_channel_add_association ( dnp3_master_channel_t instance,
uint16_t  address,
dnp3_association_config_t  config,
dnp3_read_handler_t  read_handler,
dnp3_association_handler_t  association_handler,
dnp3_association_information_t  association_information,
dnp3_association_id_t out 
)

Add an association to the channel.

Parameters
instanceInstance of dnp3_master_channel_t
addressDNP3 data-link address of the remote outstation
configAssociation configuration
read_handlerInterface uses to load measurement data
association_handlerAssociation specific callbacks such as time synchronization
association_informationAssociation information interface
outId of the association
Returns
Error code

◆ dnp3_master_channel_add_poll()

dnp3_param_error_t dnp3_master_channel_add_poll ( dnp3_master_channel_t instance,
dnp3_association_id_t  id,
dnp3_request_t request,
uint64_t  period,
dnp3_poll_id_t out 
)

Add a periodic poll to an association.

Each result of the poll will be sent to the dnp3_read_handler_t of the association.

Parameters
instanceInstance of dnp3_master_channel_t
idAssociation on which to add the poll
requestRequest to perform
periodPeriod to wait between each poll (in ms) (milliseconds)
outId of the created poll
Returns
Error code

◆ dnp3_master_channel_add_udp_association()

dnp3_param_error_t dnp3_master_channel_add_udp_association ( dnp3_master_channel_t instance,
uint16_t  address,
const char *  destination,
dnp3_association_config_t  config,
dnp3_read_handler_t  read_handler,
dnp3_association_handler_t  association_handler,
dnp3_association_information_t  association_information,
dnp3_association_id_t out 
)

Add a UDP association to the channel.

Parameters
instanceInstance of dnp3_master_channel_t
addressDNP3 data-link address of the remote outstation
destinationIP address and port of the outstation
configAssociation configuration
read_handlerInterface uses to load measurement data
association_handlerAssociation specific callbacks such as time synchronization
association_informationAssociation information interface
outId of the association
Returns
Error code

◆ dnp3_master_channel_check_link_status()

dnp3_param_error_t dnp3_master_channel_check_link_status ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
dnp3_link_status_callback_t  callback 
)

Asynchronously perform a link status check.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_close_file()

dnp3_param_error_t dnp3_master_channel_close_file ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
uint32_t  handle,
dnp3_file_operation_callback_t  callback 
)

Asynchronously close a file.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
handleHandle returned when the file was opened
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_cold_restart()

dnp3_param_error_t dnp3_master_channel_cold_restart ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
dnp3_restart_task_callback_t  callback 
)

Asynchronously perform a cold restart operation to the association.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_config_init()

static dnp3_master_channel_config_t dnp3_master_channel_config_init ( uint16_t  address)
static

Initialize dnp3_master_channel_config_t to default values.

Note
Values are initialized to:
Parameters
addressLocal DNP3 data-link address
Returns
New instance of dnp3_master_channel_config_t

◆ dnp3_master_channel_create_serial()

dnp3_param_error_t dnp3_master_channel_create_serial ( dnp3_runtime_t runtime,
dnp3_master_channel_config_t  config,
const char *  path,
dnp3_serial_settings_t  serial_params,
uint64_t  open_retry_delay,
dnp3_port_state_listener_t  listener,
dnp3_master_channel_t **  out 
)

Create a master channel on the specified serial port.

The returned master must be gracefully shutdown with dnp3_master_channel_destroy when done.

Parameters
runtimeRuntime to use to drive asynchronous operations of the master
configGeneric configuration for the channel
pathPath to the serial device. Generally /dev/tty0 on Linux and COM1 on Windows.
serial_paramsSerial port settings
open_retry_delayDelay between attempts to open the serial port (milliseconds)
listenerListener to receive updates on the status of the serial port
outHandle to the master created, NULL if an error occurred
Returns
Error code

◆ dnp3_master_channel_create_tcp()

dnp3_param_error_t dnp3_master_channel_create_tcp ( dnp3_runtime_t runtime,
dnp3_link_error_mode_t  link_error_mode,
dnp3_master_channel_config_t  config,
dnp3_endpoint_list_t endpoints,
dnp3_connect_strategy_t  connect_strategy,
dnp3_client_state_listener_t  listener,
dnp3_master_channel_t **  out 
)

Create a master channel that connects to the specified TCP endpoint(s)

Parameters
runtimeRuntime to use to drive asynchronous operations of the master
link_error_modeControls how link errors are handled with respect to the TCP session
configGeneric configuration for the channel
endpointsList of IP endpoints.
connect_strategyControls the timing of (re)connection attempts
listenerTCP connection listener used to receive updates on the status of the connection
outHandle to the master created, NULL if an error occurred
Returns
Error code

◆ dnp3_master_channel_create_tcp_2()

dnp3_param_error_t dnp3_master_channel_create_tcp_2 ( dnp3_runtime_t runtime,
dnp3_link_error_mode_t  link_error_mode,
dnp3_master_channel_config_t  config,
dnp3_endpoint_list_t endpoints,
dnp3_connect_strategy_t  connect_strategy,
dnp3_connect_options_t connect_options,
dnp3_client_state_listener_t  listener,
dnp3_master_channel_t **  out 
)

Create a master channel that connects to the specified TCP endpoint(s)

This is just like dnp3_master_channel_create_tcp_channel but adds the dnp3_connect_options_t parameter

Parameters
runtimeRuntime to use to drive asynchronous operations of the master
link_error_modeControls how link errors are handled with respect to the TCP session
configGeneric configuration for the channel
endpointsList of IP endpoints.
connect_strategyControls the timing of (re)connection attempts
connect_optionsOptions that control the TCP connection process
listenerTCP connection listener used to receive updates on the status of the connection
outHandle to the master created, NULL if an error occurred
Returns
Error code

◆ dnp3_master_channel_create_tls()

dnp3_param_error_t dnp3_master_channel_create_tls ( dnp3_runtime_t runtime,
dnp3_link_error_mode_t  link_error_mode,
dnp3_master_channel_config_t  config,
dnp3_endpoint_list_t endpoints,
dnp3_connect_strategy_t  connect_strategy,
dnp3_client_state_listener_t  listener,
dnp3_tls_client_config_t  tls_config,
dnp3_master_channel_t **  out 
)

Create a master channel that connects to the specified TCP endpoint(s) and establish a TLS session with the remote.

Parameters
runtimeRuntime to use to drive asynchronous operations of the master
link_error_modeControls how link errors are handled with respect to the TCP session
configGeneric configuration for the channel
endpointsList of IP endpoints.
connect_strategyControls the timing of (re)connection attempts
listenerTCP connection listener used to receive updates on the status of the connection
tls_configTLS client configuration
outHandle to the master created, NULL if an error occurred
Returns
Error code

◆ dnp3_master_channel_create_tls_2()

dnp3_param_error_t dnp3_master_channel_create_tls_2 ( dnp3_runtime_t runtime,
dnp3_link_error_mode_t  link_error_mode,
dnp3_master_channel_config_t  config,
dnp3_endpoint_list_t endpoints,
dnp3_connect_strategy_t  connect_strategy,
dnp3_connect_options_t connect_options,
dnp3_client_state_listener_t  listener,
dnp3_tls_client_config_t  tls_config,
dnp3_master_channel_t **  out 
)

Create a master channel that connects to the specified TCP endpoint(s) and establish a TLS session with the remote.

This is just like dnp3_master_channel_create_tls_channel but adds the dnp3_connect_options_t parameter

Parameters
runtimeRuntime to use to drive asynchronous operations of the master
link_error_modeControls how link errors are handled with respect to the TCP session
configGeneric configuration for the channel
endpointsList of IP endpoints.
connect_strategyControls the timing of (re)connection attempts
connect_optionsOptions that control the TCP connection process
listenerTCP connection listener used to receive updates on the status of the connection
tls_configTLS client configuration
outHandle to the master created, NULL if an error occurred
Returns
Error code

◆ dnp3_master_channel_create_udp()

dnp3_param_error_t dnp3_master_channel_create_udp ( dnp3_runtime_t runtime,
dnp3_master_channel_config_t  config,
const char *  local_endpoint,
dnp3_link_read_mode_t  link_read_mode,
uint64_t  retry_delay,
dnp3_master_channel_t **  out 
)

Create a UDP master channel on the local endpoint.

The returned master must be gracefully shutdown with dnp3_master_channel_destroy when done.

Parameters
runtimeRuntime to use to drive asynchronous operations of the master
configGeneric configuration for the channel
local_endpointLocal endpoint on which to bind the UDP socket
link_read_modeDetermines how the link-layer parser treats frame that span datagrams. Typically set to DNP3_LINK_READ_MODE_DATAGRAM
retry_delayAmount of time to wait after a failed attempt to bind the UDP socket (milliseconds)
outHandle to the master created, NULL if an error occurred
Returns
Error code

◆ dnp3_master_channel_demand_poll()

dnp3_param_error_t dnp3_master_channel_demand_poll ( dnp3_master_channel_t instance,
dnp3_poll_id_t  poll_id 
)

Demand the immediate execution of a poll previously created with dnp3_master_channel_add_poll.

This method returns immediately. The result will be sent to the registered dnp3_read_handler_t.

This method resets the internal timer of the poll.

Parameters
instanceInstance of dnp3_master_channel_t
poll_idId of the poll
Returns
Error code

◆ dnp3_master_channel_destroy()

void dnp3_master_channel_destroy ( dnp3_master_channel_t instance)

Shutdown a dnp3_master_channel_t and release all resources.

Parameters
instanceInstance of dnp3_master_channel_t to destroy

◆ dnp3_master_channel_disable()

dnp3_param_error_t dnp3_master_channel_disable ( dnp3_master_channel_t instance)

stop communications

Parameters
instanceInstance of dnp3_master_channel_t
Returns
Error code

◆ dnp3_master_channel_enable()

dnp3_param_error_t dnp3_master_channel_enable ( dnp3_master_channel_t instance)

start communications

Parameters
instanceInstance of dnp3_master_channel_t
Returns
Error code

◆ dnp3_master_channel_get_decode_level()

dnp3_param_error_t dnp3_master_channel_get_decode_level ( dnp3_master_channel_t instance,
dnp3_decode_level_t out 
)

Get the decoding level for the channel.

Parameters
instanceInstance of dnp3_master_channel_t
outDecode level
Returns
Error code

◆ dnp3_master_channel_get_file_auth_key()

dnp3_param_error_t dnp3_master_channel_get_file_auth_key ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
const char *  username,
const char *  password,
dnp3_file_auth_callback_t  callback 
)

Obtain a file authentication key.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
usernameUser name
passwordPassword
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_get_file_info()

dnp3_param_error_t dnp3_master_channel_get_file_info ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
const char *  file_name,
dnp3_file_info_callback_t  callback 
)

Asynchronously retrieve information on a particular file.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
file_nameComplete path to the remote file
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_open_file()

dnp3_param_error_t dnp3_master_channel_open_file ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
const char *  file_name,
uint32_t  auth_key,
dnp3_permissions_t  permissions,
uint32_t  file_size,
dnp3_file_mode_t  file_mode,
uint16_t  max_block_size,
dnp3_file_open_callback_t  callback 
)

Asynchronously open a file.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
file_nameComplete path to the remote file
auth_keyOptional authentication key (0 == None)
permissionsPermissions sent in the file open request
file_sizeFile size sent in the request (zero when reading). When writing use the actual file size or 0xFFFFFFFF to indicate the size is unknown
file_modeMode used to open the file
max_block_sizeRequested maximum block size
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_operate()

dnp3_param_error_t dnp3_master_channel_operate ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
dnp3_command_mode_t  mode,
dnp3_command_set_t command,
dnp3_command_task_callback_t  callback 
)

Asynchronously perform a command operation on the association.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
modeOperation mode
commandCommand to send
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_read()

dnp3_param_error_t dnp3_master_channel_read ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
dnp3_request_t request,
dnp3_read_task_callback_t  callback 
)

Perform a read on the association.

The callback will be called once the read is completely received, but the actual values will be sent to the dnp3_read_handler_t of the association.

Parameters
instanceInstance of dnp3_master_channel_t
associationAssociation on which to perform the read
requestRequest to send
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_read_directory()

dnp3_param_error_t dnp3_master_channel_read_directory ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
const char *  dir_path,
dnp3_dir_read_config_t  config,
dnp3_read_directory_callback_t  callback 
)

Asynchronously retrieve a directory listing.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
dir_pathComplete path to the remote directory
configConfiguration for the directory read operation
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_read_directory_with_auth()

dnp3_param_error_t dnp3_master_channel_read_directory_with_auth ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
const char *  dir_path,
dnp3_dir_read_config_t  config,
const char *  user_name,
const char *  password,
dnp3_read_directory_callback_t  callback 
)

Asynchronously retrieve a directory listing by first obtaining an authentication key.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
dir_pathComplete path to the remote directory
configConfiguration for the directory read operation
user_nameUser name sent to the outstation
passwordPassword sent to the outstation
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_read_file()

dnp3_param_error_t dnp3_master_channel_read_file ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
const char *  remote_file_path,
dnp3_file_read_config_t  config,
dnp3_file_reader_t  reader 
)

Start an operation to READ a file from the outstation using a dnp3_file_reader_t to receive data.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
remote_file_pathPath of the remote file
configConfiguration for the read operation
readerInterface used to receive file data
Returns
Error code

◆ dnp3_master_channel_read_file_with_auth()

dnp3_param_error_t dnp3_master_channel_read_file_with_auth ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
const char *  remote_file_path,
dnp3_file_read_config_t  config,
dnp3_file_reader_t  reader,
const char *  user_name,
const char *  password 
)

Start an operation to READ a file from the outstation using a dnp3_file_reader_t to receive data.

This variant first requests an authentication key from the outstation using the supplied credentials

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
remote_file_pathPath of the remote file
configConfiguration for the read operation
readerInterface used to receive file data
user_nameUser name sent to the outstation
passwordPassword sent to the outstation
Returns
Error code

◆ dnp3_master_channel_read_with_handler()

dnp3_param_error_t dnp3_master_channel_read_with_handler ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
dnp3_request_t request,
dnp3_read_handler_t  handler,
dnp3_read_task_callback_t  callback 
)

Perform a read on the association.

The callback will be called once the read is completely received, but the actual values will be sent to the dnp3_read_handler_t passed as a parameter.

Parameters
instanceInstance of dnp3_master_channel_t
associationAssociation on which to perform the read
requestRequest to send
handlerCustom dnp3_read_handler_t to send the data to
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_remove_association()

dnp3_param_error_t dnp3_master_channel_remove_association ( dnp3_master_channel_t instance,
dnp3_association_id_t  id 
)

Remove an association from the channel.

Parameters
instanceInstance of dnp3_master_channel_t
idId of the association
Returns
Error code

◆ dnp3_master_channel_remove_poll()

dnp3_param_error_t dnp3_master_channel_remove_poll ( dnp3_master_channel_t instance,
dnp3_poll_id_t  poll_id 
)

Add a periodic poll to an association.

Each result of the poll will be sent to the dnp3_read_handler_t of the association.

Parameters
instanceInstance of dnp3_master_channel_t
poll_idId of the created poll
Returns
Error code

◆ dnp3_master_channel_send_and_expect_empty_response()

dnp3_param_error_t dnp3_master_channel_send_and_expect_empty_response ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
dnp3_function_code_t  function,
dnp3_request_t headers,
dnp3_empty_response_callback_t  callback 
)

Send the specified request to the association using the supplied function and collection of request headers.

This is useful for constructing various types of WRITE and FREEZE operations where an empty response is expected from the outstation, and the only indication of success are bits in IIN.2.

The request will fail if 1) The response contains object headers or 2) One of the error bits in IIN.2 is set.

Parameters
instanceInstance of dnp3_master_channel_t
associationAssociation on which to perform the request
functionFunction code for the request
headersHeaders that will be contained in the request
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_set_decode_level()

dnp3_param_error_t dnp3_master_channel_set_decode_level ( dnp3_master_channel_t instance,
dnp3_decode_level_t  decode_level 
)

Set the decoding level for the channel.

Parameters
instanceInstance of dnp3_master_channel_t
decode_levelDecoding level
Returns
Error code

◆ dnp3_master_channel_synchronize_time()

dnp3_param_error_t dnp3_master_channel_synchronize_time ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
dnp3_time_sync_mode_t  mode,
dnp3_time_sync_task_callback_t  callback 
)

Asynchronously perform a time sync operation to the association.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
modeTime sync mode
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_warm_restart()

dnp3_param_error_t dnp3_master_channel_warm_restart ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
dnp3_restart_task_callback_t  callback 
)

Asynchronously perform a warm restart operation to the association.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_write_dead_bands()

dnp3_param_error_t dnp3_master_channel_write_dead_bands ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
dnp3_write_dead_band_request_t request,
dnp3_empty_response_callback_t  callback 
)

Perform a WRITE on the association using the supplied collection of dead-band headers.

Parameters
instanceInstance of dnp3_master_channel_t
associationAssociation on which to perform the WRITE
requestRequest containing headers of analog input dead-bands (group 34)
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_channel_write_file_block()

dnp3_param_error_t dnp3_master_channel_write_file_block ( dnp3_master_channel_t instance,
dnp3_association_id_t  association,
uint32_t  handle,
uint32_t  block_number,
bool  final_block,
dnp3_byte_collection_t block_data,
dnp3_file_operation_callback_t  callback 
)

Asynchronously write a block of file data to the outstation.

Parameters
instanceInstance of dnp3_master_channel_t
associationId of the association
handleHandle returned when the file was opened
block_numberSequential block number in the range [0 .. 0x7FFFFFFF]. The top bit is indicates the final block
final_blockIndicate that this is the final block
block_dataCollection of bytes. This must not be larger than the maximum block size returned by the outstation
callbackcallback invoked when the operation completes
Returns
Error code

◆ dnp3_master_server_destroy()

void dnp3_master_server_destroy ( dnp3_master_server_t instance)

Shutdown down the server.

Parameters
instanceInstance of dnp3_master_server_t to destroy

◆ dnp3_min_tls_version_to_string()

static const char * dnp3_min_tls_version_to_string ( dnp3_min_tls_version_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_nothing_to_string()

static const char * dnp3_nothing_to_string ( dnp3_nothing_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_octet_string_attr_to_string()

static const char * dnp3_octet_string_attr_to_string ( dnp3_octet_string_attr_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_octet_string_iterator_next()

dnp3_octet_string_t * dnp3_octet_string_iterator_next ( dnp3_octet_string_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_octet_string_value_add()

void dnp3_octet_string_value_add ( dnp3_octet_string_value_t instance,
uint8_t  value 
)

Add a value to the collection.

Parameters
instanceinstance to which to add the value
valuevalue to add to the instance

◆ dnp3_octet_string_value_create()

dnp3_octet_string_value_t * dnp3_octet_string_value_create ( )

Creates an instance of the collection.

Returns
Allocated opaque collection instance

◆ dnp3_octet_string_value_destroy()

void dnp3_octet_string_value_destroy ( dnp3_octet_string_value_t instance)

Destroys an instance of the collection.

Parameters
instanceinstance to destroy

◆ dnp3_op_type_to_string()

static const char * dnp3_op_type_to_string ( dnp3_op_type_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_operate_type_to_string()

static const char * dnp3_operate_type_to_string ( dnp3_operate_type_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_outstation_config_init()

static dnp3_outstation_config_t dnp3_outstation_config_init ( uint16_t  outstation_address,
uint16_t  master_address,
dnp3_event_buffer_config_t  event_buffer_config 
)
static

◆ dnp3_outstation_create_serial_session()

dnp3_param_error_t dnp3_outstation_create_serial_session ( dnp3_runtime_t runtime,
const char *  serial_path,
dnp3_serial_settings_t  settings,
dnp3_outstation_config_t  config,
dnp3_outstation_application_t  application,
dnp3_outstation_information_t  information,
dnp3_control_handler_t  control_handler,
dnp3_outstation_t **  out 
)

Create an outstation instance running on a serial port.

The port is opened immediately on the calling thread and fails if not successful

Warning
Most users should prefer the fault tolerant version of the this method dnp3_outstation_create_serial_session_fault_tolerant
Parameters
runtimeruntime on which to spawn the outstation
serial_pathPath of the serial device
settingssettings for the serial port
configoutstation configuration
applicationapplication interface
informationinformational events interface
control_handlercontrol handler interface
outOutstation instance or NULL if the port cannot be opened
Returns
Error code

◆ dnp3_outstation_create_serial_session_2()

dnp3_param_error_t dnp3_outstation_create_serial_session_2 ( dnp3_runtime_t runtime,
const char *  serial_path,
dnp3_serial_settings_t  settings,
uint64_t  open_retry_delay,
dnp3_outstation_config_t  config,
dnp3_outstation_application_t  application,
dnp3_outstation_information_t  information,
dnp3_control_handler_t  control_handler,
dnp3_port_state_listener_t  port_listener,
dnp3_outstation_t **  out 
)

Create an outstation instance running on a serial port which is tolerant to the serial port being added and removed.

Parameters
runtimeruntime on which to spawn the outstation
serial_pathPath of the serial device
settingssettings for the serial port
open_retry_delaydelay between attempts to open the serial port (milliseconds)
configoutstation configuration
applicationapplication interface
informationinformational events interface
control_handlercontrol handler interface
port_listenerport state listener
outOutstation instance or NULL if the port cannot be opened
Returns
Error code

◆ dnp3_outstation_create_serial_session_fault_tolerant()

dnp3_param_error_t dnp3_outstation_create_serial_session_fault_tolerant ( dnp3_runtime_t runtime,
const char *  serial_path,
dnp3_serial_settings_t  settings,
uint64_t  open_retry_delay,
dnp3_outstation_config_t  config,
dnp3_outstation_application_t  application,
dnp3_outstation_information_t  information,
dnp3_control_handler_t  control_handler,
dnp3_outstation_t **  out 
)

This method is implemented in terms of dnp3_outstation_create_serial_session_2 but without a port listener.

Parameters
runtimeruntime on which to spawn the outstation
serial_pathPath of the serial device
settingssettings for the serial port
open_retry_delaydelay between attempts to open the serial port (milliseconds)
configoutstation configuration
applicationapplication interface
informationinformational events interface
control_handlercontrol handler interface
outOutstation instance or NULL if the port cannot be opened
Returns
Error code

◆ dnp3_outstation_create_tcp_client()

dnp3_param_error_t dnp3_outstation_create_tcp_client ( dnp3_runtime_t runtime,
dnp3_link_error_mode_t  link_error_mode,
dnp3_endpoint_list_t endpoints,
dnp3_connect_strategy_t  connect_strategy,
dnp3_connect_options_t connect_options,
dnp3_outstation_config_t  config,
dnp3_outstation_application_t  application,
dnp3_outstation_information_t  information,
dnp3_control_handler_t  control_handler,
dnp3_client_state_listener_t  listener,
dnp3_outstation_t **  out 
)

Create an outstation instance running as a TCP client.

Parameters
runtimeruntime on which to spawn the outstation
link_error_modeControls how link errors are handled with respect to the TCP session
endpointsList of IP endpoints.
connect_strategyControls the timing of (re)connection attempts
connect_optionsOptions that control the TCP connection process
configoutstation configuration
applicationapplication interface
informationinformational events interface
control_handlercontrol handler interface
listenerConnection listener used to receive updates on the status of the connection
outOutstation instance
Returns
Error code

◆ dnp3_outstation_create_tls_client()

dnp3_param_error_t dnp3_outstation_create_tls_client ( dnp3_runtime_t runtime,
dnp3_link_error_mode_t  link_error_mode,
dnp3_endpoint_list_t endpoints,
dnp3_connect_strategy_t  connect_strategy,
dnp3_connect_options_t connect_options,
dnp3_outstation_config_t  config,
dnp3_outstation_application_t  application,
dnp3_outstation_information_t  information,
dnp3_control_handler_t  control_handler,
dnp3_client_state_listener_t  listener,
dnp3_tls_client_config_t  tls_config,
dnp3_outstation_t **  out 
)

Create an outstation instance running as a TLS client.

Parameters
runtimeruntime on which to spawn the outstation
link_error_modeControls how link errors are handled with respect to the TCP session
endpointsList of IP endpoints.
connect_strategyControls the timing of (re)connection attempts
connect_optionsOptions that control the TCP connection process
configoutstation configuration
applicationapplication interface
informationinformational events interface
control_handlercontrol handler interface
listenerConnection listener used to receive updates on the status of the connection
tls_configTLS client configuration
outOutstation instance
Returns
Error code

◆ dnp3_outstation_create_udp()

dnp3_param_error_t dnp3_outstation_create_udp ( dnp3_runtime_t runtime,
dnp3_outstation_udp_config_t  udp_config,
dnp3_outstation_config_t  config,
dnp3_outstation_application_t  application,
dnp3_outstation_information_t  information,
dnp3_control_handler_t  control_handler,
dnp3_outstation_t **  out 
)

Create an outstation instance running on a serial port which is tolerant to the serial port being added and removed.

Parameters
runtimeruntime on which to spawn the outstation
udp_configUDP configuration
configoutstation configuration
applicationapplication interface
informationinformational events interface
control_handlercontrol handler interface
outOutstation instance or NULL if the port cannot be opened
Returns
Error code

◆ dnp3_outstation_destroy()

void dnp3_outstation_destroy ( dnp3_outstation_t instance)

Free resources of the outstation.

Warning
This does not shutdown the outstation. Only dnp3_outstation_server_destroy will properly shutdown the outstation.
Parameters
instanceInstance of dnp3_outstation_t to destroy

◆ dnp3_outstation_disable()

dnp3_param_error_t dnp3_outstation_disable ( dnp3_outstation_t instance)

disable communications

Parameters
instanceInstance of dnp3_outstation_t
Returns
Error code

◆ dnp3_outstation_enable()

dnp3_param_error_t dnp3_outstation_enable ( dnp3_outstation_t instance)

enable communications

Parameters
instanceInstance of dnp3_outstation_t
Returns
Error code

◆ dnp3_outstation_features_init()

static dnp3_outstation_features_t dnp3_outstation_features_init ( )
static

◆ dnp3_outstation_server_add_outstation()

dnp3_param_error_t dnp3_outstation_server_add_outstation ( dnp3_outstation_server_t instance,
dnp3_outstation_config_t  config,
dnp3_outstation_application_t  application,
dnp3_outstation_information_t  information,
dnp3_control_handler_t  control_handler,
dnp3_connection_state_listener_t  listener,
dnp3_address_filter_t filter,
dnp3_outstation_t **  out 
)

Add an outstation to the server.

The returned dnp3_outstation_t can be used to modify points of the outstation.

In order for the outstation to run, the TCP server must be running. Use dnp3_outstation_server_bind to run it.

Parameters
instanceInstance of dnp3_outstation_server_t
configOutstation configuration
applicationOutstation application callbacks
informationOutstation information callbacks
control_handlerOutstation control handler
listenerListener for the connection state
filterAddress filter
outOutstation handle
Returns
Error code

◆ dnp3_outstation_server_bind()

dnp3_param_error_t dnp3_outstation_server_bind ( dnp3_outstation_server_t instance)

Bind the server to the port and starts listening. Also starts all the outstations associated to it.

Parameters
instanceInstance of dnp3_outstation_server_t
Returns
Error code

◆ dnp3_outstation_server_create_tcp_server()

dnp3_param_error_t dnp3_outstation_server_create_tcp_server ( dnp3_runtime_t runtime,
dnp3_link_error_mode_t  link_error_mode,
const char *  address,
dnp3_outstation_server_t **  out 
)

Create a new TCP server.

To start it, use dnp3_outstation_server_bind.

Parameters
runtimeRuntime to execute the server on
link_error_modeControls how link errors are handled with respect to the TCP session
addressAddress to bind the server to e.g. 127.0.0.1:20000
outNew TCP server instance
Returns
Error code

◆ dnp3_outstation_server_create_tls_server()

dnp3_param_error_t dnp3_outstation_server_create_tls_server ( dnp3_runtime_t runtime,
dnp3_link_error_mode_t  link_error_mode,
const char *  address,
dnp3_tls_server_config_t  tls_config,
dnp3_outstation_server_t **  out 
)

Create a new TLS server.

To start it, use dnp3_outstation_server_bind.

Parameters
runtimeRuntime to execute the server on
link_error_modeControls how link errors are handled with respect to the session
addressAddress to bind the server to e.g. 127.0.0.1:20000
tls_configTLS server configuration
outNew TLS server instance
Returns
Error code

◆ dnp3_outstation_server_destroy()

void dnp3_outstation_server_destroy ( dnp3_outstation_server_t instance)

Gracefully shutdown all the outstations associated to this server, stops the server and release resources.

Parameters
instanceInstance of dnp3_outstation_server_t to destroy

◆ dnp3_outstation_set_decode_level()

dnp3_param_error_t dnp3_outstation_set_decode_level ( dnp3_outstation_t instance,
dnp3_decode_level_t  level 
)

Set decoding log level.

Parameters
instanceInstance of dnp3_outstation_t
levelDecode log
Returns
Error code

◆ dnp3_outstation_transaction()

void dnp3_outstation_transaction ( dnp3_outstation_t instance,
dnp3_database_transaction_t  callback 
)

Acquire a mutex on the underlying database and apply a set of changes as a transaction.

Parameters
instanceInstance of dnp3_outstation_t
callbackInterface on which to execute the transaction

◆ dnp3_outstation_udp_config_init()

static dnp3_outstation_udp_config_t dnp3_outstation_udp_config_init ( const char *  local_endpoint,
const char *  remote_endpoint 
)
static

Initialize the configuration with default settings for unspecified parameter.

Note
Values are initialized to:
Parameters
local_endpointLocal endpoint to which the UDP socket is bound. Must be a socket address (ip:port)
remote_endpointRemote endpoint where outbound requests are sent. Must be a socket address (ip:port)
Returns
New instance of dnp3_outstation_udp_config_t

◆ dnp3_param_error_to_string()

static const char * dnp3_param_error_to_string ( dnp3_param_error_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_parity_to_string()

static const char * dnp3_parity_to_string ( dnp3_parity_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_permission_set_init()

static dnp3_permission_set_t dnp3_permission_set_init ( bool  execute,
bool  write,
bool  read 
)
static

Fully construct dnp3_permission_set_t specifying the value of each field.

Parameters
executePermission to execute
writePermission to write
readPermission to read
Returns
New instance of dnp3_permission_set_t

◆ dnp3_permission_set_none()

static dnp3_permission_set_t dnp3_permission_set_none ( )
static

Permission set with nothing enabled.

Note
Values are initialized to:
Returns
New instance of dnp3_permission_set_t

◆ dnp3_permissions_init()

static dnp3_permissions_t dnp3_permissions_init ( dnp3_permission_set_t  world,
dnp3_permission_set_t  group,
dnp3_permission_set_t  owner 
)
static

Fully construct dnp3_permissions_t specifying the value of each field.

Parameters
worldWorld permissions
groupGroup permissions
ownerOwner permissions
Returns
New instance of dnp3_permissions_t

◆ dnp3_permissions_none()

static dnp3_permissions_t dnp3_permissions_none ( )
static

Permissions with nothing enabled.

Note
Values are initialized to:
Returns
New instance of dnp3_permissions_t

◆ dnp3_phys_decode_level_to_string()

static const char * dnp3_phys_decode_level_to_string ( dnp3_phys_decode_level_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_port_state_to_string()

static const char * dnp3_port_state_to_string ( dnp3_port_state_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_qualifier_code_to_string()

static const char * dnp3_qualifier_code_to_string ( dnp3_qualifier_code_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_read_error_to_string()

static const char * dnp3_read_error_to_string ( dnp3_read_error_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_read_type_to_string()

static const char * dnp3_read_type_to_string ( dnp3_read_type_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_request_add_all_objects_header()

void dnp3_request_add_all_objects_header ( dnp3_request_t instance,
dnp3_variation_t  variation 
)

Add an all objects variation request.

Parameters
instanceInstance of dnp3_request_t
variationVariation to ask for

◆ dnp3_request_add_one_byte_limited_count_header()

void dnp3_request_add_one_byte_limited_count_header ( dnp3_request_t instance,
dnp3_variation_t  variation,
uint8_t  count 
)

Add a one-byte limited count variation header for use with a READ request.

Parameters
instanceInstance of dnp3_request_t
variationVariation to ask for
countMaximum number of events

◆ dnp3_request_add_one_byte_range_header()

void dnp3_request_add_one_byte_range_header ( dnp3_request_t instance,
dnp3_variation_t  variation,
uint8_t  start,
uint8_t  stop 
)

Add a one-byte start/stop header for use with a READ request.

Parameters
instanceInstance of dnp3_request_t
variationVariation to ask for
startStart index to ask
stopStop index to ask (inclusive)

◆ dnp3_request_add_specific_attribute()

void dnp3_request_add_specific_attribute ( dnp3_request_t instance,
uint8_t  variation,
uint8_t  set 
)

Add a one-byte start/stop header for use with a READ request.

Parameters
instanceInstance of dnp3_request_t
variationVariation of the device attribute
setThe set (point) to which the attribute belongs

◆ dnp3_request_add_string_attribute()

void dnp3_request_add_string_attribute ( dnp3_request_t instance,
uint8_t  variation,
uint8_t  set,
const char *  value 
)

Add a one-byte start/stop header containing for use with a WRITE request.

Parameters
instanceInstance of dnp3_request_t
variationVariation of the attribute
setThe set (point) to which the attribute belongs
valueValue of the attribute

◆ dnp3_request_add_time_and_interval()

void dnp3_request_add_time_and_interval ( dnp3_request_t instance,
uint64_t  time,
uint32_t  interval_ms 
)

Add a single g51v1 time-and-interval.

This is useful when constructing freeze-at-time requests

Parameters
instanceInstance of dnp3_request_t
timeDNP3 48-bit timestamp representing count of milliseconds since epoch UTC
interval_msInterval expressed in milliseconds

◆ dnp3_request_add_two_byte_limited_count_header()

void dnp3_request_add_two_byte_limited_count_header ( dnp3_request_t instance,
dnp3_variation_t  variation,
uint16_t  count 
)

Add a two-byte limited count variation header for use with a READ request.

Parameters
instanceInstance of dnp3_request_t
variationVariation to ask for
countMaximum number of events

◆ dnp3_request_add_two_byte_range_header()

void dnp3_request_add_two_byte_range_header ( dnp3_request_t instance,
dnp3_variation_t  variation,
uint16_t  start,
uint16_t  stop 
)

Add a two-byte start/stop header for use with a READ request.

Parameters
instanceInstance of dnp3_request_t
variationVariation to ask for
startStart index to ask
stopStop index to ask (inclusive)

◆ dnp3_request_add_uint_attribute()

void dnp3_request_add_uint_attribute ( dnp3_request_t instance,
uint8_t  variation,
uint8_t  set,
uint32_t  value 
)

Add a one-byte start/stop header containing for use with a WRITE request.

Parameters
instanceInstance of dnp3_request_t
variationVariation of the attribute
setThe set (point) to which the attribute belongs
valueValue of the attribute

◆ dnp3_request_create()

dnp3_request_t * dnp3_request_create ( )

Create a new request.

Returns
Instance of dnp3_request_t

◆ dnp3_request_destroy()

void dnp3_request_destroy ( dnp3_request_t instance)

Destroy a request created with dnp3_request_create or dnp3_request_class_request.

Parameters
instanceInstance of dnp3_request_t to destroy

◆ dnp3_request_new_all_objects()

dnp3_request_t * dnp3_request_new_all_objects ( dnp3_variation_t  variation)

Create a new request asking for all objects of a particular variation.

An identical request can be created manually with dnp3_request_create and dnp3_request_add_all_objects_header.

Parameters
variationVariation to ask for
Returns
Handle to the created request

◆ dnp3_request_new_class()

dnp3_request_t * dnp3_request_new_class ( bool  class0,
bool  class1,
bool  class2,
bool  class3 
)

Create a new request asking for classes.

An identical request can be created manually with dnp3_request_add_all_objects_header and variations DNP3_VARIATION_GROUP60_VAR1, DNP3_VARIATION_GROUP60_VAR2, DNP3_VARIATION_GROUP60_VAR3 and DNP3_VARIATION_GROUP60_VAR4.

Parameters
class0Ask for class 0 (static data)
class1Ask for class 1 events
class2Ask for class 2 events
class3Ask for class 3 events
Returns
Handle to the created request

◆ dnp3_request_new_one_byte_limited_count()

dnp3_request_t * dnp3_request_new_one_byte_limited_count ( dnp3_variation_t  variation,
uint8_t  count 
)

Create a new request asking for a limited count of objects (using 8-bit start/stop).

An identical request can be created manually with dnp3_request_create and dnp3_request_add_one_byte_limited_count_header.

Parameters
variationVariation to ask for
countMaximum number of events
Returns
Handle to the created request

◆ dnp3_request_new_one_byte_range()

dnp3_request_t * dnp3_request_new_one_byte_range ( dnp3_variation_t  variation,
uint8_t  start,
uint8_t  stop 
)

Create a new request asking for range of objects (using 8-bit start/stop).

An identical request can be created manually with dnp3_request_create and dnp3_request_add_one_byte_range_header.

Parameters
variationVariation to ask for
startStart index to ask
stopStop index to ask (inclusive)
Returns
Handle to the created request

◆ dnp3_request_new_two_byte_limited_count()

dnp3_request_t * dnp3_request_new_two_byte_limited_count ( dnp3_variation_t  variation,
uint16_t  count 
)

Create a new request asking for a limited count of objects (using 16-bit start/stop).

An identical request can be created manually with dnp3_request_create and dnp3_request_add_two_byte_limited_count_header.

Parameters
variationVariation to ask for
countMaximum number of events
Returns
Handle to the created request

◆ dnp3_request_new_two_byte_range()

dnp3_request_t * dnp3_request_new_two_byte_range ( dnp3_variation_t  variation,
uint16_t  start,
uint16_t  stop 
)

Create a new request asking for range of objects (using 16-bit start/stop).

An identical request can be created manually with dnp3_request_create and dnp3_request_add_two_byte_range_header.

Parameters
variationVariation to ask for
startStart index to ask
stopStop index to ask (inclusive)
Returns
Handle to the created request

◆ dnp3_response_function_to_string()

static const char * dnp3_response_function_to_string ( dnp3_response_function_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_restart_delay_milliseconds()

static dnp3_restart_delay_t dnp3_restart_delay_milliseconds ( uint16_t  value)
static

RestartDelay with a count of milliseconds.

Note
Values are initialized to:
Parameters
valueExpected delay before the outstation comes back online.
Returns
New instance of dnp3_restart_delay_t

◆ dnp3_restart_delay_not_supported()

static dnp3_restart_delay_t dnp3_restart_delay_not_supported ( )
static

RestartDelay indicating that the request is not supported.

Note
Values are initialized to:
Returns
New instance of dnp3_restart_delay_t

◆ dnp3_restart_delay_seconds()

static dnp3_restart_delay_t dnp3_restart_delay_seconds ( uint16_t  value)
static

RestartDelay with a count of seconds.

Note
Values are initialized to:
Parameters
valueExpected delay before the outstation comes back online.
Returns
New instance of dnp3_restart_delay_t

◆ dnp3_restart_delay_type_to_string()

static const char * dnp3_restart_delay_type_to_string ( dnp3_restart_delay_type_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_restart_error_to_string()

static const char * dnp3_restart_error_to_string ( dnp3_restart_error_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_retry_strategy_init()

static dnp3_retry_strategy_t dnp3_retry_strategy_init ( )
static

Initialize to defaults.

Note
Values are initialized to:
Returns
New instance of dnp3_retry_strategy_t

◆ dnp3_runtime_config_init()

static dnp3_runtime_config_t dnp3_runtime_config_init ( )
static

Initialize the configuration to default values.

Note
Values are initialized to:
Returns
New instance of dnp3_runtime_config_t

◆ dnp3_runtime_create()

dnp3_param_error_t dnp3_runtime_create ( dnp3_runtime_config_t  config,
dnp3_runtime_t **  out 
)

Creates a new runtime for running the protocol stack.

Warning
The runtime should be kept alive for as long as it's needed and it should be released with dnp3_runtime_destroy
Parameters
configRuntime configuration
outInstance of dnp3_runtime_t
Returns
Error code

◆ dnp3_runtime_destroy()

void dnp3_runtime_destroy ( dnp3_runtime_t instance)

Destroy a runtime.

This method will gracefully wait for all asynchronous operation to end before returning

Parameters
instanceInstance of dnp3_runtime_t to destroy

◆ dnp3_runtime_set_shutdown_timeout()

void dnp3_runtime_set_shutdown_timeout ( dnp3_runtime_t instance,
uint64_t  timeout 
)

By default, when the runtime shuts down, it does so without a timeout and waits indefinitely for all spawned tasks to yield.

Setting this value will put a maximum time bound on the eventual shutdown. Threads that have not exited within this timeout will be terminated.

Warning
This can leak memory. This method should only be used if the the entire application is being shut down so that memory can be cleaned up by the OS.
Parameters
instanceInstance of dnp3_runtime_t
timeoutMaximum number of seconds to wait for the runtime to shut down (seconds)

◆ dnp3_serial_settings_init()

◆ dnp3_static_analog_input_variation_to_string()

static const char * dnp3_static_analog_input_variation_to_string ( dnp3_static_analog_input_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_static_analog_output_status_variation_to_string()

static const char * dnp3_static_analog_output_status_variation_to_string ( dnp3_static_analog_output_status_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_static_binary_input_variation_to_string()

static const char * dnp3_static_binary_input_variation_to_string ( dnp3_static_binary_input_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_static_binary_output_status_variation_to_string()

static const char * dnp3_static_binary_output_status_variation_to_string ( dnp3_static_binary_output_status_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_static_counter_variation_to_string()

static const char * dnp3_static_counter_variation_to_string ( dnp3_static_counter_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_static_double_bit_binary_input_variation_to_string()

static const char * dnp3_static_double_bit_binary_input_variation_to_string ( dnp3_static_double_bit_binary_input_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_static_frozen_counter_variation_to_string()

static const char * dnp3_static_frozen_counter_variation_to_string ( dnp3_static_frozen_counter_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_stop_bits_to_string()

static const char * dnp3_stop_bits_to_string ( dnp3_stop_bits_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_string_attr_to_string()

static const char * dnp3_string_attr_to_string ( dnp3_string_attr_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_task_error_to_string()

static const char * dnp3_task_error_to_string ( dnp3_task_error_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_task_type_to_string()

static const char * dnp3_task_type_to_string ( dnp3_task_type_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_time_attr_to_string()

static const char * dnp3_time_attr_to_string ( dnp3_time_attr_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_time_format_to_string()

static const char * dnp3_time_format_to_string ( dnp3_time_format_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_time_quality_to_string()

static const char * dnp3_time_quality_to_string ( dnp3_time_quality_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_time_sync_error_to_string()

static const char * dnp3_time_sync_error_to_string ( dnp3_time_sync_error_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_time_sync_mode_to_string()

static const char * dnp3_time_sync_mode_to_string ( dnp3_time_sync_mode_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_timestamp_invalid_timestamp()

static dnp3_timestamp_t dnp3_timestamp_invalid_timestamp ( )
static

Creates an invalid timestamp struct.

Note
Values are initialized to:
Returns
New instance of dnp3_timestamp_t

◆ dnp3_timestamp_synchronized_timestamp()

static dnp3_timestamp_t dnp3_timestamp_synchronized_timestamp ( uint64_t  value)
static

Creates a synchronized timestamp struct.

Note
Values are initialized to:
Parameters
valueCount of milliseconds since UNIX epoch
Returns
New instance of dnp3_timestamp_t

◆ dnp3_timestamp_unsynchronized_timestamp()

static dnp3_timestamp_t dnp3_timestamp_unsynchronized_timestamp ( uint64_t  value)
static

Creates an unsynchronized timestamp struct.

Note
Values are initialized to:
Parameters
valueCount of milliseconds since UNIX epoch
Returns
New instance of dnp3_timestamp_t

◆ dnp3_tls_client_config_init()

static dnp3_tls_client_config_t dnp3_tls_client_config_init ( const char *  dns_name,
const char *  peer_cert_path,
const char *  local_cert_path,
const char *  private_key_path,
const char *  password 
)
static

construct the configuration with defaults

Note
Values are initialized to:
Parameters
dns_nameSubject name which is verified in the presented server certificate, from the SAN extension or in the common name field.
peer_cert_pathPath to the PEM-encoded certificate of the peer
local_cert_pathPath to the PEM-encoded local certificate
private_key_pathPath to the the PEM-encoded private key
passwordOptional password if the private key file is encrypted
Returns
New instance of dnp3_tls_client_config_t

◆ dnp3_tls_server_config_init()

static dnp3_tls_server_config_t dnp3_tls_server_config_init ( const char *  dns_name,
const char *  peer_cert_path,
const char *  local_cert_path,
const char *  private_key_path,
const char *  password 
)
static

construct the configuration with defaults

Note
Values are initialized to:
Parameters
dns_nameSubject name which is verified in the presented client certificate, from the SAN extension or in the common name field.
peer_cert_pathPath to the PEM-encoded certificate of the peer
local_cert_pathPath to the PEM-encoded local certificate
private_key_pathPath to the PEM-encoded private key
passwordOptional password if the private key file is encrypted
Returns
New instance of dnp3_tls_server_config_t

◆ dnp3_transport_decode_level_to_string()

static const char * dnp3_transport_decode_level_to_string ( dnp3_transport_decode_level_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_trip_close_code_to_string()

static const char * dnp3_trip_close_code_to_string ( dnp3_trip_close_code_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_udp_socket_mode_to_string()

static const char * dnp3_udp_socket_mode_to_string ( dnp3_udp_socket_mode_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_uint_attr_to_string()

static const char * dnp3_uint_attr_to_string ( dnp3_uint_attr_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_unsigned_integer_init()

static dnp3_unsigned_integer_t dnp3_unsigned_integer_init ( uint16_t  index,
uint8_t  value 
)
static

Fully construct dnp3_unsigned_integer_t specifying the value of each field.

Parameters
indexIndex of the object
valueValue of the object
Returns
New instance of dnp3_unsigned_integer_t

◆ dnp3_unsigned_integer_iterator_next()

dnp3_unsigned_integer_t * dnp3_unsigned_integer_iterator_next ( dnp3_unsigned_integer_iterator_t iter)

returns a pointer to the next value or NULL

Parameters
iteropaque iterator on which to retrieve the next value
Returns
next value or NULL

◆ dnp3_update_flags_type_to_string()

static const char * dnp3_update_flags_type_to_string ( dnp3_update_flags_type_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_update_options_detect_event()

static dnp3_update_options_t dnp3_update_options_detect_event ( )
static

Default event detection mode. Updates the static value and automatically detects event.

Note
Values are initialized to:
Returns
New instance of dnp3_update_options_t

◆ dnp3_update_options_no_event()

static dnp3_update_options_t dnp3_update_options_no_event ( )
static

Only update the static value. Usefull during initialization of the database.

Note
Values are initialized to:
Returns
New instance of dnp3_update_options_t

◆ dnp3_update_result_to_string()

static const char * dnp3_update_result_to_string ( dnp3_update_result_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_utc_timestamp_invalid()

static dnp3_utc_timestamp_t dnp3_utc_timestamp_invalid ( )
static

Construct an invalid dnp3_utc_timestamp_t.

Note
Values are initialized to:
Returns
New instance of dnp3_utc_timestamp_t

◆ dnp3_utc_timestamp_valid()

static dnp3_utc_timestamp_t dnp3_utc_timestamp_valid ( uint64_t  value)
static

Construct a valid dnp3_utc_timestamp_t.

Note
Values are initialized to:
Parameters
valueCount of milliseconds since UNIX epoch
Returns
New instance of dnp3_utc_timestamp_t

◆ dnp3_variation_list_attr_to_string()

static const char * dnp3_variation_list_attr_to_string ( dnp3_variation_list_attr_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_variation_to_string()

static const char * dnp3_variation_to_string ( dnp3_variation_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation

◆ dnp3_version()

const char * dnp3_version ( )

Get the version of the library as a string.

Returns
Version number

◆ dnp3_write_dead_band_request_add_g34v1_u16()

void dnp3_write_dead_band_request_add_g34v1_u16 ( dnp3_write_dead_band_request_t instance,
uint16_t  index,
uint16_t  dead_band 
)

Add a g34v1 (unsigned 16-bit) dead-band with 16-bit indexing to the request.

If this variation and index are the same as the current header, then it will be added to it. Otherwise, this call we create a new header of this type.d

Parameters
instanceInstance of dnp3_write_dead_band_request_t
indexIndex of the analog input to which the dead-band applies
dead_bandValue of the dead-band

◆ dnp3_write_dead_band_request_add_g34v1_u8()

void dnp3_write_dead_band_request_add_g34v1_u8 ( dnp3_write_dead_band_request_t instance,
uint8_t  index,
uint16_t  dead_band 
)

Add a g34v1 (unsigned 16-bit) dead-band with 8-bit indexing to the request.

If this variation and index are the same as the current header, then it will be added to it. Otherwise, this call we create a new header of this type.d

Parameters
instanceInstance of dnp3_write_dead_band_request_t
indexIndex of the analog input to which the dead-band applies
dead_bandValue of the dead-band

◆ dnp3_write_dead_band_request_add_g34v2_u16()

void dnp3_write_dead_band_request_add_g34v2_u16 ( dnp3_write_dead_band_request_t instance,
uint16_t  index,
uint32_t  dead_band 
)

Add a g34v2 (unsigned 32-bit) dead-band with 16-bit indexing to the request.

If this variation and index are the same as the current header, then it will be added to it. Otherwise, this call we create a new header of this type.d

Parameters
instanceInstance of dnp3_write_dead_band_request_t
indexIndex of the analog input to which the dead-band applies
dead_bandValue of the dead-band

◆ dnp3_write_dead_band_request_add_g34v2_u8()

void dnp3_write_dead_band_request_add_g34v2_u8 ( dnp3_write_dead_band_request_t instance,
uint8_t  index,
uint32_t  dead_band 
)

Add a g34v2 (unsigned 32-bit) dead-band with 8-bit indexing to the request.

If this variation and index are the same as the current header, then it will be added to it. Otherwise, this call we create a new header of this type.d

Parameters
instanceInstance of dnp3_write_dead_band_request_t
indexIndex of the analog input to which the dead-band applies
dead_bandValue of the dead-band

◆ dnp3_write_dead_band_request_add_g34v3_u16()

void dnp3_write_dead_band_request_add_g34v3_u16 ( dnp3_write_dead_band_request_t instance,
uint16_t  index,
float  dead_band 
)

Add a g34v3 (single-precision floating point) dead-band with 16-bit indexing to the request.

If this variation and index are the same as the current header, then it will be added to it. Otherwise, this call we create a new header of this type.d

Parameters
instanceInstance of dnp3_write_dead_band_request_t
indexIndex of the analog input to which the dead-band applies
dead_bandValue of the dead-band

◆ dnp3_write_dead_band_request_add_g34v3_u8()

void dnp3_write_dead_band_request_add_g34v3_u8 ( dnp3_write_dead_band_request_t instance,
uint8_t  index,
float  dead_band 
)

Add a g34v3 (single-precision floating point) dead-band with 8-bit indexing to the request.

If this variation and index are the same as the current header, then it will be added to it. Otherwise, this call we create a new header of this type.d

Parameters
instanceInstance of dnp3_write_dead_band_request_t
indexIndex of the analog input to which the dead-band applies
dead_bandValue of the dead-band

◆ dnp3_write_dead_band_request_create()

dnp3_write_dead_band_request_t * dnp3_write_dead_band_request_create ( )

A builder class to create one or more headers of analog input dead-bands.

Returns
Instance of dnp3_write_dead_band_request_t

◆ dnp3_write_dead_band_request_destroy()

void dnp3_write_dead_band_request_destroy ( dnp3_write_dead_band_request_t instance)

Destroy a request created with dnp3_write_dead_band_request_create.

Parameters
instanceInstance of dnp3_write_dead_band_request_t to destroy

◆ dnp3_write_dead_band_request_finish_header()

void dnp3_write_dead_band_request_finish_header ( dnp3_write_dead_band_request_t instance)

If a header is currently being written, then this will complete the header so that no new objects may be added to it.

This happens automatically if you change the type or index when adding dead-band values. This method allows you to fragment the same type across multiple object headers.

Parameters
instanceInstance of dnp3_write_dead_band_request_t

◆ dnp3_write_time_result_to_string()

static const char * dnp3_write_time_result_to_string ( dnp3_write_time_result_t  value)
static

Converts the enum to a string.

Parameters
valueEnum to convert
Returns
String representation