주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

receive

CAN 버스에서 메시지를 수신합니다

설명

message = receive(canch,numMsgs,OutputFormat="timetable")는 CAN 채널 canch에서 수신된 CAN 메시지의 타임테이블을 반환합니다. 반환된 메시지 수는 numMsgs 이하입니다. numMsgs가 지정한 것보다 사용 가능한 메시지가 적을 경우, 함수는 현재 사용 가능한 메시지를 반환합니다. 메시지가 없는 경우, 함수는 빈 배열을 반환합니다. numMsgsInf인 경우, 함수는 사용 가능한 모든 메시지를 반환합니다. 수신 가능한 메시지는 FIFO 버퍼에 보관되므로, receive는 가장 오래된 사용 가능한 메시지를 먼저 반환합니다.

메시지의 구성 요소를 이해하려면 canMessage를 참조하십시오.

OutputFormat 옵션의 값인 "timetable"는 결과가 메시지 객체가 아닌 메시지 타임테이블로 반환되도록 지정합니다. 이 출력 형식은 MATLAB®에서 CAN 메시지의 최적 성능 및 표현을 위해 권장됩니다.

채널 ProtocolMode'CAN'인 경우, message = receive(canch,numMsgs)는 타임테이블 대신 CAN 메시지 객체로 구성된 배열을 반환합니다. 채널 ProtocolMode'CAN FD'인 경우, receive 함수는 항상 타임테이블(timetable)을 반환합니다.

예제

예제

모두 축소

CAN 메시지를 타임테이블로 수신하거나 메시지 객체로 구성된 배열로 수신할 수 있습니다.

사용 가능한 모든 메시지를 타임테이블 형태로 수신합니다.

canch = canChannel("Vector", "CANCaseXL 1", 1);
start(canch)
message = receive(canch,Inf,OutputFormat="timetable");

최대 다섯 개의 메시지를 메시지 객체로 구성된 배열로 수신합니다.

message = receive(canch,5);

입력 인수

모두 축소

CAN 채널, CAN 채널 객체로 지정됨. 이것이 CAN 버스에 액세스하는 채널입니다.

예: canChannel

수신할 메시지의 최대 개수로, 숫자형 값 또는 Inf로 지정됩니다.

예: Inf

데이터형: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

출력 인수

모두 축소

채널에서 수신된 CAN 메시지, 다음 표에 명시된 유형으로 반환됨:

프로토콜 모드반환 유형
ProtocolMode = 'CAN FD'
  • 메시지 타임테이블 (항상)

ProtocolMode = 'CAN'
  • 메시지 객체 (기본값)

  • 메시지 타임테이블 (OutputFormat="timetable" 시점)

프로토콜 사양에 따라 CAN 또는 CAN FD 메시지의 경우 반환된 타임테이블의 변수가 서로 다릅니다.

버전 내역

R2009a에 개발됨

참고 항목

함수