Go to the documentation of this file.
16 #define DNP3_VERSION_MAJOR 0
17 #define DNP3_VERSION_MINOR 9
18 #define DNP3_VERSION_PATCH 0
19 #define DNP3_VERSION_STRING "0.9.0"
86 default:
return "UnknownParamError";
92 #define DNP3_FLAG_ONLINE 0x01
93 #define DNP3_FLAG_RESTART 0x02
95 #define DNP3_FLAG_COMM_LOST 0x04
97 #define DNP3_FLAG_REMOTE_FORCED 0x08
99 #define DNP3_FLAG_LOCAL_FORCED 0x10
101 #define DNP3_FLAG_CHATTER_FILTER 0x20
103 #define DNP3_FLAG_OVER_RANGE 0x20
105 #define DNP3_FLAG_DISCONTINUITY 0x40
107 #define DNP3_FLAG_REFERENCE_ERR 0x40
139 default:
return "UnknownLogLevel";
164 default:
return "UnknownTimeFormat";
186 default:
return "UnknownLogOutputFormat";
222 .print_module_info =
false,
248 void (*on_destroy)(
void* arg),
255 .on_destroy = on_destroy,
296 default:
return "UnknownAppDecodeLevel";
321 default:
return "UnknownTransportDecodeLevel";
346 default:
return "UnknownLinkDecodeLevel";
371 default:
return "UnknownPhysDecodeLevel";
507 default:
return "UnknownTripCloseCode";
538 default:
return "UnknownOpType";
602 .off_time = off_time,
647 default:
return "UnknownTimeQuality";
714 default:
return "UnknownDoubleBit";
1091 default:
return "UnknownPortState";
1116 void (*on_destroy)(
void* arg),
1123 .on_destroy = on_destroy,
1420 default:
return "UnknownVariation";
1476 default:
return "UnknownDataBits";
1501 default:
return "UnknownFlowControl";
1526 default:
return "UnknownParity";
1548 default:
return "UnknownStopBits";
1606 default:
return "UnknownLinkErrorMode";
1628 default:
return "UnknownResponseFunction";
1688 default:
return "UnknownIIN1Flag";
1749 default:
return "UnknownIIN2Flag";
1848 default:
return "UnknownQualifierCode";
1872 .qualifier = qualifier,
1900 default:
return "UnknownReadType";
1998 void (*on_destroy)(
void* arg),
2005 .end_fragment = end_fragment,
2006 .handle_binary = handle_binary,
2007 .handle_double_bit_binary = handle_double_bit_binary,
2008 .handle_binary_output_status = handle_binary_output_status,
2009 .handle_counter = handle_counter,
2010 .handle_frozen_counter = handle_frozen_counter,
2011 .handle_analog = handle_analog,
2012 .handle_analog_output_status = handle_analog_output_status,
2013 .handle_octet_string = handle_octet_string,
2014 .on_destroy = on_destroy,
2078 .response_timeout = 5000,
2079 .tx_buffer_size = 2048,
2080 .rx_buffer_size = 2048,
2116 default:
return "UnknownClientState";
2141 void (*on_destroy)(
void* arg),
2148 .on_destroy = on_destroy,
2187 .max_connect_delay = 10000,
2188 .reconnect_delay = 1000,
2353 default:
return "UnknownAutoTimeSync";
2402 .enable_unsol_classes = enable_unsol_classes,
2403 .startup_integrity_classes = startup_integrity_classes,
2406 .keep_alive_timeout = 60,
2407 .auto_integrity_scan_on_buffer_overflow =
true,
2408 .event_scan_on_events_available = event_scan_on_events_available,
2409 .max_queued_user_requests = 16,
2437 .is_valid = is_valid,
2476 void (*on_destroy)(
void* arg),
2483 .on_destroy = on_destroy,
2625 default:
return "UnknownReadResult";
2650 void (*on_destroy)(
void* arg),
2657 .on_destroy = on_destroy,
2767 default:
return "UnknownCommandMode";
2813 default:
return "UnknownCommandResult";
2838 void (*on_destroy)(
void* arg),
2845 .on_destroy = on_destroy,
2878 default:
return "UnknownTimeSyncMode";
2939 default:
return "UnknownTimeSyncResult";
2964 void (*on_destroy)(
void* arg),
2971 .on_destroy = on_destroy,
3021 default:
return "UnknownRestartError";
3071 void (*on_destroy)(
void* arg),
3078 .on_destroy = on_destroy,
3119 default:
return "UnknownLinkStatusResult";
3144 void (*on_destroy)(
void* arg),
3151 .on_destroy = on_destroy,
3194 default:
return "UnknownEventClass";
3221 default:
return "UnknownEventMode";
3269 default:
return "UnknownStaticBinaryVariation";
3294 default:
return "UnknownEventBinaryVariation";
3368 default:
return "UnknownStaticDoubleBitBinaryVariation";
3393 default:
return "UnknownEventDoubleBitBinaryVariation";
3467 default:
return "UnknownStaticBinaryOutputStatusVariation";
3489 default:
return "UnknownEventBinaryOutputStatusVariation";
3569 default:
return "UnknownStaticCounterVariation";
3597 default:
return "UnknownEventCounterVariation";
3687 default:
return "UnknownStaticFrozenCounterVariation";
3715 default:
return "UnknownEventFrozenCounterVariation";
3805 default:
return "UnknownStaticAnalogVariation";
3845 default:
return "UnknownEventAnalogVariation";
3929 default:
return "UnknownStaticAnalogOutputStatusVariation";
3969 default:
return "UnknownEventAnalogOutputStatusVariation";
4108 .double_bit_binary =
true,
4109 .binary_output_status =
true,
4111 .frozen_counter =
true,
4113 .analog_output_status =
true,
4114 .octet_strings =
false,
4142 .unsolicited =
true,
4216 .master_address = master_address,
4217 .solicited_buffer_size = 2048,
4218 .unsolicited_buffer_size = 2048,
4219 .rx_buffer_size = 2048,
4221 .confirm_timeout = 5000,
4222 .select_timeout = 5000,
4224 .max_unsolicited_retries = 4294967295,
4225 .unsolicited_retry_delay = 5000,
4226 .keep_alive_timeout = 60000,
4227 .max_read_request_headers = 64,
4228 .max_controls_per_request = 64,
4273 .max_double_bit_binary = max_double_bit_binary,
4274 .max_binary_output_status = max_binary_output_status,
4275 .max_counter = max_counter,
4276 .max_frozen_counter = max_frozen_counter,
4277 .max_analog = max_analog,
4278 .max_analog_output_status = max_analog_output_status,
4279 .max_octet_string = max_octet_string,
4314 default:
return "UnknownRestartDelayType";
4344 .local_control =
false,
4345 .device_trouble =
false,
4346 .config_corrupt =
false,
4412 default:
return "UnknownWriteTimeResult";
4434 default:
return "UnknownFreezeType";
4459 default:
return "UnknownFreezeResult";
4536 uint16_t (*get_processing_delay_ms)(
void*),
4543 void (*on_destroy)(
void* arg),
4550 .write_absolute_time = write_absolute_time,
4551 .get_application_iin = get_application_iin,
4552 .cold_restart = cold_restart,
4553 .warm_restart = warm_restart,
4554 .freeze_counters_all = freeze_counters_all,
4555 .freeze_counters_range = freeze_counters_range,
4556 .on_destroy = on_destroy,
4673 default:
return "UnknownFunctionCode";
4697 .function =
function,
4725 default:
return "UnknownBroadcastAction";
4821 void (*enter_solicited_confirm_wait)(uint8_t,
void*),
4822 void (*solicited_confirm_timeout)(uint8_t,
void*),
4823 void (*solicited_confirm_received)(uint8_t,
void*),
4824 void (*solicited_confirm_wait_new_request)(
void*),
4825 void (*wrong_solicited_confirm_seq)(uint8_t, uint8_t,
void*),
4826 void (*unexpected_confirm)(
bool, uint8_t,
void*),
4827 void (*enter_unsolicited_confirm_wait)(uint8_t,
void*),
4828 void (*unsolicited_confirm_timeout)(uint8_t,
bool,
void*),
4829 void (*unsolicited_confirmed)(uint8_t,
void*),
4830 void (*clear_restart_iin)(
void*),
4831 void (*on_destroy)(
void* arg),
4838 .broadcast_received = broadcast_received,
4839 .enter_solicited_confirm_wait = enter_solicited_confirm_wait,
4840 .solicited_confirm_timeout = solicited_confirm_timeout,
4841 .solicited_confirm_received = solicited_confirm_received,
4842 .solicited_confirm_wait_new_request = solicited_confirm_wait_new_request,
4843 .wrong_solicited_confirm_seq = wrong_solicited_confirm_seq,
4844 .unexpected_confirm = unexpected_confirm,
4845 .enter_unsolicited_confirm_wait = enter_unsolicited_confirm_wait,
4846 .unsolicited_confirm_timeout = unsolicited_confirm_timeout,
4847 .unsolicited_confirmed = unsolicited_confirmed,
4848 .clear_restart_iin = clear_restart_iin,
4849 .on_destroy = on_destroy,
4930 default:
return "UnknownCommandStatus";
4955 default:
return "UnknownOperateType";
5098 void (*begin_fragment)(
void*),
5099 void (*end_fragment)(
void*),
5110 void (*on_destroy)(
void* arg),
5117 .end_fragment = end_fragment,
5118 .select_g12v1 = select_g12v1,
5119 .operate_g12v1 = operate_g12v1,
5120 .select_g41v1 = select_g41v1,
5121 .operate_g41v1 = operate_g41v1,
5122 .select_g41v2 = select_g41v2,
5123 .operate_g41v2 = operate_g41v2,
5124 .select_g41v3 = select_g41v3,
5125 .operate_g41v3 = operate_g41v3,
5126 .select_g41v4 = select_g41v4,
5127 .operate_g41v4 = operate_g41v4,
5128 .on_destroy = on_destroy,
5152 default:
return "UnknownConnectionState";
5177 void (*on_destroy)(
void* arg),
5184 .on_destroy = on_destroy,
5211 void (*on_destroy)(
void* arg),
5218 .on_destroy = on_destroy,
bool class2
Class 2 events.
Definition: dnp3.h:2262
static const char * dnp3_time_format_to_string(dnp3_time_format_t value)
Converts a dnp3_time_format_t to a string.
Definition: dnp3.h:157
Outstation ignore the broadcast message b/c the function is not supported via Broadcast.
Definition: dnp3.h:4711
Function code is not supported by the outstation.
Definition: dnp3.h:1723
Two stop bits.
Definition: dnp3.h:1536
bool value
Point value.
Definition: dnp3.h:726
static dnp3_header_info_t dnp3_header_info_init(dnp3_variation_t variation, dnp3_qualifier_code_t qualifier)
Initialize dnp3_header_info_t to default values.
Definition: dnp3.h:1867
dnp3_restart_error_t error
Success/failure of the restart task.
Definition: dnp3.h:3031
dnp3_param_error_t dnp3_database_get_binary(dnp3_database_t *db, uint16_t index, dnp3_binary_t *out)
Get a Binary Input point.
dnp3_event_analog_variation_t event_variation
Default event variation.
Definition: dnp3.h:3859
Outstation shall report the time it takes to process and initiate the transmission of its response (v...
Definition: dnp3.h:4612
bool dnp3_database_remove_binary_output_status(dnp3_database_t *db, uint16_t index)
Remove a Binary Output Status point.
The demanded freeze operation is not supported by this device.
Definition: dnp3.h:4446
insufficient buffer space to serialize the request
Definition: dnp3.h:2997
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:5166
The timestamp is UTC synchronized at the remote device.
Definition: dnp3.h:630
dnp3_event_counter_variation_t event_variation
Default event variation.
Definition: dnp3.h:3611
Counter Event - 32-bit with flags.
Definition: dnp3.h:1203
Outstation shall stop running the applications specified by the objects in the request (value == 18)
Definition: dnp3.h:4602
dnp3_auto_time_sync_t
Automatic time synchronization configuration.
Definition: dnp3.h:2333
Null parameter.
Definition: dnp3.h:32
bool dnp3_database_remove_counter(dnp3_database_t *db, uint16_t index)
Remove a Counter point.
Decode the header.
Definition: dnp3.h:306
static dnp3_binary_t dnp3_binary_init(uint16_t index, bool value, dnp3_flags_t flags, dnp3_timestamp_t time)
Initialize dnp3_binary_t to default values.
Definition: dnp3.h:739
Same as FreezeAtTime but outstation shall not send a response (value == 12)
Definition: dnp3.h:4590
dnp3_static_binary_variation_t static_variation
Default static variation.
Definition: dnp3.h:3305
void * ctx
Context data.
Definition: dnp3.h:3062
static dnp3_analog_t dnp3_analog_init(uint16_t index, double value, dnp3_flags_t flags, dnp3_timestamp_t time)
Initialize dnp3_analog_t to default values.
Definition: dnp3.h:944
dnp3_event_analog_output_status_variation_t
Event analog output status variation.
Definition: dnp3.h:3934
struct dnp3_counter_config_t dnp3_counter_config_t
Counter configuration.
Definition: dnp3.h:3601
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:237
dnp3_binary_output_status_t * dnp3_binaryoutputstatus_next(dnp3_binary_output_status_iterator_t *it)
Get the next value of the iterator.
dnp3_event_classes_t dnp3_event_classes_all()
Initialize all three event classes to true.
FrozenCounter point.
Definition: dnp3.h:885
static dnp3_octet_string_t dnp3_octet_string_init(uint16_t index, dnp3_byte_iterator_t *value)
Initialize dnp3_octet_string_t to default values.
Definition: dnp3.h:1049
association was removed mid-task
Definition: dnp3.h:2914
struct dnp3_binary_iterator_t dnp3_binary_iterator_t
Iterator of dnp3_binary_t. See dnp3_binary_next.
Definition: dnp3.h:751
dnp3_retry_strategy_t auto_tasks_retry_strategy
Automatic tasks retry strategy.
Definition: dnp3.h:2374
uint64_t reconnect_delay
Delay before attempting a connection after a disconnect.
Definition: dnp3.h:2177
struct dnp3_commands_t dnp3_commands_t
Builder type used to construct command requests.
Definition: dnp3.h:2674
void dnp3_tcpserver_destroy(dnp3_tcp_server_t *server)
Gracefully shutdown all the outstations associated to this server, stops the server and release resou...
response was malformed or contained object headers
Definition: dnp3.h:2783
dnp3_static_analog_output_status_variation_t
Static analog output status variation.
Definition: dnp3.h:3906
static const char * dnp3_log_level_to_string(dnp3_log_level_t value)
Converts a dnp3_log_level_t to a string.
Definition: dnp3.h:130
Client is disabled and idle until disabled.
Definition: dnp3.h:2090
Master was already shutdown.
Definition: dnp3.h:50
static dnp3_outstation_application_t dnp3_outstation_application_init(uint16_t(*get_processing_delay_ms)(void *), dnp3_write_time_result_t(*write_absolute_time)(uint64_t, void *), dnp3_application_iin_t(*get_application_iin)(void *), dnp3_restart_delay_t(*cold_restart)(void *), dnp3_restart_delay_t(*warm_restart)(void *), dnp3_freeze_result_t(*freeze_counters_all)(dnp3_freeze_type_t, dnp3_database_t *, void *), dnp3_freeze_result_t(*freeze_counters_range)(uint16_t, uint16_t, dnp3_freeze_type_t, dnp3_database_t *, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_outstation_application_t interface.
Definition: dnp3.h:4535
bool binary
Include Binary Inputs in Class 0 reads.
Definition: dnp3.h:4075
void(* on_change)(dnp3_port_state_t, void *)
Invoked when the serial port changes state.
Definition: dnp3.h:1102
Master shall interpret this fragment as an unsolicited response that was not prompted by an explicit ...
Definition: dnp3.h:4630
uint64_t min_delay
Minimum delay between two retries.
Definition: dnp3.h:1434
dnp3_param_error_t dnp3_master_channel_demand_poll(dnp3_master_channel_t *channel, dnp3_poll_id_t poll_id)
Demand the immediate execution of a poll previously created with dnp3_master_channel_add_poll.
static const char * dnp3_event_analog_output_status_variation_to_string(dnp3_event_analog_output_status_variation_t value)
Converts a dnp3_event_analog_output_status_variation_t to a string.
Definition: dnp3.h:3957
DoubleBitBinary point.
Definition: dnp3.h:762
struct dnp3_logging_config_t dnp3_logging_config_t
Logging configuration options.
Definition: dnp3.h:190
dnp3_link_status_result_t
Result of a link status check. See dnp3_master_channel_check_link_status.
Definition: dnp3.h:3099
Decode the header and the raw payload as hexadecimal.
Definition: dnp3.h:333
static const char * dnp3_op_type_to_string(dnp3_op_type_t value)
Converts a dnp3_op_type_t to a string.
Definition: dnp3.h:529
struct dnp3_analog_output_status_t dnp3_analog_output_status_t
AnalogOutputStatus point.
Definition: dnp3.h:964
Warning log level.
Definition: dnp3.h:118
static dnp3_retry_strategy_t dnp3_retry_strategy_init()
Initialize dnp3_retry_strategy_t to default values.
Definition: dnp3.h:1443
dnp3_timestamp_t time
Point timestamp.
Definition: dnp3.h:976
Decode nothing.
Definition: dnp3.h:276
dnp3_request_t * dnp3_request_new_class(bool class0, bool class1, bool class2, bool class3)
Create a new request asking for classes.
Frozen Counter Event - 32-bit with flags.
Definition: dnp3.h:1213
static dnp3_association_handler_t dnp3_association_handler_init(dnp3_timestamp_utc_t(*get_current_time)(void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_association_handler_t interface.
Definition: dnp3.h:2474
void(* on_complete)(dnp3_read_result_t, void *)
Called when the read task reached completion or failed.
Definition: dnp3.h:2636
Trace log level.
Definition: dnp3.h:124
association was removed mid-task
Definition: dnp3.h:3003
struct dnp3_request_t dnp3_request_t
Custom request.
Definition: dnp3.h:2492
static dnp3_connection_state_listener_t dnp3_connection_state_listener_init(void(*on_change)(dnp3_connection_state_t, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_connection_state_listener_t interface.
Definition: dnp3.h:5175
Time and Date - Absolute time.
Definition: dnp3.h:1291
void dnp3_commands_add_g41v2_u8(dnp3_commands_t *command, uint8_t idx, int16_t value)
Add a Analog Output command (signed 16-bit integer) with 1-byte prefix index.
Dynamic information required by the outstation from the user application.
Definition: dnp3.h:4464
Outstation shall close a file (value == 26)
Definition: dnp3.h:4618
void dnp3_commands_add_g41v4_u16(dnp3_commands_t *commands, uint16_t idx, double value)
Add a Analog Output command (double-precision float) with 2-byte prefix index.
Binary Input - With flags.
Definition: dnp3.h:1137
command not accepted because the outstation is forwarding the request to another downstream device wh...
Definition: dnp3.h:4895
16-bit count (0x08)
Definition: dnp3.h:1824
Binary Input Event - With relative time.
Definition: dnp3.h:1145
Log only the length of data that is sent and received.
Definition: dnp3.h:356
Analog Input - Single-precision floating point with flags.
Definition: dnp3.h:1231
Octet String point.
Definition: dnp3.h:1037
Invalid socket address.
Definition: dnp3.h:38
dnp3_client_state_t
State of the client connection.
Definition: dnp3.h:2087
Counter Event - 16-bit with flags.
Definition: dnp3.h:1205
dnp3_param_error_t dnp3_address_filter_add(dnp3_address_filter_t *address_filter, const char *address)
Add an accepted IP address to the filter.
Callback interface for connection state events.
Definition: dnp3.h:5157
Format the time using RFC 3339.
Definition: dnp3.h:149
uint64_t max_connect_delay
Maximum delay between two connection attempts.
Definition: dnp3.h:2173
uint16_t solicited_buffer_size
Solicited response buffer size.
Definition: dnp3.h:4159
bool dnp3_database_remove_frozen_counter(dnp3_database_t *db, uint16_t index)
Remove a Frozen Counter point.
PULSE_OFF (2)
Definition: dnp3.h:519
void dnp3_commands_add_g41v4_u8(dnp3_commands_t *commands, uint8_t idx, double value)
Add a Analog Output command (double-precision float) with 1-byte prefix index.
static dnp3_class_zero_config_t dnp3_class_zero_config_init()
Initialize dnp3_class_zero_config_t to default values.
Definition: dnp3.h:4103
5 bits per character
Definition: dnp3.h:1456
Analog Output Event - Default variation.
Definition: dnp3.h:1273
dnp3_command_status_t(* operate_g41v3)(float, uint16_t, dnp3_operate_type_t, dnp3_database_t *, void *)
Operate a control point.
Definition: dnp3.h:5053
dnp3_event_counter_variation_t
Event counter variation.
Definition: dnp3.h:3574
response was malformed or contained object headers
Definition: dnp3.h:2597
Disconnected from the master.
Definition: dnp3.h:5140
bool frozen_counter
Include Frozen Counters in Class 0 reads.
Definition: dnp3.h:4087
Class 0, 1, 2 and 3 config.
Definition: dnp3.h:2294
Binary Output - Default variation.
Definition: dnp3.h:1161
Binary input - packed format.
Definition: dnp3.h:3255
Analog configuration.
Definition: dnp3.h:3852
Poll identifier.
Definition: dnp3.h:2246
dnp3_class_zero_config_t class_zero
Controls responses to Class 0 reads.
Definition: dnp3.h:4204
uint16_t max_binary_output_status
Maximum number of Binary Output Status events (g11)
Definition: dnp3.h:4245
Frozen Counter - 32-bit with flags and time.
Definition: dnp3.h:1193
uint8_t value
Byte value.
Definition: dnp3.h:1011
dnp3_freeze_result_t(* freeze_counters_all)(dnp3_freeze_type_t, dnp3_database_t *, void *)
Freeze all the counters.
Definition: dnp3.h:4508
Handler for read tasks.
Definition: dnp3.h:2630
Outstation shall start running the applications specified by the objects in the request (value == 17)
Definition: dnp3.h:4600
dnp3_time_quality_t
Timestamp quality.
Definition: dnp3.h:627
dnp3_param_error_t dnp3_master_channel_check_link_status(dnp3_master_channel_t *channel, dnp3_association_id_t association, dnp3_link_status_callback_t callback)
Asynchronously perform a link status check.
8-bit count and prefix (0x17)
Definition: dnp3.h:1826
Counter Event - Default variation.
Definition: dnp3.h:1201
dnp3_flags_t flags
Point flags.
Definition: dnp3.h:974
uint32_t on_time
Duration the output drive remains active (in milliseconds)
Definition: dnp3.h:584
static const char * dnp3_freeze_type_to_string(dnp3_freeze_type_t value)
Converts a dnp3_freeze_type_t to a string.
Definition: dnp3.h:4428
bool dnp3_database_add_binary(dnp3_database_t *db, uint16_t index, dnp3_event_class_t point_class, dnp3_binary_config_t config)
Add a new Binary Input point.
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:2465
struct dnp3_byte_t dnp3_byte_t
Single byte struct.
Definition: dnp3.h:1005
struct dnp3_runtime_config_t dnp3_runtime_config_t
Runtime configuration.
Definition: dnp3.h:410
bool class2
Class 2 events.
Definition: dnp3.h:2301
uint8_t value
bit-mask representing a set of individual flag bits
Definition: dnp3.h:612
command is all ready in progress or its all ready in that mode (value == 5)
Definition: dnp3.h:4869
static const char * dnp3_log_output_format_to_string(dnp3_log_output_format_t value)
Converts a dnp3_log_output_format_t to a string.
Definition: dnp3.h:180
Logging configuration options.
Definition: dnp3.h:193
dnp3_param_error_t dnp3_address_filter_new(const char *address, dnp3_address_filter_t **out)
Create an address filter that accepts any IP address.
static const char * dnp3_iin1_flag_to_string(dnp3_iin1_flag_t value)
Converts a dnp3_iin1_flag_t to a string.
Definition: dnp3.h:1676
struct dnp3_analog_iterator_t dnp3_analog_iterator_t
Iterator of dnp3_analog_t. See dnp3_analog_next.
Definition: dnp3.h:956
Analog Input Event - 16-bit without time.
Definition: dnp3.h:1239
Detect events in a type dependent fashion.
Definition: dnp3.h:3204
static dnp3_restart_task_callback_t dnp3_restart_task_callback_init(void(*on_complete)(dnp3_restart_result_t, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_restart_task_callback_t interface.
Definition: dnp3.h:3069
static const char * dnp3_stop_bits_to_string(dnp3_stop_bits_t value)
Converts a dnp3_stop_bits_t to a string.
Definition: dnp3.h:1542
Binary Output Status configuration.
Definition: dnp3.h:3496
Binary Output Command - Pattern Control Block.
Definition: dnp3.h:1175
Don't format the timestamp as part of the message.
Definition: dnp3.h:147
Serial port settings.
Definition: dnp3.h:1555
Framing errors are discarded. The link-layer parser is reset on any error, and the parser begins scan...
Definition: dnp3.h:1592
Binary Input configuration.
Definition: dnp3.h:3301
void(* handle_counter)(dnp3_header_info_t, dnp3_counter_iterator_t *, void *)
Handle counter data.
Definition: dnp3.h:1942
Binary Input - Default variation.
Definition: dnp3.h:1133
Outstation shall reset only portions of the device (value == 14)
Definition: dnp3.h:4594
Frozen Counter - 16-bit with flag and time.
Definition: dnp3.h:3667
Analog Input Event - 32-bit without time.
Definition: dnp3.h:1237
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:5200
Runtime cannot execute blocking call within asynchronous context.
Definition: dnp3.h:56
void dnp3_commands_add_g12v1_u8(dnp3_commands_t *command, uint8_t idx, dnp3_g12v1_t header)
Add a CROB with 1-byte prefix index.
dnp3_static_counter_variation_t
Static counter variation.
Definition: dnp3.h:3546
dnp3_iin1_flag_t
First IIN bit flags.
Definition: dnp3.h:1653
Analog Output - 16-bit.
Definition: dnp3.h:1267
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:1969
Analog output status - 16-bit with flag.
Definition: dnp3.h:3911
Do not perform automatic time sync.
Definition: dnp3.h:2336
Perform a Direct Operate (0x05)
Definition: dnp3.h:2753
Perform a LAN time sync with Record Current Time (0x18) function code.
Definition: dnp3.h:2864
the command has been done too often and has been throttled (value == 8)
Definition: dnp3.h:4875
dnp3_param_error_t dnp3_master_channel_remove_association(dnp3_master_channel_t *channel, dnp3_association_id_t id)
Remove an association from the channel.
bool dnp3_iin2_is_set(dnp3_iin2_t *iin2, dnp3_iin2_flag_t flag)
Check if a particular flag is set in the IIN2 byte.
Class 2 event.
Definition: dnp3.h:3178
dnp3_param_error_t
Error type used throughout the library.
Definition: dnp3.h:27
Determined to be OFF.
Definition: dnp3.h:696
insufficient buffer space to serialize the request
Definition: dnp3.h:2787
too many user requests queued
Definition: dnp3.h:2991
bool dnp3_database_remove_octet_string(dnp3_database_t *db, uint16_t index)
Remove an Octet String point.
dnp3_param_error_t dnp3_master_channel_warm_restart(dnp3_master_channel_t *channel, dnp3_association_id_t association, dnp3_restart_task_callback_t callback)
Asynchronously perform a warm restart operation to the association.
struct dnp3_connect_strategy_t dnp3_connect_strategy_t
Timing parameters for connection attempts.
Definition: dnp3.h:2161
dnp3_event_binary_output_status_variation_t
Event binary output status variation.
Definition: dnp3.h:3472
static const char * dnp3_static_frozen_counter_variation_to_string(dnp3_static_frozen_counter_variation_t value)
Converts a dnp3_static_frozen_counter_variation_t to a string.
Definition: dnp3.h:3677
struct dnp3_analog_output_status_iterator_t dnp3_analog_output_status_iterator_t
Iterator of dnp3_analog_output_status_t. See dnp3_analogoutputstatus_next.
Definition: dnp3.h:997
BinaryOutputStatus point.
Definition: dnp3.h:803
Connected to the master.
Definition: dnp3.h:5138
bool dnp3_database_update_counter(dnp3_database_t *db, dnp3_counter_t value, dnp3_update_options_t options)
Update a Counter point.
struct dnp3_retry_strategy_t dnp3_retry_strategy_t
Retry strategy configuration.
Definition: dnp3.h:1424
bool dnp3_database_add_binary_output_status(dnp3_database_t *db, uint16_t index, dnp3_event_class_t point_class, dnp3_binary_output_status_config_t config)
Add a new Binary Output Status point.
AnalogOutputStatus point.
Definition: dnp3.h:967
bool octet_strings
Include Binary Inputs in Class 0 reads.
Definition: dnp3.h:4098
Frozen Counter - 32-bit with flag and time.
Definition: dnp3.h:3665
dnp3_trip_close_code_t
Trip-Close Code field, used in conjunction with dnp3_op_type_t to specify a control operation.
Definition: dnp3.h:484
void dnp3_outstation_transaction(dnp3_outstation_t *outstation, dnp3_outstation_transaction_t callback)
Execute transaction to modify the internal database of the outstation.
dnp3_timestamp_t time
Point timestamp.
Definition: dnp3.h:935
void(* on_complete)(dnp3_link_status_result_t, void *)
Called when a link status is received.
Definition: dnp3.h:3130
bool class3
Class 3 events.
Definition: dnp3.h:2303
dnp3_param_error_t dnp3_master_channel_operate(dnp3_master_channel_t *channel, dnp3_association_id_t association, dnp3_command_mode_t mode, dnp3_commands_t *command, dnp3_command_task_callback_t callback)
Asynchronously perform a command operation on the association.
dnp3_decode_level_t decode_level
Decoding level.
Definition: dnp3.h:4171
dnp3_command_status_t(* operate_g41v4)(double, uint16_t, dnp3_operate_type_t, dnp3_database_t *, void *)
Operate a control point.
Definition: dnp3.h:5074
Binary Output - With flags.
Definition: dnp3.h:1165
static const char * dnp3_variation_to_string(dnp3_variation_t value)
Converts a dnp3_variation_t to a string.
Definition: dnp3.h:1323
Conflict in the address filter specification.
Definition: dnp3.h:44
Outstation shall activate the output points selected (or armed) by a previous select function code co...
Definition: dnp3.h:4574
uint16_t index
Point index.
Definition: dnp3.h:765
void * ctx
Context data.
Definition: dnp3.h:1971
dnp3_restart_delay_t dnp3_restart_delay_seconds(uint16_t value)
Creates a restart delay with a value specified in seconds.
bool binary_output_status
Include Binary Output Status in Class 0 reads.
Definition: dnp3.h:4081
Cannot perform operation because an execution is already in progress.
Definition: dnp3.h:1731
dnp3_event_class_t
Event class.
Definition: dnp3.h:3171
Analog input event - single-precision, floating-point with time.
Definition: dnp3.h:3825
Failed to create tokio runtime.
Definition: dnp3.h:52
command not accepted because another master is communicating with the outstation and has exclusive ri...
Definition: dnp3.h:4893
too many user requests queued
Definition: dnp3.h:2595
Client is trying to establish a connection to the remote device.
Definition: dnp3.h:2092
Double-bit binary input event - without time.
Definition: dnp3.h:3376
uint16_t address
Outstation address of the association.
Definition: dnp3.h:2238
Outstation reports a configuration corruption.
Definition: dnp3.h:1733
dnp3_flow_control_t
Flow control modes.
Definition: dnp3.h:1481
void(* handle_analog_output_status)(dnp3_header_info_t, dnp3_analog_output_status_iterator_t *, void *)
Handle analog output status data.
Definition: dnp3.h:1960
Double-bit Binary Input Event - With absolute time.
Definition: dnp3.h:1157
dnp3_decode_level_t decode_level
Decoding level for this master. You can modify this later on with dnp3_master_channel_set_decode_leve...
Definition: dnp3.h:2052
Success, i.e. no error occurred.
Definition: dnp3.h:30
void * ctx
Context data.
Definition: dnp3.h:2641
Analog input - 32-bit with flag.
Definition: dnp3.h:3779
void(* on_change)(dnp3_connection_state_t, void *)
Called when the connection state changes.
Definition: dnp3.h:5163
struct dnp3_analog_config_t dnp3_analog_config_t
Analog configuration.
Definition: dnp3.h:3849
Outstation shall copy the point data values specified by the objects in the request into a separate f...
Definition: dnp3.h:4584
void dnp3_commands_finish_header(dnp3_commands_t *commands)
Finish any partially completed header. This allows for the construction of two headers with the same ...
static const char * dnp3_broadcast_action_to_string(dnp3_broadcast_action_t value)
Converts a dnp3_broadcast_action_t to a string.
Definition: dnp3.h:4717
Time and date CTO - Absolute time, unsynchronized.
Definition: dnp3.h:1299
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 dnp3_association_config_t to default values.
Definition: dnp3.h:2397
Binary output - output status with flags.
Definition: dnp3.h:3455
Outstation processed the broadcast.
Definition: dnp3.h:4705
dnp3_flags_t flags
Point flags.
Definition: dnp3.h:851
static const char * dnp3_static_analog_output_status_variation_to_string(dnp3_static_analog_output_status_variation_t value)
Converts a dnp3_static_analog_output_status_variation_t to a string.
Definition: dnp3.h:3921
Outstation indicated an error.
Definition: dnp3.h:2900
Double-bit Binary Input Event - Without time.
Definition: dnp3.h:1155
static const char * dnp3_event_class_to_string(dnp3_event_class_t value)
Converts a dnp3_event_class_t to a string.
Definition: dnp3.h:3186
uint16_t index
Point index.
Definition: dnp3.h:806
struct dnp3_g12v1_t dnp3_g12v1_t
Control Relay Output Block.
Definition: dnp3.h:574
Parity bit sets even number of 1 bits.
Definition: dnp3.h:1513
dnp3_link_decode_level_t link
Controls link frame decoding.
Definition: dnp3.h:388
Association configuration.
Definition: dnp3.h:2360
association was removed mid-task
Definition: dnp3.h:2607
command was accepted, initiated, or queued (value == 0)
Definition: dnp3.h:4859
dnp3_param_error_t dnp3_master_channel_enable(dnp3_master_channel_t *channel)
start communications
dnp3_event_classes_t disable_unsol_classes
Classes to disable unsolicited responses at startup.
Definition: dnp3.h:2363
the function governed by the control is in local only control (value == 7)
Definition: dnp3.h:4873
dnp3_command_status_t(* select_g41v3)(float, uint16_t, dnp3_database_t *, void *)
Select an analog output, but do not operate.
Definition: dnp3.h:5044
static const char * dnp3_read_result_to_string(dnp3_read_result_t value)
Converts a dnp3_read_result_t to a string.
Definition: dnp3.h:2613
Analog Output Event - Double-precision floating point without time.
Definition: dnp3.h:1285
struct dnp3_association_config_t dnp3_association_config_t
Association configuration.
Definition: dnp3.h:2357
Analog Input - 16-bit with flags.
Definition: dnp3.h:1225
uint16_t outstation_address
Link-layer outstation address.
Definition: dnp3.h:4152
Analog input event - 16-bit without time.
Definition: dnp3.h:3815
dnp3_static_binary_output_status_variation_t static_variation
Default static variation.
Definition: dnp3.h:3500
Analog output event - single-precision, floating-point without time.
Definition: dnp3.h:3945
control point was properly selected before the operate request
Definition: dnp3.h:4938
bool counter
Include Counters in Class 0 reads.
Definition: dnp3.h:4084
static dnp3_timestamp_utc_t dnp3_timestamp_utc_init(uint64_t value, bool is_valid)
Initialize dnp3_timestamp_utc_t to default values.
Definition: dnp3.h:2432
Counter - 32-bit without flag.
Definition: dnp3.h:1183
LATCH_ON (3)
Definition: dnp3.h:521
dnp3_command_status_t(* operate_g41v1)(int32_t, uint16_t, dnp3_operate_type_t, dnp3_database_t *, void *)
Operate a control point.
Definition: dnp3.h:5011
static dnp3_request_header_t dnp3_request_header_init(dnp3_control_t control, dnp3_function_code_t function)
Initialize dnp3_request_header_t to default values.
Definition: dnp3.h:4692
struct dnp3_iin_t dnp3_iin_t
Pair of IIN bytes.
Definition: dnp3.h:1760
Freeze operation was successful.
Definition: dnp3.h:4442
Disabled until enabled.
Definition: dnp3.h:1071
dnp3_iin2_t iin2
Second IIN byte.
Definition: dnp3.h:1768
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)
timeout occurred before receiving a response
Definition: dnp3.h:2995
Indicate that the message was broadcasted.
Definition: dnp3.h:1656
dnp3_param_error_t dnp3_master_channel_add_association(dnp3_master_channel_t *channel, uint16_t address, dnp3_association_config_t config, dnp3_read_handler_t read_handler, dnp3_association_handler_t association_handler, dnp3_association_id_t *out)
Add an association to the channel.
dnp3_flow_control_t flow_control
Type of signalling to use for controlling data transfer.
Definition: dnp3.h:1565
dnp3_octet_string_value_t * dnp3_octet_string_new()
Create a new octet string.
static const char * dnp3_time_sync_result_to_string(dnp3_time_sync_result_t value)
Converts a dnp3_time_sync_result_t to a string.
Definition: dnp3.h:2920
Outstation has Class 1 events not reported yet.
Definition: dnp3.h:1658
Analog output status - double-precision, floating-point with flag.
Definition: dnp3.h:3915
void(* handle_octet_string)(dnp3_header_info_t, dnp3_octet_string_iterator_t *, void *)
Handle octet string data.
Definition: dnp3.h:1966
Outstation shall immediately actuate the output points specified by the objects in the request (value...
Definition: dnp3.h:4576
Analog output event - 16-bit without time.
Definition: dnp3.h:3939
static const char * dnp3_function_code_to_string(dnp3_function_code_t value)
Converts a dnp3_function_code_t to a string.
Definition: dnp3.h:4636
dnp3_link_decode_level_t
Controls how transmitted and received link frames are decoded at the INFO log level.
Definition: dnp3.h:326
Analog Output Event - 32-bit with time.
Definition: dnp3.h:1279
Callbacks for handling controls.
Definition: dnp3.h:4960
Periodic poll configured by the user.
Definition: dnp3.h:1886
dnp3_octet_string_t * dnp3_octetstring_next(dnp3_octet_string_iterator_t *it)
Get the next value of the iterator.
bool dnp3_database_update_analog_output_status(dnp3_database_t *db, dnp3_analog_output_status_t value, dnp3_update_options_t options)
Update a Analog Output Status point.
Control Relay Output Block.
Definition: dnp3.h:577
16-bit count and prefix (0x28)
Definition: dnp3.h:1828
static dnp3_runtime_config_t dnp3_runtime_config_init()
Initialize dnp3_runtime_config_t to default values.
Definition: dnp3.h:424
NUL (0)
Definition: dnp3.h:515
static dnp3_outstation_transaction_t dnp3_outstation_transaction_init(void(*execute)(dnp3_database_t *, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_outstation_transaction_t interface.
Definition: dnp3.h:5209
no connection
Definition: dnp3.h:2910
static dnp3_analog_output_status_t dnp3_analog_output_status_init(uint16_t index, double value, dnp3_flags_t flags, dnp3_timestamp_t time)
Initialize dnp3_analog_output_status_t to default values.
Definition: dnp3.h:985
struct dnp3_decode_level_t dnp3_decode_level_t
Controls the decoding of transmitted and received data at the application, transport,...
Definition: dnp3.h:375
uint16_t max_double_bit_binary
Maximum number of Double-Bit Binary Input events (g4)
Definition: dnp3.h:4243
7 bits per character
Definition: dnp3.h:1460
command not accepted because the outstation has already completed the requested operation (value == 1...
Definition: dnp3.h:4887
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:4520
dnp3_param_error_t dnp3_master_channel_set_decode_level(dnp3_master_channel_t *channel, dnp3_decode_level_t decode_level)
Set the decoding level for the channel.
dnp3_app_decode_level_t
Controls how transmitted and received application-layer fragments are decoded at the INFO log level.
Definition: dnp3.h:273
Decode the header-only.
Definition: dnp3.h:278
This code is deprecated-Do not use for new designs (value == 19)
Definition: dnp3.h:4604
Analog input event - 16-bit with time.
Definition: dnp3.h:3819
uint16_t index
Point index.
Definition: dnp3.h:847
TRIP (2)
Definition: dnp3.h:491
static const char * dnp3_link_error_mode_to_string(dnp3_link_error_mode_t value)
Converts a dnp3_link_error_mode_t to a string.
Definition: dnp3.h:1600
struct dnp3_outstation_information_t dnp3_outstation_information_t
Informational callbacks that the outstation doesn't rely on to function.
Timing parameters for connection attempts.
Definition: dnp3.h:2164
dnp3_request_t * dnp3_request_new()
Create a new request.
Analog Output Status - Default variation.
Definition: dnp3.h:1253
dnp3_param_error_t dnp3_tcpserver_add_outstation(dnp3_tcp_server_t *server, dnp3_outstation_config_t config, dnp3_event_buffer_config_t event_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.
Binary input event - with relative time.
Definition: dnp3.h:3281
dnp3_time_format_t
Describes if and how the time will be formatted in log messages.
Definition: dnp3.h:144
Counter event - 32-bit with flag and time.
Definition: dnp3.h:3581
static dnp3_link_status_callback_t dnp3_link_status_callback_init(void(*on_complete)(dnp3_link_status_result_t, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_link_status_callback_t interface.
Definition: dnp3.h:3142
static dnp3_timestamp_t dnp3_timestamp_init(uint64_t value, dnp3_time_quality_t quality)
Initialize dnp3_timestamp_t to default values.
Definition: dnp3.h:666
Analog input event - double-precision, floating-point without time.
Definition: dnp3.h:3823
Prevents outstation from initiating unsolicited responses from points specified by the objects in the...
Definition: dnp3.h:4608
struct dnp3_control_t dnp3_control_t
APDU Control field.
Definition: dnp3.h:447
dnp3_restart_delay_t(* cold_restart)(void *)
Request that the outstation perform a cold restart (IEEE-1815 2012, p. 58)
Definition: dnp3.h:4494
bool dnp3_database_remove_binary(dnp3_database_t *db, uint16_t index)
Remove a Binary Input point.
Retry strategy configuration.
Definition: dnp3.h:1429
dnp3_restart_delay_type_t
Type of restart delay value. Used by dnp3_restart_delay_t.
Definition: dnp3.h:4294
void(* on_complete)(dnp3_command_result_t, void *)
Called when the command task reached completion or failed.
Definition: dnp3.h:2824
bool class0
Class 0 (static data)
Definition: dnp3.h:2297
Analog Output Status configuration.
Definition: dnp3.h:3976
Number of headers or objects in the response didn't match the number in the request.
Definition: dnp3.h:2779
Decode the header and the object headers.
Definition: dnp3.h:280
Frozen Counter - 16-bit with flags and time.
Definition: dnp3.h:1195
bool fir
First fragment in the message.
Definition: dnp3.h:453
All objects (0x06)
Definition: dnp3.h:1820
APDU Control field.
Definition: dnp3.h:450
Counter Event - 16-bit with flags and time.
Definition: dnp3.h:1209
dnp3_application_iin_t(* get_application_iin)(void *)
Returns the application-controlled IIN bits.
Definition: dnp3.h:4487
Analog output event - 32-bit with time.
Definition: dnp3.h:3941
CROB (dnp3_g12v1_t) control code.
Definition: dnp3.h:545
The task failed for some reason (e.g. the master was shutdown)
Definition: dnp3.h:3106
Analog Output - Single-precision floating point.
Definition: dnp3.h:1269
uint16_t index
Point index.
Definition: dnp3.h:1040
Master sends this to an outstation to confirm the receipt of an Application Layer fragment (value == ...
Definition: dnp3.h:4566
The system time cannot be converted to a Unix timestamp.
Definition: dnp3.h:2890
Flow control using XON/XOFF bytes.
Definition: dnp3.h:1486
Outstation indicates it requires time synchronization from the master.
Definition: dnp3.h:1664
void * ctx
Context data.
Definition: dnp3.h:5168
dnp3_event_classes_t enable_unsol_classes
Classes to enable unsolicited responses at startup.
Definition: dnp3.h:2365
uint32_t baud_rate
Baud rate (in symbols-per-second)
Definition: dnp3.h:1559
dnp3_timestamp_t time
Point timestamp.
Definition: dnp3.h:771
timeout occurred before receiving a response
Definition: dnp3.h:2906
uint16_t tx_buffer_size
TX buffer size.
Definition: dnp3.h:2061
Timestamp value.
Definition: dnp3.h:654
Frozen Counter Event - 16-bit with flags and time.
Definition: dnp3.h:1219
dnp3_event_analog_output_status_variation_t event_variation
Default event variation.
Definition: dnp3.h:3983
dnp3_static_frozen_counter_variation_t
Static frozen counter variation.
Definition: dnp3.h:3658
The write time operation succeeded.
Definition: dnp3.h:4399
bool is_valid
True if the timestamp is valid, false otherwise.
Definition: dnp3.h:2425
uint64_t response_timeout
Timeout for receiving a response.
Definition: dnp3.h:2056
command timed out before completing (value == 1)
Definition: dnp3.h:4861
dnp3_param_error_t dnp3_database_get_analog(dnp3_database_t *db, uint16_t index, dnp3_analog_t *out)
Get a Analog point.
struct dnp3_endpoint_list_t dnp3_endpoint_list_t
List of IP endpoints.
Definition: dnp3.h:2023
Double-bit Binary Input Event - Default variation.
Definition: dnp3.h:1153
dnp3_static_frozen_counter_variation_t static_variation
Default static variation.
Definition: dnp3.h:3726
dnp3_timestamp_utc_t(* get_current_time)(void *)
Returns the current time or an invalid time if none is available.
Definition: dnp3.h:2462
static dnp3_g12v1_t dnp3_g12v1_init(dnp3_control_code_t code, uint8_t count, uint32_t on_time, uint32_t off_time)
Initialize dnp3_g12v1_t to default values.
Definition: dnp3.h:595
static dnp3_update_options_t dnp3_update_options_init()
Initialize dnp3_update_options_t to default values.
Definition: dnp3.h:3242
uint64_t value
Value of the timestamp (in milliseconds from UNIX Epoch).
Definition: dnp3.h:2423
One of the point is invalid.
Definition: dnp3.h:4444
dnp3_flags_t flags
Point flags.
Definition: dnp3.h:728
static dnp3_outstation_information_t dnp3_outstation_information_init(void(*process_request_from_idle)(dnp3_request_header_t, void *), void(*broadcast_received)(dnp3_function_code_t, dnp3_broadcast_action_t, void *), void(*enter_solicited_confirm_wait)(uint8_t, void *), void(*solicited_confirm_timeout)(uint8_t, void *), void(*solicited_confirm_received)(uint8_t, void *), void(*solicited_confirm_wait_new_request)(void *), void(*wrong_solicited_confirm_seq)(uint8_t, uint8_t, void *), void(*unexpected_confirm)(bool, uint8_t, void *), void(*enter_unsolicited_confirm_wait)(uint8_t, void *), void(*unsolicited_confirm_timeout)(uint8_t, bool, void *), void(*unsolicited_confirmed)(uint8_t, void *), void(*clear_restart_iin)(void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_outstation_information_t interface.
Definition: dnp3.h:4818
dnp3_event_classes_t event_scan_on_events_available
Classes to automatically send reads when the IIN bit is asserted.
Definition: dnp3.h:2385
Obsolete-Do not use for new designs (value == 15)
Definition: dnp3.h:4596
static dnp3_control_code_t dnp3_control_code_init(dnp3_trip_close_code_t tcc, bool clear, dnp3_op_type_t op_type)
Initialize dnp3_control_code_t to default values.
Definition: dnp3.h:563
Client is connected to the remote device.
Definition: dnp3.h:2094
Analog input event - single-precision, floating-point without time.
Definition: dnp3.h:3821
Analog Output Status - Double-precision floating point with flags.
Definition: dnp3.h:1261
static dnp3_master_channel_config_t dnp3_master_channel_config_init(uint16_t address)
Initialize dnp3_master_channel_config_t to default values.
Definition: dnp3.h:2072
bool analog
Include Analog Inputs in Class 0 reads.
Definition: dnp3.h:4090
dnp3_log_output_format_t output_format
output formatting options
Definition: dnp3.h:200
void * ctx
Context data.
Definition: dnp3.h:5202
dnp3_param_error_t dnp3_master_channel_remove_poll(dnp3_master_channel_t *channel, dnp3_poll_id_t poll_id)
Add a periodic poll to an association.
uint64_t keep_alive_timeout
Delay of inactivity before sending a REQUEST_LINK_STATUS to the master.
Definition: dnp3.h:4194
Counter - 16-bit with flag.
Definition: dnp3.h:3551
void(* begin_fragment)(void *)
Notifies the start of a command fragment.
Definition: dnp3.h:4965
Decode nothing.
Definition: dnp3.h:329
CLOSE (1)
Definition: dnp3.h:489
struct dnp3_octet_string_t dnp3_octet_string_t
Octet String point.
Definition: dnp3.h:1034
dnp3_variation_t
Group/Variation.
Definition: dnp3.h:1130
Does not generate events.
Definition: dnp3.h:3174
too many user requests queued
Definition: dnp3.h:2902
Handler for link status check.
Definition: dnp3.h:3124
dnp3_param_error_t dnp3_database_get_analog_output_status(dnp3_database_t *db, uint16_t index, dnp3_analog_output_status_t *out)
Get a Analog Output Status point.
uint64_t unsolicited_retry_delay
Delay to wait before retrying an unsolicited response.
Definition: dnp3.h:4188
struct dnp3_counter_t dnp3_counter_t
Counter point.
Definition: dnp3.h:841
void dnp3_request_destroy(dnp3_request_t *request)
Destroy a request created with dnp3_request_new or dnp3_request_new_class.
struct dnp3_update_options_t dnp3_update_options_t
Options that control how the update is performed.
Definition: dnp3.h:3225
dnp3_param_error_t dnp3_master_channel_get_decode_level(dnp3_master_channel_t *channel, dnp3_decode_level_t *out)
Get the decoding level for the channel.
Counter point.
Definition: dnp3.h:844
Frozen Counter - 16-bit with flag.
Definition: dnp3.h:3663
dnp3_param_error_t dnp3_tcpserver_bind(dnp3_tcp_server_t *server)
Bind the server to the port and starts listening. Also starts all the outstations associated to it.
dnp3_static_analog_variation_t static_variation
Default static variation.
Definition: dnp3.h:3856
uint16_t max_octet_string
Maximum number of Octet String events (g111)
Definition: dnp3.h:4255
Analog input - 16-bit without flag.
Definition: dnp3.h:3785
dnp3_control_code_t code
Control code.
Definition: dnp3.h:580
Analog point.
Definition: dnp3.h:926
Frozen Counter configuration.
Definition: dnp3.h:3722
dnp3_read_result_t
Result of a read operation.
Definition: dnp3.h:2590
command not accepted because the value is outside the acceptable range permitted for this point (valu...
Definition: dnp3.h:4883
Analog input event - 32-bit without time.
Definition: dnp3.h:3813
Outstation shall place the applications specified by the objects in the request into the ready to run...
Definition: dnp3.h:4598
dnp3_write_time_result_t(* write_absolute_time)(uint64_t, void *)
Handle a write of the absolute time during time synchronization procedures.
Definition: dnp3.h:4482
Class objects - Class 2 data.
Definition: dnp3.h:1309
Transition between conditions.
Definition: dnp3.h:694
Pair of IIN bytes.
Definition: dnp3.h:1763
Counter - 16-bit without flag.
Definition: dnp3.h:1185
dnp3_connection_state_t
Outstation connection state for connection-oriented transports, e.g. TCP.
Definition: dnp3.h:5135
6 bits per character
Definition: dnp3.h:1458
Time delay - Coarse.
Definition: dnp3.h:1301
Analog output event - 16-bit with time.
Definition: dnp3.h:3943
static const char * dnp3_static_double_bit_binary_variation_to_string(dnp3_static_double_bit_binary_variation_t value)
Converts a dnp3_static_double_bit_binary_variation_t to a string.
Definition: dnp3.h:3362
void dnp3_request_add_all_objects_header(dnp3_request_t *request, dnp3_variation_t variation)
Add an all objects variation interrogation.
dnp3_binary_t * dnp3_binary_next(dnp3_binary_iterator_t *it)
Get the next value of the iterator.
insufficient buffer space to serialize the request
Definition: dnp3.h:2601
dnp3_param_error_t dnp3_master_channel_cold_restart(dnp3_master_channel_t *channel, dnp3_association_id_t association, dnp3_restart_task_callback_t callback)
Asynchronously perform a cold restart operation to the association.
static dnp3_flags_t dnp3_flags_init(uint8_t value)
Initialize dnp3_flags_t to default values.
Definition: dnp3.h:618
dnp3_param_error_t dnp3_outstation_set_decode_level(dnp3_outstation_t *outstation, dnp3_decode_level_t level)
Set decoding log level.
void dnp3_request_add_two_byte_header(dnp3_request_t *request, dnp3_variation_t variation, uint16_t start, uint16_t stop)
Add a two-byte start/stop variation interrogation.
dnp3_restart_delay_type_t restart_type
Indicates what dnp3_restart_delay_t::value is.
Definition: dnp3.h:4358
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:2827
static dnp3_binary_config_t dnp3_binary_config_init()
Initialize dnp3_binary_config_t to default values.
Definition: dnp3.h:3313
void dnp3_endpoint_list_add(dnp3_endpoint_list_t *list, const char *endpoint)
Add an IP endpoint to the list.
command not accepted because it was prevented or inhibited by a local automation process,...
Definition: dnp3.h:4879
uint8_t seq
Sequence number.
Definition: dnp3.h:461
Analog Output - 32-bit.
Definition: dnp3.h:1265
dnp3_broadcast_action_t
Enumeration describing how the outstation processed a broadcast request.
Definition: dnp3.h:4702
Analog Input Event - Default variation.
Definition: dnp3.h:1235
Handler for time synchronization tasks.
Definition: dnp3.h:2944
struct dnp3_restart_task_callback_t dnp3_restart_task_callback_t
Handler for restart tasks.
dnp3_port_state_t
State of the serial port.
Definition: dnp3.h:1068
Class objects - Class 3 data.
Definition: dnp3.h:1311
dnp3_timestamp_t time
Point timestamp.
Definition: dnp3.h:730
struct dnp3_tcp_server_t dnp3_tcp_server_t
TCP server that listens for connections and routes the messages to outstations.
Definition: dnp3.h:5289
bool dnp3_database_update_binary(dnp3_database_t *db, dnp3_binary_t value, dnp3_update_options_t options)
Update a Binary Input point.
Outstation shall copy the point data values specified by the objects in the request to a separate fre...
Definition: dnp3.h:4588
the command was rejected because the device denied it or an RTU intercepted it (value == 9)
Definition: dnp3.h:4877
static const char * dnp3_restart_delay_type_to_string(dnp3_restart_delay_type_t value)
Converts a dnp3_restart_delay_type_t to a string.
Definition: dnp3.h:4307
Read was perform successfully.
Definition: dnp3.h:2593
Octet String Event.
Definition: dnp3.h:1317
struct dnp3_double_bit_binary_iterator_t dnp3_double_bit_binary_iterator_t
Iterator of dnp3_double_bit_binary_t. See dnp3_doublebitbinary_next.
Definition: dnp3.h:792
dnp3_phys_decode_level_t physical
Controls the logging of physical layer read/write.
Definition: dnp3.h:391
static dnp3_control_handler_t dnp3_control_handler_init(void(*begin_fragment)(void *), void(*end_fragment)(void *), dnp3_command_status_t(*select_g12v1)(dnp3_g12v1_t, uint16_t, dnp3_database_t *, void *), dnp3_command_status_t(*operate_g12v1)(dnp3_g12v1_t, uint16_t, dnp3_operate_type_t, dnp3_database_t *, void *), dnp3_command_status_t(*select_g41v1)(int32_t, uint16_t, dnp3_database_t *, void *), dnp3_command_status_t(*operate_g41v1)(int32_t, uint16_t, dnp3_operate_type_t, dnp3_database_t *, void *), dnp3_command_status_t(*select_g41v2)(int16_t, uint16_t, dnp3_database_t *, void *), dnp3_command_status_t(*operate_g41v2)(int16_t, uint16_t, dnp3_operate_type_t, dnp3_database_t *, void *), dnp3_command_status_t(*select_g41v3)(float, uint16_t, dnp3_database_t *, void *), dnp3_command_status_t(*operate_g41v3)(float, uint16_t, dnp3_operate_type_t, dnp3_database_t *, void *), dnp3_command_status_t(*select_g41v4)(double, uint16_t, dnp3_database_t *, void *), dnp3_command_status_t(*operate_g41v4)(double, uint16_t, dnp3_operate_type_t, dnp3_database_t *, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_control_handler_t interface.
Definition: dnp3.h:5097
16-bit start stop (0x01)
Definition: dnp3.h:1818
dnp3_time_quality_t quality
Timestamp quality.
Definition: dnp3.h:659
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:2953
bool self_address
Respond to the self address.
Definition: dnp3.h:4125
bool analog_output_status
Include Analog Output Status in Class 0 reads.
Definition: dnp3.h:4093
PULSE_ON (1)
Definition: dnp3.h:517
static const char * dnp3_time_quality_to_string(dnp3_time_quality_t value)
Converts a dnp3_time_quality_t to a string.
Definition: dnp3.h:640
Restart delay used by dnp3_outstation_application_t::cold_restart and dnp3_outstation_application_t::...
Definition: dnp3.h:4355
void dnp3_octet_string_add(dnp3_octet_string_value_t *octet_string, uint8_t value)
Create a new octet string.
Binary input event - without time.
Definition: dnp3.h:3277
Internal Indications - Packed format.
Definition: dnp3.h:1313
Analog Input Event - 16-bit with time.
Definition: dnp3.h:1243
Client was disconnected, waiting before retrying.
Definition: dnp3.h:2098
void(* execute)(dnp3_database_t *, void *)
Execute the transaction with the provided database.
Definition: dnp3.h:5197
Analog Output Status - Single-precision floating point with flags.
Definition: dnp3.h:1259
Timestamp is not valid, ignore the value and use a local timestamp.
Definition: dnp3.h:634
dnp3_flags_t flags
Point flags.
Definition: dnp3.h:892
uint16_t index
Point index.
Definition: dnp3.h:724
static dnp3_iin_t dnp3_iin_init(dnp3_iin1_t iin1, dnp3_iin2_t iin2)
Initialize dnp3_iin_t to default values.
Definition: dnp3.h:1775
dnp3_time_format_t time_format
optional time format
Definition: dnp3.h:203
Frozen Counter event - 32-bit with flag and time.
Definition: dnp3.h:3699
struct dnp3_counter_iterator_t dnp3_counter_iterator_t
Iterator of dnp3_counter_t. See dnp3_counter_next.
Definition: dnp3.h:874
Logging interface that receives the log messages and writes them somewhere.
Definition: dnp3.h:227
The outstation responded with a valid LINK_STATUS.
Definition: dnp3.h:3102
static const char * dnp3_double_bit_to_string(dnp3_double_bit_t value)
Converts a dnp3_double_bit_t to a string.
Definition: dnp3.h:706
Single poll requested by the user.
Definition: dnp3.h:1884
dnp3_response_function_t
Type of response.
Definition: dnp3.h:1611
struct dnp3_association_id_t dnp3_association_id_t
Association identifier.
Definition: dnp3.h:2230
command is not implemented (value == 4)
Definition: dnp3.h:4867
bool fin
Final fragment of the message.
Definition: dnp3.h:455
(deprecated) indicates the outstation shall not issue or perform the control operation (value == 126)
Definition: dnp3.h:4897
Flow control using RTS/CTS signals.
Definition: dnp3.h:1488
Error log level.
Definition: dnp3.h:116
bool config_corrupt
IIN2.5 - Configuration corrupt.
Definition: dnp3.h:4334
Counter event - 32-bit with flag.
Definition: dnp3.h:3577
struct dnp3_read_handler_t dnp3_read_handler_t
General handler that will receive all values read from the outstation.
Framing errors are bubbled up to calling code, closing the session. Suitable for physical layers that...
Definition: dnp3.h:1594
dnp3_event_buffer_config_t dnp3_event_buffer_config_no_events()
Initialize an event buffer configuration to support no events.
dnp3_function_code_t
Application layer function code.
Definition: dnp3.h:4563
Runtime configuration.
Definition: dnp3.h:413
struct dnp3_double_bit_binary_t dnp3_double_bit_binary_t
DoubleBitBinary point.
Definition: dnp3.h:759
dnp3_double_bit_t value
Point value.
Definition: dnp3.h:767
16-bit free format (0x5B)
Definition: dnp3.h:1830
uint16_t max_analog_output_status
Maximum number of Analog Output Status events (g42)
Definition: dnp3.h:4253
master was shutdown
Definition: dnp3.h:2912
dnp3_command_status_t(* operate_g12v1)(dnp3_g12v1_t, uint16_t, dnp3_operate_type_t, dnp3_database_t *, void *)
Operate a control point.
Definition: dnp3.h:4990
Counter - 32-bit with flags.
Definition: dnp3.h:1179
Enables outstation to initiate unsolicited responses from points specified by the objects in the requ...
Definition: dnp3.h:4606
bool unsolicited
Respond to enable/disable unsolicited response and produce unsolicited responses.
Definition: dnp3.h:4131
dnp3_command_status_t(* select_g12v1)(dnp3_g12v1_t, uint16_t, dnp3_database_t *, void *)
Select a CROB, but do not operate.
Definition: dnp3.h:4981
Frozen Counter - Default variation.
Definition: dnp3.h:1187
Analog Input Event - Single-precision floating point without time.
Definition: dnp3.h:1245
Perform a non-LAN time sync with Delay Measurement (0x17) function code.
Definition: dnp3.h:2866
Double-bit binary input - with flags.
Definition: dnp3.h:3356
struct dnp3_association_handler_t dnp3_association_handler_t
Callbacks for a particular outstation association.
void dnp3_request_add_one_byte_header(dnp3_request_t *request, dnp3_variation_t variation, uint8_t start, uint8_t stop)
Add a one-byte start/stop variation interrogation.
Outstation shall retrieve information about a file (value == 28)
Definition: dnp3.h:4622
void * ctx
Context data.
Definition: dnp3.h:5079
static const char * dnp3_freeze_result_to_string(dnp3_freeze_result_t value)
Converts a dnp3_freeze_result_t to a string.
Definition: dnp3.h:4452
void dnp3_address_filter_destroy(dnp3_address_filter_t *address_filter)
Destroy an address filter.
Time and Date - Indexed absolute time and long interval.
Definition: dnp3.h:1295
Frozen Counter Event - 16-bit with flags.
Definition: dnp3.h:1215
Double-bit Binary Input Event - With relative time.
Definition: dnp3.h:1159
dnp3_log_level_t level
logging level
Definition: dnp3.h:197
static const char * dnp3_trip_close_code_to_string(dnp3_trip_close_code_t value)
Converts a dnp3_trip_close_code_t to a string.
Definition: dnp3.h:499
static dnp3_iin1_t dnp3_iin1_init(uint8_t value)
Initialize dnp3_iin1_t to default values.
Definition: dnp3.h:1644
static dnp3_classes_t dnp3_classes_init(bool class0, bool class1, bool class2, bool class3)
Initialize dnp3_classes_t to default values.
Definition: dnp3.h:2312
void(* on_complete)(dnp3_restart_result_t, void *)
Called when the restart task reached completion or failed.
Definition: dnp3.h:3057
dnp3_static_binary_variation_t
Static binary input variation.
Definition: dnp3.h:3252
dnp3_endpoint_list_t * dnp3_endpoint_list_new(const char *main_endpoint)
Create a new list of IP endpoints.
Binary Output - Packed format.
Definition: dnp3.h:1163
bool dnp3_iin1_is_set(dnp3_iin1_t *iin1, dnp3_iin1_flag_t flag)
Check if a particular flag is set in the IIN1 byte.
uint16_t address
Local DNP3 data-link address.
Definition: dnp3.h:2050
dnp3_param_error_t dnp3_master_channel_read(dnp3_master_channel_t *channel, dnp3_association_id_t association, dnp3_request_t *request, dnp3_read_task_callback_t callback)
Perform a read on the association.
General handler that will receive all values read from the outstation.
Definition: dnp3.h:1905
struct dnp3_runtime_t dnp3_runtime_t
Handle to the underlying runtime.
Definition: dnp3.h:408
dnp3_phys_decode_level_t
Controls how data transmitted at the physical layer (TCP, serial, etc) is logged.
Definition: dnp3.h:351
dnp3_parity_t parity
Type of parity to use for error checking.
Definition: dnp3.h:1568
uint16_t max_binary
Maximum number of Binary Input events (g2)
Definition: dnp3.h:4241
bool dnp3_database_remove_double_bit_binary(dnp3_database_t *db, uint16_t index)
Remove a Double-Bit Binary Input point.
uint16_t index
Point index.
Definition: dnp3.h:888
Binary Input Event - Without time.
Definition: dnp3.h:1141
Time synchronization operation was a success.
Definition: dnp3.h:2886
struct dnp3_event_classes_t dnp3_event_classes_t
Event classes.
Definition: dnp3.h:2254
Timestamp value returned by dnp3_association_handler_t::get_current_time.
Definition: dnp3.h:2418
Double-bit binary input event - with relative time.
Definition: dnp3.h:3380
Copy the current value of a counter to the associated point and clear the current value to 0.
Definition: dnp3.h:4422
dnp3_transport_decode_level_t
Controls how transmitted and received transport segments are decoded at the INFO log level.
Definition: dnp3.h:301
no connection
Definition: dnp3.h:2603
uint8_t count
Count.
Definition: dnp3.h:582
NUL (0)
Definition: dnp3.h:487
8 bits per character
Definition: dnp3.h:1462
dnp3_classes_t dnp3_classes_all()
Class 1230.
uint64_t value
Timestamp value.
Definition: dnp3.h:657
Binary Output Event - Default variation.
Definition: dnp3.h:1167
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:2130
struct dnp3_analog_output_status_config_t dnp3_analog_output_status_config_t
Analog Output Status configuration.
Definition: dnp3.h:3973
Handler for restart tasks.
Definition: dnp3.h:3051
static dnp3_logger_t dnp3_logger_init(void(*on_message)(dnp3_log_level_t, const char *, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_logger_t interface.
Definition: dnp3.h:246
dnp3_parity_t
Parity checking modes.
Definition: dnp3.h:1506
Handler for command tasks.
Definition: dnp3.h:2818
Counter - 32-bit without flag.
Definition: dnp3.h:3553
uint32_t off_time
Duration the output drive remains non-active (in milliseconds)
Definition: dnp3.h:586
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)
Initialize dnp3_event_buffer_config_t to default values.
Definition: dnp3.h:4268
dnp3_restart_delay_t(* warm_restart)(void *)
Request that the outstation perform a warm restart (IEEE-1815 2012, p. 58)
Definition: dnp3.h:4501
dnp3_param_error_t dnp3_tcpserver_new(dnp3_runtime_t *runtime, dnp3_link_error_mode_t link_error_mode, const char *address, dnp3_tcp_server_t **out)
Create a new TCP server.
struct dnp3_iin1_t dnp3_iin1_t
First IIN byte.
Definition: dnp3.h:1632
static dnp3_read_handler_t dnp3_read_handler_init(void(*begin_fragment)(dnp3_read_type_t, dnp3_response_header_t, void *), void(*end_fragment)(dnp3_read_type_t, dnp3_response_header_t, void *), void(*handle_binary)(dnp3_header_info_t, dnp3_binary_iterator_t *, void *), void(*handle_double_bit_binary)(dnp3_header_info_t, dnp3_double_bit_binary_iterator_t *, void *), void(*handle_binary_output_status)(dnp3_header_info_t, dnp3_binary_output_status_iterator_t *, void *), void(*handle_counter)(dnp3_header_info_t, dnp3_counter_iterator_t *, void *), void(*handle_frozen_counter)(dnp3_header_info_t, dnp3_frozen_counter_iterator_t *, void *), void(*handle_analog)(dnp3_header_info_t, dnp3_analog_iterator_t *, void *), void(*handle_analog_output_status)(dnp3_header_info_t, dnp3_analog_output_status_iterator_t *, void *), void(*handle_octet_string)(dnp3_header_info_t, dnp3_octet_string_iterator_t *, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_read_handler_t interface.
Definition: dnp3.h:1987
uint16_t max_queued_user_requests
maximum number of user requests (e.g. commands, adhoc reads, etc) that will be queued before back-pre...
Definition: dnp3.h:2388
Analog input - 16-bit with flag.
Definition: dnp3.h:3781
Outstation shall delete a file (value == 27)
Definition: dnp3.h:4620
Outstation shall select (or arm) the output points specified by the objects in the request in prepara...
Definition: dnp3.h:4572
uint64_t confirm_timeout
Confirmation timeout.
Definition: dnp3.h:4175
static dnp3_analog_output_status_config_t dnp3_analog_output_status_config_init()
Initialize dnp3_analog_output_status_config_t to default values.
Definition: dnp3.h:3991
Port is open.
Definition: dnp3.h:1075
struct dnp3_header_info_t dnp3_header_info_t
Object header information.
Definition: dnp3.h:1852
bool class1
Class 1 events.
Definition: dnp3.h:2299
bool dnp3_database_add_octet_string(dnp3_database_t *db, uint16_t index, dnp3_event_class_t point_class)
Add a new Octet String point.
8-bit start stop (0x00)
Definition: dnp3.h:1816
Invalid link-layer DNP3 address.
Definition: dnp3.h:40
struct dnp3_outstation_application_t dnp3_outstation_application_t
Dynamic information required by the outstation from the user application.
Class objects - Class 0 data.
Definition: dnp3.h:1305
dnp3_timestamp_t time
Point timestamp.
Definition: dnp3.h:853
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:2639
static const char * dnp3_client_state_to_string(dnp3_client_state_t value)
Converts a dnp3_client_state_t to a string.
Definition: dnp3.h:2106
Outstation reports abnormal condition.
Definition: dnp3.h:1668
response was malformed or contained object headers
Definition: dnp3.h:2993
static const char * dnp3_event_mode_to_string(dnp3_event_mode_t value)
Converts a dnp3_event_mode_t to a string.
Definition: dnp3.h:3214
master was shutdown
Definition: dnp3.h:3001
Frozen Counter event - 16-bit with flag and time.
Definition: dnp3.h:3701
dnp3_qualifier_code_t
Qualifier code used in the response.
Definition: dnp3.h:1813
Counter - 32-bit with flag.
Definition: dnp3.h:3549
bool dnp3_database_update_octet_string(dnp3_database_t *db, uint16_t index, dnp3_octet_string_value_t *value, dnp3_update_options_t options)
Update an Octet String point.
struct dnp3_response_header_t dnp3_response_header_t
Response header information.
Definition: dnp3.h:1784
Counter - Default variation.
Definition: dnp3.h:1177
struct dnp3_frozen_counter_iterator_t dnp3_frozen_counter_iterator_t
Iterator of dnp3_frozen_counter_t. See dnp3_frozencounter_next.
Definition: dnp3.h:915
Class 1 event.
Definition: dnp3.h:3176
static dnp3_command_task_callback_t dnp3_command_task_callback_init(void(*on_complete)(dnp3_command_result_t, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_command_task_callback_t interface.
Definition: dnp3.h:2836
dnp3_command_status_t(* operate_g41v2)(int16_t, uint16_t, dnp3_operate_type_t, dnp3_database_t *, void *)
Operate a control point.
Definition: dnp3.h:5032
dnp3_command_result_t
Result of a command.
Definition: dnp3.h:2772
struct dnp3_binary_output_status_iterator_t dnp3_binary_output_status_iterator_t
Iterator of dnp3_binary_output_status_t. See dnp3_binaryoutputstatus_next.
Definition: dnp3.h:833
void dnp3_commands_add_g41v1_u8(dnp3_commands_t *command, uint8_t idx, int32_t value)
Add a Analog Output command (signed 32-bit integer) with 1-byte prefix index.
Frozen Counter - 32-bit with flags.
Definition: dnp3.h:1189
static dnp3_decode_level_t dnp3_decode_level_init()
Initialize dnp3_decode_level_t to default values.
Definition: dnp3.h:396
bool device_trouble
IIN1.6 - Device trouble.
Definition: dnp3.h:4331
First IIN byte.
Definition: dnp3.h:1635
struct dnp3_command_task_callback_t dnp3_command_task_callback_t
Handler for command tasks.
insufficient buffer space to serialize the request
Definition: dnp3.h:2908
Log nothing.
Definition: dnp3.h:354
struct dnp3_frozen_counter_t dnp3_frozen_counter_t
FrozenCounter point.
Definition: dnp3.h:882
dnp3_param_error_t dnp3_master_channel_disable(dnp3_master_channel_t *channel)
stop communications
void(* on_message)(dnp3_log_level_t, const char *, void *)
Called when a log message was received and should be logged.
Definition: dnp3.h:234
dnp3_commands_t * dnp3_commands_new()
Create a new set of commands.
bool dnp3_database_add_frozen_counter(dnp3_database_t *db, uint16_t index, dnp3_event_class_t point_class, dnp3_frozen_counter_config_t config)
Add a new Frozen Counter point.
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:3060
dnp3_transport_decode_level_t transport
Controls transport segment layer decoding.
Definition: dnp3.h:385
bool local_control
IIN1.5 - Some output points are in local mode.
Definition: dnp3.h:4328
Frozen Counter Event - 32-bit with flags and time.
Definition: dnp3.h:1217
void dnp3_commands_add_g41v2_u16(dnp3_commands_t *command, uint16_t idx, int16_t value)
Add a Analog Output command (signed 16-bit integer) with 2-byte prefix index.
command not accepted because the operation was cancelled (value == 16)
Definition: dnp3.h:4891
dnp3_event_double_bit_binary_variation_t
Event double-bit binary input variation.
Definition: dnp3.h:3373
Binary point.
Definition: dnp3.h:721
dnp3_data_bits_t data_bits
Number of bits used to represent a character sent on the line.
Definition: dnp3.h:1562
static dnp3_double_bit_binary_t dnp3_double_bit_binary_init(uint16_t index, dnp3_double_bit_t value, dnp3_flags_t flags, dnp3_timestamp_t time)
Initialize dnp3_double_bit_binary_t to default values.
Definition: dnp3.h:780
static dnp3_application_iin_t dnp3_application_iin_init()
Initialize dnp3_application_iin_t to default values.
Definition: dnp3.h:4339
void(* begin_fragment)(dnp3_read_type_t, dnp3_response_header_t, void *)
Marks the beginning of a fragment.
Definition: dnp3.h:1912
no connection
Definition: dnp3.h:2999
Binary output event - status without time.
Definition: dnp3.h:3475
no connection
Definition: dnp3.h:2789
dnp3_param_error_t dnp3_database_get_binary_output_status(dnp3_database_t *db, uint16_t index, dnp3_binary_output_status_t *out)
Get a Binary Output Status point.
struct dnp3_read_task_callback_t dnp3_read_task_callback_t
Handler for read tasks.
bool dnp3_database_add_analog(dnp3_database_t *db, uint16_t index, dnp3_event_class_t point_class, dnp3_analog_config_t config)
Add a new Analog point.
dnp3_freeze_type_t
Freeze operation type.
Definition: dnp3.h:4417
struct dnp3_control_code_t dnp3_control_code_t
CROB (dnp3_g12v1_t) control code.
Definition: dnp3.h:542
Outstation indicated that a command was not SUCCESS.
Definition: dnp3.h:2777
dnp3_static_counter_variation_t static_variation
Default static variation.
Definition: dnp3.h:3608
dnp3_analog_output_status_t * dnp3_analogoutputstatus_next(dnp3_analog_output_status_iterator_t *it)
Get the next value of the iterator.
struct dnp3_logger_t dnp3_logger_t
Logging interface that receives the log messages and writes them somewhere.
Startup integrity poll.
Definition: dnp3.h:1880
bool uns
Unsolicited response.
Definition: dnp3.h:459
Runtime was already disposed of.
Definition: dnp3.h:54
dnp3_event_binary_variation_t
Event binary input variation.
Definition: dnp3.h:3274
dnp3_static_double_bit_binary_variation_t
Static double-bit binary input variation.
Definition: dnp3.h:3351
struct dnp3_outstation_t dnp3_outstation_t
Outstation handle.
Definition: dnp3.h:5227
dnp3_outstation_features_t features
Optional features.
Definition: dnp3.h:4181
uint16_t(* get_processing_delay_ms)(void *)
Returns the DELAY_MEASUREMENT delay.
Definition: dnp3.h:4476
dnp3_event_frozen_counter_variation_t
Event frozen counter variation.
Definition: dnp3.h:3692
Same as ImmediateFreeze but outstation shall not send a response (value == 8)
Definition: dnp3.h:4582
static dnp3_logging_config_t dnp3_logging_config_init()
Initialize dnp3_logging_config_t to default values.
Definition: dnp3.h:214
void * ctx
Context data.
Definition: dnp3.h:3135
static const char * dnp3_data_bits_to_string(dnp3_data_bits_t value)
Converts a dnp3_data_bits_t to a string.
Definition: dnp3.h:1468
Information log level.
Definition: dnp3.h:120
struct dnp3_octet_string_value_t dnp3_octet_string_value_t
Collection of uint8_t. See dnp3_octet_string_add and dnp3_octet_string_destroy.
Definition: dnp3.h:4030
Binary Output Command - Control Relay Output Block.
Definition: dnp3.h:1173
uint16_t master_address
Link-layer master address.
Definition: dnp3.h:4154
Octet String.
Definition: dnp3.h:1315
Decode the header and the raw payload as hexadecimal.
Definition: dnp3.h:308
struct dnp3_double_bit_binary_config_t dnp3_double_bit_binary_config_t
Double-Bit Binary Input configuration.
Definition: dnp3.h:3397
bool dnp3_database_remove_analog(dnp3_database_t *db, uint16_t index)
Remove an Analog point.
Failed to establish a connection, waiting before retrying.
Definition: dnp3.h:2096
static const char * dnp3_event_analog_variation_to_string(dnp3_event_analog_variation_t value)
Converts a dnp3_event_analog_variation_t to a string.
Definition: dnp3.h:3833
Association identifier.
Definition: dnp3.h:2235
Analog Input - 32-bit with flags.
Definition: dnp3.h:1223
Abnormal or custom condition.
Definition: dnp3.h:700
bad control code or timing values (value == 3)
Definition: dnp3.h:4865
Decode the header, the object headers, and the object values.
Definition: dnp3.h:282
bool dnp3_database_update_analog(dnp3_database_t *db, dnp3_analog_t value, dnp3_update_options_t options)
Update a Analog point.
too many user requests queued
Definition: dnp3.h:2781
Controls which types are reported during a Class 0 read.
Definition: dnp3.h:4071
dnp3_flags_t flags
Point flags.
Definition: dnp3.h:769
void * ctx
Context data.
Definition: dnp3.h:239
dnp3_static_double_bit_binary_variation_t static_variation
Default static variation.
Definition: dnp3.h:3404
void(* end_fragment)(void *)
Notifies the end of a command fragment.
Definition: dnp3.h:4969
uint16_t index
Point index.
Definition: dnp3.h:970
dnp3_link_error_mode_t
Controls how errors in parsed link-layer frames are handled. This behavior is configurable for physic...
Definition: dnp3.h:1589
static const char * dnp3_param_error_to_string(dnp3_param_error_t value)
Converts a dnp3_param_error_t to a string.
Definition: dnp3.h:66
bool double_bit_binary
Include Double-Bit Binary Inputs in Class 0 reads.
Definition: dnp3.h:4078
static dnp3_time_sync_task_callback_t dnp3_time_sync_task_callback_init(void(*on_complete)(dnp3_time_sync_result_t, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_time_sync_task_callback_t interface.
Definition: dnp3.h:2962
void dnp3_commands_add_g41v1_u16(dnp3_commands_t *command, uint16_t idx, int32_t value)
Add a Analog Output command (signed 32-bit integer) with 2-byte prefix index.
Frozen Counter - 16-bit with flags.
Definition: dnp3.h:1191
uint64_t max_delay
Maximum delay between two retries.
Definition: dnp3.h:1438
At least one point of the outstation is in the local operation mode.
Definition: dnp3.h:1666
Command was a success.
Definition: dnp3.h:2775
dnp3_event_mode_t
Controls how events are processed when updating values in the database.
Definition: dnp3.h:3199
static dnp3_binary_output_status_config_t dnp3_binary_output_status_config_init()
Initialize dnp3_binary_output_status_config_t to default values.
Definition: dnp3.h:3508
struct dnp3_outstation_config_t dnp3_outstation_config_t
Outstation configuration.
Definition: dnp3.h:4146
Master shall interpret this fragment as an Application Layer response to an ApplicationLayer request ...
Definition: dnp3.h:4628
One stop bit.
Definition: dnp3.h:1534
bool class3
Class 3 events.
Definition: dnp3.h:2264
bool dnp3_database_update_double_bit_binary(dnp3_database_t *db, dnp3_double_bit_binary_t value, dnp3_update_options_t options)
Update a Double-Bit Binary Input point.
static const char * dnp3_command_result_to_string(dnp3_command_result_t value)
Converts a dnp3_command_result_t to a string.
Definition: dnp3.h:2799
Analog Input Event - Double-precision floating point with time.
Definition: dnp3.h:1251
dnp3_command_status_t
Enumeration received from an outstation in response to command request.
Definition: dnp3.h:4856
No flow control.
Definition: dnp3.h:1484
Log the length and the actual data that is sent and received.
Definition: dnp3.h:358
Duplicate association address.
Definition: dnp3.h:36
Analog Input Event - 32-bit with time.
Definition: dnp3.h:1241
Analog output event - 32-bit without time.
Definition: dnp3.h:3937
struct dnp3_octet_string_iterator_t dnp3_octet_string_iterator_t
Iterator of dnp3_octet_string_t. See dnp3_octetstring_next.
Definition: dnp3.h:1059
dnp3_double_bit_t
Double-bit binary input value.
Definition: dnp3.h:691
static dnp3_control_t dnp3_control_init(bool fir, bool fin, bool con, bool uns, uint8_t seq)
Initialize dnp3_control_t to default values.
Definition: dnp3.h:471
dnp3_restart_delay_t dnp3_restart_delay_millis(uint16_t value)
Creates a restart delay with a value specified in milliseconds.
master was shutdown
Definition: dnp3.h:2605
Outstation shall abort a file transfer operation (value == 30)
Definition: dnp3.h:4626
Callback for monitoring the client TCP connection state.
Definition: dnp3.h:2121
static const char * dnp3_event_counter_variation_to_string(dnp3_event_counter_variation_t value)
Converts a dnp3_event_counter_variation_t to a string.
Definition: dnp3.h:3589
Double-Bit Binary Input configuration.
Definition: dnp3.h:3400
Outstation has Class 3 events not reported yet.
Definition: dnp3.h:1662
dnp3_classes_t dnp3_classes_none()
No class.
static dnp3_client_state_listener_t dnp3_client_state_listener_init(void(*on_change)(dnp3_client_state_t, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_client_state_listener_t interface.
Definition: dnp3.h:2139
uint16_t index
Point index.
Definition: dnp3.h:929
association was removed mid-task
Definition: dnp3.h:2793
Counter - 16-bit without flag.
Definition: dnp3.h:3555
The specified association does not exist.
Definition: dnp3.h:34
uint16_t association_id
Outstation address of the association.
Definition: dnp3.h:2249
static dnp3_counter_config_t dnp3_counter_config_init()
Initialize dnp3_counter_config_t to default values.
Definition: dnp3.h:3619
Time and date CTO - Absolute time, synchronized.
Definition: dnp3.h:1297
uint16_t num_core_threads
Number of runtime threads to spawn. For a guess of the number of CPU cores, use 0.
Definition: dnp3.h:419
Outstation shall save the time when the last octet of this message is received (value == 24)
Definition: dnp3.h:4614
Outstation configuration.
Definition: dnp3.h:4149
struct dnp3_timestamp_t dnp3_timestamp_t
Timestamp value.
Definition: dnp3.h:651
Binary output event - status with time.
Definition: dnp3.h:3477
dnp3_read_type_t
Describes the source of a read event.
Definition: dnp3.h:1877
Time and Date - Absolute time at last recorded time.
Definition: dnp3.h:1293
Single byte struct.
Definition: dnp3.h:1008
void dnp3_commands_add_g41v3_u16(dnp3_commands_t *commands, uint16_t idx, float value)
Add a Analog Output command (single-precision float) with 2-byte prefix index.
uint16_t max_controls_per_request
Maximum number of controls in a single request.
Definition: dnp3.h:4202
Analog Output Status - 32-bit with flags.
Definition: dnp3.h:1255
Analog input - double-precision, floating-point with flag.
Definition: dnp3.h:3789
static const char * dnp3_link_decode_level_to_string(dnp3_link_decode_level_t value)
Converts a dnp3_link_decode_level_t to a string.
Definition: dnp3.h:339
struct dnp3_connection_state_listener_t dnp3_connection_state_listener_t
Callback interface for connection state events.
dnp3_counter_t * dnp3_counter_next(dnp3_counter_iterator_t *it)
Get the next value of the iterator.
dnp3_log_output_format_t
Describes how each log event is formatted.
Definition: dnp3.h:169
Analog Output Event - Single-preicions floating point with time.
Definition: dnp3.h:1287
struct dnp3_byte_iterator_t dnp3_byte_iterator_t
Iterator of dnp3_byte_t. See dnp3_byte_next.
Definition: dnp3.h:1026
static dnp3_restart_result_t dnp3_restart_result_init(dnp3_restart_error_t error, uint64_t delay)
Initialize dnp3_restart_result_t to default values.
Definition: dnp3.h:3041
command not accepted because the outstation is forwarding the request to another downstream device wh...
Definition: dnp3.h:4885
struct dnp3_frozen_counter_config_t dnp3_frozen_counter_config_t
Frozen Counter configuration.
Definition: dnp3.h:3719
void * ctx
Context data.
Definition: dnp3.h:2467
Format the time in a human readable format e.g. 'Jun 25 14:27:12.955'.
Definition: dnp3.h:151
Binary Output Event - Without time.
Definition: dnp3.h:1169
uint8_t value
Byte value.
Definition: dnp3.h:1705
static const char * dnp3_command_mode_to_string(dnp3_command_mode_t value)
Converts a dnp3_command_mode_t to a string.
Definition: dnp3.h:2761
dnp3_freeze_result_t(* freeze_counters_range)(uint16_t, uint16_t, dnp3_freeze_type_t, dnp3_database_t *, void *)
Freeze a range of counters.
Definition: dnp3.h:4517
Second IIN byte.
Definition: dnp3.h:1702
static dnp3_read_task_callback_t dnp3_read_task_callback_init(void(*on_complete)(dnp3_read_result_t, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_read_task_callback_t interface.
Definition: dnp3.h:2648
Generic configuration for a MasterChannel.
Definition: dnp3.h:2047
static const char * dnp3_static_analog_variation_to_string(dnp3_static_analog_variation_t value)
Converts a dnp3_static_analog_variation_t to a string.
Definition: dnp3.h:3795
uint16_t rx_buffer_size
Receive buffer size.
Definition: dnp3.h:4169
Unsolicited response.
Definition: dnp3.h:1616
dnp3_timestamp_t dnp3_timestamp_invalid()
Creates an invalid timestamp struct.
uint64_t min_connect_delay
Minimum delay between two connection attempts, doubles up to the maximum delay.
Definition: dnp3.h:2169
Outstation shall store the data specified by the objects in the request (value == 2)
Definition: dnp3.h:4570
Task has been shut down.
Definition: dnp3.h:1077
Unable to parse request or invalid qualifier code.
Definition: dnp3.h:1727
dnp3_param_error_t dnp3_master_channel_add_poll(dnp3_master_channel_t *channel, dnp3_association_id_t id, dnp3_request_t *request, uint64_t period, dnp3_poll_id_t *out)
Add a periodic poll to an association.
struct dnp3_binary_t dnp3_binary_t
Binary point.
Definition: dnp3.h:718
Invalid buffer size.
Definition: dnp3.h:42
struct dnp3_master_channel_config_t dnp3_master_channel_config_t
Generic configuration for a MasterChannel.
Definition: dnp3.h:2044
Analog Input - 16-bit without flag.
Definition: dnp3.h:1229
Outstation shall perform a complete reset of all hardware and software in the device (value == 13)
Definition: dnp3.h:4592
bool print_module_info
optionally print the underlying Rust module information to the message string
Definition: dnp3.h:209
dnp3_command_status_t(* select_g41v2)(int16_t, uint16_t, dnp3_database_t *, void *)
Select an analog output, but do not operate.
Definition: dnp3.h:5023
uint64_t select_timeout
Select timeout.
Definition: dnp3.h:4179
struct dnp3_binary_config_t dnp3_binary_config_t
Binary Input configuration.
Definition: dnp3.h:3298
Event buffer overflow, at least one event was lost.
Definition: dnp3.h:1729
response was malformed or contained object headers
Definition: dnp3.h:2904
Controls the decoding of transmitted and received data at the application, transport,...
Definition: dnp3.h:378
struct dnp3_event_buffer_config_t dnp3_event_buffer_config_t
Maximum number of events for each type.
Definition: dnp3.h:4233
master was shutdown
Definition: dnp3.h:2791
Restart was perform successfully.
Definition: dnp3.h:2989
Analog input - 32-bit without flag.
Definition: dnp3.h:3783
Double-bit Binary Input - Default variation.
Definition: dnp3.h:1147
Frozen Counter - 16-bit without flag.
Definition: dnp3.h:1199
double deadband
Deadband value.
Definition: dnp3.h:3986
dnp3_op_type_t
Operation Type field, used in conjunction with dnp3_trip_close_code_t to specify a control operation.
Definition: dnp3.h:512
static const char * dnp3_static_binary_output_status_variation_to_string(dnp3_static_binary_output_status_variation_t value)
Converts a dnp3_static_binary_output_status_variation_t to a string.
Definition: dnp3.h:3461
uint64_t keep_alive_timeout
Delay of inactivity before sending a REQUEST_LINK_STATUS to the outstation.
Definition: dnp3.h:2380
dnp3_restart_delay_t dnp3_restart_delay_not_supported()
Creates a restart delay that indicates that this operation is not supported.
static const char * dnp3_port_state_to_string(dnp3_port_state_t value)
Converts a dnp3_port_state_t to a string.
Definition: dnp3.h:1083
Outstation was unable to parse the object headers and ignored the request.
Definition: dnp3.h:4709
static const char * dnp3_link_status_result_to_string(dnp3_link_status_result_t value)
Converts a dnp3_link_status_result_t to a string.
Definition: dnp3.h:3112
struct dnp3_poll_id_t dnp3_poll_id_t
Poll identifier.
Definition: dnp3.h:2241
static const char * dnp3_iin2_flag_to_string(dnp3_iin2_flag_t value)
Converts a dnp3_iin2_flag_t to a string.
Definition: dnp3.h:1739
Determined to be ON.
Definition: dnp3.h:698
Analog output status - 32-bit with flag.
Definition: dnp3.h:3909
Server failed to bind to the specified port.
Definition: dnp3.h:48
void dnp3_commands_destroy(dnp3_commands_t *command)
Destroy set of commands.
void dnp3_commands_add_g41v3_u8(dnp3_commands_t *command, uint8_t idx, float value)
Add a Analog Output command (single-precision float) with 1-byte prefix index.
uint8_t value
Byte value.
Definition: dnp3.h:1638
uint64_t delay
Delay value returned by the outstation. Valid only if dnp3_restart_result_t::error is DNP3_RESTART_ER...
Definition: dnp3.h:3034
void dnp3_endpoint_list_destroy(dnp3_endpoint_list_t *list)
Delete a previously allocated endpoint list.
bool dnp3_database_update_binary_output_status(dnp3_database_t *db, dnp3_binary_output_status_t value, dnp3_update_options_t options)
Update a Binary Output Status point.
Logging can only be configured once.
Definition: dnp3.h:58
static dnp3_serial_port_settings_t dnp3_serial_port_settings_init()
Initialize dnp3_serial_port_settings_t to default values.
Definition: dnp3.h:1576
dnp3_auto_time_sync_t auto_time_sync
Automatic time synchronization configuration.
Definition: dnp3.h:2372
dnp3_stop_bits_t stop_bits
Number of bits to use to signal the end of a character.
Definition: dnp3.h:1571
struct dnp3_flags_t dnp3_flags_t
Collection of individual flag bits represented by an underlying mask value.
Definition: dnp3.h:606
Binary Input Event - With absolute time.
Definition: dnp3.h:1143
Collection of individual flag bits represented by an underlying mask value.
Definition: dnp3.h:609
command not accepted because the requested function is specifically blocked at the outstation (value ...
Definition: dnp3.h:4889
dnp3_event_double_bit_binary_variation_t event_variation
Default event variation.
Definition: dnp3.h:3407
dnp3_app_decode_level_t application
Controls application fragment decoding.
Definition: dnp3.h:382
Perform automatic time sync with Record Current Time (0x18) function code.
Definition: dnp3.h:2338
struct dnp3_iin2_t dnp3_iin2_t
Second IIN byte.
Definition: dnp3.h:1699
Callbacks for a particular outstation association.
Definition: dnp3.h:2452
bool update_static
Optionnaly bypass updating the static database (the current value)
Definition: dnp3.h:3234
The provided value was invalid (translated to PARAM_ERROR)
Definition: dnp3.h:4397
void dnp3_commands_add_g12v1_u16(dnp3_commands_t *command, uint16_t idx, dnp3_g12v1_t header)
Add a CROB with 2-byte prefix index.
uint16_t max_counter
Maximum number of Counter events (g22)
Definition: dnp3.h:4247
static dnp3_event_classes_t dnp3_event_classes_init(bool class1, bool class2, bool class3)
Initialize dnp3_event_classes_t to default values.
Definition: dnp3.h:2272
void(* on_complete)(dnp3_time_sync_result_t, void *)
Called when the timesync task reached completion or failed.
Definition: dnp3.h:2950
dnp3_iin2_flag_t
Second IIN bit flags.
Definition: dnp3.h:1720
Binary input - with flags.
Definition: dnp3.h:3257
Analog Output Event - 32-bit without time.
Definition: dnp3.h:1275
Value is in seconds (corresponds to g51v1)
Definition: dnp3.h:4299
struct dnp3_link_status_callback_t dnp3_link_status_callback_t
Handler for link status check.
struct dnp3_application_iin_t dnp3_application_iin_t
Application-controlled IIN bits.
Definition: dnp3.h:4318
static dnp3_restart_delay_t dnp3_restart_delay_init(dnp3_restart_delay_type_t restart_type, uint16_t value)
Initialize dnp3_restart_delay_t to default values.
Definition: dnp3.h:4367
dnp3_param_error_t dnp3_runtime_new(dnp3_runtime_config_t config, dnp3_runtime_t **out)
Creates a new runtime for running the protocol stack.
dnp3_time_sync_result_t
Result of a time sync operation.
Definition: dnp3.h:2883
static const char * dnp3_app_decode_level_to_string(dnp3_app_decode_level_t value)
Converts a dnp3_app_decode_level_t to a string.
Definition: dnp3.h:288
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:3133
uint16_t rx_buffer_size
RX buffer size.
Definition: dnp3.h:2066
void * ctx
Context data.
Definition: dnp3.h:4522
Outstation shall assign the events generated by the points specified by the objects in the request to...
Definition: dnp3.h:4610
dnp3_flags_t flags
Point flags.
Definition: dnp3.h:810
struct dnp3_timestamp_utc_t dnp3_timestamp_utc_t
Timestamp value returned by dnp3_association_handler_t::get_current_time.
Definition: dnp3.h:2413
Analog Output Event - Double-preicions floating point with time.
Definition: dnp3.h:1289
struct dnp3_request_header_t dnp3_request_header_t
Application-layer header for requests.
Definition: dnp3.h:4677
double value
Point value.
Definition: dnp3.h:931
Outstation shall return a file authentication key (value == 29)
Definition: dnp3.h:4624
timeout occurred before receiving a response
Definition: dnp3.h:2599
dnp3_command_status_t(* select_g41v4)(double, uint16_t, dnp3_database_t *, void *)
Select an analog output, but do not operate.
Definition: dnp3.h:5065
operate the control via a DirectOperate request
Definition: dnp3.h:4940
dnp3_log_level_t
Log level.
Definition: dnp3.h:113
static const char * dnp3_event_double_bit_binary_variation_to_string(dnp3_event_double_bit_binary_variation_t value)
Converts a dnp3_event_double_bit_binary_variation_t to a string.
Definition: dnp3.h:3386
uint16_t max_analog
Maximum number of Analog Input events (g32)
Definition: dnp3.h:4251
bool con
Requires confirmation.
Definition: dnp3.h:457
Frozen Counter event - 32-bit with flag.
Definition: dnp3.h:3695
void * ctx
Context data.
Definition: dnp3.h:1107
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.
struct dnp3_database_t dnp3_database_t
Internal database access.
Definition: dnp3.h:3168
dnp3_operate_type_t
Enumeration describing how the master requested the control operation.
Definition: dnp3.h:4935
dnp3_param_error_t dnp3_master_channel_create_serial(dnp3_runtime_t *runtime, dnp3_master_channel_config_t config, const char *path, dnp3_serial_port_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.
Analog Input - Double-precision floating point with flags.
Definition: dnp3.h:1233
dnp3_param_error_t dnp3_database_get_frozen_counter(dnp3_database_t *db, uint16_t index, dnp3_frozen_counter_t *out)
Get a Frozen Counter point.
Analog Input Event - Double-precision floating point without time.
Definition: dnp3.h:1247
something is stopping the command, often a local/remote interlock (value == 6)
Definition: dnp3.h:4871
dnp3_data_bits_t
Number of bits per character.
Definition: dnp3.h:1453
Frozen Counter event - 16-bit with flag.
Definition: dnp3.h:3697
static dnp3_frozen_counter_t dnp3_frozen_counter_init(uint16_t index, uint32_t value, dnp3_flags_t flags, dnp3_timestamp_t time)
Initialize dnp3_frozen_counter_t to default values.
Definition: dnp3.h:903
struct dnp3_control_handler_t dnp3_control_handler_t
Callbacks for handling controls.
dnp3_freeze_result_t
Result of a freeze operation.
Definition: dnp3.h:4439
static const char * dnp3_read_type_to_string(dnp3_read_type_t value)
Converts a dnp3_read_type_t to a string.
Definition: dnp3.h:1892
double value
Point value.
Definition: dnp3.h:972
command requires being selected before operate, configuration issue (value == 2)
Definition: dnp3.h:4863
Binary input event - with absolute time.
Definition: dnp3.h:3279
void(* on_change)(dnp3_client_state_t, void *)
Called when the client state changed.
Definition: dnp3.h:2127
Outstation ignored the broadcast message b/c it is disabled by configuration.
Definition: dnp3.h:4707
void dnp3_runtime_destroy(dnp3_runtime_t *runtime)
Destroy a runtime.
struct dnp3_binary_output_status_t dnp3_binary_output_status_t
BinaryOutputStatus point.
Definition: dnp3.h:800
static dnp3_binary_output_status_t dnp3_binary_output_status_init(uint16_t index, bool value, dnp3_flags_t flags, dnp3_timestamp_t time)
Initialize dnp3_binary_output_status_t to default values.
Definition: dnp3.h:821
dnp3_address_filter_t * dnp3_address_filter_any()
Create an address filter that accepts any IP address.
dnp3_op_type_t op_type
This field is used in conjunction with the tcc field to specify a control operation.
Definition: dnp3.h:555
static const char * dnp3_write_time_result_to_string(dnp3_write_time_result_t value)
Converts a dnp3_write_time_result_t to a string.
Definition: dnp3.h:4405
Unsolicited message.
Definition: dnp3.h:1882
struct dnp3_time_sync_task_callback_t dnp3_time_sync_task_callback_t
Handler for time synchronization tasks.
Analog Output - Double-precision floating point.
Definition: dnp3.h:1271
static dnp3_frozen_counter_config_t dnp3_frozen_counter_config_init()
Initialize dnp3_frozen_counter_config_t to default values.
Definition: dnp3.h:3737
dnp3_param_error_t dnp3_database_get_double_bit_binary(dnp3_database_t *db, uint16_t index, dnp3_double_bit_binary_t *out)
Get a Double-Bit Binary Input point.
Callback interface for receiving updates about the state of a serial port.
Definition: dnp3.h:1096
bool dnp3_database_add_analog_output_status(dnp3_database_t *db, uint16_t index, dnp3_event_class_t point_class, dnp3_analog_output_status_config_t config)
Add a new Analog Output Status point.
Time delay - Fine.
Definition: dnp3.h:1303
Value is in milliseconds (corresponds to g51v2)
Definition: dnp3.h:4301
Outstation has restarted.
Definition: dnp3.h:1670
bool dnp3_database_add_double_bit_binary(dnp3_database_t *db, uint16_t index, dnp3_event_class_t point_class, dnp3_double_bit_binary_config_t config)
Add a new Double-Bit Binary Input point.
void(* handle_binary_output_status)(dnp3_header_info_t, dnp3_binary_output_status_iterator_t *, void *)
Handle binary output status data.
Definition: dnp3.h:1936
bool need_time
IIN1.4 - Time synchronization is required.
Definition: dnp3.h:4325
Restart mode not supported.
Definition: dnp3.h:4297
The device indicates the timestamp may be not be synchronized.
Definition: dnp3.h:632
Class 3 event.
Definition: dnp3.h:3180
Outstation transaction interface.
Definition: dnp3.h:5191
Maximum number of events for each type.
Definition: dnp3.h:4238
dnp3_static_analog_variation_t
Static analog variation.
Definition: dnp3.h:3776
struct dnp3_classes_t dnp3_classes_t
Class 0, 1, 2 and 3 config.
Definition: dnp3.h:2291
static const char * dnp3_qualifier_code_to_string(dnp3_qualifier_code_t value)
Converts a dnp3_qualifier_code_t to a string.
Definition: dnp3.h:1836
aptures any value not defined in the enumeration
Definition: dnp3.h:4899
Perform a Select and Operate (0x03 then 0x04)
Definition: dnp3.h:2755
Result of a restart task.
Definition: dnp3.h:3028
Counter configuration.
Definition: dnp3.h:3604
struct dnp3_address_filter_t dnp3_address_filter_t
Outstation address filter.
Definition: dnp3.h:5261
dnp3_classes_t startup_integrity_classes
Startup integrity classes to ask on master startup and when an outstation restart is detected.
Definition: dnp3.h:2369
bool dnp3_database_add_counter(dnp3_database_t *db, uint16_t index, dnp3_event_class_t point_class, dnp3_counter_config_t config)
Add a new Counter point.
static dnp3_counter_t dnp3_counter_init(uint16_t index, uint32_t value, dnp3_flags_t flags, dnp3_timestamp_t time)
Initialize dnp3_counter_t to default values.
Definition: dnp3.h:862
Perform automatic time sync with Delay Measurement (0x17) function code.
Definition: dnp3.h:2340
static const char * dnp3_command_status_to_string(dnp3_command_status_t value)
Converts a dnp3_command_status_t to a string.
Definition: dnp3.h:4905
struct dnp3_master_channel_t dnp3_master_channel_t
Represents a communication channel for a master station.
Definition: dnp3.h:2159
void dnp3_outstation_destroy(dnp3_outstation_t *outstation)
Free resources of the outstation.
static const char * dnp3_time_sync_mode_to_string(dnp3_time_sync_mode_t value)
Converts a dnp3_time_sync_mode_t to a string.
Definition: dnp3.h:2872
Analog Output Event - Single-precision floating point without time.
Definition: dnp3.h:1283
void dnp3_octet_string_destroy(dnp3_octet_string_value_t *octet_string)
Deallocate an octet string.
dnp3_iin1_t iin1
First IIN byte.
Definition: dnp3.h:1766
void(* end_fragment)(dnp3_read_type_t, dnp3_response_header_t, void *)
Marks the end of a fragment.
Definition: dnp3.h:1918
Double-bit Binary Input - Packed format.
Definition: dnp3.h:1149
dnp3_event_binary_output_status_variation_t event_variation
Default event variation.
Definition: dnp3.h:3503
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:1105
Outstation shall return the data specified by the objects in the request (value == 1)
Definition: dnp3.h:4568
dnp3_event_mode_t event_mode
Determines how/if an event is produced.
Definition: dnp3.h:3237
dnp3_event_buffer_config_t dnp3_event_buffer_config_all_types(uint16_t max)
Initialize an event buffer configuration with the same maximum values for all types.
static dnp3_outstation_config_t dnp3_outstation_config_init(uint16_t outstation_address, uint16_t master_address)
Initialize dnp3_outstation_config_t to default values.
Definition: dnp3.h:4211
Frozen Counter - 32-bit with flag.
Definition: dnp3.h:3661
void(* handle_binary)(dnp3_header_info_t, dnp3_binary_iterator_t *, void *)
Handle binary input data.
Definition: dnp3.h:1924
bool dnp3_database_remove_analog_output_status(dnp3_database_t *db, uint16_t index)
Remove an Analog Output Status point.
static const char * dnp3_connection_state_to_string(dnp3_connection_state_t value)
Converts a dnp3_connection_state_t to a string.
Definition: dnp3.h:5146
void(* handle_frozen_counter)(dnp3_header_info_t, dnp3_frozen_counter_iterator_t *, void *)
Handle frozen counter input data.
Definition: dnp3.h:1948
Same as DirectOperate but outstation shall not send a response (value == 6)
Definition: dnp3.h:4578
dnp3_command_mode_t
Command operation mode.
Definition: dnp3.h:2750
struct dnp3_restart_delay_t dnp3_restart_delay_t
Restart delay used by dnp3_outstation_application_t::cold_restart and dnp3_outstation_application_t::...
Definition: dnp3.h:4350
uint64_t id
Unique poll id assigned by the association.
Definition: dnp3.h:2251
Class objects - Class 1 data.
Definition: dnp3.h:1307
static const char * dnp3_flow_control_to_string(dnp3_flow_control_t value)
Converts a dnp3_flow_control_t to a string.
Definition: dnp3.h:1494
uint32_t deadband
Deadband value.
Definition: dnp3.h:3614
RESERVED (3)
Definition: dnp3.h:493
dnp3_timestamp_t time
Point timestamp.
Definition: dnp3.h:812
struct dnp3_client_state_listener_t dnp3_client_state_listener_t
Callback for monitoring the client TCP connection state.
operate the control via a DirectOperateNoAck request
Definition: dnp3.h:4942
Same as FreezeClear but outstation shall not send a response (value == 10)
Definition: dnp3.h:4586
dnp3_time_sync_mode_t
Time synchronization mode.
Definition: dnp3.h:2861
Event classes.
Definition: dnp3.h:2257
dnp3_write_time_result_t
Write time result used by dnp3_outstation_application_t::write_absolute_time.
Definition: dnp3.h:4392
dnp3_event_analog_variation_t
Event analog variation.
Definition: dnp3.h:3810
Outstation has Class 2 events not reported yet.
Definition: dnp3.h:1660
Options that control how the update is performed.
Definition: dnp3.h:3230
Request contains an unknown point.
Definition: dnp3.h:1725
void * ctx
Context data.
Definition: dnp3.h:2955
struct dnp3_port_state_listener_t dnp3_port_state_listener_t
Callback interface for receiving updates about the state of a serial port.
8-bit count (0x07)
Definition: dnp3.h:1822
dnp3_param_error_t dnp3_database_get_counter(dnp3_database_t *db, uint16_t index, dnp3_counter_t *out)
Get a Counter point.
struct dnp3_outstation_features_t dnp3_outstation_features_t
Optional outstation features that can be enabled or disabled.
Definition: dnp3.h:4118
Waiting to perform an open retry.
Definition: dnp3.h:1073
static dnp3_port_state_listener_t dnp3_port_state_listener_init(void(*on_change)(dnp3_port_state_t, void *), void(*on_destroy)(void *arg), void *ctx)
Initialize a dnp3_port_state_listener_t interface.
Definition: dnp3.h:1114
Solicited response.
Definition: dnp3.h:1614
Analog Input - 32-bit without flag.
Definition: dnp3.h:1227
dnp3_static_analog_output_status_variation_t static_variation
Default static variation.
Definition: dnp3.h:3980
Double-bit Binary Input - With flags.
Definition: dnp3.h:1151
dnp3_timestamp_t dnp3_timestamp_not_synchronized(uint64_t value)
Creates a not synchronized timestamp struct.
Output formatted as JSON.
Definition: dnp3.h:174
double deadband
Deadband value.
Definition: dnp3.h:3862
void * ctx
Context data.
Definition: dnp3.h:2132
dnp3_param_error_t dnp3_outstation_create_serial_session(dnp3_runtime_t *runtime, const char *serial_path, dnp3_serial_port_settings_t settings, dnp3_outstation_config_t config, dnp3_event_buffer_config_t event_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.
command not accepted because the device cannot process any more activities than are presently in prog...
Definition: dnp3.h:4881
Analog input event - double-precision, floating-point with time.
Definition: dnp3.h:3827
Counter - 16-bit with flags.
Definition: dnp3.h:1181
Client is shutting down.
Definition: dnp3.h:2100
uint32_t max_unsolicited_retries
Maximum number of unsolicited retries.
Definition: dnp3.h:4184
void(* handle_double_bit_binary)(dnp3_header_info_t, dnp3_double_bit_binary_iterator_t *, void *)
Handle double-bit binary input data.
Definition: dnp3.h:1930
Binary Input Event - Default variation.
Definition: dnp3.h:1139
Outstation did not clear the NEED_TIME IIN bit.
Definition: dnp3.h:2896
struct dnp3_class_zero_config_t dnp3_class_zero_config_t
Controls which types are reported during a Class 0 read.
Definition: dnp3.h:4068
static const char * dnp3_response_function_to_string(dnp3_response_function_t value)
Converts a dnp3_response_function_t to a string.
Definition: dnp3.h:1622
Analog Input - Default variation.
Definition: dnp3.h:1221
A simple text-based format.
Definition: dnp3.h:172
Counter event - 16-bit with flag.
Definition: dnp3.h:3579
Frozen Counter Event - Default variation.
Definition: dnp3.h:1211
Produce an event whether the value has changed or not.
Definition: dnp3.h:3206
dnp3_byte_t * dnp3_byte_next(dnp3_byte_iterator_t *it)
Get the next value of the iterator.
Detected a clock rollback.
Definition: dnp3.h:2888
There was activity on the link, but it wasn't a LINK_STATUS.
Definition: dnp3.h:3104
Analog Output Event - 16-bit without time.
Definition: dnp3.h:1277
static const char * dnp3_static_binary_variation_to_string(dnp3_static_binary_variation_t value)
Converts a dnp3_static_binary_variation_t to a string.
Definition: dnp3.h:3263
uint16_t unsolicited_buffer_size
Unsolicited response buffer size.
Definition: dnp3.h:4164
Binary output - packed format.
Definition: dnp3.h:3453
static dnp3_double_bit_binary_config_t dnp3_double_bit_binary_config_init()
Initialize dnp3_double_bit_binary_config_t to default values.
Definition: dnp3.h:3412
dnp3_event_binary_variation_t event_variation
Default event variation.
Definition: dnp3.h:3308
dnp3_param_error_t dnp3_master_channel_sync_time(dnp3_master_channel_t *channel, 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.
Copy the current value of a counter to the associated point.
Definition: dnp3.h:4420
dnp3_frozen_counter_t * dnp3_frozencounter_next(dnp3_frozen_counter_iterator_t *it)
Get the next value of the iterator.
dnp3_timestamp_utc_t dnp3_timestamp_utc_invalid()
Create an invalid timestamp value.
struct dnp3_outstation_transaction_t dnp3_outstation_transaction_t
Outstation transaction interface.
System time not available.
Definition: dnp3.h:2898
Binary Output Event - With time.
Definition: dnp3.h:1171
Overflow in calculation.
Definition: dnp3.h:2894
static const char * dnp3_event_binary_variation_to_string(dnp3_event_binary_variation_t value)
Converts a dnp3_event_binary_variation_t to a string.
Definition: dnp3.h:3287
dnp3_analog_t * dnp3_analog_next(dnp3_analog_iterator_t *it)
Get the next value of the iterator.
dnp3_timestamp_t dnp3_timestamp_synchronized(uint64_t value)
Creates a synchronized timestamp struct.
void(* on_destroy)(void *arg)
Callback when the underlying owner doesn't need the interface anymore.
Definition: dnp3.h:5077
Application-controlled IIN bits.
Definition: dnp3.h:4321
bool dnp3_database_update_frozen_counter(dnp3_database_t *db, dnp3_frozen_counter_t value, dnp3_update_options_t options)
Update an Frozen Counter point.
Binary Input - Packed format.
Definition: dnp3.h:1135
bool value
Point value.
Definition: dnp3.h:808
bool queue
This field is obsolete and should always be 0.
Definition: dnp3.h:553
dnp3_static_binary_output_status_variation_t
Static binary output status variation.
Definition: dnp3.h:3450
Analog Output Status - 16-bit with flags.
Definition: dnp3.h:1257
static dnp3_byte_t dnp3_byte_init(uint8_t value)
Initialize dnp3_byte_t to default values.
Definition: dnp3.h:1017
dnp3_trip_close_code_t tcc
This field is used in conjunction with the op_type field to specify a control operation.
Definition: dnp3.h:548
static const char * dnp3_restart_error_to_string(dnp3_restart_error_t value)
Converts a dnp3_restart_error_t to a string.
Definition: dnp3.h:3009
Outstation shall open a file (value == 25)
Definition: dnp3.h:4616
bool class1
Class 1 events.
Definition: dnp3.h:2260
void dnp3_master_channel_destroy(dnp3_master_channel_t *channel)
Shutdown a dnp3_master_channel_t and release all resources.
uint32_t deadband
Deadband value.
Definition: dnp3.h:3732
Writing time is not supported by this outstation (translated to NO_FUNC_CODE_SUPPORT).
Definition: dnp3.h:4395
Frozen Counter - 32-bit without flag.
Definition: dnp3.h:3669
static const char * dnp3_event_frozen_counter_variation_to_string(dnp3_event_frozen_counter_variation_t value)
Converts a dnp3_event_frozen_counter_variation_t to a string.
Definition: dnp3.h:3707
Counter event - 16-bit with flag and time.
Definition: dnp3.h:3583
uint16_t max_read_request_headers
Maximum number of headers that will be processed in a READ request.
Definition: dnp3.h:4199
Parity bit sets odd number of 1 bits.
Definition: dnp3.h:1511
dnp3_double_bit_binary_t * dnp3_doublebitbinary_next(dnp3_double_bit_binary_iterator_t *it)
Get the next value of the iterator.
dnp3_byte_iterator_t * value
Point value.
Definition: dnp3.h:1042
uint32_t value
Point value.
Definition: dnp3.h:849
LATCH_OFF(4)
Definition: dnp3.h:523
dnp3_flags_t flags
Point flags.
Definition: dnp3.h:933
Analog output event - double-precision, floating-point without time.
Definition: dnp3.h:3947
dnp3_stop_bits_t
Number of stop bits.
Definition: dnp3.h:1531
bool clear
Support for this field is optional. When the clear bit is set, the device shall remove pending contro...
Definition: dnp3.h:550
static const char * dnp3_operate_type_to_string(dnp3_operate_type_t value)
Converts a dnp3_operate_type_t to a string.
Definition: dnp3.h:4948
uint16_t max_frozen_counter
Maximum number of Frozen Counter events (g23)
Definition: dnp3.h:4249
dnp3_command_status_t(* select_g41v1)(int32_t, uint16_t, dnp3_database_t *, void *)
Select an analog output, but do not operate.
Definition: dnp3.h:5002
Analog Input Event - Single-precision floating point with time.
Definition: dnp3.h:1249
dnp3_event_classes_t dnp3_event_classes_none()
Initialize all three event classes to false.
static dnp3_iin2_t dnp3_iin2_init(uint8_t value)
Initialize dnp3_iin2_t to default values.
Definition: dnp3.h:1711
static const char * dnp3_event_binary_output_status_variation_to_string(dnp3_event_binary_output_status_variation_t value)
Converts a dnp3_event_binary_output_status_variation_t to a string.
Definition: dnp3.h:3483
Debugging log level.
Definition: dnp3.h:122
struct dnp3_binary_output_status_config_t dnp3_binary_output_status_config_t
Binary Output Status configuration.
Definition: dnp3.h:3493
Analog output status - single-precision, floating-point with flag.
Definition: dnp3.h:3913
Double-bit binary input - packed format.
Definition: dnp3.h:3354
dnp3_restart_error_t
Result of a restart operation.
Definition: dnp3.h:2986
static const char * dnp3_transport_decode_level_to_string(dnp3_transport_decode_level_t value)
Converts a dnp3_transport_decode_level_t to a string.
Definition: dnp3.h:314
Server already started.
Definition: dnp3.h:46
static const char * dnp3_static_counter_variation_to_string(dnp3_static_counter_variation_t value)
Converts a dnp3_static_counter_variation_t to a string.
Definition: dnp3.h:3561
static const char * dnp3_auto_time_sync_to_string(dnp3_auto_time_sync_t value)
Converts a dnp3_auto_time_sync_t to a string.
Definition: dnp3.h:2346
timeout occurred before receiving a response
Definition: dnp3.h:2785
Optional outstation features that can be enabled or disabled.
Definition: dnp3.h:4121
uint16_t value
Expected delay before the outstation comes back online.
Definition: dnp3.h:4360
static dnp3_connect_strategy_t dnp3_connect_strategy_init()
Initialize dnp3_connect_strategy_t to default values.
Definition: dnp3.h:2182
Double-bit binary input event - with absolute time.
Definition: dnp3.h:3378
void(* handle_analog)(dnp3_header_info_t, dnp3_analog_iterator_t *, void *)
Handle analog input data.
Definition: dnp3.h:1954
Outstation shall copy the point data values specified by the objects in the request to a separate fre...
Definition: dnp3.h:4580
Frozen Counter - 16-bit without flag.
Definition: dnp3.h:3671
struct dnp3_analog_t dnp3_analog_t
Analog point.
Definition: dnp3.h:923
uint32_t value
Point value.
Definition: dnp3.h:890
static const char * dnp3_phys_decode_level_to_string(dnp3_phys_decode_level_t value)
Converts a dnp3_phys_decode_level_t to a string.
Definition: dnp3.h:364
dnp3_event_frozen_counter_variation_t event_variation
Default event variation.
Definition: dnp3.h:3729
Analog Output Event - 16-bit with time.
Definition: dnp3.h:1281
void * ctx
Context data.
Definition: dnp3.h:2829
dnp3_timestamp_utc_t dnp3_timestamp_utc_valid(uint64_t value)
Create a valid timestamp value.
static dnp3_analog_config_t dnp3_analog_config_init()
Initialize dnp3_analog_config_t to default values.
Definition: dnp3.h:3867
No parity bit.
Definition: dnp3.h:1509
struct dnp3_restart_result_t dnp3_restart_result_t
Result of a restart task.
Definition: dnp3.h:3025
Outstation time delay exceeded the response delay.
Definition: dnp3.h:2892
static const char * dnp3_parity_to_string(dnp3_parity_t value)
Converts a dnp3_parity_t to a string.
Definition: dnp3.h:1519
Analog Output - Default variation.
Definition: dnp3.h:1263
Analog output event - single-precision, floating-point with time.
Definition: dnp3.h:3949
Never produce an event regardless of change.
Definition: dnp3.h:3208
bool auto_integrity_scan_on_buffer_overflow
Automatic integrity scan when an EVENT_BUFFER_OVERFLOW is detected.
Definition: dnp3.h:2383
struct dnp3_serial_port_settings_t dnp3_serial_port_settings_t
Serial port settings.
Definition: dnp3.h:1552
Analog input event - 32-bit with time.
Definition: dnp3.h:3817
static dnp3_response_header_t dnp3_response_header_init(dnp3_control_t control, dnp3_response_function_t func, dnp3_iin_t iin)
Initialize dnp3_response_header_t to default values.
Definition: dnp3.h:1802
bool broadcast
Process valid broadcast messages.
Definition: dnp3.h:4128
static dnp3_outstation_features_t dnp3_outstation_features_init()
Initialize dnp3_outstation_features_t to default values.
Definition: dnp3.h:4136
Decode nothing.
Definition: dnp3.h:304
Analog output event - double-precision, floating-point with time.
Definition: dnp3.h:3951
dnp3_timestamp_t time
Point timestamp.
Definition: dnp3.h:894
bool print_level
optionally print the log level as part to the message string
Definition: dnp3.h:206
Point does not exist.
Definition: dnp3.h:60
Frozen Counter - 32-bit without flag.
Definition: dnp3.h:1197
Decode the header.
Definition: dnp3.h:331
Counter Event - 32-bit with flags and time.
Definition: dnp3.h:1207
Analog input - single-precision, floating-point with flag.
Definition: dnp3.h:3787