dnp3 1.6.0

Rust implementation of DNP3 (IEEE 1815) with idiomatic bindings for C, C++, .NET, and Java
Documentation
pub(crate) use reader::*;
pub(crate) use types::*;
pub(crate) use writer::*;

use crate::app::{BufferSize, EndpointType};
use crate::link::reader::LinkModes;
use crate::link::EndpointAddress;
use crate::outstation::Feature;

#[cfg(test)]
pub(crate) mod mock;
#[cfg(not(test))]
pub(crate) mod real;

mod reader;
mod types;
mod writer;

pub(crate) fn create_master_transport_layer(
    link_modes: LinkModes,
    address: EndpointAddress,
    rx_buffer_size: BufferSize<2048, 2048>,
) -> (TransportReader, TransportWriter) {
    (
        TransportReader::master(link_modes, address, rx_buffer_size.value()),
        TransportWriter::new(EndpointType::Master, address),
    )
}

pub(crate) fn create_outstation_transport_layer(
    link_modes: LinkModes,
    address: EndpointAddress,
    self_address: Feature,
    rx_buffer_size: BufferSize,
) -> (TransportReader, TransportWriter) {
    (
        TransportReader::outstation(link_modes, address, self_address, rx_buffer_size.value()),
        TransportWriter::new(EndpointType::Outstation, address),
    )
}