forked from epics_driver_modules/motorBase
65 lines
1.8 KiB
C
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 */
|