New Can protocol implemented
This commit is contained in:
parent
5ed17f4c4d
commit
d6e9c78497
@ -68,6 +68,10 @@
|
|||||||
#define MESSAGE_TYPE_WRITE 1
|
#define MESSAGE_TYPE_WRITE 1
|
||||||
#define MESSAGE_TYPE_COMMAND 2
|
#define MESSAGE_TYPE_COMMAND 2
|
||||||
|
|
||||||
|
#define COMMAND_NONE 0
|
||||||
|
#define COMMAND_ON 1
|
||||||
|
#define COMMAND_OFF 2
|
||||||
|
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
// Section: MACROS
|
// Section: MACROS
|
||||||
// Description: Definition of local macros (visible by this module only).
|
// Description: Definition of local macros (visible by this module only).
|
||||||
@ -229,58 +233,36 @@ PRIVATE VOID vTask( PVOID arg )
|
|||||||
|
|
||||||
U8 u8Register = stMessage.au8Data[0];
|
U8 u8Register = stMessage.au8Data[0];
|
||||||
U8 u8Typ = stMessage.au8Data[1];
|
U8 u8Typ = stMessage.au8Data[1];
|
||||||
VARH_UVariable uData;
|
|
||||||
UTIL_vMemCopy(&stMessage.au8Data[2], &uData, 4);
|
|
||||||
|
|
||||||
if( u8Typ == MESSAGE_TYPE_READ ){
|
if( u8Typ == MESSAGE_TYPE_READ ){
|
||||||
|
VARH_UVariable uVariable = VARH_uGetVariableData(u8Register);
|
||||||
|
|
||||||
|
au8Buffer[0] = u8Register;
|
||||||
|
au8Buffer[1] = u8Typ;
|
||||||
|
UTIL_vMemCopy(&uVariable, &au8Buffer[2], 4);
|
||||||
|
|
||||||
|
CAND_boSendMessage( au8Buffer, 6 );
|
||||||
|
} else if( u8Typ == MESSAGE_TYPE_WRITE ){
|
||||||
|
VARH_UVariable uData;
|
||||||
|
UTIL_vMemCopy(&stMessage.au8Data[2], &uData, 4);
|
||||||
|
|
||||||
|
VARH_vSetVariableData(u8Register, uData);
|
||||||
|
} else if( u8Typ == MESSAGE_TYPE_COMMAND ){
|
||||||
|
|
||||||
|
switch (u8Register)
|
||||||
|
{
|
||||||
|
case COMMAND_ON:
|
||||||
|
PECO_Enable( TRUE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
case COMMAND_OFF:
|
||||||
|
PECO_Enable( FALSE );
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if( u8Register == 0x12 ){
|
|
||||||
|
|
||||||
S16 s16Voltage = stMessage.au8Data[0] << 8;
|
|
||||||
s16Voltage |= stMessage.au8Data[1];
|
|
||||||
VARH_vSetVariableDataFloat( VARH_eControlVoltage, (FLOAT)s16Voltage / 1000 );
|
|
||||||
|
|
||||||
} else if( u8Register == 0x13 ){
|
|
||||||
|
|
||||||
S16 SupplyVoltage24V = (S16) ( VARH_flGetVariableData( VARH_eSupply_U ) * 1000 );
|
|
||||||
S16 SupplyCurrent24V = (S16) ( VARH_flGetVariableData( VARH_eSupply_I ) * 1000 );
|
|
||||||
S16 OutputVoltage = (S16) ( VARH_flGetVariableData( VARH_ePeltier_U ) * 1000 );
|
|
||||||
S16 OutputCurrent = (S16) ( VARH_flGetVariableData( VARH_ePeltier_I ) * 1000 );
|
|
||||||
|
|
||||||
au8Buffer[0] = ( SupplyVoltage24V & 0xFF00 ) >> 8;
|
|
||||||
au8Buffer[1] = SupplyVoltage24V & 0xFF;
|
|
||||||
au8Buffer[2] = ( SupplyCurrent24V & 0xFF00 ) >> 8;
|
|
||||||
au8Buffer[3] = SupplyCurrent24V & 0xFF;
|
|
||||||
au8Buffer[4] = ( OutputVoltage & 0xFF00 ) >> 8;
|
|
||||||
au8Buffer[5] = OutputVoltage & 0xff;
|
|
||||||
au8Buffer[6] = ( OutputCurrent & 0xFF00 ) >> 8;
|
|
||||||
au8Buffer[7] = OutputCurrent & 0xFF;
|
|
||||||
|
|
||||||
CAND_boSendMessage( 0x14, 8, au8Buffer );
|
|
||||||
|
|
||||||
} else if( u8Register == 0x15 ){
|
|
||||||
|
|
||||||
S16 Cold = (S16) ( VARH_flGetVariableData( VARH_eTemp_C ) * 100 );
|
|
||||||
S16 Hot = (S16) ( VARH_flGetVariableData( VARH_eTemp_H ) * 100 );
|
|
||||||
|
|
||||||
au8Buffer[0] = ( Cold & 0xFF00 ) >> 8;
|
|
||||||
au8Buffer[1] = ( Cold & 0x00FF );
|
|
||||||
au8Buffer[2] = ( Hot & 0xFF00 ) >> 8;
|
|
||||||
au8Buffer[3] = ( Hot & 0x00FF );
|
|
||||||
|
|
||||||
CAND_boSendMessage( 0x16, 4, au8Buffer );
|
|
||||||
|
|
||||||
} else if( u8Register == 0x17 ){
|
|
||||||
|
|
||||||
PECO_Enable( TRUE );
|
|
||||||
|
|
||||||
} else if( u8Register == 0x18 ){
|
|
||||||
|
|
||||||
PECO_Enable( FALSE );
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( u32Flags & EVENT_TIMER_UPDATE )
|
if( u32Flags & EVENT_TIMER_UPDATE )
|
||||||
|
@ -118,11 +118,6 @@ PRIVATE BOOL boU32VarCheck( U8 u8Variable, U32 u32NewValue );
|
|||||||
PRIVATE BOOL boS32VarCheck( U8 u8Variable, S32 s32NewValue );
|
PRIVATE BOOL boS32VarCheck( U8 u8Variable, S32 s32NewValue );
|
||||||
PRIVATE BOOL boFloatVarCheck( U8 u8Variable, FLOAT flNewValue );
|
PRIVATE BOOL boFloatVarCheck( U8 u8Variable, FLOAT flNewValue );
|
||||||
|
|
||||||
PRIVATE VOID vSetVariableData( U8 u8Variable, VARH_UVariable uData );
|
|
||||||
PRIVATE VOID vSetVariableDataFromSystem( U8 u8Variable, VARH_UVariable uData );
|
|
||||||
PRIVATE VARH_UVariable uGetVariableData( U8 u8Variable );
|
|
||||||
|
|
||||||
|
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
// Section: EXTERNAL FUNCTIONS
|
// Section: EXTERNAL FUNCTIONS
|
||||||
// Description: Definition of external (global) functions.
|
// Description: Definition of external (global) functions.
|
||||||
@ -156,13 +151,13 @@ BOOL VARH_boInitializeModule( VOID )
|
|||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
// Function: vSetVariableData
|
// Function: VARH_vSetVariableData
|
||||||
// Description: Sets the Variable Data and checks the parameters (Readonly and Min/Max)
|
// Description: Sets the Variable Data and checks the parameters (Readonly and Min/Max)
|
||||||
// Parameters: U8 u8Variable
|
// Parameters: U8 u8Variable
|
||||||
// VARH_UVariable uData
|
// VARH_UVariable uData
|
||||||
// Returns: None
|
// Returns: None
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
VOID vSetVariableData( U8 u8Variable, VARH_UVariable uData )
|
VOID VARH_vSetVariableData( U8 u8Variable, VARH_UVariable uData )
|
||||||
{
|
{
|
||||||
// check parameters
|
// check parameters
|
||||||
if( m_astVarInfo[u8Variable].u8Flags & VARH_FLAGINFO_READONLY )
|
if( m_astVarInfo[u8Variable].u8Flags & VARH_FLAGINFO_READONLY )
|
||||||
@ -184,7 +179,7 @@ VOID vSetVariableData( U8 u8Variable, VARH_UVariable uData )
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
VOID VARH_vSetVariableDataU32( U8 u8Variable, U32 u32Data )
|
VOID VARH_vSetVariableDataU32( U8 u8Variable, U32 u32Data )
|
||||||
{
|
{
|
||||||
vSetVariableData( u8Variable, (VARH_UVariable)u32Data );
|
VARH_vSetVariableData( u8Variable, (VARH_UVariable)u32Data );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
@ -196,7 +191,7 @@ VOID VARH_vSetVariableDataU32( U8 u8Variable, U32 u32Data )
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
VOID VARH_vSetVariableDataS32( U8 u8Variable, S32 s32Data )
|
VOID VARH_vSetVariableDataS32( U8 u8Variable, S32 s32Data )
|
||||||
{
|
{
|
||||||
vSetVariableData( u8Variable, (VARH_UVariable)s32Data );
|
VARH_vSetVariableData( u8Variable, (VARH_UVariable)s32Data );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
@ -208,19 +203,19 @@ VOID VARH_vSetVariableDataS32( U8 u8Variable, S32 s32Data )
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
VOID VARH_vSetVariableDataFloat( U8 u8Variable, FLOAT flData )
|
VOID VARH_vSetVariableDataFloat( U8 u8Variable, FLOAT flData )
|
||||||
{
|
{
|
||||||
vSetVariableData( u8Variable, (VARH_UVariable)flData );
|
VARH_vSetVariableData( u8Variable, (VARH_UVariable)flData );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
// Function: vSetVariableDataFromSystem
|
// Function: VARH_vSetVariableDataFromSystem
|
||||||
// Description: Sets the Variable Data from System
|
// Description: Sets the Variable Data from System
|
||||||
// Use only internal, not for User!
|
// Use only internal, not for User!
|
||||||
// Parameters: U8 u8Variable
|
// Parameters: U8 u8Variable
|
||||||
// VARH_UVariable uData
|
// VARH_UVariable uData
|
||||||
// Returns: None
|
// Returns: None
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
VOID vSetVariableDataFromSystem( U8 u8Variable, VARH_UVariable uData )
|
VOID VARH_vSetVariableDataFromSystem( U8 u8Variable, VARH_UVariable uData )
|
||||||
{
|
{
|
||||||
osMutexAcquire( m_pstMutexID, osWaitForever ); // aquire mutex
|
osMutexAcquire( m_pstMutexID, osWaitForever ); // aquire mutex
|
||||||
if( boCheckRange( u8Variable, uData ) )
|
if( boCheckRange( u8Variable, uData ) )
|
||||||
@ -241,7 +236,7 @@ VOID vSetVariableDataFromSystem( U8 u8Variable, VARH_UVariable uData )
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
VOID VARH_vSetVariableDataFromSystemU32( U8 u8Variable, U32 u32Data )
|
VOID VARH_vSetVariableDataFromSystemU32( U8 u8Variable, U32 u32Data )
|
||||||
{
|
{
|
||||||
vSetVariableDataFromSystem( u8Variable, (VARH_UVariable)u32Data );
|
VARH_vSetVariableDataFromSystem( u8Variable, (VARH_UVariable)u32Data );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
@ -254,7 +249,7 @@ VOID VARH_vSetVariableDataFromSystemU32( U8 u8Variable, U32 u32Data )
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
VOID VARH_vSetVariableDataFromSystemS32( U8 u8Variable, S32 s32Data )
|
VOID VARH_vSetVariableDataFromSystemS32( U8 u8Variable, S32 s32Data )
|
||||||
{
|
{
|
||||||
vSetVariableDataFromSystem( u8Variable, (VARH_UVariable)s32Data );
|
VARH_vSetVariableDataFromSystem( u8Variable, (VARH_UVariable)s32Data );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
@ -267,16 +262,16 @@ VOID VARH_vSetVariableDataFromSystemS32( U8 u8Variable, S32 s32Data )
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
VOID VARH_vSetVariableDataFromSystemFloat( U8 u8Variable, FLOAT flData )
|
VOID VARH_vSetVariableDataFromSystemFloat( U8 u8Variable, FLOAT flData )
|
||||||
{
|
{
|
||||||
vSetVariableDataFromSystem( u8Variable, (VARH_UVariable)flData );
|
VARH_vSetVariableDataFromSystem( u8Variable, (VARH_UVariable)flData );
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
// Function: uGetVariableData
|
// Function: VARH_uGetVariableData
|
||||||
// Description: Gets the Variable Data
|
// Description: Gets the Variable Data
|
||||||
// Parameters: U8 u8Variable
|
// Parameters: U8 u8Variable
|
||||||
// Returns: VARH_UVariable
|
// Returns: VARH_UVariable
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
VARH_UVariable uGetVariableData( U8 u8Variable )
|
VARH_UVariable VARH_uGetVariableData( U8 u8Variable )
|
||||||
{
|
{
|
||||||
osMutexAcquire( m_pstMutexID, osWaitForever ); // aquire mutex
|
osMutexAcquire( m_pstMutexID, osWaitForever ); // aquire mutex
|
||||||
VARH_UVariable uVar = m_auVariable[u8Variable].uData;
|
VARH_UVariable uVar = m_auVariable[u8Variable].uData;
|
||||||
@ -292,7 +287,7 @@ VARH_UVariable uGetVariableData( U8 u8Variable )
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
U32 VARH_u32GetVariableData( U8 u8Variable )
|
U32 VARH_u32GetVariableData( U8 u8Variable )
|
||||||
{
|
{
|
||||||
return uGetVariableData( u8Variable ).u32Val;
|
return VARH_uGetVariableData( u8Variable ).u32Val;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
@ -303,7 +298,7 @@ U32 VARH_u32GetVariableData( U8 u8Variable )
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
S32 VARH_s32GetVariableData( U8 u8Variable )
|
S32 VARH_s32GetVariableData( U8 u8Variable )
|
||||||
{
|
{
|
||||||
return uGetVariableData( u8Variable ).s32Val;
|
return VARH_uGetVariableData( u8Variable ).s32Val;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
@ -314,7 +309,7 @@ S32 VARH_s32GetVariableData( U8 u8Variable )
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
FLOAT VARH_flGetVariableData( U8 u8Variable )
|
FLOAT VARH_flGetVariableData( U8 u8Variable )
|
||||||
{
|
{
|
||||||
return uGetVariableData( u8Variable ).flVal;
|
return VARH_uGetVariableData( u8Variable ).flVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
@ -339,9 +334,7 @@ U8 VARH_uGetVariableFlags( U8 u8Variable )
|
|||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
VOID VARH_vSetVariableToInitData( U8 u8Variable )
|
VOID VARH_vSetVariableToInitData( U8 u8Variable )
|
||||||
{
|
{
|
||||||
osMutexAcquire( m_pstMutexID, osWaitForever ); // aquire mutex
|
VARH_vSetVariableDataFromSystem( u8Variable, m_astVarInfo[u8Variable].uInitData );
|
||||||
vSetVariableDataFromSystem( u8Variable, m_astVarInfo[u8Variable].uInitData );
|
|
||||||
osMutexRelease( m_pstMutexID ); // release mutex
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
|
@ -142,16 +142,19 @@ typedef struct
|
|||||||
BOOL VARH_boInitializeModule( VOID );
|
BOOL VARH_boInitializeModule( VOID );
|
||||||
|
|
||||||
// set data
|
// set data
|
||||||
|
VOID VARH_vSetVariableData( U8 u8Variable, VARH_UVariable uData );
|
||||||
VOID VARH_vSetVariableDataU32( U8 u8Variable, U32 u32Data );
|
VOID VARH_vSetVariableDataU32( U8 u8Variable, U32 u32Data );
|
||||||
VOID VARH_vSetVariableDataS32( U8 u8Variable, S32 s32Data );
|
VOID VARH_vSetVariableDataS32( U8 u8Variable, S32 s32Data );
|
||||||
VOID VARH_vSetVariableDataFloat( U8 u8Variable, FLOAT flData );
|
VOID VARH_vSetVariableDataFloat( U8 u8Variable, FLOAT flData );
|
||||||
|
|
||||||
// set data from system
|
// set data from system
|
||||||
|
VOID VARH_vSetVariableDataFromSystem( U8 u8Variable, VARH_UVariable uData );
|
||||||
VOID VARH_vSetVariableDataFromSystemU32( U8 u8Variable, U32 u32Data );
|
VOID VARH_vSetVariableDataFromSystemU32( U8 u8Variable, U32 u32Data );
|
||||||
VOID VARH_vSetVariableDataFromSystemS32( U8 u8Variable, S32 s32Data );
|
VOID VARH_vSetVariableDataFromSystemS32( U8 u8Variable, S32 s32Data );
|
||||||
VOID VARH_vSetVariableDataFromSystemFloat( U8 u8Variable, FLOAT flData );
|
VOID VARH_vSetVariableDataFromSystemFloat( U8 u8Variable, FLOAT flData );
|
||||||
|
|
||||||
// get data
|
// get data
|
||||||
|
VARH_UVariable VARH_uGetVariableData( U8 u8Variable );
|
||||||
U32 VARH_u32GetVariableData( U8 u8Variable );
|
U32 VARH_u32GetVariableData( U8 u8Variable );
|
||||||
S32 VARH_s32GetVariableData( U8 u8Variable );
|
S32 VARH_s32GetVariableData( U8 u8Variable );
|
||||||
FLOAT VARH_flGetVariableData( U8 u8Variable );
|
FLOAT VARH_flGetVariableData( U8 u8Variable );
|
||||||
|
@ -55,6 +55,8 @@
|
|||||||
#define CAND_PRIVATE 1
|
#define CAND_PRIVATE 1
|
||||||
#define CAND_PUBLIC 0
|
#define CAND_PUBLIC 0
|
||||||
|
|
||||||
|
#define MASTER_ID ((CAND_SHIFT<<6) | 0x0000)
|
||||||
|
|
||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
// Section: MACROS
|
// Section: MACROS
|
||||||
// Description: Definition of local macros (visible by this module only).
|
// Description: Definition of local macros (visible by this module only).
|
||||||
@ -161,13 +163,13 @@ BOOL CAND_boInitializeModule( VOID )
|
|||||||
// PU8 Data Buffer
|
// PU8 Data Buffer
|
||||||
// Returns: Boolean, TRUE if successful
|
// Returns: Boolean, TRUE if successful
|
||||||
//-------------------------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------------------------
|
||||||
BOOL CAND_boSendMessage( U8 u8Id, U8 u8Len, PU8 pu8Buffer ){
|
BOOL CAND_boSendMessage( PU8 pu8Buffer, U8 u8Len ){
|
||||||
BOOL boOK = TRUE;
|
BOOL boOK = TRUE;
|
||||||
|
|
||||||
if( u8Len > 8 ) return FALSE;
|
if( u8Len > 8 ) return FALSE;
|
||||||
|
|
||||||
CAN_TxHeaderTypeDef header = {
|
CAN_TxHeaderTypeDef header = {
|
||||||
u8Id,
|
MASTER_ID,
|
||||||
0,
|
0,
|
||||||
CAN_ID_STD,
|
CAN_ID_STD,
|
||||||
CAN_RTR_DATA,
|
CAN_RTR_DATA,
|
||||||
|
@ -89,7 +89,7 @@ typedef VOID (*CAND_pfnRxCallback)( CAND_Message stMessage );
|
|||||||
//=================================================================================================
|
//=================================================================================================
|
||||||
|
|
||||||
BOOL CAND_boInitializeModule( VOID );
|
BOOL CAND_boInitializeModule( VOID );
|
||||||
BOOL CAND_boSendMessage( U8 u8Id, U8 u8Len, PU8 pu8Buffer );
|
BOOL CAND_boSendMessage( PU8 pu8Buffer, U8 u8Len );
|
||||||
VOID CAND_vSetRxCallback( CAND_pfnRxCallback pfnRxCallback );
|
VOID CAND_vSetRxCallback( CAND_pfnRxCallback pfnRxCallback );
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
|
Loading…
x
Reference in New Issue
Block a user