FMI 消息格式
本部分介绍函数管理接口 (FMI) 的消息格式。 消息格式以与语言无关的表示法显示。 消息格式表示法的详细信息和有关消息格式内容的关键假设如下:
“保留”表示将数字字段设置为零 () 或邮件发件人) 的名称 (所有 null。
“未定义”表示字段的值不确定。 字段不是由发送方设置的,不应由消息接收方检查。
占用两个字节的字段(如 Open (PLU) Request 中的 opresid)用最低字节地址中算术上最重要的字节表示,而不管软件执行的处理器使用的正常方向如何。 也就是说,0x1234的 2 字节值在最低字节地址中具有字节0x12。 但是,以下字段是例外:
缓冲区标头中的 srci 和 desti 字段以分配它们的应用程序的本地格式存储,因为只有分配应用程序需要解释这些值。
元素中的 起始 字段和 结束 字段始终以低字节、高字节方向存储, (Intel 处理器) 的正常方向。
消息由缓冲区标头和零个或多个缓冲区元素组成的缓冲区组成。 有关缓冲区格式的详细信息,请参阅 消息。
应用程序必须为节点中的每个活动 LPI 连接分配唯一索引 (I) 值。 具体而言, Open (SSCP) 请求 必须与它为响应 Open (PLU) 而发送的源索引不同。 此外,不应将零用作 I 值。 I 值零表示邮件的发件人邀请邮件收件人分配 I 值。
每个元素中的 起始 字段提供元素中数据的第一个字节在 trpad 字段之后的偏移量。
对于非逻辑单元应用程序 (LUA) 应用程序, startd 将在 trpad 字段) 后在字节中开始 1 (数据,在 trpad 字段和数据) 的开头之间包括 10 (9 个填充字节,或者 trpad 字段和数据) 开头之间包含 13 (12 个字节的填充。
对于 LUA 应用程序, startd 为 4 (trpad 字段与消息第一个元素中数据) 开始之间的 3 个字节填充,后续元素中的填充) 为 13 (12 字节。
本地节点使用额外的字节来获取其他标头信息。 这样就无需在添加此信息时将数据复制到新缓冲区。
由于 startd 指示从 1 开始而不是从 0 开始进入 dataru 的索引,因此有效数据的第一个字节始终位于 dataru[startd–1]。
如果 startd 大于 endd,则消息中没有有效数据。
dataru 中的所有字段均为 CHAR 类型,除非备注另有指示。
请注意,如果 buffer 元素的 开头 为 1、10 或 13,则这仅适用于元素链中的初始元素,而链中的后续元素的 开头 为 1。 具有两个不同链接元素链的消息格式 (例如 Open (PLU) Request 和 Open (PLU) OK 响应) 将链开头元素中的 起始 字段作为值 (1、10 或 13) 消息格式给定,所有其他元素中的 起始 字段为 1。