⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 srvsld.h

📁 本程序为ST公司开发的源代码
💻 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 + -