foxBMS - Unit Tests  1.6.0
The foxBMS Unit Tests API Documentation
diag.h File Reference

Diagnosis driver header. More...

#include "diag_cfg.h"
#include "fstd_types.h"
#include <stdint.h>
Include dependency graph for diag.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  DIAG_DIAGNOSIS_STATE_s
 

Enumerations

enum  DIAG_RETURNTYPE_e {
  DIAG_HANDLER_RETURN_OK , DIAG_HANDLER_RETURN_ERR_OCCURRED , DIAG_HANDLER_RETURN_WARNING_OCCURRED , DIAG_HANDLER_RETURN_WRONG_ID ,
  DIAG_HANDLER_RETURN_UNKNOWN , DIAG_HANDLER_INVALID_TYPE , DIAG_HANDLER_INVALID_DATA , DIAG_HANDLER_INVALID_ERR_IMPACT ,
  DIAG_HANDLER_RETURN_NOT_READY
}
 
enum  DIAG_MODULE_STATE_e { DIAG_STATE_UNINITIALIZED , DIAG_STATE_INITIALIZED }
 

Functions

DIAG_RETURNTYPE_e DIAG_Handler (DIAG_ID_e diagId, DIAG_EVENT_e event, DIAG_IMPACT_LEVEL_e impact, uint32_t data)
 DIAG_Handler provides generic error handling, based on diagnosis group. More...
 
STD_RETURN_TYPE_e DIAG_CheckEvent (STD_RETURN_TYPE_e cond, DIAG_ID_e diagId, DIAG_IMPACT_LEVEL_e impact, uint32_t data)
 DIAG_CheckEvent provides a simple interface to check an event for STD_OK. More...
 
STD_RETURN_TYPE_e DIAG_Initialize (DIAG_DEV_s *diag_dev_pointer)
 DIAG_Init initializes all needed structures/buffers. More...
 
STD_RETURN_TYPE_e DIAG_GetDiagnosisEntryState (DIAG_ID_e diagnosisEntry)
 Checks if passed diagnosis entry has been triggered or not. More...
 
void DIAG_PrintErrors (void)
 Prints contents of the error buffer on user request. More...
 
uint32_t DIAG_GetDelay (DIAG_ID_e diagnosisEntry)
 Get configured delay of passed diagnosis entry. More...
 
bool DIAG_IsAnyFatalErrorSet (void)
 Check if any fatal error is set. More...
 

Detailed Description

Diagnosis driver header.

SPDX-License-Identifier: BSD-3-Clause

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

We kindly request you to use one or more of the following phrases to refer to foxBMS in your hardware, software, documentation or advertising materials:

  • ″This product uses parts of foxBMS®″
  • ″This product includes parts of foxBMS®″
  • ″This product is derived from foxBMS®″
Author
foxBMS Team
Date
2019-11-28 (date of creation)
Updated
2023-10-12 (date of last update)
Version
v1.6.0
Prefix
DIAG

Definition in file diag.h.

Enumeration Type Documentation

◆ DIAG_MODULE_STATE_e

possible states of the diagnosis module

Enumerator
DIAG_STATE_UNINITIALIZED 

diagnosis module not initialized

DIAG_STATE_INITIALIZED 

diagnosis module initialized (ready for use)

Definition at line 81 of file diag.h.

◆ DIAG_RETURNTYPE_e

diagnosis handler return types

Enumerator
DIAG_HANDLER_RETURN_OK 

error not occurred or occurred but threshold not reached

DIAG_HANDLER_RETURN_ERR_OCCURRED 

error occurred and enabled

DIAG_HANDLER_RETURN_WARNING_OCCURRED 

warning occurred (error occurred but not enabled)

DIAG_HANDLER_RETURN_WRONG_ID 

wrong diagnosis id

DIAG_HANDLER_RETURN_UNKNOWN 

unknown return type

DIAG_HANDLER_INVALID_TYPE 

invalid diagnosis type, error in configuration

DIAG_HANDLER_INVALID_DATA 

invalid data, dependent of the diagHandler

DIAG_HANDLER_INVALID_ERR_IMPACT 

event neither string nor system level related

DIAG_HANDLER_RETURN_NOT_READY 

diagnosis handler not ready

Definition at line 68 of file diag.h.

Function Documentation

◆ DIAG_CheckEvent()

STD_RETURN_TYPE_e DIAG_CheckEvent ( STD_RETURN_TYPE_e  cond,
DIAG_ID_e  diagId,
DIAG_IMPACT_LEVEL_e  impact,
uint32_t  data 
)

DIAG_CheckEvent provides a simple interface to check an event for STD_OK.

DIAG_CheckEvent is a wrapper function for DIAG_Handler(). In simple cases where a return value that is not STD_OK (or a 0 casted to STD_OK) should increase the error counter in a diagnosis channel, this function should be used instead of directly calling the DIAG_Handler().

Parameters
condcondition
diagIdevent ID of the event that has occurred
impactDIAG_IMPACT_LEVEL_e of DIAG_ID_e
dataindividual information for DIAG_ID_e e.g. string number,..
Returns
STD_OK if ok, STD_NOT_OK if not ok

Definition at line 374 of file diag.c.

Here is the call graph for this function:

◆ DIAG_GetDelay()

uint32_t DIAG_GetDelay ( DIAG_ID_e  diagnosisEntry)

Get configured delay of passed diagnosis entry.

Parameters
diagnosisEntryevent ID of diagnosis entry
Returns
configured delay in ms

Definition at line 386 of file diag.c.

◆ DIAG_GetDiagnosisEntryState()

STD_RETURN_TYPE_e DIAG_GetDiagnosisEntryState ( DIAG_ID_e  diagnosisEntry)

Checks if passed diagnosis entry has been triggered or not.

Parameters
diagnosisEntryevent ID of diagnosis entry
Returns
STD_OK if diagnosis entry has not surpassed error threshold, otherwise STD_NOT_OK

Definition at line 192 of file diag.c.

◆ DIAG_Handler()

DIAG_RETURNTYPE_e DIAG_Handler ( DIAG_ID_e  diagId,
DIAG_EVENT_e  event,
DIAG_IMPACT_LEVEL_e  impact,
uint32_t  data 
)

DIAG_Handler provides generic error handling, based on diagnosis group.

This function calls the handler functions depending on the diagnosis group of call. It needs to get called in every function which wants to apply some kind of diagnosis handling. According to its return value further treatment is either left to the calling module itself, or can be done in the callback function defined in diag_cfg.c

Parameters
diagIdDIAG_ID_e of the event that has occurred
eventevent that occurred (OK, NOK, RESET)
impactDIAG_IMPACT_LEVEL_e of DIAG_ID_e
dataindividual information for DIAG_ID_e e.g. string number,..
Returns
DIAG_HANDLER_RETURN_UNKNOWN if invalid DIAG_EVENT_e, otherwise return value of DIAG_RETURNTYPE_e

Definition at line 246 of file diag.c.

Here is the call graph for this function:

◆ DIAG_Initialize()

STD_RETURN_TYPE_e DIAG_Initialize ( DIAG_DEV_s diag_dev_pointer)

DIAG_Init initializes all needed structures/buffers.

This function provides initialization of the diagnose module. In case of miss behaviour it calls Reset and adds an entry into database to ensure data validity/report back malfunction

Parameters
diag_dev_pointer
Returns
STD_OK if ok, STD_NOT_OK if not ok

Iterate over diag_diagnosisIdConfiguration and check that a meaningful state transition time is configured if a severity of DIAG_FATAL_ERROR is configured.

Definition at line 116 of file diag.c.

Here is the call graph for this function:

◆ DIAG_IsAnyFatalErrorSet()

bool DIAG_IsAnyFatalErrorSet ( void  )

Check if any fatal error is set.

Returns
true, if a diagnosis entry with severity DIAG_FATAL_ERROR is set, otherwise false

Definition at line 391 of file diag.c.

Here is the call graph for this function:

◆ DIAG_PrintErrors()

void DIAG_PrintErrors ( void  )

Prints contents of the error buffer on user request.

Definition at line 208 of file diag.c.