fix Raw dset handling

This commit is contained in:
Michael Davidsaver
2013-03-31 19:00:33 -04:00
parent 5415ad3472
commit 40ff993e4f
2 changed files with 26 additions and 10 deletions

View File

@ -328,6 +328,14 @@ static long process_record(dbCommon *prec)
return 0; return 0;
} }
static long process_record2(dbCommon *prec)
{
long ret = process_record(prec);
if(ret==0)
ret = 2;
return ret;
}
int setReasonPyRecord(dbCommon *prec, PyObject *reason) int setReasonPyRecord(dbCommon *prec, PyObject *reason)
{ {
pyDevice *priv=prec->dpvt; pyDevice *priv=prec->dpvt;
@ -363,20 +371,27 @@ static long init(int i)
typedef struct { typedef struct {
dset com; dset com;
DEVSUPFUN proc; DEVSUPFUN proc;
} dset5; DEVSUPFUN linconv;
} dset6;
static dset5 pydevsupCom = {{5, (DEVSUPFUN)&report, (DEVSUPFUN)&init, static dset6 pydevsupCom = {{6, (DEVSUPFUN)&report, (DEVSUPFUN)&init,
(DEVSUPFUN)&init_record, (DEVSUPFUN)&init_record,
(DEVSUPFUN)&get_iointr_info}, (DEVSUPFUN)&get_iointr_info},
(DEVSUPFUN)&process_record}; (DEVSUPFUN)&process_record};
static dset5 pydevsupCom2 = {{5, (DEVSUPFUN)&report, (DEVSUPFUN)&init, static dset6 pydevsupComOut2 = {{6, (DEVSUPFUN)&report, (DEVSUPFUN)&init,
(DEVSUPFUN)&init_record2, (DEVSUPFUN)&init_record2,
(DEVSUPFUN)&get_iointr_info}, (DEVSUPFUN)&get_iointr_info},
(DEVSUPFUN)&process_record}; (DEVSUPFUN)&process_record};
static dset6 pydevsupComIn2 = {{6, (DEVSUPFUN)&report, (DEVSUPFUN)&init,
(DEVSUPFUN)&init_record,
(DEVSUPFUN)&get_iointr_info},
(DEVSUPFUN)&process_record2};
int isPyRecord(dbCommon *prec) int isPyRecord(dbCommon *prec)
{ {
return prec->dset==(dset*)&pydevsupCom || prec->dset==(dset*)&pydevsupCom2; return prec->dset==(dset*)&pydevsupCom
|| prec->dset==(dset*)&pydevsupComIn2
|| prec->dset==(dset*)&pydevsupComOut2;
} }
int canIOScanRecord(dbCommon *prec) int canIOScanRecord(dbCommon *prec)
@ -418,4 +433,5 @@ void pyDBD_cleanup(void)
#include <epicsExport.h> #include <epicsExport.h>
epicsExportAddress(dset, pydevsupCom); epicsExportAddress(dset, pydevsupCom);
epicsExportAddress(dset, pydevsupCom2); epicsExportAddress(dset, pydevsupComIn2);
epicsExportAddress(dset, pydevsupComOut2);

View File

@ -6,7 +6,7 @@ device(longout, INST_IO, pydevsupCom, "Python Device")
device(ai, INST_IO, pydevsupCom, "Python Device") device(ai, INST_IO, pydevsupCom, "Python Device")
device(ao, INST_IO, pydevsupCom, "Python Device") device(ao, INST_IO, pydevsupCom, "Python Device")
device(ai, INST_IO, pydevsupCom2, "Raw Python Device") device(ai, INST_IO, pydevsupComIn2, "Raw Python Device")
device(ao, INST_IO, pydevsupCom2, "Raw Python Device") device(ao, INST_IO, pydevsupComOut2, "Raw Python Device")
device(waveform, INST_IO, pydevsupCom, "Python Device") device(waveform, INST_IO, pydevsupCom, "Python Device")