使用单个EDD编码文件(FMA文件)编译HART的设备描述
源代码提交
FieldComm Group将从提交的项目中构建所有可能的EDD编码格式。如果开发人员不希望EDD与FDI设备包并行构建和分发,则必须采取其他步骤确保项目将EDD排除在构建过程之外。
对于给定的设备类型+设备版本组合,存储库中只有最新的EDD版本可用。换言之,EDD修订版将取代给定设备类型+设备修订版的先前EDD注册。示例0302.fm8将替换0301.fm8
FDI设备包修订版将添加到存储库中,而不替换先前注册的该产品修订版。这意味着版本02.00.00。FDIX文件不会替换存储库中的01.00.00 FDIX文件。
从单个源生成所有编码格式
可以使用FDI包IDE构建EDD(*.fm8)编码的文件格式,但是,开发人员必须花时间正确准备源文件。添加到FDI设备包中的新功能不会内置到EDD(*.fm8)中,并且会触发语法错误。开发人员可以使用预处理器指令为其产品维护一组源文件。
要使用Tokenizer版本8构建EDD(*.fm8),请使用__TOKVER__预处理器指令包装PLUGIN、BLOB和/或TEMPLATE项。示例如下:
#if __TOKVER__ >= 1000
PLUGIN my_uip
{
LABEL "...";
UUID "...";
}
#endif
此代码将包含PLUGIN项,仅适用于Tokenizer版本10或更高版本。Tokenizer 10将构建FDI(*.fma)文件格式。
每个预处理器指令只能环绕一个项目,包括多个项目可能会在标记源时导致错误。
随着其他项目被添加到设备描述语言,可能需要额外的包装来构建与FDI(*.fma)编码文件并行的EDD(*.fm8)编码文件。
仅构建FDI设备包(FMA)编码格式
提交用于FDI设备包的EDD源代码将被注册,并将替换您以前注册的EDD(*.fms/*fm6/*fm8)(请参阅上面的注释)。
如果开发人员希望为提交的设备版本保留先前注册的EDD,则开发人员必须在EDD源中实现适用于令牌化程序版本5、6或8的语法错误。
以下是此语法错误的示例:
#if __TOKVER__ < 1000 /* fma only */
, /* insert a comma as shown to create syntax error */
#endif
使用此方法,本设备修订版将保留原始EDD(*.fm8),同时以更高的DD_Revision实现FDI设备包。这是可能的,因为这两种格式(EDD和FDI)不同,并且分别存储在存储库中。