/* 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 #include 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 */