use crate::services::file_record::{PduDataBytes, SubRequest};
use mbus_core::{data_unit::common::Pdu, errors::MbusError, function_codes::public::FunctionCode};
pub(super) struct ReqPduCompiler {}
impl ReqPduCompiler {
pub(super) fn read_file_record_request(sub_request: &SubRequest) -> Result<Pdu, MbusError> {
let data_bytes = sub_request.to_sub_req_pdu_bytes()?;
let data_bytes_len = data_bytes.len() as u8;
Ok(Pdu::new(
FunctionCode::ReadFileRecord,
data_bytes,
data_bytes_len,
))
}
pub(super) fn write_file_record_request(sub_request: &SubRequest) -> Result<Pdu, MbusError> {
let data_bytes = sub_request.to_sub_req_pdu_bytes()?;
let data_bytes_len = data_bytes.len() as u8;
Ok(Pdu::new(
FunctionCode::WriteFileRecord,
data_bytes,
data_bytes_len,
))
}
}