add first rev of eeprom
and ref voltage in varhandler
This commit is contained in:
@ -57,7 +57,7 @@
|
||||
//=================================================================================================
|
||||
|
||||
/* Software Version */
|
||||
#define SW_VERSION 1
|
||||
#define SW_VERSION 2
|
||||
|
||||
#define MSG_QUEUE_SIZE 8
|
||||
|
||||
@ -74,7 +74,8 @@
|
||||
#define COMMAND_ALARM 4
|
||||
#define COMMAND_CLEAR_ERROR 5
|
||||
#define COMMAND_GET_SW_VERSION 6
|
||||
#define COMMAND_SET_REF_VOLTAGE 7
|
||||
#define COMMAND_SAVE_VARIABLES 7
|
||||
#define COMMAND_LOAD_VARIABLES 8
|
||||
|
||||
#define COMMAND_REBOOT 255
|
||||
|
||||
@ -199,7 +200,7 @@ LOCAL CONST osTimerAttr_t stWatchdogTimerAttribute =
|
||||
// Returns: Boolean TRUE if successful
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
BOOL MAIN_boInitializeModule( VOID )
|
||||
BOOL MAIN_boInitializeModule( VOID )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
|
||||
@ -274,7 +275,6 @@ PRIVATE VOID vTask( PVOID arg )
|
||||
case COMMAND_ON:
|
||||
PECO_Enable( TRUE );
|
||||
break;
|
||||
|
||||
case COMMAND_OFF:
|
||||
PECO_Enable( FALSE );
|
||||
break;
|
||||
@ -293,11 +293,13 @@ PRIVATE VOID vTask( PVOID arg )
|
||||
au8Buffer[1] = SW_VERSION;
|
||||
CAND_boSendMessage( au8Buffer, 2, stMessage.boIsPrivate, stMessage.u8Type );
|
||||
break;
|
||||
case COMMAND_SET_REF_VOLTAGE:
|
||||
VARH_UVariable uData;
|
||||
UTIL_vMemCopy(&stMessage.au8Data[1], &uData, 4);
|
||||
ANPI_vSetRefVoltage(uData.flVal);
|
||||
ANPO_boSetVoltage(uData.flVal);
|
||||
case COMMAND_SAVE_VARIABLES:
|
||||
au8Buffer[0] = COMMAND_SAVE_VARIABLES;
|
||||
au8Buffer[1] = VARH_vSaveVariablestoFlash() ? 0xFF : 0x00;
|
||||
CAND_boSendMessage( au8Buffer, 2, stMessage.boIsPrivate, stMessage.u8Type );
|
||||
break;
|
||||
case COMMAND_LOAD_VARIABLES:
|
||||
VARH_vLoadVariablesfromFlash();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@ -30,6 +30,8 @@
|
||||
|
||||
#include "VARH_VariableHandler.h"
|
||||
|
||||
#include "USFL_UserFlash.h"
|
||||
|
||||
// Toolbox
|
||||
#include "../Toolbox/UTIL_Utility.h"
|
||||
|
||||
@ -69,6 +71,11 @@ LOCAL osMutexId_t m_pstMutexID = NULL;
|
||||
// Description: Definition of local constants (visible by this module only).
|
||||
//=================================================================================================
|
||||
|
||||
/*
|
||||
If you set the VARH_FLAGINFO_FLASH, don't forget to update the Number of variables saved into Flash!!!
|
||||
Middlewares\ST\EEPROM_Emul\Core\eeprom_emul_conf.h
|
||||
*/
|
||||
|
||||
LOCAL CONST VARH_StVarInfo m_astVarInfo[VARH_eNumberOfVariables] =
|
||||
{
|
||||
{ VARH_FLAGINFO_NONE, (VARH_UVariable)(U32)1, (VARH_UVariable)(U32)0, (VARH_UVariable)(U32)1}, // VARH_eMode
|
||||
@ -97,6 +104,7 @@ LOCAL CONST VARH_StVarInfo m_astVarInfo[VARH_eNumberOfVariables] =
|
||||
|
||||
{ VARH_FLAGINFO_READONLY, (VARH_UVariable)(U32)0, (VARH_UVariable)(U32)0, (VARH_UVariable)(U32)1 }, // VARH_ePowerState
|
||||
{ VARH_FLAGINFO_READONLY, (VARH_UVariable)(U32)0, (VARH_UVariable)(U32)0, (VARH_UVariable)(U32)0xFFFFFFFF }, // VARH_eError
|
||||
{ VARH_FLAGINFO_FLASH | VARH_FLAGINFO_FLOAT, (VARH_UVariable)3.3f, (VARH_UVariable)(U32)2.0f, (VARH_UVariable)4.0f }, // VARH_eRef_U
|
||||
};
|
||||
|
||||
LOCAL CONST osMutexAttr_t m_stMutexAttr =
|
||||
@ -353,6 +361,56 @@ VOID VARH_vSetAllVariablesToInitData( VOID )
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// Function: VARH_vSaveVariablestoFlash
|
||||
// Description: Saves all Variables with Flag VARH_FLAGINFO_FLASH to Flash
|
||||
// Parameters: None
|
||||
// Returns: TRUE if successful
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
BOOL VARH_vSaveVariablestoFlash( VOID )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
USFL_vUnlock();
|
||||
for( U8 u8Var = 0; u8Var < VARH_eNumberOfVariables; u8Var++ )
|
||||
{
|
||||
if( (m_astVarInfo[u8Var].u8Flags & VARH_FLAGINFO_FLASH) == VARH_FLAGINFO_FLASH ){
|
||||
boOK &= USFL_boSetVariable(u8Var, VARH_u32GetVariableData(u8Var));
|
||||
}
|
||||
}
|
||||
USFL_vLock();
|
||||
|
||||
return boOK;
|
||||
}
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// Function: VARH_vSaveVariablestoFlash
|
||||
// Description: Saves all Variables with Flag VARH_FLAGINFO_FLASH to Flash
|
||||
// Parameters: None
|
||||
// Returns: None
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
VOID VARH_vLoadVariablesfromFlash( VOID )
|
||||
{
|
||||
BOOL boOK = TRUE;
|
||||
for( U8 u8Var = 0; u8Var < VARH_eNumberOfVariables; u8Var++ )
|
||||
{
|
||||
if( (m_astVarInfo[u8Var].u8Flags & VARH_FLAGINFO_FLASH) == VARH_FLAGINFO_FLASH ){
|
||||
U32 u32Data;
|
||||
boOK &= USFL_boGetVariable(u8Var, &u32Data);
|
||||
if( boOK ) VARH_vSetVariableDataFromSystemU32(u8Var, u32Data);
|
||||
}
|
||||
}
|
||||
if( !boOK ){
|
||||
for( U8 u8Var = 0; u8Var < VARH_eNumberOfVariables; u8Var++ )
|
||||
{
|
||||
if( (m_astVarInfo[u8Var].u8Flags & VARH_FLAGINFO_FLASH) == VARH_FLAGINFO_FLASH ){
|
||||
VARH_vSetVariableToInitData( u8Var );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//=================================================================================================
|
||||
// Section: LOCAL FUNCTIONS
|
||||
// Descriptionn: Definition (implementation) of local functions.
|
||||
|
@ -91,6 +91,7 @@ typedef enum
|
||||
|
||||
VARH_ePowerState,
|
||||
VARH_eError,
|
||||
VARH_eRef_U,
|
||||
|
||||
VARH_eNumberOfVariables, // Must be last entry
|
||||
} VARH_EnVariables;
|
||||
@ -167,6 +168,9 @@ U8 VARH_uGetVariableFlags( U8 u8Variable );
|
||||
VOID VARH_vSetVariableToInitData( U8 u8Variable );
|
||||
VOID VARH_vSetAllVariablesToInitData( VOID );
|
||||
|
||||
BOOL VARH_vSaveVariablestoFlash( VOID );
|
||||
VOID VARH_vLoadVariablesfromFlash( VOID );
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user