13 #include <epicsExport.h>    23 #include <stringinRecord.h>    48 long stringin_add(dbCommon *praw)
    50     stringinRecord *prec=(stringinRecord*)(praw);
    53     assert(prec->inp.type==INST_IO);
    58     if (
linkOptionsStore(eventdef, priv.get(), prec->inp.value.instio.string, 0))
    59         throw std::runtime_error(
"Couldn't parse link string");
    63         errlogPrintf(
"%s: failed to find object '%s'\n", praw->name, priv->obj);
    66     priv->evr=
dynamic_cast<EVR*
>(O);
    68         throw std::runtime_error(
"Failed to lookup device");
    70     prec->dpvt=(
void*)priv.release();
    74 } 
catch(std::runtime_error& e) {
    75     recGblRecordError(S_dev_noDevice, (
void*)prec, e.what());
    77 } 
catch(std::exception& e) {
    78     recGblRecordError(S_db_noMemory, (
void*)prec, e.what());
    85 static long read_si(stringinRecord* prec)
    97         strncpy(prec->val,
"EVR time unavailable",
sizeof(prec->val));
    98         return S_dev_deviceTMO;
   101     if (ts.secPastEpoch==priv->
last_bad)
   104     size_t r=epicsTimeToStrftime(prec->val,
   106                                  "%a, %d %b %Y %H:%M:%S %z",
   108     if(r==0||r==
sizeof(prec->val)){
   109         recGblRecordError(S_dev_badArgument, (
void*)prec,
   110                           "Format string resulted in error");
   112         return S_dev_badArgument;
   115     if(prec->tse==epicsTimeEventDeviceTime) {
   120 } 
catch(std::exception& e) {
   121     recGblRecordError(S_db_noMemory, (
void*)prec, e.what());
   122     return S_db_noMemory;
   128 dsxt 
dxtSIEVR={&stringin_add,&del_record_delete<ts_priv>};
   133     dset_cast(&init_dset<&dxtSIEVR>),
   134     (DEVSUPFUN) init_record_empty,
 
static Object * getObject(const std::string &name)
 
int epicsShareAPI linkOptionsStore(const linkOptionDef *opts, void *user, const char *str, int options)
Parse a string a store the result. 
 
#define linkInt32(Struct, Member, Name, Req, Over)
 
epicsExportAddress(dset, devSIEVR)
 
Hardware link parsing and storage. 
 
#define linkString(Struct, Member, Name, Req, Over)
 
virtual bool getTimeStamp(epicsTimeStamp *ts, epicsUInt32 event)=0