added Variablehandler for Temp

This commit is contained in:
pique_n 2021-12-15 13:57:58 +01:00
parent de0ddf839a
commit 4ab90de28a
11 changed files with 49 additions and 174 deletions

View File

@ -6,7 +6,7 @@
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="557024645362649502" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-54795925002487172" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
@ -18,7 +18,7 @@
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="557024645362649502" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-54795925002487172" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>

View File

@ -7,7 +7,7 @@
//-------------------------------------------------------------------------------------------------
//
// Project: Peltier Controller V2
// Author: Noah Piqu<EFBFBD> (noah.pique@psi.ch)
// Author: Noah Piqué (noah.pique@psi.ch)
//
//-------------------------------------------------------------------------------------------------
//

View File

@ -7,7 +7,7 @@
//-------------------------------------------------------------------------------------------------
//
// Project: Peltier Controller V2
// Author: Noah Piqu<EFBFBD> (noah.pique@psi.ch)
// Author: Noah Piqué (noah.pique@psi.ch)
//
//-------------------------------------------------------------------------------------------------
//

View File

@ -6,8 +6,8 @@
//
//-------------------------------------------------------------------------------------------------
//
// Project: High Stability Current Source
// Author: Lukas Kuenzi (lukas.kuenzi@psi.ch)
// Project: Peltier Controller V2
// Author: Noah Piqué (noah.pique@psi.ch)
//
//-------------------------------------------------------------------------------------------------
//
@ -19,7 +19,7 @@
//
//-------------------------------------------------------------------------------------------------
//
// Description: HVCT_HvController
// Description: TEC - Peltier Controller
//
//=================================================================================================
@ -34,7 +34,7 @@
#include "MAIN_MainApplication.h"
// Application
//#include "VARH_VariableHandler.h"
#include "VARH_VariableHandler.h"
//#include "ELOG_ErrorLogger.h"
// Drivers
@ -97,7 +97,6 @@
PRIVATE VOID vMainTask( PVOID arg );
PRIVATE VOID vEventCallback( PVOID pvData );
PRIVATE VOID vMsgRxCallback( CAND_Message stMessage );
//PRIVATE BOOL boSetValCheck( PVOID pvCallbackData, VARH_UVariable uNewValue );
//=================================================================================================
// Section: LOCAL VARIABLES
@ -173,7 +172,6 @@ LOCAL CONST osTimerAttr_t stTimerAttribute =
// Section: EXTERNAL VARIABLES
// Description: Definition of external (global) variables.
//=================================================================================================
//extern CRC_HandleTypeDef hcrc;
//=================================================================================================
// Section: GLOBAL FUNCTIONS
@ -197,50 +195,6 @@ BOOL MAIN_boInitializeModule( VOID )
boOK &= ((m_pstCANRxMsgQueueID = osMessageQueueNew( MSG_QUEUE_SIZE, sizeof(CAND_Message), &stCANRxMsgQueueAttribute ) ) == NULL ) ? FALSE : TRUE;
boOK &= (m_pstUpdateTimer = osTimerNew( vEventCallback, osTimerPeriodic, (PVOID)EVENT_TIMER_UPDATE, &stTimerAttribute )) == NULL ? FALSE : TRUE;
/*boOK &= VARH_boRegisterRangeCheck( VARH_eVoltageRefEn, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eStatusG, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eStatusR, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eEnabledG, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eEnabledR, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eInvertedG, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eInvertedR, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eSpareG, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eSpareR, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterNotification( VARH_eVoltageRefEn, VARH_eNewValue, vEventCallback, (PVOID)EVENT_VREF );
boOK &= VARH_boRegisterNotification( VARH_eStatusG, VARH_eNewValue, vEventCallback, (PVOID)EVENT_STATUS_G );
boOK &= VARH_boRegisterNotification( VARH_eStatusR, VARH_eNewValue, vEventCallback, (PVOID)EVENT_STATUS_R );
boOK &= VARH_boRegisterNotification( VARH_eEnabledG, VARH_eNewValue, vEventCallback, (PVOID)EVENT_ENABLE_G );
boOK &= VARH_boRegisterNotification( VARH_eEnabledR, VARH_eNewValue, vEventCallback, (PVOID)EVENT_ENABLE_R );
boOK &= VARH_boRegisterNotification( VARH_eInvertedG, VARH_eNewValue, vEventCallback, (PVOID)EVENT_INVERT_G );
boOK &= VARH_boRegisterNotification( VARH_eInvertedR, VARH_eNewValue, vEventCallback, (PVOID)EVENT_INVERT_R );
boOK &= VARH_boRegisterNotification( VARH_eSpareG, VARH_eNewValue, vEventCallback, (PVOID)EVENT_SPARE_G );
boOK &= VARH_boRegisterNotification( VARH_eSpareR, VARH_eNewValue, vEventCallback, (PVOID)EVENT_SPARE_R );
boOK &= VARH_boRegisterRangeCheck( VARH_eEnable, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eInvertA, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eInvertB, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eSetMode, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eDACStartStop, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eExtSyncEnable, VARH_boBooleanVarCheck, NULL );
boOK &= VARH_boRegisterRangeCheck( VARH_eSetValue, boSetValCheck, NULL );
boOK &= VARH_boRegisterNotification( VARH_eEnable, VARH_eRising, vEventCallback, (PVOID)EVENT_ENABLE );
boOK &= VARH_boRegisterNotification( VARH_eEnable, VARH_eFalling, vEventCallback, (PVOID)EVENT_DISABLE );
boOK &= VARH_boRegisterNotification( VARH_eInvertA, VARH_eNewValue, vEventCallback, (PVOID)EVENT_INVERT );
boOK &= VARH_boRegisterNotification( VARH_eInvertB, VARH_eNewValue, vEventCallback, (PVOID)EVENT_INVERT );
boOK &= VARH_boRegisterNotification( VARH_eExtSyncEnable, VARH_eNewValue, vEventCallback, (PVOID)EVENT_EXT_SYNC_ENABLE );
boOK &= VARH_boRegisterNotification( VARH_eSetValue, VARH_eNewValue, vEventCallback, (PVOID)EVENT_NEW_SET_VALUE );
boOK &= VARH_boRegisterNotification( VARH_eSetMode, VARH_eNewValue, vEventCallback, (PVOID)EVENT_NEW_MODE );
boOK &= VARH_boRegisterNotification( VARH_eDACStartStop, VARH_eRising, vEventCallback, (PVOID)EVENT_DAC_START );
boOK &= VARH_boRegisterNotification( VARH_eDACStartStop, VARH_eFalling, vEventCallback, (PVOID)EVENT_DAC_STOP ); */
// config DAC and ADC
// DACD_boConfig( BOOL boFast, CALI_St* pstOffsetGain, DACD_pfnWaveformCallback pfnWaveform, U16 u16WaveformLength )
// ADCD_boConfig( BOOL boFast, CALI_St* pstGainOffset, vEventCallback, (PVOID)EVENT_ADC_DATA_READY )
boOK &= (osTimerStart( m_pstUpdateTimer, 1000 ) == osOK ) ? TRUE : FALSE;
CAND_vSetRxCallback(vMsgRxCallback);
@ -316,8 +270,8 @@ PRIVATE VOID vMainTask( PVOID arg )
} else if(stMessage.u8Id == 0x15){
S16 Cold = (S16)(TEMP_dGetValue(ADCD_eCold)*100);
S16 Hot = (S16)(TEMP_dGetValue(ADCD_eHot)*100);
S16 Cold = (S16)(VARH_uGetVariableData(VARH_eTemp_C).flVal*100);
S16 Hot = (S16)(VARH_uGetVariableData(VARH_eTemp_H).flVal*100);
au8Buffer[0] = (Cold & 0xFF00) >> 8;
au8Buffer[1] = (Cold & 0xFF);

View File

@ -6,8 +6,8 @@
//
//-------------------------------------------------------------------------------------------------
//
// Project: High Stability Current Source
// Author: Lukas Kuenzi (lukas.kuenzi@psi.ch)
// Project: Peltier Controller V2
// Author: Noah Piqué (noah.pique@psi.ch)
//
//-------------------------------------------------------------------------------------------------
//

View File

@ -94,6 +94,14 @@ LOCAL CONST VARH_StVarInfo m_astVarInfo[VARH_eNumberOfVariables] =
{ VARH_FLAG_READONLY | VARH_FLAG_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-60.0f, (VARH_UVariable)100.0f }, // VARH_eTemp_C,
{ VARH_FLAG_READONLY | VARH_FLAG_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-50.0f, (VARH_UVariable)70.0f }, // VARH_eTemp_Diff,
{ VARH_FLAG_READONLY | VARH_FLAG_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-50.0f, (VARH_UVariable)70.0f }, // VARH_ePeltier_U,
{ VARH_FLAG_READONLY | VARH_FLAG_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-10.0f, (VARH_UVariable)10.0f }, // VARH_ePeltier_I,
{ VARH_FLAG_READONLY | VARH_FLAG_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)5.0f }, // VARH_ePeltier_R,
{ VARH_FLAG_READONLY | VARH_FLAG_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)-50.0f, (VARH_UVariable)150.0f }, // VARH_ePeltier_P,
{ VARH_FLAG_READONLY | VARH_FLAG_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)20.0f, (VARH_UVariable)30.0f }, // VARH_eSupply_U,
{ VARH_FLAG_READONLY | VARH_FLAG_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)5.0f }, // VARH_eSupply_I,
{ VARH_FLAG_READONLY | VARH_FLAG_FLOAT, (VARH_UVariable)0.0f, (VARH_UVariable)0.0f, (VARH_UVariable)150.0f }, // VARH_eSupply_P,
};
@ -247,23 +255,6 @@ VARH_UVariable VARH_uGetVariableData( U8 u8Variable )
return( uVar );
}
//-------------------------------------------------------------------------------------------------
// Function: VARH_u32GetVariableDataFromMaster
// Description: Gets the Variable Data from Master Protocol
// Only use this function from Master interpreter
// Parameters: U8 u8Variable
// Returns: VARH_UVariable
//-------------------------------------------------------------------------------------------------
VARH_UVariable VARH_u32GetVariableDataFromMaster( U8 u8Variable )
{
osMutexAcquire( m_pstMutexID, osWaitForever ); // aquire mutex
VARH_UVariable uVar = m_auVariable[u8Variable];
osMutexRelease( m_pstMutexID ); // release mutex
return( uVar );
}
//-------------------------------------------------------------------------------------------------
// Function: VARH_vSetVariableToInitData
// Description: Sets the variable to its initial data

View File

@ -75,6 +75,15 @@ typedef enum
VARH_eTemp_C,
VARH_eTemp_Diff,
VARH_ePeltier_U,
VARH_ePeltier_I,
VARH_ePeltier_R,
VARH_ePeltier_P,
VARH_eSupply_U,
VARH_eSupply_I,
VARH_eSupply_P,
VARH_eNumberOfVariables, // Must be last entry
} VARH_EnVariables;
@ -135,7 +144,6 @@ VOID VARH_vSetVariableDataFromMaster( U8 u8Variable, VARH_UVariable uData );
// get data function
VARH_UVariable VARH_uGetVariableData( U8 u8Variable );
VARH_UVariable VARH_u32GetVariableDataFromMaster( U8 u8Variable );
VOID VARH_vSetVariableToInitData( U8 u8Variable );
VOID VARH_vSetAllVariablesToInitData( VOID );

View File

@ -33,9 +33,6 @@
#include "../PDEF_ProjectDefinitions.h"
#include "ANPO_AnalogPortsOut.h"
//Application
//#include "../Application/ELOG_ErrorLogger.h"
// Toolbox
#include "../Toolbox/UTIL_Utility.h"
@ -123,11 +120,16 @@ BOOL ANPO_boInitializeModule( VOID )
{
BOOL boOK = TRUE;
HAL_DAC_Start(&hdac1, DAC_CHANNEL_1);
boOK &= HAL_DAC_Start(&hdac1, DAC_CHANNEL_1) == HAL_OK ? TRUE : FALSE;
return( boOK );
}
//=================================================================================================
// Section: LOCAL FUNCTIONS
// Descriptionn: Definition (implementation) of local functions.
//=================================================================================================
//-------------------------------------------------------------------------------------------------
// Function: ANPO_boSetVoltage
// Description: Sets the DAC Output to a specific Voltage
@ -144,12 +146,6 @@ BOOL ANPO_boSetVoltage( FLOAT Voltage ){
return( boOK );
}
//=================================================================================================
// Section: LOCAL FUNCTIONS
// Descriptionn: Definition (implementation) of local functions.
//=================================================================================================
//-------------------------------------------------------------------------------------------------
// Function: u32ConvertVoltagetoRaw
// Description: Convert Voltage to Raw value for the DAC

View File

@ -248,16 +248,16 @@ VOID PECO_vTask( PVOID arg )
//-------------------------------------------------------------------------------------------------
// Function: boSetPeltierVoltage
// Description: Sets the Peltier elements to a specific Voltage
// Parameters: S8 Voltage (14V - -8V)
// Parameters: S8 Voltage (12V - -3V)
// Returns: Boolean TRUE if successful
//-------------------------------------------------------------------------------------------------
BOOL boSetPeltierVoltage( S16 Voltage ){
BOOL boOK = TRUE;
if( Voltage > 14000 ) Voltage = 14000;
if( Voltage < -8000 ) Voltage = -8000;
if( Voltage > 14000 ) Voltage = 12000;
if( Voltage < -8000 ) Voltage = -3000;
boOK &= ANPO_boSetVoltage( ((((FLOAT)Voltage)/1000) + 20.088) / 34.103 );
ANPO_boSetVoltage( ((((FLOAT)Voltage)/1000) + 20.088) / 34.103 );
return( boOK );
}

View File

@ -30,7 +30,7 @@
// Description: List of required include files.
//=================================================================================================
//#include "../Application/VARH_VariableHandler.h"
#include "../Application/VARH_VariableHandler.h"
#include "../PDEF_ProjectDefinitions.h"
#include "TEMP_Temperature.h"
@ -62,26 +62,16 @@
#define REFRESH_MS 100
// Konstanten f<>r Temperaturberechung
#define RTD_A 3.9083e-3
#define RTD_B -5.775e-7
#define R_REF 4000
#define R_NOMINAL 1000
//=================================================================================================
// Section: MACROS
// Description: Definition of local macros (visible by this module only).
//=================================================================================================
//=================================================================================================
// Section: ENUMERATIONS
// Description: Definition of local enumerations (visible by this module only).
//=================================================================================================
//=================================================================================================
// Section: STRUCTURES
// Description: Definition of local Structures (visible by this module only).
@ -100,13 +90,6 @@ PRIVATE VOID vTempTask( PVOID arg );
// Description: Definition of local constants (visible by this module only).
//=================================================================================================
LOCAL CONST osMutexAttr_t m_stMutexAttr =
{
"TEMP_Mutex", // human readable mutex name
osMutexRecursive | osMutexPrioInherit, // attr_bits
NULL, // memory for control block
0U // size for control block
};
LOCAL CONST osThreadAttr_t stTaskAttribute =
{
@ -127,9 +110,6 @@ LOCAL CONST osThreadAttr_t stTaskAttribute =
//=================================================================================================
LOCAL osThreadId_t m_pstThreadID = NULL;
LOCAL osMutexId_t m_pstMutexID = NULL;
LOCAL FLOAT m_flTempData[ADCD_eNumberOfTemps];
//=================================================================================================
// Section: EXTERNAL FUNCTIONS
@ -162,52 +142,10 @@ BOOL TEMP_boInitializeModule( VOID )
BOOL boOK = TRUE;
boOK &= ((m_pstThreadID = osThreadNew( vTempTask, NULL, &stTaskAttribute )) == NULL ) ? FALSE : TRUE;
boOK &= ((m_pstMutexID = osMutexNew( &m_stMutexAttr )) == NULL) ? FALSE : TRUE;
return( boOK );
}
//-------------------------------------------------------------------------------------------------
// Function: TEMP_dGetValue
// Description: Gets the desired temperature
// Parameters: ATEMP_EnTemperature enInput
// Returns: DOUBLE DValue Value from ADC
//-------------------------------------------------------------------------------------------------
FLOAT TEMP_dGetValue( ADCD_EnTemps enTemp )
{
osMutexAcquire( m_pstMutexID, osWaitForever );
DOUBLE dValue = m_flTempData[enTemp];
osMutexRelease( m_pstMutexID );
return( dValue );
}
//-------------------------------------------------------------------------------------------------
// Function: TEMP_boRegisterEventNotification
// Description: Register for a notification when there are new values
// Parameters: TEMP_pfnEventCallback pfnCallback
// PVOID pvCallbackArgument
// Returns: TRUE, if successfull, otherwise FALSE
//-------------------------------------------------------------------------------------------------
//BOOL TEMP_boRegisterEventNotification( TEMP_pfnEventCallback pfnCallback, PVOID pvCallbackArgument )
//{
// BOOL boRet = FALSE;
// osMutexAcquire( m_pstMutexID, osWaitForever );
// for( U16 u16Cnt = 0; u16Cnt < NUMBER_OF_EVENT_CALLBACKS; u16Cnt++ )
// {
// if( m_apfnEventCallback[u16Cnt] == NULL )
// {
// m_apfnEventCallback[u16Cnt] = pfnCallback;
// m_apvCallbackArgument[u16Cnt] = pvCallbackArgument;
// boRet = TRUE;
// break;
// }
// }
// osMutexRelease( m_pstMutexID );
// return( boRet );
//}
//=================================================================================================
// Section: LOCAL FUNCTIONS
// Descriptionn: Definition (implementation) of local functions.
@ -227,7 +165,7 @@ PRIVATE VOID vTempTask( PVOID arg )
BOOL boOK = TRUE;
U8 error;
U16 u16ADC_data[ADCD_eNumberOfTemps];
U8 u8Channel;
FLOAT flTempData[ADCD_eNumberOfTemps];
osDelay(10);
@ -240,24 +178,15 @@ PRIVATE VOID vTempTask( PVOID arg )
//if( u32Flags & EVENT_REFRESH )
//{
boOK &= ADCD_dReadData(ADCD_eHot, &error, &u16ADC_data[ADCD_eHot]);
if( boOK )
{
osMutexAcquire( m_pstMutexID, osWaitForever );
m_flTempData[ADCD_eHot] = flConvertADCData( u16ADC_data[ADCD_eHot] );
//VARH_vSetVariableData( VARH_eTempHeatSink + u8Channel, (VARH_UVariable)(FLOAT)m_dbTempData[u8Channel] );
osMutexRelease( m_pstMutexID );
} else {
boOK = TRUE;
}
boOK &= ADCD_dReadData(ADCD_eCold, &error, &u16ADC_data[ADCD_eCold]);
if( boOK )
{
osMutexAcquire( m_pstMutexID, osWaitForever );
m_flTempData[ADCD_eCold] = flConvertADCData( u16ADC_data[ADCD_eCold] );
//VARH_vSetVariableData( VARH_eTempHeatSink + u8Channel, (VARH_UVariable)(FLOAT)m_dbTempData[u8Channel] );
osMutexRelease( m_pstMutexID );
} else {
boOK = TRUE;
flTempData[ADCD_eHot] = flConvertADCData( u16ADC_data[ADCD_eHot] );
flTempData[ADCD_eCold] = flConvertADCData( u16ADC_data[ADCD_eCold] );
VARH_vSetVariableData( VARH_eTemp_H, (VARH_UVariable)flTempData[ADCD_eHot] );
VARH_vSetVariableData( VARH_eTemp_C, (VARH_UVariable)flTempData[ADCD_eCold] );
VARH_vSetVariableData( VARH_eTemp_Diff, (VARH_UVariable)(flTempData[ADCD_eHot] - flTempData[ADCD_eCold]) );
}
//}

View File

@ -79,9 +79,6 @@ extern "C" {
//=================================================================================================
BOOL TEMP_boInitializeModule( VOID );
//BOOL TEMP_boRegisterEventNotification( TEMP_pfnEventCallback pfnCallback, PVOID pvCallbackArgument );
FLOAT TEMP_dGetValue( ADCD_EnTemps enTemp );
#ifdef __cplusplus
}