DiagcMgrProxy_MDD
Module Design Document
For
Diagnostic Manager Proxy
VERSION: 5.0
DATE: 29-JUN-2017
Prepared By:
Shruthi Raghavan
Location: The official version of this document is stored in the Nexteer Configuration Management System.
Revision History
| Sl. No. | Description | Author | Version | Date |
| 1 | ES101A_DiagcMgr_Design version 2 implementation | SB | 1.0 | 11-Mar-2016 |
| 2 | ES101A_DiagcMgr_Design version 4 implementation | SB | 2.0 | 22-Jun-2016 |
| 3 | Added new DET in Init1 | SB | 3.0 | 02-Dec-2016 |
| 4 | Added new runnable SetNtcStsAndSnpshtData. | SR | 4.0 | 21-Apr-2017 |
| 5 | Added unit test considerations per EA4#9649 | SR | 5.0 | 29-Jun-2017 |
Table of Contents
3 DiagcMgrPROXYAPPLX & High-Level Description 7
4 Design details of software module 8
4.1 Graphical representation of DiagcmgrPRoxyApplX 8
5.1 User defined typedef definition/declaration 9
5.2 Variable definition for enumerated types 9
6.1 Program(fixed) Constants 10
6.1.2 Module specific Lookup Tables Constants 10
7 Software Module Implementation 11
7.1.1 Initialization Functions 11
7.1.1.1 INIT: DiagcMgrPROXYAPPLXInit1 11
7.1.1.3 Store Module Inputs to Local copies 11
7.1.1.4 (Processing of function)……… 11
7.1.1.5 Store Local copy of outputs into Module Outputs 11
7.1.2.1 Per: diagcmgrPROXYAPPLXPer1 11
7.1.2.3 Store Module Inputs to Local copies 11
7.1.2.4 (Processing of function)……… 11
7.1.2.5 Store Local copy of outputs into Module Outputs 11
7.1.4 Server Runnable Functions 12
7.1.4.1 GetDiagcDataApplX_Oper 12
7.1.4.3 GetNtcDebCntrAppl0_Oper 12
7.1.4.4 GetNtcInfoApplX_Oper 12
7.1.4.5 GetNtcQlfrStsX_Oper 12
7.1.5 Local Function/Macro Definitions 14
8 Known Limitations With Design 15
Abbrevations And Acronyms
| Abbreviation | Description |
| DFD | Design functional diagram |
| MDD | Module design Document |
References
This section lists the title & version of all the documents that are referred for development of this document
| Sr. No. | Title | Version |
| 1 | MDD Guidelines | See process v04.04.02 document from eRoom here |
| 2 | EA4 Software Naming Conventions | See process v04.04.02 document from eRoom here |
| 3 | Coding standards | See process v04.04.02 document from eRoom here |
| 4 | ES101A_DiagcMgr_Design | See Synergy Design Subproject Version |
DiagcMgrPROXYAPPLX & High-Level Description
There are 11 proxy components whose design is same but the name of the components is based on the application number. ApplX is used through out the document in place of application number.
Design details of software module
Graphical representation of DiagcmgrPRoxyApplX

Data Flow Diagram
Module level DFD
N/A
Sub-Module level DFD
N/A
COMPONENT FLOW DIAGRAM
N/A
Variable Data Dictionary
User defined typedef definition/declaration
<This section documents any user types uniquely used for the module.>
| Typedef Name | Element Name | User Defined Type | Legal Range (min) | Legal Range (max) |
| Refer DiagcMgr_MDD |
Variable definition for enumerated types
| Enum Name | Element Name | Value |
| N/A |
Constant Data Dictionary
Program(fixed) Constants
Embedded Constants
< All program specific constants will be defined in detail >
Local
| Constant Name | Resolution | Units | Value |
| See DataDict.m file | |||
| Refer DiagcMgr_MDD |
Global
<This section lists the global constants used by the module. For details on global constants, refer to the Data Dictionary for the application>
| Constant Name |
| See DataDict.m file |
Module specific Lookup Tables Constants
<(This is for lookup tables (arrays) with fixed values, same name as other tables)>
| Constant Name | Resolution | Value | Software Segment |
| Refer DiagcMgr_MDD |
Software Module Implementation
Sub-Module Functions
None
Initialization Functions
INIT: DiagcMgrPROXYAPPLXInit1
X in the flowchart will change based on the proxy application number.
ErrorID ‘0’ is ensuring if DTCIDX value in fault response table is set to have value larger than the total number of DTCs in the code configuration.
Design Rationale
PERIODIC FUNCTIONS
Per: diagcmgrPROXYAPPLXPer1
Design Rationale
Design rationale for the subblock:
DiagcMgrProxyApplXPer1/Clear All NTCs/For Number of NTCs in NtcInfoAryX/Clear the NTCs that are active
This block clears the NTCs that are active and Not Status Locked This Ignition Cycle.
It also clears the NTCs that are NOT active from history even if they are Status Locked This Igniton Cycle
In the case of an invalid aging counter, the status of the NTC must be set to TestNotCompleteThisIgnitionCycle.
MC/DC Coverage Can be Achieved:
The above is verified to not be a MC/DC coverage issue
The second condition when reached by an invalid aging counter can still check whether the status locked and test complete conditions individually affect it.
Interrupt Functions
None
Server Runnable Functions
GetDiagcDataApplX_Oper
See DataDict.m file and model for detailed description.
GetNtcActvX_Oper
See DataDict.m file and model for detailed description.
X in the flowchart will change based on the proxy application number.
ErrorID ‘0’ is ensuring if NtcNr is within the valid range.
ErrorID ‘1’ is ensuring if ApplIdx is valid.
GetNtcDebCntrAppl0_Oper
See DataDict.m file and model for detailed description.
GetNtcInfoApplX_Oper
See DataDict.m file and model for detailed description.
GetNtcQlfrStsX_Oper
See DataDict.m file and model for detailed description.
X in the flowchart will change based on the proxy application number.
ErrorID ‘0’ is ensuring if NtcNr is within the valid range.
ErrorID ‘1’ is ensuring if ApplIdx is valid.
GetNtcStsX_Oper
See DataDict.m file and model for detailed description.
X in the flowchart will change based on the proxy application number.
ErrorID ‘0’ is ensuring if NtcNr is within the valid range.
ErrorID ‘1’ is ensuring if ApplIdx is valid.
SetNtcStsX_Oper
See DataDict.m file and model for detailed description.
X in the flowchart will change based on the proxy application number.
ErrorID ‘0’ is ensuring if NtcNr is within the valid range.
ErrorID ‘1’ is ensuring if ApplIdx is valid.
SetNtcStsAndSnpshtDataX_Oper
See DataDict.m file and model for detailed description.
X in the flowchart will change based on the proxy application number.
ErrorID ‘0’ is ensuring if NtcNr is within the valid range.
ErrorID ‘1’ is ensuring if ApplIdx is valid.
Local Function/Macro Definitions
Description
Proxies use functions from the private.c file, refer DiagcMgr MDD for function descriptions.
TRANSIENT FUNCTIONS
None
Known Limitations With Design
Per the FDD author, safety critical data is protected in an exclusive area but there is a possibility of corruption of non critical data.
Refer to Design Rationale section on the top level of DiagcMgrProxy Simulink model.
UNIT TEST CONSIDERATION
Config files in the contract folder are for a test project with sample configurations using Application 6 and Application 10. Therefore with this configuration, the following files cannot be tested – DiagcMgrProxyAppl0, DiagcMgrProxyAppl1, DiagcMgrProxyAppl2, DiagcMgrProxyAppl3, DiagcMgrProxyAppl4, DiagcMgrProxyAppl5, DiagcMgrProxyAppl7, DiagcMgrProxyAppl8, DiagcMgrProxyAppl9.
Low Path Coverage can be justified in the notes for now, if the reason is due to Configurable code in the component.
Note: Continuous improvement CR EA4#9630 has been written to modify the contract folder header files to allow better coverage in unit test.
Appendix
None