Files
motorBase/motorApp/SoftMotorSrc/devSoft.h
T

65 lines
1.8 KiB
C

/*
FILENAME.. devSoft.h
USAGE... This file contains information that is common to
all Soft channel device support modules.
*/
/*
* Original Author: Ron Sluiter
* Date: 03/25/99
*
* Experimental Physics and Industrial Control System (EPICS)
*
* Copyright 1991, the University of Chicago Board of Governors.
*
* This software was produced under U.S. Government contract
* W-31-109-ENG-38 at Argonne National Laboratory.
*
* Beamline Controls & Data Acquisition Group
* Experimental Facilities Division
* Advanced Photon Source
* Argonne National Laboratory
*
* Modification Log:
* -----------------
* .01 06-16-03 rls Converted to R3.14.x.
* .02 09-23-04 rls Increase the maximum number of Soft Channel motor records
* from 20 to 50.
* .03 2006-04-10 pnd Convert to linked lists to remove arbitrary maximum
*/
#ifndef INCdevSofth
#define INCdevSofth 1
#include <callback.h>
#include <ellLib.h>
typedef enum DONE_STATES {SOFTMOVE = 0, HARDMOVE = 1, DONE = 2} DONE_STATES;
struct soft_private
{
CALLBACK callback;
CALLBACK_VALUE callback_flag;
DONE_STATES dinp_value; /* Value from DINP link. */
bool default_done_behavior; /* If the DINP is not programmed, exhibit
* "immediate done" default behavior. */
bool initialized; /* 1st RDBL call after interruptAccept is TRUE
* sets this ON. */
};
struct motor_node {
ELLNODE node;
struct motorRecord *pmr;
};
extern long soft_init(int);
extern long soft_init_record(void *);
extern void soft_dinp_func(struct motorRecord *, short);
extern void soft_rdbl_func(struct motorRecord *, double);
extern void soft_rinp_func(struct motorRecord *, long);
extern void soft_motor_callback(CALLBACK *);
#endif /* INCdevSofth */