dnp3 (C++ API) 1.1.0
dnp3::OutstationApplication Class Referenceabstract

Dynamic information required by the outstation from the user application. More...

#include <dnp3.hpp>

Public Member Functions

virtual uint16_t get_processing_delay_ms ()=0
 Returns the DELAY_MEASUREMENT delay. More...
 
virtual WriteTimeResult write_absolute_time (uint64_t time)=0
 Handle a write of the absolute time during time synchronization procedures. More...
 
virtual ApplicationIin get_application_iin ()=0
 Returns the application-controlled IIN bits. More...
 
virtual RestartDelay cold_restart ()=0
 Request that the outstation perform a cold restart (IEEE-1815 2012, p. 58) More...
 
virtual RestartDelay warm_restart ()=0
 Request that the outstation perform a warm restart (IEEE-1815 2012, p. 58) More...
 
virtual FreezeResult freeze_counters_all (FreezeType freeze_type, DatabaseHandle &database_handle)=0
 Freeze all the counters. More...
 
virtual FreezeResult freeze_counters_range (uint16_t start, uint16_t stop, FreezeType freeze_type, DatabaseHandle &database_handle)=0
 Freeze a range of counters. More...
 

Detailed Description

Dynamic information required by the outstation from the user application.

Note
this class is an "interface" and only has pure virtual methods

Member Function Documentation

◆ cold_restart()

virtual RestartDelay dnp3::OutstationApplication::cold_restart ( )
pure virtual

Request that the outstation perform a cold restart (IEEE-1815 2012, p. 58)

The outstation will not automatically restart. It is the responsibility of the user application to handle this request and take the appropriate action.

Returns
The restart delay

◆ freeze_counters_all()

virtual FreezeResult dnp3::OutstationApplication::freeze_counters_all ( FreezeType  freeze_type,
DatabaseHandle database_handle 
)
pure virtual

Freeze all the counters.

Parameters
freeze_typeType of freeze operation
database_handleDatabase handle
Returns
Result of the freeze operation

◆ freeze_counters_range()

virtual FreezeResult dnp3::OutstationApplication::freeze_counters_range ( uint16_t  start,
uint16_t  stop,
FreezeType  freeze_type,
DatabaseHandle database_handle 
)
pure virtual

Freeze a range of counters.

Parameters
startStart index to freeze (inclusive)
stopStop index to freeze (inclusive)
freeze_typeType of freeze operation
database_handleDatabase handle
Returns
Result of the freeze operation

◆ get_application_iin()

virtual ApplicationIin dnp3::OutstationApplication::get_application_iin ( )
pure virtual

Returns the application-controlled IIN bits.

Returns
Application IIN bits

◆ get_processing_delay_ms()

virtual uint16_t dnp3::OutstationApplication::get_processing_delay_ms ( )
pure virtual

Returns the DELAY_MEASUREMENT delay.

The value returned by this method is used in conjunction with the DELAY_MEASUREMENT function code and returned in a g52v2 time delay object as part of a non-LAN time synchronization procedure.

It represents the processing delay from receiving the request to sending the response. This parameter should almost always use the default value of zero as only an RTOS or bare metal system would have access to this level of timing. Modern hardware can almost always respond in less than 1 millisecond anyway.

For more information, see IEEE-1815 2012, p. 64.

Returns
Processing delay, in milliseconds

◆ warm_restart()

virtual RestartDelay dnp3::OutstationApplication::warm_restart ( )
pure virtual

Request that the outstation perform a warm restart (IEEE-1815 2012, p. 58)

The outstation will not automatically restart. It is the responsibility of the user application to handle this request and take the appropriate action.

Returns
The restart delay

◆ write_absolute_time()

virtual WriteTimeResult dnp3::OutstationApplication::write_absolute_time ( uint64_t  time)
pure virtual

Handle a write of the absolute time during time synchronization procedures.

Parameters
timeReceived time in milliseconds since EPOCH (only 48 bits are used)
Returns
Result of the write time operation

The documentation for this class was generated from the following file: