![]() |
dnp3 (C API) 1.8.0-RC1
|
#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_analog_input_dead_band_t |
| Analog input deadband corresponding to group 34. 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_event_classes_t |
| Event classes. More... | |
| struct | dnp3_class_count_t |
| A count of events on a per-class basis. 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_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_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_client_connection_handler_t |
| Provides fine-grained control over how TCP and TLS clients connect to endpoints. 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 8 |
| #define | DNP3_VERSION_PATCH 0 |
| #define | DNP3_VERSION_STRING "1.8.0-RC1" |
| #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_analog_input_dead_band_iterator_t | dnp3_analog_input_dead_band_iterator_t |
| Iterator of analog_input_dead_band. 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_connection_info_t | dnp3_connection_info_t |
| Builder for configuring connection parameters. More... | |
| typedef struct dnp3_next_endpoint_action_t | dnp3_next_endpoint_action_t |
| Action object used by ClientConnectionHandler.next() to specify the next connection attempt or sleep duration. 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... | |
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... | |
| void | dnp3_parse_zero_length_strings (bool enabled) |
| Enable or disable the parsing of zero-length strings, e.g., Group 110/111 Variation 0. 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_t * | dnp3_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_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 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_t * | dnp3_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_t * | dnp3_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_t * | dnp3_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_t * | dnp3_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_t * | dnp3_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_t * | dnp3_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_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 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_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 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_t * | dnp3_unsigned_integer_iterator_next (dnp3_unsigned_integer_iterator_t *iter) |
| returns a pointer to the next value or NULL More... | |
| static dnp3_analog_input_dead_band_t | dnp3_analog_input_dead_band_init (uint16_t index, double value) |
| Fully construct dnp3_analog_input_dead_band_t specifying the value of each field. More... | |
| dnp3_analog_input_dead_band_t * | dnp3_analog_input_dead_band_iterator_next (dnp3_analog_input_dead_band_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... | |
| static dnp3_octet_string_t | dnp3_octet_string_init (uint16_t index, dnp3_byte_iterator_t *value) |
| Fully construct dnp3_octet_string_t specifying the value of each field. More... | |
| dnp3_octet_string_t * | dnp3_octet_string_iterator_next (dnp3_octet_string_iterator_t *iter) |
| returns a pointer to the next value or NULL More... | |
| dnp3_connect_options_t * | dnp3_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_t * | dnp3_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_t * | dnp3_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_t * | dnp3_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_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 const char * | dnp3_event_class_to_string (dnp3_event_class_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 dnp3_header_info_t | dnp3_header_info_init (dnp3_variation_t variation, dnp3_qualifier_code_t qualifier, bool is_event, bool has_flags) |
| Fully construct dnp3_header_info_t specifying the value of each field. 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_t * | dnp3_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_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_t * | dnp3_request_create () |
| Create a new request. More... | |
| dnp3_request_t * | dnp3_request_new_class (bool class0, bool class1, bool class2, bool class3) |
| Create a new request asking for classes. More... | |
| dnp3_request_t * | dnp3_request_new_all_objects (dnp3_variation_t variation) |
| Create a new request asking for all objects of a particular variation. More... | |
| 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). More... | |
| 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). More... | |
| 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). More... | |
| 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). 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 header that reads a specific device attribute (group 0) 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 header that writes a visible string device attribute (group 0) 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 header that writes an unsigned integer device attribute (group 0) 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_t * | dnp3_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... | |
| dnp3_param_error_t | dnp3_master_channel_operate_no_ack (dnp3_master_channel_t *instance, dnp3_association_id_t association, dnp3_command_set_t *command, dnp3_command_task_callback_t callback) |
| Asynchronously perform a DIRECT_OPERATE_NO_ACK (0x06) 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_t * | dnp3_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_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_t * | dnp3_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... | |
| dnp3_class_count_t | dnp3_database_discard_unselected_events (dnp3_database_t *instance, dnp3_event_classes_t classes) |
| Discard undelivered events of the given classes from the event buffer. 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_point_type_to_string (dnp3_point_type_t value) |
| Converts the enum to a string. 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_connection_info_t * | dnp3_connection_info_create () |
| Create a new ConnectionInfo. You must call set_endpoint() before using it. More... | |
| dnp3_param_error_t | dnp3_connection_info_set_endpoint (dnp3_connection_info_t *instance, const char *endpoint) |
| Set the endpoint to connect to. More... | |
| void | dnp3_connection_info_set_timeout (dnp3_connection_info_t *instance, uint64_t timeout_ms) |
| Set the connection timeout. More... | |
| void | dnp3_connection_info_clear_timeout (dnp3_connection_info_t *instance) |
| Clear any previously configured timeout so the OS default is used. More... | |
| dnp3_param_error_t | dnp3_connection_info_set_local_endpoint (dnp3_connection_info_t *instance, const char *local_endpoint) |
| Set the local endpoint to bind to. More... | |
| void | dnp3_connection_info_clear_local_endpoint (dnp3_connection_info_t *instance) |
| Clear any previously configured local endpoint so the OS chooses the interface and port. More... | |
| dnp3_param_error_t | dnp3_connection_info_set_master_address (dnp3_connection_info_t *instance, uint16_t address) |
| Change the master address for this and all subsequent connections. More... | |
| void | dnp3_connection_info_destroy (dnp3_connection_info_t *instance) |
| Destroy a ConnectionInfo instance. More... | |
| dnp3_param_error_t | dnp3_next_endpoint_action_connect_to (dnp3_next_endpoint_action_t *instance, dnp3_connection_info_t *info) |
| Specify the next endpoint to attempt connection to. More... | |
| dnp3_param_error_t | dnp3_next_endpoint_action_sleep_for (dnp3_next_endpoint_action_t *instance, uint64_t duration) |
| Indicate that the connection task should sleep for the specified duration. 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_tcp_client_with_handler (dnp3_runtime_t *runtime, dnp3_link_error_mode_t link_error_mode, const char *span_name, 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_client_connection_handler_t connection_handler, dnp3_outstation_t **out) |
| Create an outstation instance running as a TCP client with fine-grained connection management. 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_tls_client_with_handler (dnp3_runtime_t *runtime, dnp3_link_error_mode_t link_error_mode, const char *span_name, 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_client_connection_handler_t connection_handler, dnp3_tls_client_config_t tls_config, dnp3_outstation_t **out) |
| Create an outstation instance running as a TLS client with fine-grained connection management. 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 that communicates over UDP. 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_t * | dnp3_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... | |
C API for the dnp3 library
| #define DNP3_ATTRIBUTE_VARIATIONS_ALL_ATTRIBUTES_REQUEST 0xFE |
Non-specific all attributes request.
| #define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_BUILD_DATE 0xC6 |
Time and date that the outstation's current configuration was built defined.
| #define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_DIGEST 0xC8 |
Digest (aka fingerprint) of the configuration using a CRC, HASH, MAC, or public key signature.
| #define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_DIGEST_ALGORITHM 0xC9 |
Configuration digest algorithm.
| #define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_ID 0xC4 |
Configuration id.
| #define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_LAST_CHANGE_DATE 0xC7 |
Time and date that the outstation's configuration was last modified.
| #define DNP3_ATTRIBUTE_VARIATIONS_CONFIG_VERSION 0xC5 |
Configuration version.
| #define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_ALTITUDE 0xCB |
Altitude of the device.
| #define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_LATITUDE 0xCD |
Latitude of the device from the equator (90.0 to -90.0 deg)
| #define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_LOCATION_LONGITUDE 0xCC |
Longitude of the device from reference meridian (-180.0 to 180.0 deg)
| #define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURER_HARDWARE_VERSION 0xF3 |
Device manufacturer hardware version.
| #define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURER_SOFTWARE_VERSION 0xF2 |
Device manufacturer software version.
| #define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_MANUFACTURERS_NAME 0xFC |
Device manufacturer's name.
| #define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_SERIAL_NUMBER 0xF8 |
Device serial number.
| #define DNP3_ATTRIBUTE_VARIATIONS_DEVICE_SUBSET_AND_CONFORMANCE 0xF9 |
DNP3 subset and conformance.
| #define DNP3_ATTRIBUTE_VARIATIONS_DURATION_OF_TIME_ACCURACY 0xDA |
Duration of time accuracy (seconds)
| #define DNP3_ATTRIBUTE_VARIATIONS_LIST_OF_VARIATIONS 0xFF |
List of attribute variations.
| #define DNP3_ATTRIBUTE_VARIATIONS_LOCAL_TIMING_ACCURACY 0xD9 |
Local timing accuracy (microseconds)
| #define DNP3_ATTRIBUTE_VARIATIONS_MASTER_RESOURCE_ID 0xCA |
Master resource id (mRID)
| #define DNP3_ATTRIBUTE_VARIATIONS_MAX_ANALOG_INPUT_INDEX 0xE8 |
Maximum analog input point index.
| #define DNP3_ATTRIBUTE_VARIATIONS_MAX_ANALOG_OUTPUT_INDEX 0xDC |
Maximum analog output index.
| #define DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_INPUT_INDEX 0xEE |
Maximum binary input point index.
| #define DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_OUTPUT_INDEX 0xDF |
Maximum binary output index.
| #define DNP3_ATTRIBUTE_VARIATIONS_MAX_BINARY_OUTPUT_PER_REQUEST 0xD8 |
Maximum number of binary outputs per request.
| #define DNP3_ATTRIBUTE_VARIATIONS_MAX_COUNTER_INDEX 0xE4 |
Maximum counter point index.
| #define DNP3_ATTRIBUTE_VARIATIONS_MAX_DOUBLE_BIT_BINARY_INPUT_INDEX 0xEB |
Maximum double-bit binary input point index.
| #define DNP3_ATTRIBUTE_VARIATIONS_MAX_RX_FRAGMENT_SIZE 0xF1 |
Maximum receive fragment size.
| #define DNP3_ATTRIBUTE_VARIATIONS_MAX_TX_FRAGMENT_SIZE 0xF0 |
Maximum transmit fragment size.
| #define DNP3_ATTRIBUTE_VARIATIONS_NUM_ANALOG_INPUT 0xE9 |
Number of analog input points.
| #define DNP3_ATTRIBUTE_VARIATIONS_NUM_ANALOG_OUTPUTS 0xDD |
Number of analog outputs.
| #define DNP3_ATTRIBUTE_VARIATIONS_NUM_BINARY_INPUT 0xEF |
Number of binary input points.
| #define DNP3_ATTRIBUTE_VARIATIONS_NUM_BINARY_OUTPUTS 0xE0 |
Number of binary outputs.
| #define DNP3_ATTRIBUTE_VARIATIONS_NUM_COUNTER 0xE5 |
Number of counter points.
| #define DNP3_ATTRIBUTE_VARIATIONS_NUM_DOUBLE_BIT_BINARY_INPUT 0xEC |
Number of double-bit binary input points.
| #define DNP3_ATTRIBUTE_VARIATIONS_NUM_MASTER_DEFINED_DATA_SET_PROTO 0xD4 |
Number of master defined data-set prototypes.
| #define DNP3_ATTRIBUTE_VARIATIONS_NUM_MASTER_DEFINED_DATA_SETS 0xD6 |
Number of master defined data-sets.
| #define DNP3_ATTRIBUTE_VARIATIONS_NUM_OUTSTATION_DEFINED_DATA_SET_PROTO 0xD5 |
Number of outstation defined data-set prototypes.
| #define DNP3_ATTRIBUTE_VARIATIONS_NUM_OUTSTATION_DEFINED_DATA_SETS 0xD7 |
Number of outstation defined data-sets.
| #define DNP3_ATTRIBUTE_VARIATIONS_NUM_SECURITY_STATS_PER_ASSOC 0xD2 |
Number of security statistics per association.
| #define DNP3_ATTRIBUTE_VARIATIONS_PRODUCT_NAME_AND_MODEL 0xFA |
Device manufacturer's product name and model.
| #define DNP3_ATTRIBUTE_VARIATIONS_SECURE_AUTH_VERSION 0xD1 |
Secure authentication version.
| #define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_ANALOG_INPUT_EVENTS 0xE7 |
Supports analog input events.
| #define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_ANALOG_OUTPUT_EVENTS 0xDB |
Supports analog output events.
| #define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_BINARY_INPUT_EVENTS 0xED |
Support binary input events.
| #define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_BINARY_OUTPUT_EVENTS 0xDE |
Supports binary output events.
| #define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_COUNTER_EVENTS 0xE3 |
Supports counter events.
| #define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_DOUBLE_BIT_BINARY_INPUT_EVENTS 0xEA |
Supports double-bit binary input events.
| #define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_ANALOG_INPUTS 0xE6 |
Supports frozen analog input events.
| #define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_COUNTER_EVENTS 0xE1 |
Supports frozen counter events.
| #define DNP3_ATTRIBUTE_VARIATIONS_SUPPORTS_FROZEN_COUNTERS 0xE2 |
Supports frozen counters.
| #define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_DEVICE_NAME 0xF7 |
User assigned device name.
| #define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_ID 0xF6 |
User assigned ID code/number.
| #define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_LOCATION 0xF5 |
User assigned location name.
| #define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_OWNER_NAME 0xF4 |
User-assigned owner name.
| #define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_PRIMARY_OPERATOR_NAME 0xCF |
User-assigned primary operator name.
| #define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_SECONDARY_OPERATOR_NAME 0xCE |
User-assigned secondary operator name.
| #define DNP3_ATTRIBUTE_VARIATIONS_USER_ASSIGNED_SYSTEM_NAME 0xD0 |
User-assigned system name.
| #define DNP3_ATTRIBUTE_VARIATIONS_USER_SPECIFIC_ATTRIBUTES 0xD3 |
Identification of user-specific attributes.
| #define DNP3_FLAG_CHATTER_FILTER 0x20 |
Object value is changing state rapidly (device dependent meaning)
| #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.
| #define DNP3_FLAG_DISCONTINUITY 0x40 |
Reported counter value cannot be compared against a prior value to obtain the correct count difference.
| #define DNP3_FLAG_LOCAL_FORCED 0x10 |
Object value is overridden by the device reporting this flag.
| #define DNP3_FLAG_ONLINE 0x01 |
Object value is 'good' / 'valid' / 'nominal'.
| #define DNP3_FLAG_OVER_RANGE 0x20 |
Object's true exceeds the measurement range of the reported variation.
| #define DNP3_FLAG_REFERENCE_ERR 0x40 |
Object's value might not have the expected level of accuracy.
| #define DNP3_FLAG_REMOTE_FORCED 0x08 |
Object value is overridden in a downstream reporting device.
| #define DNP3_FLAG_RESTART 0x02 |
Object value has not been updated since device restart.
| typedef struct dnp3_accept_handler_t dnp3_accept_handler_t |
Class used to accept a connection, reject it, or defer it to link identification.
| 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.
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.
Iterator of analog_input_dead_band.
| typedef struct dnp3_analog_input_iterator_t dnp3_analog_input_iterator_t |
Iterator of analog_input.
| typedef struct dnp3_analog_output_command_event_iterator_t dnp3_analog_output_command_event_iterator_t |
Iterator of analog_output_command_event.
Iterator of analog_output_status.
| typedef struct dnp3_attr_item_iter_t dnp3_attr_item_iter_t |
Iterator of attr_item.
| typedef struct dnp3_binary_input_iterator_t dnp3_binary_input_iterator_t |
Iterator of binary_input.
| typedef struct dnp3_binary_output_command_event_iterator_t dnp3_binary_output_command_event_iterator_t |
Iterator of binary_output_command_event.
Iterator of binary_output_status.
| typedef struct dnp3_byte_collection_t dnp3_byte_collection_t |
Collection of byte_collection.
| typedef struct dnp3_byte_iterator_t dnp3_byte_iterator_t |
Iterator of uint8_t.
| typedef struct dnp3_command_set_t dnp3_command_set_t |
Builder type used to construct command requests.
| typedef struct dnp3_connect_options_t dnp3_connect_options_t |
Options that control how TCP connections are established.
| typedef struct dnp3_connection_info_t dnp3_connection_info_t |
Builder for configuring connection parameters.
Instances are passed to dnp3_next_endpoint_action_connect_to inside dnp3_client_connection_handler_t::next.
You may construct a new instance for each callback to dnp3_client_connection_handler_t::next or reuse a single instance to reduce allocations.
When reusing, call dnp3_connection_info_clear_timeout or dnp3_connection_info_clear_local_endpoint before setting new values if you need to revert to the default timeout or adapter selection.
| typedef struct dnp3_counter_iterator_t dnp3_counter_iterator_t |
Iterator of counter.
| 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.
This type has the same transaction method as dnp3_outstation_transaction but it is only used in these callbacks.
| typedef struct dnp3_database_t dnp3_database_t |
Internal database access.
Iterator of double_bit_binary_input.
| typedef struct dnp3_endpoint_list_t 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".
| typedef struct dnp3_file_info_iterator_t dnp3_file_info_iterator_t |
Iterator of file_info.
Iterator of frozen_analog_input.
| typedef struct dnp3_frozen_counter_iterator_t dnp3_frozen_counter_iterator_t |
Iterator of frozen_counter.
| 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.
| typedef struct dnp3_master_channel_t 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.
| typedef struct dnp3_master_server_t dnp3_master_server_t |
Class with methods used to spawn servers.
| typedef struct dnp3_next_endpoint_action_t dnp3_next_endpoint_action_t |
Action object used by ClientConnectionHandler.next() to specify the next connection attempt or sleep duration.
| typedef struct dnp3_octet_string_iterator_t dnp3_octet_string_iterator_t |
Iterator of octet_string.
| typedef struct dnp3_octet_string_value_t dnp3_octet_string_value_t |
Collection of octet_string_value.
| typedef struct dnp3_outstation_server_t 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.
| typedef struct dnp3_outstation_t dnp3_outstation_t |
Outstation handle.
Use this handle to modify the internal database.
| typedef struct dnp3_request_t 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.
| typedef struct dnp3_runtime_t dnp3_runtime_t |
Handle to the underlying runtime.
| typedef struct dnp3_unsigned_integer_iterator_t dnp3_unsigned_integer_iterator_t |
Iterator of unsigned_integer.
| typedef struct dnp3_write_dead_band_request_t dnp3_write_dead_band_request_t |
Define a custom request to WRITE analog input dead-bands.
Controls how transmitted and received application-layer fragments are decoded at the INFO log level.
Errors that can occur when defining attributes.
Automatic time synchronization configuration.
| enum dnp3_bool_attr_t |
Enumeration of all the known boolean attributes.
Boolean attributes are actually just encoded as signed integer attributes where 1 == true
Enumeration describing how the outstation processed a broadcast request.
Determines how the certificate(s) presented by the peer are validated.
This validation always occurs after the handshake signature has been verified.
| enum dnp3_client_state_t |
State of the client connection.
Use by the dnp3_client_state_listener_t.
| enum dnp3_command_error_t |
Result of a command.
| enum dnp3_command_mode_t |
Enumeration received from an outstation in response to command request.
| enum dnp3_data_bits_t |
| enum dnp3_double_bit_t |
Errors that may occur when performing a request that expects a response with zero object headers.
Event analog input variation.
Event analog output status variation.
Event binary input variation.
Event binary output status variation.
| enum dnp3_event_class_t |
Event counter variation.
Event double-bit binary input variation.
Event frozen counter variation.
| enum dnp3_event_mode_t |
Controls how events are processed when updating values in the database.
| enum dnp3_file_error_t |
Errors that can occur during file transfer.
| enum dnp3_file_mode_t |
Different modes in which files may be opened.
| enum dnp3_file_type_t |
| enum dnp3_float_attr_t |
Enumeration of all known float attributes.
| enum dnp3_flow_control_t |
| enum dnp3_freeze_result_t |
Result of a freeze operation.
| enum dnp3_freeze_type_t |
| enum dnp3_function_code_t |
Application layer function code.
| enum dnp3_int_attr_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.
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.
Errors that can occur during a manually initiated link status check. See dnp3_master_channel_check_link_status.
| enum dnp3_log_level_t |
Log level.
Used in dnp3_logger_t::on_message callback to identify the log level of a message.
| enum dnp3_nothing_t |
Enumeration of all known octet-string attributes.
| enum 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) |
| enum dnp3_operate_type_t |
Enumeration describing how the master requested the control operation.
| enum dnp3_param_error_t |
Error type used throughout the library.
| enum dnp3_parity_t |
Controls how data transmitted at the physical layer (TCP, serial, etc) is logged.
| enum dnp3_point_type_t |
A type of static point whose events an ASSIGN_CLASS request assigns to a class.
| enum dnp3_port_state_t |
Qualifier code used in the response.
| enum dnp3_read_error_t |
Errors that can occur during a read operation.
| enum dnp3_read_type_t |
Type of restart delay value. Used by dnp3_restart_delay_t.
| enum dnp3_restart_error_t |
Errors that can occur during a cold/warm restart operation.
Static analog input variation.
Static analog output status variation.
Static counter variation.
Static frozen counter variation.
| enum dnp3_stop_bits_t |
| enum dnp3_string_attr_t |
Enumeration of all the default string attributes.
| enum 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 unexpected 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_ERROR_UNSUPPORTED_RESPONSE | response contained objects that the library doesn't support, which may be valid DNP3 (e.g. an unknown group and variation) |
| DNP3_TASK_ERROR_UNSUPPORTED_OR_BAD_RESPONSE | response contained objects that are either malformed or valid but not supported by the library (e.g. a qualifier code that can't be used with a variation) |
| DNP3_TASK_ERROR_SYSTEM_TIME_NOT_AVAILABLE | the master had no system time to synchronize the outstation with, because dnp3_association_handler_t::get_current_time returned an invalid timestamp |
| enum dnp3_task_type_t |
Task type used in dnp3_association_information_t.
| enum dnp3_time_attr_t |
Enumeration of all the known DNP3 Time attributes.
| enum dnp3_time_format_t |
Describes if and how the time will be formatted in log messages.
| enum dnp3_time_quality_t |
Timestamp quality.
Possible errors that can occur during a time synchronization procedure.
Time synchronization mode.
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) |
Describes how the UDP socket reads and writes datagrams from remote endpoint(s)
| enum dnp3_uint_attr_t |
Enumeration of all the default uint attributes.
Point type on which to update the flags.
| enum dnp3_update_result_t |
Defines what occurred during an update operation and which fields of dnp3_update_info_t are valid.
| enum dnp3_variation_t |
Group/Variation.
| Enumerator | |
|---|---|
| DNP3_VARIATION_GROUP0 | Device Attributes - Specific attribute (variations 1 to 253 and 255). Only reported in dnp3_header_info_t: it can't name the attribute, so a request that uses it fails with DNP3_READ_ERROR_BAD_ENCODING. Read a specific attribute with dnp3_request_add_specific_attribute and all of them with DNP3_VARIATION_GROUP0_VAR254. |
| DNP3_VARIATION_GROUP0_VAR254 | Device Attributes - All attributes request. |
| DNP3_VARIATION_GROUP1_VAR0 | Binary Input - Any variation. |
| DNP3_VARIATION_GROUP1_VAR1 | Binary Input - Packed format. |
| DNP3_VARIATION_GROUP1_VAR2 | Binary Input - With flags. |
| DNP3_VARIATION_GROUP2_VAR0 | Binary Input Event - Any 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 - Any 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 - Any 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 - Any variation. |
| DNP3_VARIATION_GROUP10_VAR1 | Binary Output - Packed format. |
| DNP3_VARIATION_GROUP10_VAR2 | Binary Output - With flags. |
| DNP3_VARIATION_GROUP11_VAR0 | Binary Output Event - Any 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 - Without time. |
| DNP3_VARIATION_GROUP13_VAR2 | Binary Output Command Event - With time. |
| DNP3_VARIATION_GROUP20_VAR0 | Counter - Any 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 flags. |
| DNP3_VARIATION_GROUP20_VAR6 | Counter - 16-bit without flags. |
| DNP3_VARIATION_GROUP21_VAR0 | Frozen Counter - Any 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 flags. |
| DNP3_VARIATION_GROUP21_VAR10 | Frozen Counter - 16-bit without flags. |
| DNP3_VARIATION_GROUP22_VAR0 | Counter Event - Any variation. |
| DNP3_VARIATION_GROUP22_VAR1 | Counter Event - 32-bit without time. |
| DNP3_VARIATION_GROUP22_VAR2 | Counter Event - 16-bit without time. |
| DNP3_VARIATION_GROUP22_VAR5 | Counter Event - 32-bit with time. |
| DNP3_VARIATION_GROUP22_VAR6 | Counter Event - 16-bit with time. |
| DNP3_VARIATION_GROUP23_VAR0 | Frozen Counter Event - Any variation. |
| DNP3_VARIATION_GROUP23_VAR1 | Frozen Counter Event - 32-bit without time. |
| DNP3_VARIATION_GROUP23_VAR2 | Frozen Counter Event - 16-bit without time. |
| DNP3_VARIATION_GROUP23_VAR5 | Frozen Counter Event - 32-bit with time. |
| DNP3_VARIATION_GROUP23_VAR6 | Frozen Counter Event - 16-bit with time. |
| DNP3_VARIATION_GROUP30_VAR0 | Analog Input - Any 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 flags. |
| DNP3_VARIATION_GROUP30_VAR4 | Analog Input - 16-bit without flags. |
| 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 - Any 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 - Any 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 - Any 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 of freeze. |
| DNP3_VARIATION_GROUP33_VAR4 | Frozen Analog Input Event - 16-bit with time of freeze. |
| 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 of freeze. |
| DNP3_VARIATION_GROUP33_VAR8 | Frozen Analog Input Event - Double-precision floating point with time of freeze. |
| DNP3_VARIATION_GROUP34_VAR0 | Analog Input Reporting Deadband - Any 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 - Any 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 - Any 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 - Last recorded time. |
| DNP3_VARIATION_GROUP50_VAR4 | Time and Date - Indexed time and long interval. |
| DNP3_VARIATION_GROUP51_VAR1 | Time and Date CTO - Synchronized absolute time. |
| DNP3_VARIATION_GROUP51_VAR2 | Time and Date CTO - Unsynchronized absolute time. |
| DNP3_VARIATION_GROUP52_VAR1 | Time Delay - Coarse (seconds) |
| DNP3_VARIATION_GROUP52_VAR2 | Time Delay - Fine (milliseconds) |
| DNP3_VARIATION_GROUP60_VAR1 | Class Data - Class 0. |
| DNP3_VARIATION_GROUP60_VAR2 | Class Data - Class 1. |
| DNP3_VARIATION_GROUP60_VAR3 | Class Data - Class 2. |
| DNP3_VARIATION_GROUP60_VAR4 | Class Data - Class 3. |
| 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 - Any variation. |
| DNP3_VARIATION_GROUP102_VAR1 | Unsigned Integer - 8-bit. |
| DNP3_VARIATION_GROUP110 | Octet String - Sized by variation. |
| DNP3_VARIATION_GROUP111 | Octet String Event - Sized by variation. |
Write time result used by dnp3_outstation_application_t::write_absolute_time.
| 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.
| instance | Instance of dnp3_accept_handler_t |
| error_mode | Error mode to use for the link-layer. This should typically be DNP3_LINK_ERROR_MODE_CLOSE |
| config | Configuration of the channel |
| 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.
| instance | Instance of dnp3_accept_handler_t |
| dnp3_param_error_t dnp3_address_filter_add | ( | dnp3_address_filter_t * | instance, |
| const char * | address | ||
| ) |
Add an accepted IP address to the filter.
| instance | Instance of dnp3_address_filter_t |
| address | IP address to add |
| dnp3_address_filter_t * dnp3_address_filter_any | ( | ) |
Create an address filter that accepts any IP address.
| 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
| address | IP address to accept |
| out | Instance of dnp3_address_filter_t |
| void dnp3_address_filter_destroy | ( | dnp3_address_filter_t * | instance | ) |
Destroy an address filter.
| instance | Instance of dnp3_address_filter_t to destroy |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Fully construct dnp3_analog_input_config_t specifying the value of each field.
| static_variation | Default static variation |
| event_variation | Default event variation |
| deadband | Deadband value |
|
static |
Initialize to defaults.
|
static |
Fully construct dnp3_analog_input_dead_band_t specifying the value of each field.
| index | Index of the analog input |
| value | Deadband of the analog input |
| dnp3_analog_input_dead_band_t * dnp3_analog_input_dead_band_iterator_next | ( | dnp3_analog_input_dead_band_iterator_t * | iter | ) |
returns a pointer to the next value or NULL
| iter | opaque iterator on which to retrieve the next value |
|
static |
Fully construct dnp3_analog_input_t specifying the value of each field.
| index | Point index |
| value | Point value |
| flags | Point flags |
| time | Point timestamp |
| dnp3_analog_input_t * dnp3_analog_input_iterator_next | ( | dnp3_analog_input_iterator_t * | iter | ) |
returns a pointer to the next value or NULL
| iter | opaque iterator on which to retrieve the next value |
|
static |
Fully construct dnp3_analog_output_command_event_t specifying the value of each field.
| index | Index of the command event |
| status | Status from processing the command that triggered this event |
| commanded_value | Commanded state of the binary output |
| command_type | Describes how the value was encoded in the protocol |
| time | Associated timestamp |
| 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
| iter | opaque iterator on which to retrieve the next value |
|
static |
Fully construct dnp3_analog_output_status_config_t specifying the value of each field.
| static_variation | Default static variation |
| event_variation | Default event variation |
| deadband | Deadband value |
|
static |
Initialize to defaults.
|
static |
Fully construct dnp3_analog_output_status_t specifying the value of each field.
| index | Point index |
| value | Point value |
| flags | Point flags |
| time | Point timestamp |
| 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
| iter | opaque iterator on which to retrieve the next value |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Initialize all fields in dnp3_application_iin_t to false.
|
static |
Initialize the configuration with the specified values.
true | disable_unsol_classes | Classes to disable unsolicited responses at startup |
| enable_unsol_classes | Classes to enable unsolicited responses at startup |
| startup_integrity_classes | Startup integrity classes to ask on master startup and when an outstation restart is detected. |
| event_scan_on_events_available | Classes to automatically send reads when the IIN bit is asserted |
|
static |
Converts the enum to a string.
| value | Enum to convert |
| dnp3_attr_item_t * dnp3_attr_item_iter_next | ( | dnp3_attr_item_iter_t * | iter | ) |
returns a pointer to the next value or NULL
| iter | opaque iterator on which to retrieve the next value |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Fully construct dnp3_binary_input_config_t specifying the value of each field.
| static_variation | Default static variation |
| event_variation | Default event variation |
|
static |
Initialize to defaults.
|
static |
Fully construct dnp3_binary_input_t specifying the value of each field.
| index | Point index |
| value | Point value |
| flags | Point flags |
| time | Point timestamp |
| dnp3_binary_input_t * dnp3_binary_input_iterator_next | ( | dnp3_binary_input_iterator_t * | iter | ) |
returns a pointer to the next value or NULL
| iter | opaque iterator on which to retrieve the next value |
|
static |
Fully construct dnp3_binary_output_command_event_t specifying the value of each field.
| index | Index of the binary command event |
| status | Status from processing the command that triggered this event |
| commanded_state | Commanded state of the binary output |
| time | Associated timestamp |
| 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
| iter | opaque iterator on which to retrieve the next value |
|
static |
Fully construct dnp3_binary_output_status_config_t specifying the value of each field.
| static_variation | Default static variation |
| event_variation | Default event variation |
|
static |
Initialize to defaults.
|
static |
Fully construct dnp3_binary_output_status_t specifying the value of each field.
| index | Point index |
| value | Point value |
| flags | Point flags |
| time | Point timestamp |
| 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
| iter | opaque iterator on which to retrieve the next value |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
| void dnp3_byte_collection_add | ( | dnp3_byte_collection_t * | instance, |
| uint8_t | value | ||
| ) |
Add a value to the collection.
| instance | instance to which to add the value |
| value | value to add to the instance |
| dnp3_byte_collection_t * dnp3_byte_collection_create | ( | uint32_t | reserve_size | ) |
Creates an instance of the collection.
| reserve_size | preallocate a particular size |
| void dnp3_byte_collection_destroy | ( | dnp3_byte_collection_t * | instance | ) |
Destroys an instance of the collection.
| instance | instance to destroy |
| uint8_t * dnp3_byte_iterator_next | ( | dnp3_byte_iterator_t * | iter | ) |
returns a pointer to the next value or NULL
| iter | opaque iterator on which to retrieve the next value |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Initialize to default values.
true true true true true true true false
|
static |
Initialize all classes to true.
true true true true
|
static |
Fully construct dnp3_classes_t specifying the value of each field.
| class0 | Class 0 (static data) |
| class1 | Class 1 events |
| class2 | Class 2 events |
| class3 | Class 3 events |
|
static |
Initialize all classes to false.
false false false false
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
| 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.
| instance | Instance of dnp3_command_set_t |
| idx | Index of the point to send the command to |
| header | CROB data |
| 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.
| instance | Instance of dnp3_command_set_t |
| idx | Index of the point to send the command to |
| header | CROB data |
| 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.
| instance | Instance of dnp3_command_set_t |
| idx | Index of the point to send the command to |
| value | Value to set the analog output to |
| 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.
| instance | Instance of dnp3_command_set_t |
| idx | Index of the point to send the command to |
| value | Value to set the analog output to |
| 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.
| instance | Instance of dnp3_command_set_t |
| idx | Index of the point to send the command to |
| value | Value to set the analog output to |
| 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.
| instance | Instance of dnp3_command_set_t |
| idx | Index of the point to send the command to |
| value | Value to set the analog output to |
| 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.
| instance | Instance of dnp3_command_set_t |
| idx | Index of the point to send the command to |
| value | Value to set the analog output to |
| 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.
| instance | Instance of dnp3_command_set_t |
| idx | Index of the point to send the command to |
| value | Value to set the analog output to |
| 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.
| instance | Instance of dnp3_command_set_t |
| idx | Index of the point to send the command to |
| value | Value to set the analog output to |
| 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.
| instance | Instance of dnp3_command_set_t |
| idx | Index of the point to send the command to |
| value | Value to set the analog output to |
| dnp3_command_set_t * dnp3_command_set_create | ( | ) |
Create a new set of commands.
| void dnp3_command_set_destroy | ( | dnp3_command_set_t * | instance | ) |
Destroy a set of commands.
| instance | Instance of dnp3_command_set_t to destroy |
| 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.
| instance | Instance of dnp3_command_set_t |
|
static |
Converts the enum to a string.
| value | Enum to convert |
| 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.
| config | Configuration options for logging |
| logger | Logger that will receive each logged message |
| dnp3_connect_options_t * dnp3_connect_options_create | ( | ) |
Initialize to the defaults.
| void dnp3_connect_options_destroy | ( | dnp3_connect_options_t * | instance | ) |
Destroy an instance.
| instance | Instance of dnp3_connect_options_t to destroy |
| 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.
| instance | Instance of dnp3_connect_options_t |
| endpoint | String in 'address:port' format, where address can be IPv4 or IPv6. Using 0 for the port results in an OS assigned port |
| 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.
| instance | Instance of dnp3_connect_options_t |
| timeout | Timeout value (seconds) |
|
static |
Initialize to default values.
| void dnp3_connection_info_clear_local_endpoint | ( | dnp3_connection_info_t * | instance | ) |
Clear any previously configured local endpoint so the OS chooses the interface and port.
| instance | Instance of dnp3_connection_info_t |
| void dnp3_connection_info_clear_timeout | ( | dnp3_connection_info_t * | instance | ) |
Clear any previously configured timeout so the OS default is used.
| instance | Instance of dnp3_connection_info_t |
| dnp3_connection_info_t * dnp3_connection_info_create | ( | ) |
Create a new ConnectionInfo. You must call set_endpoint() before using it.
| void dnp3_connection_info_destroy | ( | dnp3_connection_info_t * | instance | ) |
Destroy a ConnectionInfo instance.
| instance | Instance of dnp3_connection_info_t to destroy |
| dnp3_param_error_t dnp3_connection_info_set_endpoint | ( | dnp3_connection_info_t * | instance, |
| const char * | endpoint | ||
| ) |
Set the endpoint to connect to.
This method must be called before passing the ConnectionInfo to connect_to()
| instance | Instance of dnp3_connection_info_t |
| endpoint | Endpoint to connect to (hostname or IP:port) |
| dnp3_param_error_t dnp3_connection_info_set_local_endpoint | ( | dnp3_connection_info_t * | instance, |
| const char * | local_endpoint | ||
| ) |
Set the local endpoint to bind to.
Optional: If not called, the OS will select the network adapter based on the routing table for the destination address, and assign an ephemeral port.
This is primarily useful for enforcing network segmentation in multi-homed systems, such as OT gateways that bridge device and enterprise networks. By explicitly binding to a specific adapter, you ensure traffic goes out the correct interface regardless of routing table configuration.
Typically you should specify port 0 to let the OS assign an ephemeral port while forcing a specific network adapter. Using a specific non-zero port is rarely needed for client connections and may cause bind failures if the port is already in use.
| instance | Instance of dnp3_connection_info_t |
| local_endpoint | Local address to bind to |
| dnp3_param_error_t dnp3_connection_info_set_master_address | ( | dnp3_connection_info_t * | instance, |
| uint16_t | address | ||
| ) |
Change the master address for this and all subsequent connections.
Optional: The master address change is persistent and remains active across reconnections until explicitly changed again.
This is useful when an outstation needs to communicate with different masters at different endpoints, such as during failover scenarios or when connecting to a backup master.
If not called, the outstation uses the master address specified in its configuration.
| instance | Instance of dnp3_connection_info_t |
| address | Master link-layer address |
| void dnp3_connection_info_set_timeout | ( | dnp3_connection_info_t * | instance, |
| uint64_t | timeout_ms | ||
| ) |
Set the connection timeout.
Optional: If not called, the operating system's default timeout will be used
| instance | Instance of dnp3_connection_info_t |
| timeout_ms | Connection timeout (milliseconds) |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Initialize a dnp3_control_code_t instance from a dnp3_op_type_t.
| op_type | This field is used in conjunction with the dnp3_control_code_t::tcc field to specify a control operation |
|
static |
Initialize a dnp3_control_code_t instance from a dnp3_trip_close_code_t and a dnp3_op_type_t.
false false | tcc | This field is used in conjunction with dnp3_control_code_t::op_type to specify a control operation |
| op_type | This field is used in conjunction with the dnp3_control_code_t::tcc field to specify a control operation |
|
static |
Initialize a dnp3_control_code_t instance.
false | tcc | This field is used in conjunction with dnp3_control_code_t::op_type to specify a control operation |
| clear | Support 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_type | This field is used in conjunction with the dnp3_control_code_t::tcc field to specify a control operation |
|
static |
Fully construct dnp3_counter_config_t specifying the value of each field.
| static_variation | Default static variation |
| event_variation | Default event variation |
| deadband | Deadband value |
|
static |
|
static |
Fully construct dnp3_counter_t specifying the value of each field.
| index | Point index |
| value | Point value |
| flags | Point flags |
| time | Point timestamp |
| dnp3_counter_t * dnp3_counter_iterator_next | ( | dnp3_counter_iterator_t * | iter | ) |
returns a pointer to the next value or NULL
| iter | opaque iterator on which to retrieve the next value |
| 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.
| runtime | Runtime on which to spawn the server |
| local_addr | Local address on which the server will accept connections |
| link_id_config | Configuration used when identifying outstations based on received link-frames |
| connection_handler | Callbacks used to accept and start communication sessions |
| out | Handle to the running server that allows it to be shut down |
|
static |
Converts the enum to a string.
| value | Enum to convert |
| 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.
Returns false, without adding the point, if a point already exists at the index or the deadband is NaN or negative.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| point_class | Event class |
| config | Configuration |
| 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.
Returns false, without adding the point, if a point already exists at the index or the deadband is NaN or negative.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| point_class | Event class |
| config | Configuration |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| point_class | Event class |
| config | Configuration |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| point_class | Event class |
| config | Configuration |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| point_class | Event class |
| config | Configuration |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| point_class | Event class |
| config | Configuration |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| point_class | Event class |
| config | Configuration |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| point_class | Event class |
| 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.
| instance | Instance of dnp3_database_t |
| set | The set to which the attribute belongs |
| writable | True if the attribute may be written |
| variation | The variation of the attribute |
| value | The value of the attribute |
| 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.
| instance | Instance of dnp3_database_t |
| set | The set to which the attribute belongs |
| writable | True if the attribute may be written |
| variation | The variation of the attribute |
| value | The value of the attribute |
| 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.
| instance | Instance of dnp3_database_t |
| set | The set to which the attribute belongs |
| writable | True if the attribute may be written |
| variation | The variation of the attribute |
| value | The value of the attribute |
| 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.
| instance | Instance of dnp3_database_t |
| set | The set to which the attribute belongs |
| writable | True if the attribute may be written |
| variation | The variation of the attribute |
| value | The value of the attribute |
| 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.
| instance | Instance of dnp3_database_t |
| set | The set to which the attribute belongs |
| writable | True if the attribute may be written |
| variation | The variation of the attribute |
| value | The value of the attribute |
| 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.
| instance | Instance of dnp3_database_t |
| set | The set to which the attribute belongs |
| writable | True if the attribute may be written |
| variation | The variation of the attribute |
| value | The DNP3 timestamp value of the attribute. Only the lower 48-bits are used. |
| 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.
| instance | Instance of dnp3_database_t |
| set | The set to which the attribute belongs |
| writable | True if the attribute may be written |
| variation | The variation of the attribute |
| value | The value of the attribute |
| dnp3_class_count_t dnp3_database_discard_unselected_events | ( | dnp3_database_t * | instance, |
| dnp3_event_classes_t | classes | ||
| ) |
Discard undelivered events of the given classes from the event buffer.
Only events that are NOT part of an in-flight response/confirm exchange are removed.
This is a lossy operation outside normal event-delivery semantics. Discarded events are gone; they are not re-reported and no confirmation callback fires for them. Discarding may also clear the event buffer overflow (IIN 2.3) flag if it frees enough space.
| instance | Instance of dnp3_database_t |
| classes | Classes of events to discard |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point to get |
| out | Analog point |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point to get |
| out | Analog Output Status point |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point to get |
| out | Binary Input point |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point to get |
| out | Binary Output Status point |
| dnp3_param_error_t dnp3_database_get_counter | ( | dnp3_database_t * | instance, |
| uint16_t | index, | ||
| dnp3_counter_t * | out | ||
| ) |
Get a Counter point.
| instance | Instance of dnp3_database_t |
| index | Index of the point to get |
| out | Counter point |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point to get |
| out | Double-Bit Binary Input point |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the point to get |
| out | Frozen Counter point |
| 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.
| instance | Instance of dnp3_database_handle_t |
| callback | callback interface |
| bool dnp3_database_remove_analog_input | ( | dnp3_database_t * | instance, |
| uint16_t | index | ||
| ) |
Remove an AnalogInput point.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| bool dnp3_database_remove_analog_output_status | ( | dnp3_database_t * | instance, |
| uint16_t | index | ||
| ) |
Remove an Analog Output Status point.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| bool dnp3_database_remove_binary_input | ( | dnp3_database_t * | instance, |
| uint16_t | index | ||
| ) |
Remove a BinaryInput point.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| bool dnp3_database_remove_binary_output_status | ( | dnp3_database_t * | instance, |
| uint16_t | index | ||
| ) |
Remove a Binary Output Status point.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| bool dnp3_database_remove_counter | ( | dnp3_database_t * | instance, |
| uint16_t | index | ||
| ) |
Remove a Counter point.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| bool dnp3_database_remove_double_bit_binary_input | ( | dnp3_database_t * | instance, |
| uint16_t | index | ||
| ) |
Remove a Double-Bit Binary Input point.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| bool dnp3_database_remove_frozen_counter | ( | dnp3_database_t * | instance, |
| uint16_t | index | ||
| ) |
Remove a Frozen Counter point.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| bool dnp3_database_remove_octet_string | ( | dnp3_database_t * | instance, |
| uint16_t | index | ||
| ) |
Remove an Octet String point.
| instance | Instance of dnp3_database_t |
| index | Index of the point |
| bool dnp3_database_update_analog_input | ( | dnp3_database_t * | instance, |
| dnp3_analog_input_t | value, | ||
| dnp3_update_options_t | options | ||
| ) |
Update a AnalogInput point.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| bool dnp3_database_update_binary_input | ( | dnp3_database_t * | instance, |
| dnp3_binary_input_t | value, | ||
| dnp3_update_options_t | options | ||
| ) |
Update a BinaryInput point.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| bool dnp3_database_update_counter | ( | dnp3_database_t * | instance, |
| dnp3_counter_t | value, | ||
| dnp3_update_options_t | options | ||
| ) |
Update a Counter point.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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
| instance | Instance of dnp3_database_t |
| index | Index on which to perform the operation |
| flags_type | Point type on which to perform the operation |
| flags | New flags applied to the point |
| time | New timestamp applied to the point |
| options | Options that control how events and static values are handled |
| 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.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the octet string |
| value | New value of the point |
| options | Update options |
| 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.
| instance | Instance of dnp3_database_t |
| index | Index of the octet string |
| value | New value of the point |
| options | Update options |
|
static |
Initialize log levels to defaults.
|
static |
Initialize log levels to nothing.
|
static |
Initialize the configuration to default values.
| 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
| 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
|
static |
Fully construct dnp3_double_bit_binary_input_config_t specifying the value of each field.
| static_variation | Default static variation |
| event_variation | Default event variation |
|
static |
Initialize to defaults.
|
static |
Fully construct dnp3_double_bit_binary_input_t specifying the value of each field.
| index | Point index |
| value | Point value |
| flags | Point flags |
| time | Point timestamp |
| 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
| iter | opaque iterator on which to retrieve the next value |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
| 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".
| instance | Instance of dnp3_endpoint_list_t |
| endpoint | Endpoint to add to the list |
| 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".
| main_endpoint | Main endpoint |
| void dnp3_endpoint_list_destroy | ( | dnp3_endpoint_list_t * | instance | ) |
Destroy a previously allocated endpoint list.
| instance | Instance of dnp3_endpoint_list_t to destroy |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Fully construct dnp3_event_buffer_config_t specifying the value of each field.
| max_binary | Maximum number of Binary Input events (g2) |
| max_double_bit_binary | Maximum number of Double-Bit Binary Input events (g4) |
| max_binary_output_status | Maximum number of Binary Output Status events (g11) |
| max_counter | Maximum number of Counter events (g22) |
| max_frozen_counter | Maximum number of Frozen Counter events (g23) |
| max_analog | Maximum number of Analog Input events (g32) |
| max_analog_output_status | Maximum number of Analog Output Status events (g42) |
| max_octet_string | Maximum number of Octet String events (g111) |
|
static |
Create a configuration where no events are buffered.
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Initialize all classes to true.
true true true
|
static |
Fully construct dnp3_event_classes_t specifying the value of each field.
| class1 | Class 1 events |
| class2 | Class 2 events |
| class3 | Class 3 events |
|
static |
Initialize all classes to false.
false false false
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
| dnp3_file_info_t * dnp3_file_info_iterator_next | ( | dnp3_file_info_iterator_t * | iter | ) |
returns a pointer to the next value or NULL
| iter | opaque iterator on which to retrieve the next value |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Initialize the configuration to default values.
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Fully construct dnp3_flags_t specifying the value of each field.
| value | bit-mask representing a set of individual flag bits |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Fully construct dnp3_frozen_analog_input_t specifying the value of each field.
| index | Point index |
| value | Point value |
| flags | Point flags |
| time | Point timestamp |
| 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
| iter | opaque iterator on which to retrieve the next value |
|
static |
Fully construct dnp3_frozen_counter_config_t specifying the value of each field.
| static_variation | Default static variation |
| event_variation | Default event variation |
| deadband | Deadband value |
|
static |
Initialize to defaults.
|
static |
Fully construct dnp3_frozen_counter_t specifying the value of each field.
| index | Point index |
| value | Point value |
| flags | Point flags |
| time | Point timestamp |
| dnp3_frozen_counter_t * dnp3_frozen_counter_iterator_next | ( | dnp3_frozen_counter_iterator_t * | iter | ) |
returns a pointer to the next value or NULL
| iter | opaque iterator on which to retrieve the next value |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Construct a dnp3_group12_var1_t from a dnp3_control_code_t.
| code | Control code |
|
static |
Fully construct dnp3_group12_var1_t specifying the value of each field.
| code | Control code |
| count | Count |
| on_time | Duration the output drive remains active (in milliseconds) |
| off_time | Duration the output drive remains non-active (in milliseconds) |
|
static |
Fully construct dnp3_header_info_t specifying the value of each field.
| variation | underlying variation in the response |
| qualifier | Qualifier code used in the response |
| is_event | true if the received variation is an event type, false otherwise |
| has_flags | true if a flags byte is present on the underlying variation, false otherwise |
| 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.
| instance | Instance of dnp3_identified_link_handler_t |
| error_mode | Error mode to use for the link-layer. This should typically be DNP3_LINK_ERROR_MODE_CLOSE |
| config | Configuration of the channel |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Initialize to default values.
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Initialize the configuration to default values.
| 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.
| instance | Instance of dnp3_master_channel_t |
| address | DNP3 data-link address of the remote outstation |
| config | Association configuration |
| read_handler | Interface uses to load measurement data |
| association_handler | Association specific callbacks such as time synchronization |
| association_information | Association information interface |
| out | Id of the association |
| 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.
| instance | Instance of dnp3_master_channel_t |
| id | Association on which to add the poll |
| request | Request to perform |
| period | Period to wait between each poll (in ms) (milliseconds) |
| out | Id of the created poll |
| 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.
| instance | Instance of dnp3_master_channel_t |
| address | DNP3 data-link address of the remote outstation |
| destination | IP address and port of the outstation |
| config | Association configuration |
| read_handler | Interface uses to load measurement data |
| association_handler | Association specific callbacks such as time synchronization |
| association_information | Association information interface |
| out | Id of the association |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| callback | callback invoked when the operation completes |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| handle | Handle returned when the file was opened |
| callback | callback invoked when the operation completes |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| callback | callback invoked when the operation completes |
|
static |
Initialize dnp3_master_channel_config_t to default values.
| address | Local DNP3 data-link address |
| 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.
| runtime | Runtime to use to drive asynchronous operations of the master |
| config | Generic configuration for the channel |
| path | Path to the serial device. Generally /dev/tty0 on Linux and COM1 on Windows. |
| serial_params | Serial port settings |
| open_retry_delay | Delay between attempts to open the serial port (milliseconds) |
| listener | Listener to receive updates on the status of the serial port |
| out | Handle to the master created, NULL if an error occurred |
| 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)
| runtime | Runtime to use to drive asynchronous operations of the master |
| link_error_mode | Controls how link errors are handled with respect to the TCP session |
| config | Generic configuration for the channel |
| endpoints | List of IP endpoints. |
| connect_strategy | Controls the timing of (re)connection attempts |
| listener | TCP connection listener used to receive updates on the status of the connection |
| out | Handle to the master created, NULL if an error occurred |
| 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
| runtime | Runtime to use to drive asynchronous operations of the master |
| link_error_mode | Controls how link errors are handled with respect to the TCP session |
| config | Generic configuration for the channel |
| endpoints | List of IP endpoints. |
| connect_strategy | Controls the timing of (re)connection attempts |
| connect_options | Options that control the TCP connection process |
| listener | TCP connection listener used to receive updates on the status of the connection |
| out | Handle to the master created, NULL if an error occurred |
| 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.
| runtime | Runtime to use to drive asynchronous operations of the master |
| link_error_mode | Controls how link errors are handled with respect to the TCP session |
| config | Generic configuration for the channel |
| endpoints | List of IP endpoints. |
| connect_strategy | Controls the timing of (re)connection attempts |
| listener | TCP connection listener used to receive updates on the status of the connection |
| tls_config | TLS client configuration |
| out | Handle to the master created, NULL if an error occurred |
| 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
| runtime | Runtime to use to drive asynchronous operations of the master |
| link_error_mode | Controls how link errors are handled with respect to the TCP session |
| config | Generic configuration for the channel |
| endpoints | List of IP endpoints. |
| connect_strategy | Controls the timing of (re)connection attempts |
| connect_options | Options that control the TCP connection process |
| listener | TCP connection listener used to receive updates on the status of the connection |
| tls_config | TLS client configuration |
| out | Handle to the master created, NULL if an error occurred |
| 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.
| runtime | Runtime to use to drive asynchronous operations of the master |
| config | Generic configuration for the channel |
| local_endpoint | Local endpoint on which to bind the UDP socket |
| link_read_mode | Determines how the link-layer parser treats frame that span datagrams. Typically set to DNP3_LINK_READ_MODE_DATAGRAM |
| retry_delay | Amount of time to wait after a failed attempt to bind the UDP socket (milliseconds) |
| out | Handle to the master created, NULL if an error occurred |
| 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.
If the poll is running, it runs again as soon as that run completes.
| instance | Instance of dnp3_master_channel_t |
| poll_id | Id of the poll |
| void dnp3_master_channel_destroy | ( | dnp3_master_channel_t * | instance | ) |
Shutdown a dnp3_master_channel_t and release all resources.
| instance | Instance of dnp3_master_channel_t to destroy |
| dnp3_param_error_t dnp3_master_channel_disable | ( | dnp3_master_channel_t * | instance | ) |
| dnp3_param_error_t dnp3_master_channel_enable | ( | dnp3_master_channel_t * | instance | ) |
| 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.
| instance | Instance of dnp3_master_channel_t |
| out | Decode level |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| username | User name |
| password | Password |
| callback | callback invoked when the operation completes |
| 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.
A file name containing a NUL octet that a C string can't hold gives DNP3_FILE_ERROR_BAD_RESPONSE.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| file_name | Complete path to the remote file |
| callback | callback invoked when the operation completes |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| file_name | Complete path to the remote file |
| auth_key | Optional authentication key (0 == None) |
| permissions | Permissions sent in the file open request |
| file_size | File size sent in the request (zero when reading). When writing use the actual file size or 0xFFFFFFFF to indicate the size is unknown |
| file_mode | Mode used to open the file |
| max_block_size | Requested maximum block size |
| callback | callback invoked when the operation completes |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| mode | Operation mode |
| command | Command to send |
| callback | callback invoked when the operation completes |
| dnp3_param_error_t dnp3_master_channel_operate_no_ack | ( | dnp3_master_channel_t * | instance, |
| dnp3_association_id_t | association, | ||
| dnp3_command_set_t * | command, | ||
| dnp3_command_task_callback_t | callback | ||
| ) |
Asynchronously perform a DIRECT_OPERATE_NO_ACK (0x06) command operation on the association.
The outstation never responds to this function code, even on error. The operation completes successfully once the request has been written to the transport. Success does not mean that the outstation received, accepted, or executed the command.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| command | Command to send |
| callback | callback invoked when the operation completes |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Association on which to perform the read |
| request | Request to send |
| callback | callback invoked when the operation completes |
| 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.
The result passed to the callback is the source of truth for the read. Entries that fail to parse after the transfer completes, or a name containing a NUL octet that a C string can't hold, give DNP3_FILE_ERROR_BAD_RESPONSE, while the dnp3_association_information_t may still report DNP3_TASK_TYPE_FILE_READ as a success.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| dir_path | Complete path to the remote directory |
| config | Configuration for the directory read operation |
| callback | callback invoked when the operation completes |
| 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.
The result passed to the callback is the source of truth for the read. Entries that fail to parse after the transfer completes, or a name containing a NUL octet that a C string can't hold, give DNP3_FILE_ERROR_BAD_RESPONSE, while the dnp3_association_information_t may still report DNP3_TASK_TYPE_FILE_READ as a success.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| dir_path | Complete path to the remote directory |
| config | Configuration for the directory read operation |
| user_name | User name sent to the outstation |
| password | Password sent to the outstation |
| callback | callback invoked when the operation completes |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| remote_file_path | Path of the remote file |
| config | Configuration for the read operation |
| reader | Interface used to receive file data |
| 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
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| remote_file_path | Path of the remote file |
| config | Configuration for the read operation |
| reader | Interface used to receive file data |
| user_name | User name sent to the outstation |
| password | Password sent to the outstation |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Association on which to perform the read |
| request | Request to send |
| handler | Custom dnp3_read_handler_t to send the data to |
| callback | callback invoked when the operation completes |
| 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.
| instance | Instance of dnp3_master_channel_t |
| id | Id of the association |
| 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.
| instance | Instance of dnp3_master_channel_t |
| poll_id | Id of the created poll |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Association on which to perform the request |
| function | Function code for the request |
| headers | Headers that will be contained in the request |
| callback | callback invoked when the operation completes |
| 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.
| instance | Instance of dnp3_master_channel_t |
| decode_level | Decoding level |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| mode | Time sync mode |
| callback | callback invoked when the operation completes |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| callback | callback invoked when the operation completes |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Association on which to perform the WRITE |
| request | Request containing headers of analog input dead-bands (group 34) |
| callback | callback invoked when the operation completes |
| 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.
| instance | Instance of dnp3_master_channel_t |
| association | Id of the association |
| handle | Handle returned when the file was opened |
| block_number | Sequential block number in the range [0 .. 0x7FFFFFFF]. The top bit is indicates the final block |
| final_block | Indicate that this is the final block |
| block_data | Collection of bytes. This must not be larger than the maximum block size returned by the outstation |
| callback | callback invoked when the operation completes |
| void dnp3_master_server_destroy | ( | dnp3_master_server_t * | instance | ) |
Shutdown down the server.
| instance | Instance of dnp3_master_server_t to destroy |
|
static |
Converts the enum to a string.
| value | Enum to convert |
| dnp3_param_error_t dnp3_next_endpoint_action_connect_to | ( | dnp3_next_endpoint_action_t * | instance, |
| dnp3_connection_info_t * | info | ||
| ) |
Specify the next endpoint to attempt connection to.
| instance | Instance of dnp3_next_endpoint_action_t |
| info | Connection information including endpoint and optional parameters |
| dnp3_param_error_t dnp3_next_endpoint_action_sleep_for | ( | dnp3_next_endpoint_action_t * | instance, |
| uint64_t | duration | ||
| ) |
Indicate that the connection task should sleep for the specified duration.
| instance | Instance of dnp3_next_endpoint_action_t |
| duration | Duration to sleep (milliseconds) |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Fully construct dnp3_octet_string_t specifying the value of each field.
| index | Point index |
| value | Point value |
| dnp3_octet_string_t * dnp3_octet_string_iterator_next | ( | dnp3_octet_string_iterator_t * | iter | ) |
returns a pointer to the next value or NULL
| iter | opaque iterator on which to retrieve the next value |
| void dnp3_octet_string_value_add | ( | dnp3_octet_string_value_t * | instance, |
| uint8_t | value | ||
| ) |
Add a value to the collection.
| instance | instance to which to add the value |
| value | value to add to the instance |
| dnp3_octet_string_value_t * dnp3_octet_string_value_create | ( | ) |
Creates an instance of the collection.
| void dnp3_octet_string_value_destroy | ( | dnp3_octet_string_value_t * | instance | ) |
Destroys an instance of the collection.
| instance | instance to destroy |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Initialize to defaults.
| outstation_address | Link-layer outstation address |
| master_address | Link-layer master address |
| event_buffer_config | Event buffer sizes configuration |
| 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
| runtime | runtime on which to spawn the outstation |
| serial_path | Path of the serial device |
| settings | settings for the serial port |
| config | outstation configuration |
| application | application interface |
| information | informational events interface |
| control_handler | control handler interface |
| out | Outstation instance or NULL if the port cannot be opened |
| 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.
| runtime | runtime on which to spawn the outstation |
| serial_path | Path of the serial device |
| settings | settings for the serial port |
| open_retry_delay | delay between attempts to open the serial port (milliseconds) |
| config | outstation configuration |
| application | application interface |
| information | informational events interface |
| control_handler | control handler interface |
| port_listener | port state listener |
| out | Outstation instance or NULL if an error occurred |
| 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.
| runtime | runtime on which to spawn the outstation |
| serial_path | Path of the serial device |
| settings | settings for the serial port |
| open_retry_delay | delay between attempts to open the serial port (milliseconds) |
| config | outstation configuration |
| application | application interface |
| information | informational events interface |
| control_handler | control handler interface |
| out | Outstation instance or NULL if an error occurred |
| 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.
| runtime | runtime on which to spawn the outstation |
| link_error_mode | Controls how link errors are handled with respect to the TCP session |
| endpoints | List of IP endpoints. |
| connect_strategy | Controls the timing of (re)connection attempts |
| connect_options | Options that control the TCP connection process |
| config | outstation configuration |
| application | application interface |
| information | informational events interface |
| control_handler | control handler interface |
| listener | Connection listener used to receive updates on the status of the connection |
| out | Outstation instance |
| dnp3_param_error_t dnp3_outstation_create_tcp_client_with_handler | ( | dnp3_runtime_t * | runtime, |
| dnp3_link_error_mode_t | link_error_mode, | ||
| const char * | span_name, | ||
| 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_client_connection_handler_t | connection_handler, | ||
| dnp3_outstation_t ** | out | ||
| ) |
Create an outstation instance running as a TCP client with fine-grained connection management.
This function provides fine-grained control over connection management via a user implementation of the ClientConnectionHandler interface.
| runtime | runtime on which to spawn the outstation |
| link_error_mode | Controls how link errors are handled with respect to the TCP session |
| span_name | Name used for tracing spans (typically the main endpoint address) |
| config | outstation configuration |
| application | application interface |
| information | informational events interface |
| control_handler | control handler interface |
| listener | Connection listener used to receive updates on the status of the connection |
| connection_handler | Connection handler providing fine-grained control over connection management |
| out | Outstation instance |
| 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.
| runtime | runtime on which to spawn the outstation |
| link_error_mode | Controls how link errors are handled with respect to the TCP session |
| endpoints | List of IP endpoints. |
| connect_strategy | Controls the timing of (re)connection attempts |
| connect_options | Options that control the TCP connection process |
| config | outstation configuration |
| application | application interface |
| information | informational events interface |
| control_handler | control handler interface |
| listener | Connection listener used to receive updates on the status of the connection |
| tls_config | TLS client configuration |
| out | Outstation instance |
| dnp3_param_error_t dnp3_outstation_create_tls_client_with_handler | ( | dnp3_runtime_t * | runtime, |
| dnp3_link_error_mode_t | link_error_mode, | ||
| const char * | span_name, | ||
| 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_client_connection_handler_t | connection_handler, | ||
| dnp3_tls_client_config_t | tls_config, | ||
| dnp3_outstation_t ** | out | ||
| ) |
Create an outstation instance running as a TLS client with fine-grained connection management.
This function provides fine-grained control over connection management via a user implementation of the ClientConnectionHandler interface.
| runtime | runtime on which to spawn the outstation |
| link_error_mode | Controls how link errors are handled with respect to the TCP session |
| span_name | Span name used for tracing the connection |
| config | outstation configuration |
| application | application interface |
| information | informational events interface |
| control_handler | control handler interface |
| listener | Connection listener used to receive updates on the status of the connection |
| connection_handler | Connection handler providing fine-grained control over connection management |
| tls_config | TLS client configuration |
| out | Outstation instance |
| 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 that communicates over UDP.
The socket is bound in the background, and binding is retried after a failure, so this method does not fail if the socket cannot be bound.
| runtime | runtime on which to spawn the outstation |
| udp_config | UDP configuration |
| config | outstation configuration |
| application | application interface |
| information | informational events interface |
| control_handler | control handler interface |
| out | Outstation instance or NULL if an error occurred |
| void dnp3_outstation_destroy | ( | dnp3_outstation_t * | instance | ) |
Free resources of the outstation.
| instance | Instance of dnp3_outstation_t to destroy |
| dnp3_param_error_t dnp3_outstation_disable | ( | dnp3_outstation_t * | instance | ) |
| dnp3_param_error_t dnp3_outstation_enable | ( | dnp3_outstation_t * | instance | ) |
|
static |
Initialize to default values.
| 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.
| instance | Instance of dnp3_outstation_server_t |
| config | Outstation configuration |
| application | Outstation application callbacks |
| information | Outstation information callbacks |
| control_handler | Outstation control handler |
| listener | Listener for the connection state |
| filter | Address filter |
| out | Outstation handle |
| 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.
If binding fails, the server can't be used again: further calls to this method or dnp3_outstation_server_add_outstation fail with DNP3_PARAM_ERROR_SERVER_BIND_ERROR. Destroy the server and create a new one to retry.
| instance | Instance of dnp3_outstation_server_t |
| 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.
| runtime | Runtime to execute the server on |
| link_error_mode | Controls how link errors are handled with respect to the TCP session |
| address | Address to bind the server to e.g. 127.0.0.1:20000 |
| out | New TCP server instance |
| 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.
| runtime | Runtime to execute the server on |
| link_error_mode | Controls how link errors are handled with respect to the session |
| address | Address to bind the server to e.g. 127.0.0.1:20000 |
| tls_config | TLS server configuration |
| out | New TLS server instance |
| 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.
| instance | Instance of dnp3_outstation_server_t to destroy |
| dnp3_param_error_t dnp3_outstation_set_decode_level | ( | dnp3_outstation_t * | instance, |
| dnp3_decode_level_t | level | ||
| ) |
Set decoding log level.
| instance | Instance of dnp3_outstation_t |
| level | Decode log |
| 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.
| instance | Instance of dnp3_outstation_t |
| callback | Interface on which to execute the transaction |
|
static |
Initialize the configuration with default settings for unspecified parameter.
| local_endpoint | Local endpoint to which the UDP socket is bound. Must be a socket address (ip:port) |
| remote_endpoint | Remote endpoint where outbound requests are sent. Must be a socket address (ip:port) |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
| void dnp3_parse_zero_length_strings | ( | bool | enabled | ) |
Enable or disable the parsing of zero-length strings, e.g., Group 110/111 Variation 0.
This is disabled by default for security reasons as enabling it can allow resource exhaustion attacks.
This global option is a work-around to preserve API compatability until a future 2.0 release
| enabled | If true, enable the parsing of zero length strings |
|
static |
Fully construct dnp3_permission_set_t specifying the value of each field.
| execute | Permission to execute |
| write | Permission to write |
| read | Permission to read |
|
static |
Permission set with nothing enabled.
false false false
|
static |
Fully construct dnp3_permissions_t specifying the value of each field.
| world | World permissions |
| group | Group permissions |
| owner | Owner permissions |
|
static |
Permissions with nothing enabled.
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
| void dnp3_request_add_all_objects_header | ( | dnp3_request_t * | instance, |
| dnp3_variation_t | variation | ||
| ) |
Add an all objects variation request.
| instance | Instance of dnp3_request_t |
| variation | Variation to ask for |
| 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.
| instance | Instance of dnp3_request_t |
| variation | Variation to ask for |
| count | Maximum number of events |
| 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.
| instance | Instance of dnp3_request_t |
| variation | Variation to ask for |
| start | Start index to ask |
| stop | Stop index to ask (inclusive) |
| void dnp3_request_add_specific_attribute | ( | dnp3_request_t * | instance, |
| uint8_t | variation, | ||
| uint8_t | set | ||
| ) |
Add a header that reads a specific device attribute (group 0) for use with a READ request.
| instance | Instance of dnp3_request_t |
| variation | Variation of the device attribute, 1 to 255 (254 reads every attribute of the set) |
| set | The set (point) to which the attribute belongs |
| void dnp3_request_add_string_attribute | ( | dnp3_request_t * | instance, |
| uint8_t | variation, | ||
| uint8_t | set, | ||
| const char * | value | ||
| ) |
Add a header that writes a visible string device attribute (group 0) for use with a WRITE request.
| instance | Instance of dnp3_request_t |
| variation | Variation of the attribute |
| set | The set (point) to which the attribute belongs |
| value | Value of the attribute |
| 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
| instance | Instance of dnp3_request_t |
| time | DNP3 48-bit timestamp representing count of milliseconds since epoch UTC |
| interval_ms | Interval expressed in milliseconds |
| 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.
| instance | Instance of dnp3_request_t |
| variation | Variation to ask for |
| count | Maximum number of events |
| 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.
| instance | Instance of dnp3_request_t |
| variation | Variation to ask for |
| start | Start index to ask |
| stop | Stop index to ask (inclusive) |
| void dnp3_request_add_uint_attribute | ( | dnp3_request_t * | instance, |
| uint8_t | variation, | ||
| uint8_t | set, | ||
| uint32_t | value | ||
| ) |
Add a header that writes an unsigned integer device attribute (group 0) for use with a WRITE request.
| instance | Instance of dnp3_request_t |
| variation | Variation of the attribute |
| set | The set (point) to which the attribute belongs |
| value | Value of the attribute |
| dnp3_request_t * dnp3_request_create | ( | ) |
Create a new request.
| void dnp3_request_destroy | ( | dnp3_request_t * | instance | ) |
Destroy a request created with dnp3_request_create or dnp3_request_class_request.
| instance | Instance of dnp3_request_t to destroy |
| 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.
| variation | Variation to ask for |
| 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.
| class0 | Ask for class 0 (static data) |
| class1 | Ask for class 1 events |
| class2 | Ask for class 2 events |
| class3 | Ask for class 3 events |
| 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.
| variation | Variation to ask for |
| count | Maximum number of events |
| 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.
| variation | Variation to ask for |
| start | Start index to ask |
| stop | Stop index to ask (inclusive) |
| 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.
| variation | Variation to ask for |
| count | Maximum number of events |
| 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.
| variation | Variation to ask for |
| start | Start index to ask |
| stop | Stop index to ask (inclusive) |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
RestartDelay with a count of milliseconds.
| value | Expected delay before the outstation comes back online. |
|
static |
RestartDelay indicating that the request is not supported.
|
static |
RestartDelay with a count of seconds.
| value | Expected delay before the outstation comes back online. |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Initialize to defaults.
|
static |
Initialize the configuration to default values.
| 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.
| config | Runtime configuration |
| out | Instance of dnp3_runtime_t |
| void dnp3_runtime_destroy | ( | dnp3_runtime_t * | instance | ) |
Destroy a runtime.
This method will gracefully wait for all asynchronous operation to end before returning
| instance | Instance of dnp3_runtime_t to destroy |
| 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.
| instance | Instance of dnp3_runtime_t |
| timeout | Maximum number of seconds to wait for the runtime to shut down (seconds) |
|
static |
Initialize to default values.
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Creates an invalid timestamp struct.
|
static |
Creates a synchronized timestamp struct.
| value | Count of milliseconds since UNIX epoch |
|
static |
Creates an unsynchronized timestamp struct.
| value | Count of milliseconds since UNIX epoch |
|
static |
construct the configuration with defaults
| dns_name | Subject name which is verified in the presented server certificate, from the SAN extension or in the common name field. |
| peer_cert_path | Path to the PEM-encoded certificate of the peer |
| local_cert_path | Path to the PEM-encoded local certificate |
| private_key_path | Path to the the PEM-encoded private key |
| password | Optional password if the private key file is encrypted |
|
static |
construct the configuration with defaults
| dns_name | Subject name which is verified in the presented client certificate, from the SAN extension or in the common name field. |
| peer_cert_path | Path to the PEM-encoded certificate of the peer |
| local_cert_path | Path to the PEM-encoded local certificate |
| private_key_path | Path to the PEM-encoded private key |
| password | Optional password if the private key file is encrypted |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Fully construct dnp3_unsigned_integer_t specifying the value of each field.
| index | Index of the object |
| value | Value of the object |
| dnp3_unsigned_integer_t * dnp3_unsigned_integer_iterator_next | ( | dnp3_unsigned_integer_iterator_t * | iter | ) |
returns a pointer to the next value or NULL
| iter | opaque iterator on which to retrieve the next value |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Default event detection mode. Updates the static value and automatically detects event.
|
static |
Only update the static value. Usefull during initialization of the database.
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Construct an invalid dnp3_utc_timestamp_t.
|
static |
Construct a valid dnp3_utc_timestamp_t.
| value | Count of milliseconds since UNIX epoch |
|
static |
Converts the enum to a string.
| value | Enum to convert |
|
static |
Converts the enum to a string.
| value | Enum to convert |
| const char * dnp3_version | ( | ) |
Get the version of the library as a string.
| 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
| instance | Instance of dnp3_write_dead_band_request_t |
| index | Index of the analog input to which the dead-band applies |
| dead_band | Value of the dead-band |
| 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
| instance | Instance of dnp3_write_dead_band_request_t |
| index | Index of the analog input to which the dead-band applies |
| dead_band | Value of the dead-band |
| 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
| instance | Instance of dnp3_write_dead_band_request_t |
| index | Index of the analog input to which the dead-band applies |
| dead_band | Value of the dead-band |
| 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
| instance | Instance of dnp3_write_dead_band_request_t |
| index | Index of the analog input to which the dead-band applies |
| dead_band | Value of the dead-band |
| 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
| instance | Instance of dnp3_write_dead_band_request_t |
| index | Index of the analog input to which the dead-band applies |
| dead_band | Value of the dead-band |
| 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
| instance | Instance of dnp3_write_dead_band_request_t |
| index | Index of the analog input to which the dead-band applies |
| dead_band | Value of the dead-band |
| 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.
| 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.
| instance | Instance of dnp3_write_dead_band_request_t to destroy |
| 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.
| instance | Instance of dnp3_write_dead_band_request_t |
|
static |
Converts the enum to a string.
| value | Enum to convert |