pub struct BebobAvc(/* private fields */);
Expand description
The implementation of AV/C transaction with quirks specific to BeBoB solution.
It seems a unique quirk that the status code in response frame for some AV/C commands is against AV/C general specification in control operation.
Implementations§
Source§impl BebobAvc
impl BebobAvc
pub fn bind(&self, node: &impl IsA<FwNode>) -> Result<(), Error>
pub fn control<O: AvcOp + AvcControl>( &self, addr: &AvcAddr, op: &mut O, timeout_ms: u32, ) -> Result<(), Error>
pub fn status<O: AvcOp + AvcStatus>( &self, addr: &AvcAddr, op: &mut O, timeout_ms: u32, ) -> Result<(), Error>
Trait Implementations§
Source§impl Ta1394Avc<Error> for BebobAvc
impl Ta1394Avc<Error> for BebobAvc
Source§fn transaction(
&self,
command_frame: &[u8],
timeout_ms: u32,
) -> Result<Vec<u8>, Error>
fn transaction( &self, command_frame: &[u8], timeout_ms: u32, ) -> Result<Vec<u8>, Error>
Transmit given command frame and return received response frame. Read more
fn control<O: AvcOp + AvcControl>( &self, addr: &AvcAddr, op: &mut O, timeout_ms: u32, ) -> Result<(), Ta1394AvcError<Error>>
Source§const FRAME_SIZE: usize = 512usize
const FRAME_SIZE: usize = 512usize
The maximum size of frame in both command and response.
Source§const RESP_CODE_MASK: u8 = 15u8
const RESP_CODE_MASK: u8 = 15u8
The mask for first byte of response frame to detect status code. The rest bits express
Command/transaction set (CTS) but appears not to be used actually.
fn compose_command_frame( ctype: AvcCmdType, addr: &AvcAddr, opcode: u8, operands: &[u8], ) -> Result<Vec<u8>, Ta1394AvcError<T>>
fn detect_response_operands<'a>( frame: &'a [u8], addr: &AvcAddr, opcode: u8, ) -> Result<(AvcRespCode, &'a [u8]), AvcRespParseError>
fn status<O>( &self, addr: &AvcAddr, op: &mut O, timeout_ms: u32, ) -> Result<(), Ta1394AvcError<T>>
fn specific_inquiry<O>(
&self,
addr: &AvcAddr,
op: &mut O,
timeout_ms: u32,
) -> Result<(), Ta1394AvcError<T>>where
O: AvcOp + AvcControl,
fn notify<O>( &self, addr: &AvcAddr, op: &mut O, timeout_ms: u32, ) -> Result<(), Ta1394AvcError<T>>
Auto Trait Implementations§
impl Freeze for BebobAvc
impl RefUnwindSafe for BebobAvc
impl !Send for BebobAvc
impl !Sync for BebobAvc
impl Unpin for BebobAvc
impl UnwindSafe for BebobAvc
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more