FMI 메시지 형식
이 섹션에서는 FMI(함수 관리 인터페이스)의 메시지 형식에 대해 설명합니다. 메시지 형식은 언어 독립적 표기법으로 표시됩니다. 메시지 형식 표기법의 세부 정보 및 메시지 형식의 내용에 대한 주요 가정은 다음과 같습니다.
예약됨은 메시지 보낸 사람의 필드가 0(숫자 필드의 경우) 또는 모든 null(이름)으로 설정되어 있음을 나타냅니다.
정의되지 않음은 필드 값이 확정되지 않음을 나타냅니다. 필드는 보낸 사람에서 설정되지 않으며 메시지 수신자가 검사해서는 안 됩니다.
Open(PLU) 요청의 opresid와 같이 2바이트를 차지하는 필드는 소프트웨어가 실행되는 프로세서에서 사용하는 일반 방향에 관계없이 가장 낮은 바이트 주소에서 가장 산술적으로 중요한 바이트로 표시됩니다. 즉, 2-바이트 값 0x1234 바이트 0x12 가장 낮은 바이트 주소에 있습니다. 그러나 다음 필드는 예외입니다.
버퍼 헤더 의 srci 및 desti 필드는 할당하는 애플리케이션만 이러한 값을 해석해야 하므로 할당하는 애플리케이션의 로컬 형식으로 저장됩니다.
요소의 시작 및 끝 필드는 항상 낮은 바이트, 높은 바이트 방향(Intel 프로세서의 일반 방향)에 저장됩니다.
메시지는 버퍼 헤더와 0개 이상의 버퍼 요소로 구성된 버퍼로 구성됩니다. 버퍼 형식에 대한 자세한 내용은 메시지를 참조 하세요.
애플리케이션은 노드 내의 모든 활성 LPI 연결에 대해 고유 인덱스(I) 값을 할당해야 합니다. 특히 Open(SSCP) 요청 은 Open(PLU)에 대한 응답으로 보내는 원본 인덱스와 달라야 합니다. 또한 0을 I 값으로 사용하면 안 됩니다. I 값이 0이면 메시지 보낸 사람이 메시지의 받는 사람을 초대하여 I 값을 할당합니다.
각 요소의 시작 필드는 trpad 필드 뒤의 요소에 있는 데이터의 첫 번째 바이트 오프셋을 제공합니다.
LUA(비논리 단위 애플리케이션) 애플리케이션의 경우 시작 은 1( trpad 필드 이후 바이트에서 데이터 시작), 10개(9바이트의 패딩이 trpad 필드와 데이터 시작 사이에 포함됨) 또는 13( trpad 필드와 데이터 시작 사이에 12바이트 패딩 포함)입니다.
LUA 애플리케이션의 경우 시작 은 메시지의 첫 번째 요소에서 4( trpad 필드와 데이터 시작 사이에 3바이트 패딩)이고 후속 요소의 경우 13(패딩 12바이트)입니다.
로컬 노드는 추가 헤더 정보에 추가 바이트를 사용합니다. 이렇게 하면 이 정보를 추가할 때 새 버퍼에 데이터를 복사할 필요가 없습니다.
startd는 0이 아닌 1부터 시작하는 dataru로의 인덱스이므로 유효한 데이터의 첫 번째 바이트는 항상 dataru[startd–1]에 있습니다.
startd가 endd보다 크면 메시지에 유효한 데이터가 없습니다.
dataru 내의 모든 필드는 주의가 달리 표시되는 경우를 제외하고 CHAR 형식입니다.
버퍼 요소의 시작 이 1, 10 또는 13인 경우 요소 체인의 초기 요소에만 적용되며 체인의 후속 요소는 1로 시작됩니다 . 메시지 형식에 연결된 두 개의 연결된 요소 체인이 있는 메시지(예: Open(PLU) Request and Open(PLU) OK Response)는 체인의 시작 부분에 있는 요소의 시작 필드를 메시지 형식으로 지정된 값(1, 10 또는 13)으로, 다른 모든 요소의 시작 필드를 1로 지정합니다.