> For the complete documentation index, see [llms.txt](https://docs.fieldcommgroup.org/dd-stat-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fieldcommgroup.org/dd-stat-documentation/help/change-log.md).

# Change Log

### Release  1.2.0

#### Configuration Changes

```
<DeviceOptions>
  <Campaign>
    
    <!-- MultipleAnalogChannelsPV is a new required field in DeviceOptions.xml. 
            Valid values: true or false. Enforced by both audit and TFP711_012. 
            Position: add it inside the <Campaign> tag. 
            For most submissions, this value will be false. -->
    <MultipleAnalogChannelsPV>false</MultipleAnalogChannelsPV>

    <!-- CmnPrac now accepts value 13. Previously valid range was 7–12; 
            now 7–13. Not a breaking change, but submissions with CmnPrac=13 
            no longer fail the audit. -->
    <CmnPrac>13</CmnPrac>

  </Campaign>
</DeviceOptions>
```

#### New Automation

The following 21 test point procedures have been newly automated in DD-STAT v1.2, expanding automated coverage for EDD validation.

**TFP631\_004** -- Verify that COLLECTION OF VARIABLE (or COLLECTION) are used to model the 'Device Variables' referenced in the ARRAY OF COLLECTION deviceVariables.

**TFP714\_006** -- Verify the only DD Items imported individually (not using an import macro) are those explicitly identified as an available option in 'Using the HART Standard DD', 'Additional items' section 7.2.1.2 or 7.3.1.3.

**TFP715\_013** -- For devices supporting Command 50 and/or 51, verify macros IMPORT\_DEV\_VARS\_MAPPING\_READ() or IMPORT\_DEV\_VARS\_MAPPING\_READ\_WRITE() are used and it does not contain constant values (i.e. 0,1,2,3) (Referred to as Fixed mapping).

**TFP716\_001** -- Verify the IMPORT of \_WIRELESS DD uses the import macros defined in macros2.h as specified in 'Using the HART Standard DD' sections 7.12.1.1 - 7.12.1.7. (Verify against the device test logs, test is not applicable if the device does not support this feature).

**TFP716\_002** -- Verify the only DD Items imported individually (not using an import macro) are those explicitly identified as an available option in 'Using the HART Standard DD', 'Additional items' section 7.12.1.8.

**TFP811\_013** -- Verify CLASS is not REDEFINEd on a standard item (including use of conditionals) unless explicitly identified as an available option in 'Using the HART Standard DD'.

**TFP811\_015** -- Verify VALIDITY/VISIBILITY is not used on a standard DD item unless explicitly identified as an available option in 'Using the HART Standard DD'.

**TFP811\_016** -- Verify no other attribute is REDEFINED or ADDed to a standard DD item unless explicitly identified as an available option in 'Using the HART Standard DD'.

**TFP811\_017** -- Verify conditional statements (IF/ELSE, SELECT/CASE and/or preprocessors #if, #ifdef, #ifndef, etc. directives) are NOT used for any attribute on a standard item unless explicitly identified as an available option in 'Using the HART Standard DD'.

**TFP811\_018** -- Verify that BIT\_ENUMERATED variable does not DELETE its bit enumerations unless the HART specification allows for truncation of bits (i.e., Command 48 Device Specific data).

**TFP812\_001** -- Verify no mandatory attributes of Commands were deleted.

**TFP814\_004** -- Reserved.

**TFP814\_015** -- Verify Command 33 is not REDEFINEd (applicable to HART 5 devices since HART 6 and above are not importing this command, see TFP715\_004).

**TFP816\_001** -- Verify the \_TABLES DD uses the redefinition macros defined in macros2.h as specified in 'Using the HART Standard DD' section 7.13.3. (Verify against the device test logs, test is not applicable if the device does not support this feature).

**TFP816\_002** -- Verify the only \_TABLES Variables redefined individually (not using a redefinition macro) are those explicitly identified as an available option in 'Using the HART Standard DD', 'REDEFINITIONS' section 7.13.3.

**TFP817\_001** -- Verify the PV 1 DD uses the redefinition macros defined in macros2.h as specified in 'Using the HART Standard DD' section 7.2.3. (Verify against the device test logs).

**TFP817\_002** -- Verify the only DD items redefined individually (not using a redefinition macro) are those explicitly identified as an available option in 'Using the HART Standard DD', 'REDEFINITIONS' section 7.2.3.2 - 7.2.3.8 (PV 1) or 7.3.3.1 - 7.3.3.9. (PV 2)

**TFP818\_001** -- Verify the \_WIRELESS DD uses the redefinition macros defined in macros2.h as specified in 'Using the HART Standard DD' 7.12.1.1 - 7.12.1.7.

**TFP818\_002** -- Verify the only DD Items redefined individually (not using a redefinition macro) are those explicitly identified as an available option in 'Using the HART Standard DD', 'REDEFINITIONS' sections 7.12.3.1 - 7.12.3.1.4.

**TFP1011\_005** -- Verify conditional statements (IF/ELSE, SELECT/CASE and/or preprocessors directives, i.e., #if/#ifdef) or DD Item names which reference specific Host Applications (i.e., 275, 375, 475, AMS, FDM, PDM, iDTM, etc.) are not used in the EDD.

**TFP1011\_006** -- Verify if protocol-based conditions (such as FF, HART, Profibus) are used, those are applied to the complete sections of the code and not to particular attributes of any DD item.

#### Resolved Issues

The following issues have been resolved in DD-STAT v1.2, organized by test point procedure.

**TFP511\_004** -- Fixed a false pass where tab characters were not being recognized as space characters during validation.

**TFP511\_005** -- Switched from DD source file to the preprocessed .i file for processing this test point, improving accuracy.

**TFP614\_001** -- Fixed a crash during test execution.

**TFP631\_005** -- Extensive fixes to COLLECTION OF VARIABLE validation. Resolved multiple false passes where missing "description" and "help" fields on collection members were not being detected. Fixed JSON parsing errors causing Inconclusive results. Improved error message clarity to reduce member confusion. Corrected false failures from \_temp defines not being properly located in DDL. Fixed false "Skipped" status since every DD must have at least one COLLECTION OF VARIABLE. Refined output formatting.

**TFP711\_013** -- Fixed false failures caused by incorrect common table lookup logic and table 2 values needing re-audit.

**TFP711\_015** -- Fixed a false failure in test validation.

**TFP711\_017** -- Fixed a false pass where the test was not correctly validating requirements.

**TFP711\_019** -- Added verification that a standard DD is not imported if not defined in table 2 or 3, targeting unknown DDs.

**TFP712\_001** -- Fixed false failure for HART 6 devices where the IMPORT\_TABLES\_LOCK() macro is explicitly permitted. Resolved a confusing error message.

**TFP714\_001** -- Fixed false "Skipped" result and restored correct functionality for devices with two or more analog outputs. Resolved test case completion failures.

**TFP715\_003** -- Fixed multiple crash and exception issues including output exceptions and unhandled exceptions in Device Variable IMPORT processing. Corrected an incorrect section number reference in "Additional Items" output.

**TFP715\_005** -- Fixed a false failure in test validation.

**TFP715\_011** -- Fixed a false pass where the test was not correctly detecting validation issues.

**TFP811\_003** -- Fixed a crash during test execution.

**TFP811\_004** -- Fixed false pass where ENUMERATED and BIT\_ENUMERATED variables were not being checked for deleted enumerations when HANDLING is READ.

**TFP813\_007** -- Fixed false failure on redefinition of Command 48. Simplified error message strings for clarity. Fixed a crash during test execution.

**TFP813\_008** -- Fixed false passes where Command 48 redefinition was not being detected. Added validation that universal commands and variables must not be individually redefined.

**TFP814\_014** -- Fixed false failures where permitted REDEFINE TYPE INDEX for device variable codes was being incorrectly flagged. Corrected false passes where identical redefinitions were not being caught. Fixed missing menu name display in METHOD failures. Resolved element and field counting issues.

**TFP814\_018** -- Fixed false failures related to condensed status redefine macros. Added support for REDEFINE\_CONDENSED\_STATUS\_READ\_TRANSACTIONS(n) when Write is not supported, and REDEFINE\_CONDENSED\_STATUS\_TRANSACTIONS(n) when Write is supported with n < 25. Added support for the new REDEFINE\_CONDENSED\_STATUS\_READ\_TRANSACTIONS() macro variant.

**TFP816\_003** -- Fixed minor string display bug. Addressed HART Common Tables having only 1 ISO Latin String without language customization support. Fixed false pass where Device Type Number and Manufacturer string were allowed to have multiple values/strings. Resolved crash issues and a regression introduced by earlier fixes.

**TFP816\_004** -- Fixed a false failure caused by case-sensitive string comparison.

**TFP911\_001** -- Fixed array index out-of-bounds crash. Resolved multiple false pass regressions where #define label \_temp references were not being detected. Fixed spurious failures from malformed MENU declarations. Addressed false passing issues across multiple builds.

**TFP911\_002** -- Completed repair of test logic. Fixed partial false failure where real failures were being reported but two additional MENUs were being missed.

**TFP911\_003** -- Major overhaul of MENU validation logic. Fixed false passes where offline\_root\_menu was not required to be a conditional menu, and where certain METHODs were not being detected. Corrected false failures for MENUs in FMA-only space and for isolated/encapsulated items in offline\_root\_menu. Updated error messages to use specification-required language. Added detection of legacy methods. Added reporting for menus containing data items. Scope narrowed to only concern MENU items that are MENUs, not data items. Improved detection of version-conditional encapsulation on FDI required objects.

**TFP1011\_004** -- Fixed false reporting where Device Variable codes 244, 245, and 250 were not dispatched in the test, causing guaranteed failures for those codes.

**TFP1211\_002** -- Fixed crash issues in test execution. Corrected a false pass where DD item name changes referenced in COMMAND objects (Device Rev and DD Rev) were not being caught. Moved historical error checks from TFP1211\_003 to TFP1211\_002 where they properly belong.

### Release 1.1.0

DD-STAT builds in a CI/CD pipeline are now supported.

DD-STAT and FDI IDE now share the same license manager.

The installer removes the previous installation before installation (does not affect user files or licenses).

These formerly manual test cases are now automated: TFP911\_001, TFP816\_003, TFP816\_004

DD-STAT now retrieves information from previously registered packages in the FDI package repository.

HART test log ual11b.qa.log is now required with the submission.

Multiple failures in test cases on the range TFP814\_\* are corrected.

HART 6 DDs now find the manufacturer ID correctly.

TFP1211\_002 removes redundant reporting and improves the messaging. False failures are repaired.

TFP712\_001 uses correct macros for HART 6 devices.

TP1011\_004 improves the assessment of conditional device variable codes.

TFP612\_004 false passing is repaired.

TFP816\_004 false failure is repaired.

Multiple TFPs now evaluate as not applicable instead of inconclusive as appropriate.

### Release 1.0.2

The automation now requires CAL073.qa.log. This log reveals whether command 73 is supported by the device or not.

For device revisions and DD revisions, the automation now requires the registered encoded .fma file from the previous revision. The source for the previous DD is still required, but it is not tokenized.

Testcases 1211\_002 and 1211\_003 are now automated tests.

The automation is updated to allow IDE versions up to 1.7.0.2.

The 'ddstat init' command is enhanced to allow user to add a folder name as an argument. When no argument is provided, the command behaves as before, initializing in the current working directory. User can add a optional path name as an argument. The automation will create a new folder at that path and initialize it.

A false failure is prevented in the case where a device contains a device-specific command that is not listed in the EDD.

A false failure is prevented in the case where commands are defined in the symbols.txt file but not referenced in the EDD.

Improvements in the automation caused the Sample\_HART7 EDD that ships with the product to fail. This is repaired.

Resolved an issue where older HART Test System logs failed to parse.

Resolved an issue where the MANUFACTURER line in some DD's was not recognized.

In test case TFP814\_014, it is permitted to REDEFINE TYPE INDEX.

### Release 1.0.1

<table><thead><tr><th width="97" align="right">ID</th><th width="204">Test Point</th><th width="299">Summary</th><th>Released Version</th></tr></thead><tbody><tr><td align="right">1794</td><td>TFP811_004</td><td>false failure, delete is permitted</td><td>1.0.0</td></tr><tr><td align="right">1904</td><td>TFP711_005</td><td>DD needs to be marked “skipped” or “passed”, not inconclusive</td><td>1.0.0</td></tr><tr><td align="right">1908</td><td>TFP715_002</td><td>False pass - no AG10101 macros are referenced</td><td>1.0.0</td></tr><tr><td align="right">1917</td><td></td><td>new IDE 1.7.0 macro parameter for IMPORT_PV2_3_BASE is not supported</td><td>1.0.0</td></tr><tr><td align="right">1938</td><td>TFP811_00</td><td>Universal is redefined and common practice is not, requires analysis</td><td>1.0.0</td></tr><tr><td align="right">1940</td><td></td><td>Fatal while getting command 9 byte count from UAL011a</td><td>1.0.0</td></tr><tr><td align="right">2043</td><td>TFP813_007 </td><td>False pass - Redefinition macro  may only be used when the command 48 bytes do not match</td><td>1.0.0</td></tr><tr><td align="right">2044</td><td>TFP813_002</td><td>wrong macro name is identified</td><td>1.0.0</td></tr><tr><td align="right">2045</td><td>TFP813_008 </td><td>items shown are not actually VARIABLEs with definitions in the Universal IMPORT</td><td>1.0.0</td></tr><tr><td align="right">2046</td><td>TFP712_001</td><td>Remove check for commands 524 and 525 from IMPORT_TABLES_CONDENSED_STATUS and move them to IMPORT_CONDENSED_STATUS_MAP_WRITE</td><td>1.0.0</td></tr><tr><td align="right">2052</td><td>TFP813_007 </td><td>move command 48 output from TFP1011_002 to TFP813_007</td><td>1.0.0</td></tr><tr><td align="right">2053</td><td>TFP712_001</td><td>command 48 parameter issue is not detected</td><td>1.0.0</td></tr><tr><td align="right">2058</td><td></td><td>Some DD searches should be done on .i not .ddl</td><td>1.0.0</td></tr><tr><td align="right">2107</td><td>TFP813_007</td><td> error message is not clear</td><td>1.0.0</td></tr><tr><td align="right">2111</td><td>TFP621_005 </td><td>device specific command number range issue</td><td>1.0.0</td></tr><tr><td align="right">2112</td><td>TFP911_001 and TFP911_002  </td><td>not showing passed when errors Tok 859/860 are not present</td><td>1.0.0</td></tr><tr><td align="right">2120</td><td>TFP814_016 </td><td>review/rework</td><td>1.0.0</td></tr><tr><td align="right">2126</td><td></td><td>Using defines as arguments for macro parameters instead of numbers should be a failure</td><td>1.0.0</td></tr><tr><td align="right">2141</td><td></td><td>HART Sample DDs</td><td>1.0.0</td></tr><tr><td align="right">2162</td><td>TFP715_011 </td><td>Commands 72, 73, 74 and 75 having nothing to do with IMPORT_MISC_LOCK</td><td>1.0.0</td></tr><tr><td align="right">2163</td><td>TFP814_023</td><td>False Errors</td><td>1.0.0</td></tr><tr><td align="right">2164</td><td>TFP814_013</td><td>failure assigned to the wrong TFP</td><td>1.0.0</td></tr><tr><td align="right">2165</td><td>TFP814_014 </td><td>has no macro</td><td>1.0.0</td></tr><tr><td align="right">2181</td><td>TFP1111_008 </td><td>switch from manual to automation</td><td>1.0.0</td></tr><tr><td align="right">2196</td><td>TFP813_008 </td><td>false failure - should not fail as long as they are not REDEFINING the CLASS or HANDLING</td><td>1.0.0</td></tr><tr><td align="right">2198</td><td>TFP511_005 </td><td>false failure - need to use .i file</td><td>1.0.0</td></tr><tr><td align="right">2199</td><td>TFP811_004 </td><td>false failure - The reason for the failure is missing for TFP811_004 in the report</td><td>1.0.0</td></tr><tr><td align="right">2201</td><td>TFP621_009 </td><td>should be tokenizer not manual</td><td>1.0.0</td></tr><tr><td align="right">2202</td><td>TFP612_004 </td><td>false pass - report fails to capture tok error 694</td><td>1.0.0</td></tr><tr><td align="right">2260</td><td>TFP715_005 </td><td>false failure - should be marked “Passed” with a INFO(warning) in the details</td><td>1.0.0</td></tr><tr><td align="right">2261</td><td>TFP1211_001 </td><td>revised</td><td>1.0.0</td></tr><tr><td align="right">2264</td><td>TFP715_005, TFP715_007, TFP715_009, TFP715_010, TFP715_011 and consider adding TFP715_001 and TFP715_013</td><td>revised</td><td>1.0.0</td></tr><tr><td align="right">2265</td><td>TFP715_002, TFP715_006, TFP715_008, TFP715_012 </td><td>revised</td><td>1.0.0</td></tr><tr><td align="right"></td><td></td><td></td><td></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.fieldcommgroup.org/dd-stat-documentation/help/change-log.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
