📄 srvsld.h
字号:
/**************************************************
*
* srvsld.h
*
* CVS ID: $Id: srvsld.h,v 1.11 2007/09/26 15:10:45 dellorto Exp $
* Author: Fabio Dell'Orto [FD] - STM
* Date: $Date: 2007/09/26 15:10:45 $
* Revision: $Revision: 1.11 $
*
* Description:
*
*
***************************************************
*
* COPYRIGHT (C) ST Microelectronics 2005
* All Rights Reserved
*
***************************************************
*
* STM CVS Log:
*
* $Log: srvsld.h,v $ * Revision 1.11 2007/09/26 15:10:45 dellorto * added support for hf recover fixing * * Revision 1.10 2007/08/14 15:29:57 dellorto * multiple mechanisms * * Revision 1.9 2007/03/16 14:23:55 dellorto * fixed sign of rate jumped tracks * * Revision 1.8 2006/10/09 15:15:46 dellorto * no message *
* Revision 1.7 2006/09/18 09:55:26 belardi
* Corrected CVS keyword usage
*
* Revision 1.6 2006/09/18 09:25:48 belardi
* AddeLogg$ CVS keyword into file header
*
*
***************************************************/
#ifndef __SRVSLD_H
#define __SRVSLD_H
typedef enum
{
SLEDGE_CONDITION_NORMAL,
SLEDGE_CONDITION_CHECK_LONG_JUMP_DISTANCE,
SLEDGE_CONDITION_HOME_POSITIONING,
SLEDGE_CONDITION_STORE_DELTA_TRK,
SLEDGE_CONDITION_CHECK_DELTA_TRK
} t_sledge_condition;
typedef enum
{
SLEDGE_CALLER_INIT_CMD,
SLEDGE_CALLER_START_CMD,
SLEDGE_CALLER_STOP_CMD,
SLEDGE_CALLER_MAX_CMD,
SLEDGE_CALLER_TIMEOUT = SLEDGE_CALLER_MAX_CMD,
SLEDGE_CALLER_DSP_FORWARD,
SLEDGE_CALLER_DSP_BACKWARD
} t_sledge_caller;
typedef struct
{
UInt sledge_switch_position : 2;
UInt switch_reached_moving_inside : 1;
#ifndef APM_PICKUP
UInt ttm_fsm_call_request : 1;
UInt unused : 4;
#else
UInt unused : 5;
#endif
} SERVO_SLEDGE_FLAGS_STRUCT;
typedef union
{
uint8 all;
SERVO_SLEDGE_FLAGS_STRUCT field;
} SERVO_SLEDGE_FLAGS_UNION;
/* sledge switch position and event defines */
typedef uint8 t_sledge_sw_event;
#define SLEDGE_SWITCH ((__HOMESW_PORT & (1 << __HOMESW)) ? SLEDGE_SWITCH_OPEN : SLEDGE_SWITCH_HOME_POSITION)
#define SLEDGE_SWITCH_HOME_POSITION 0x00
#define SLEDGE_SWITCH_OPEN 0x01
#define SLEDGE_SWITCH_UNDEFINED 0x02
#define SLEDGE_SWITCH_VALUE 0x03
#define SLEDGE_SWITCH_REACHED_MOVING_INSIDE 0x04
#define SLEDGE_SW_NO_EVENT NO_EVENT
#define SLEDGE_SW_NEW_EVENT 0x08
#define home_position() (SLEDGE_SWITCH_HOME_POSITION == (event_in[SLEDGE_SW_EVENT].event & SLEDGE_SWITCH_VALUE))
#define switch_reached_moving_inside() (0 != (event_in[SLEDGE_SW_EVENT].event & SLEDGE_SWITCH_REACHED_MOVING_INSIDE))
typedef enum
{
SLEDGE_STATUS_NO_EVENT = NO_EVENT,
SLEDGE_STATUS_EVENT_MOVING,
SLEDGE_STATUS_EVENT_STOPPED
} t_sledge_status_event;
typedef enum
{
SLEDGE_STATE_IDLE = STATE_1,
SLEDGE_STATE_START_BRAKING = STATE_2,
SLEDGE_STATE_BRAKING = STATE_3,
SLEDGE_STATE_START_MOVING = STATE_4,
SLEDGE_STATE_MOVING_KICK = STATE_5,
SLEDGE_STATE_MOVING_CONSTANT = STATE_6,
SLEDGE_STATE_MOVING_CHANGE_PARAM = STATE_7,
SLEDGE_STATE_MOVING_BRAKE = SLEDGE_STATE_BRAKING
} t_sledge_state;
#define IS_SLEDGE_MOVING(x) ((x) >= SLEDGE_STATE_START_MOVING)
extern int16 sledge_param;
extern int16 rate_jumped_tracks;
extern t_sledge_condition sledge_condition;
extern t_sledge_state sledge_fsm_state; /* debug only */
void sledge_idle(void);
void dc_start_sledge (void);
void dc_stop_sledge (void);
#define start_sledge(x,y) dc_start_sledge()
#define stop_sledge(x) dc_stop_sledge()
void init_sledge_fsm(void);
void sledge_fsm_call(t_sledge_caller sledge_caller);
void set_sledge_for_play(void);
void set_sledge_for_jump(void);
t_bool sledge_stopped(void);
RETVAL sledge_home(void);
RETVAL sledge_move(void);
RETVAL sledge_move_hf(void);
RETVAL sledge_move_long_jump(void);
RETVAL sledge_move_relock(void);
#endif /* __SRVSLD_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -