Expand description
§Diagnostics over Internet Protocol Codec Crate
The purpose of this crate is to provide an easy way to encode and decode
DoIP Messages defined in the doip-definitions crate.
§Example Usage
use futures::{SinkExt, StreamExt};
use tokio::net::TcpStream;
use tokio_util::codec::Framed;
use doip_definitions::{
header::DoipVersion,
message::{DoipMessage, VehicleIdentificationRequest},
};
use doip_codec::DoipCodec;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Connect to a DoIP server
let stream = TcpStream::connect("127.0.0.1:13400").await?;
// Wrap the stream with the DoipCodec
let mut framed = Framed::new(stream, DoipCodec);
// Send a DoIP message
let request = DoipMessage::new(
DoipVersion::Iso13400_2012,
Box::new(VehicleIdentificationRequest {}),
); // Example payload
framed.send(request).await?;
// Receive a DoIP message
if let Some(response) = framed.next().await {
match response {
Ok(msg) => println!("Received message: {:?}", msg),
Err(e) => eprintln!("Failed to decode message: {}", e),
}
}
Ok(())
}Structs§
- Doip
Codec - A simple Decoder and Encoder implementation for Diagnostics over Internet Protocol.
Enums§
- Decode
Error - A wrapper to encapsulate Parser and IO errors which can occur
- Encode
Error - A wrapper to encapsulate IO errors which can occur