rusty_modbus_codec/
pdu.rs1use crate::request::{
4 DiagnosticsRequest, EncapsulatedInterfaceRequest, MaskWriteRegisterRequest, ReadCoilsRequest,
5 ReadDiscreteInputsRequest, ReadFifoQueueRequest, ReadFileRecordRequest,
6 ReadHoldingRegistersRequest, ReadInputRegistersRequest, ReadWriteMultipleRegistersRequest,
7 WriteFileRecordRequest, WriteMultipleCoilsRequest, WriteMultipleRegistersRequest,
8 WriteSingleCoilRequest, WriteSingleRegisterRequest,
9};
10use crate::response::{
11 DiagnosticsResponse, EncapsulatedInterfaceResponse, ExceptionResponse,
12 GetCommEventCounterResponse, GetCommEventLogResponse, MaskWriteRegisterResponse,
13 ReadCoilsResponse, ReadDiscreteInputsResponse, ReadExceptionStatusResponse,
14 ReadFifoQueueResponse, ReadFileRecordResponse, ReadHoldingRegistersResponse,
15 ReadInputRegistersResponse, ReadWriteMultipleRegistersResponse, ReportServerIdResponse,
16 WriteFileRecordResponse, WriteMultipleCoilsResponse, WriteMultipleRegistersResponse,
17 WriteSingleCoilResponse, WriteSingleRegisterResponse,
18};
19
20#[derive(Debug, Clone, Copy)]
25pub struct PduRef<'buf> {
26 pub function_code: u8,
28 pub data: &'buf [u8],
30}
31
32#[derive(Debug)]
34pub enum RequestPdu<'buf> {
35 ReadCoils(ReadCoilsRequest),
37 ReadDiscreteInputs(ReadDiscreteInputsRequest),
39 ReadHoldingRegisters(ReadHoldingRegistersRequest),
41 ReadInputRegisters(ReadInputRegistersRequest),
43 WriteSingleCoil(WriteSingleCoilRequest),
45 WriteSingleRegister(WriteSingleRegisterRequest),
47 ReadExceptionStatus,
49 Diagnostics(DiagnosticsRequest<'buf>),
51 GetCommEventCounter,
53 GetCommEventLog,
55 WriteMultipleCoils(WriteMultipleCoilsRequest<'buf>),
57 WriteMultipleRegisters(WriteMultipleRegistersRequest<'buf>),
59 ReportServerId,
61 ReadFileRecord(ReadFileRecordRequest<'buf>),
63 WriteFileRecord(WriteFileRecordRequest<'buf>),
65 MaskWriteRegister(MaskWriteRegisterRequest),
67 ReadWriteMultipleRegisters(ReadWriteMultipleRegistersRequest<'buf>),
69 ReadFifoQueue(ReadFifoQueueRequest),
71 EncapsulatedInterface(EncapsulatedInterfaceRequest<'buf>),
73 Custom(u8, &'buf [u8]),
75}
76
77#[derive(Debug)]
79pub enum ResponsePdu<'buf> {
80 ReadCoils(ReadCoilsResponse<'buf>),
82 ReadDiscreteInputs(ReadDiscreteInputsResponse<'buf>),
84 ReadHoldingRegisters(ReadHoldingRegistersResponse<'buf>),
86 ReadInputRegisters(ReadInputRegistersResponse<'buf>),
88 WriteSingleCoil(WriteSingleCoilResponse),
90 WriteSingleRegister(WriteSingleRegisterResponse),
92 ReadExceptionStatus(ReadExceptionStatusResponse),
94 Diagnostics(DiagnosticsResponse<'buf>),
96 GetCommEventCounter(GetCommEventCounterResponse),
98 GetCommEventLog(GetCommEventLogResponse<'buf>),
100 WriteMultipleCoils(WriteMultipleCoilsResponse),
102 WriteMultipleRegisters(WriteMultipleRegistersResponse),
104 ReportServerId(ReportServerIdResponse<'buf>),
106 ReadFileRecord(ReadFileRecordResponse<'buf>),
108 WriteFileRecord(WriteFileRecordResponse<'buf>),
110 MaskWriteRegister(MaskWriteRegisterResponse),
112 ReadWriteMultipleRegisters(ReadWriteMultipleRegistersResponse<'buf>),
114 ReadFifoQueue(ReadFifoQueueResponse<'buf>),
116 EncapsulatedInterface(EncapsulatedInterfaceResponse<'buf>),
118 Custom(u8, &'buf [u8]),
120 Exception(ExceptionResponse),
122}