parameters: (self)
return_statement: return CanMessage(
              arbitration_id=ArbitrationId(id=m.arbitration_id), data=m.data
          )
docstring: Read a message.
  
          Returns:
              A can message
  
          Raises:
              ErrorFrameCanError
docstring_summary: Read a message.
docstring_tokens: Read a message .
function: async def read(self) -> CanMessage:
          """Read a message.
  
          Returns:
              A can message
  
          Raises:
              ErrorFrameCanError
          """
          m: Message = await self._reader.get_message()
          if m.is_error_frame:
              raise ErrorFrameCanError(message=repr(m))
  
          return CanMessage(
              arbitration_id=ArbitrationId(id=m.arbitration_id), data=m.data
          )
function_tokens: async def read ( self ) -> CanMessage : m : Message = await self . _reader . get_message ( ) if m . is_error_frame : raise ErrorFrameCanError ( message = repr ( m ) ) return CanMessage ( arbitration_id = ArbitrationId ( id = m . arbitration_id ) , data = m . data )