foxBMS  1.2.1
The foxBMS Battery Management System API Documentation
can_cbs.h File Reference

CAN callbacks header. More...

#include "general.h"
#include "can_cfg.h"
Include dependency graph for can_cbs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

uint32_t CAN_TxState (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for state More...
 
uint32_t CAN_TxVoltage (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for cell voltages More...
 
uint32_t CAN_TxCellTemperature (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for cell temperatures More...
 
uint32_t CAN_TxLimitValues (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for limit values More...
 
uint32_t CAN_TxMinimumMaximumValues (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for min/max values More...
 
uint32_t CAN_TxStateEstimation (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for state estimation values More...
 
uint32_t CAN_TxPackValues (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for pack values values More...
 
uint32_t CAN_TxStringState (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for string state values More...
 
uint32_t CAN_TxStringValues (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for string values More...
 
uint32_t CAN_TxStringMinimumMaximumValues (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for string minimum and maximum values More...
 
uint32_t CAN_TxStringStateEstimation (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for string state estimation More...
 
uint32_t CAN_TxStringValues2 (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can tx callback function for string values 2 More...
 
uint32_t CAN_RxImdInfo (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can rx callback function for IMD info messages More...
 
uint32_t CAN_RxImdResponse (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can rx callback function for IMD response messages More...
 
uint32_t CAN_RxRequest (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can rx callback function for state requests More...
 
uint32_t CAN_RxSwReset (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can rx callback function for SW reset More...
 
uint32_t CAN_RxCurrentSensor (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can rx callback function for current sensor measurements More...
 
uint32_t CAN_RxDebug (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can rx callback function for debug messages More...
 
uint32_t CAN_RxSwVersion (uint32_t id, uint8_t dlc, CAN_ENDIANNESS_e endianness, uint8_t *pCanData, uint8_t *pMuxId, const CAN_SHIM_s *const kpkCanShim)
 can rx callback function for SW version More...
 

Detailed Description

CAN callbacks 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
2021-04-20 (date of creation)
Updated
2021-07-29 (date of last update)
Prefix
CAN

Definition in file can_cbs.h.

Function Documentation

◆ CAN_RxCurrentSensor()

uint32_t CAN_RxCurrentSensor ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can rx callback function for current sensor measurements

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 86 of file can_cbs_rx_current_sensor.c.

Here is the call graph for this function:

◆ CAN_RxDebug()

uint32_t CAN_RxDebug ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can rx callback function for debug messages

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 89 of file can_cbs_rx_misc.c.

Here is the call graph for this function:

◆ CAN_RxImdInfo()

uint32_t CAN_RxImdInfo ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can rx callback function for IMD info messages

RX callback functions

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 70 of file can_cbs_rx_imd.c.

Here is the call graph for this function:

◆ CAN_RxImdResponse()

uint32_t CAN_RxImdResponse ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can rx callback function for IMD response messages

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 100 of file can_cbs_rx_imd.c.

Here is the call graph for this function:

◆ CAN_RxRequest()

uint32_t CAN_RxRequest ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can rx callback function for state requests

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

0x00: Disconnect strings from HV bus 0x01: Connect strings to HV bus to start discharge 0x02: Connect strings to HV bus to start charging

Definition at line 73 of file can_cbs_rx_command.c.

Here is the call graph for this function:

◆ CAN_RxSwReset()

uint32_t CAN_RxSwReset ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can rx callback function for SW reset

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 70 of file can_cbs_rx_misc.c.

◆ CAN_RxSwVersion()

uint32_t CAN_RxSwVersion ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can rx callback function for SW version

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 126 of file can_cbs_rx_misc.c.

◆ CAN_TxCellTemperature()

uint32_t CAN_TxCellTemperature ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for cell temperatures

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 169 of file can_cbs_tx_temperature.c.

Here is the call graph for this function:

◆ CAN_TxLimitValues()

uint32_t CAN_TxLimitValues ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for limit values

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 71 of file can_cbs_tx_limits.c.

Here is the call graph for this function:

◆ CAN_TxMinimumMaximumValues()

uint32_t CAN_TxMinimumMaximumValues ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for min/max values

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 70 of file can_cbs_tx_minmax.c.

Here is the call graph for this function:

◆ CAN_TxPackValues()

uint32_t CAN_TxPackValues ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for pack values values

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 69 of file can_cbs_tx_system_values.c.

Here is the call graph for this function:

◆ CAN_TxState()

uint32_t CAN_TxState ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for state

TX callback functions

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 71 of file can_cbs_tx_state.c.

Here is the call graph for this function:

◆ CAN_TxStateEstimation()

uint32_t CAN_TxStateEstimation ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for state estimation values

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 71 of file can_cbs_tx_state_estimation.c.

Here is the call graph for this function:

◆ CAN_TxStringMinimumMaximumValues()

uint32_t CAN_TxStringMinimumMaximumValues ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for string minimum and maximum values

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Database entry with minimum and maximum values does not need to be read within this callback as it is already read by function CAN_TxMinimumMaximumValues

Definition at line 173 of file can_cbs_tx_minmax.c.

Here is the call graph for this function:

◆ CAN_TxStringState()

uint32_t CAN_TxStringState ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for string state values

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 173 of file can_cbs_tx_state.c.

Here is the call graph for this function:

◆ CAN_TxStringStateEstimation()

uint32_t CAN_TxStringStateEstimation ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for string state estimation

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Database entry with state estimation values does not need to be read within this callback as it is already read by function CAN_TxStateEstimation

Definition at line 190 of file can_cbs_tx_state_estimation.c.

Here is the call graph for this function:

◆ CAN_TxStringValues()

uint32_t CAN_TxStringValues ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for string values

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 132 of file can_cbs_tx_system_values.c.

Here is the call graph for this function:

◆ CAN_TxStringValues2()

uint32_t CAN_TxStringValues2 ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for string values 2

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 208 of file can_cbs_tx_system_values.c.

Here is the call graph for this function:

◆ CAN_TxVoltage()

uint32_t CAN_TxVoltage ( uint32_t  id,
uint8_t  dlc,
CAN_ENDIANNESS_e  endianness,
uint8_t *  pCanData,
uint8_t *  pMuxId,
const CAN_SHIM_s *const  kpkCanShim 
)

can tx callback function for cell voltages

Parameters
[in]idCAN ID
[in]dlcCAN Data Length Code
[in]endiannessbig or little endian
[in]pCanDatapayload of can frame
[in]pMuxIdmultiplexer for multiplexed CAN messages
[in]kpkCanShimshim to the database entries

Definition at line 149 of file can_cbs_tx_voltage.c.

Here is the call graph for this function: