UTAG uint64
This commit is contained in:
@@ -390,18 +390,22 @@ static void getOptions(DBADDR *paddr, char **poriginal, long *options,
|
||||
}
|
||||
if( (*options) & DBR_TIME ) {
|
||||
epicsUInt32 *ptime = (epicsUInt32 *)pbuffer;
|
||||
epicsUInt64 *ptime64;
|
||||
|
||||
if (!pfl) {
|
||||
*ptime++ = pcommon->time.secPastEpoch;
|
||||
*ptime++ = pcommon->time.nsec;
|
||||
*ptime++ = pcommon->utag;
|
||||
} else {
|
||||
*ptime++ = pfl->time.secPastEpoch;
|
||||
*ptime++ = pfl->time.nsec;
|
||||
*ptime++ = pfl->utag;
|
||||
}
|
||||
*ptime++ = 0; /* padding */
|
||||
pbuffer = (char *)ptime;
|
||||
ptime64 = (epicsUInt64*)ptime;
|
||||
if (!pfl || pfl->type == dbfl_type_rec) {
|
||||
*ptime64++ = pcommon->utag;
|
||||
} else {
|
||||
*ptime64++ = pfl->utag;
|
||||
}
|
||||
pbuffer = (char *)ptime64;
|
||||
}
|
||||
if( (*options) & DBR_ENUM_STRS )
|
||||
get_enum_strs(paddr, &pbuffer, prset, options);
|
||||
|
||||
@@ -114,8 +114,7 @@ DBCORE_API extern int dbAccessDebugPUTF;
|
||||
* maintain 8-byte alignment. */
|
||||
#define DBRtime \
|
||||
epicsTimeStamp time; /* time stamp*/\
|
||||
epicsInt32 utag;\
|
||||
epicsInt32 padTime;
|
||||
epicsUTag utag;
|
||||
#define DBRenumStrs \
|
||||
epicsUInt32 no_str; /* number of strings*/\
|
||||
epicsInt32 padenumStrs; /*padding to force 8 byte align*/\
|
||||
|
||||
@@ -524,7 +524,7 @@ field which is then used to acquire a timestamp.
|
||||
interest(2)
|
||||
extra("epicsTimeStamp time")
|
||||
}
|
||||
field(UTAG,DBF_LONG) {
|
||||
field(UTAG,DBF_UINT64) {
|
||||
prompt("Time Tag")
|
||||
special(SPC_NOMOD)
|
||||
interest(3)
|
||||
|
||||
@@ -359,7 +359,7 @@ static long dbDbGetAlarm(const struct link *plink, epicsEnum16 *status,
|
||||
return dbDbGetAlarmMsg(plink, status, severity, NULL, 0u);
|
||||
}
|
||||
|
||||
static long dbDbGetTimeStampTag(const struct link *plink, epicsTimeStamp *pstamp, epicsInt32 *ptag)
|
||||
static long dbDbGetTimeStampTag(const struct link *plink, epicsTimeStamp *pstamp, epicsUTag *ptag)
|
||||
{
|
||||
dbChannel *chan = linkChannel(plink);
|
||||
dbCommon *precord = dbChannelRecord(chan);
|
||||
|
||||
@@ -427,7 +427,7 @@ long dbGetTimeStamp(const struct link *plink, epicsTimeStamp *pstamp)
|
||||
}
|
||||
|
||||
long dbGetTimeStampTag(const struct link *plink,
|
||||
epicsTimeStamp *pstamp, epicsInt32 *ptag)
|
||||
epicsTimeStamp *pstamp, epicsUTag *ptag)
|
||||
{
|
||||
lset *plset = plink->lset;
|
||||
|
||||
|
||||
@@ -385,7 +385,7 @@ typedef struct lset {
|
||||
*
|
||||
* @since Added after UNRELEASED
|
||||
*/
|
||||
long (*getTimeStampTag)(const struct link *plink, epicsTimeStamp *pstamp, epicsInt32 *ptag);
|
||||
long (*getTimeStampTag)(const struct link *plink, epicsTimeStamp *pstamp, epicsUTag *ptag);
|
||||
} lset;
|
||||
|
||||
#define dbGetSevr(link, sevr) \
|
||||
@@ -439,7 +439,7 @@ DBCORE_API long dbGetTimeStamp(const struct link *plink,
|
||||
epicsTimeStamp *pstamp);
|
||||
/** @since UNRELEASED */
|
||||
DBCORE_API long dbGetTimeStampTag(const struct link *plink,
|
||||
epicsTimeStamp *pstamp, epicsInt32 *ptag);
|
||||
epicsTimeStamp *pstamp, epicsUTag *ptag);
|
||||
#define dbGetTimeStampTag(LINK, STAMP, TAG) dbGetTimeStampTag(LINK, STAMP, TAG)
|
||||
DBCORE_API long dbPutLink(struct link *plink, short dbrType,
|
||||
const void *pbuffer, long nRequest);
|
||||
|
||||
@@ -113,7 +113,7 @@ typedef struct db_field_log {
|
||||
unsigned char mask; /* DBE_* mask */
|
||||
/* the following are used for value and reference types */
|
||||
epicsTimeStamp time; /* Time stamp */
|
||||
epicsInt32 utag;
|
||||
epicsUTag utag;
|
||||
unsigned short stat; /* Alarm Status */
|
||||
unsigned short sevr; /* Alarm Severity */
|
||||
char amsg[40];
|
||||
|
||||
@@ -47,7 +47,7 @@ static int parse_ok(void *raw)
|
||||
static db_field_log* filter(void* raw, dbChannel *chan, db_field_log *pfl)
|
||||
{
|
||||
utagPvt *pvt = (utagPvt*)raw;
|
||||
epicsInt32 utag = pfl->type==dbfl_type_rec ? dbChannelRecord(chan)->utag : pfl->utag;
|
||||
epicsUTag utag = pfl->type==dbfl_type_rec ? dbChannelRecord(chan)->utag : pfl->utag;
|
||||
int drop = (utag&pvt->mask)!=pvt->value;
|
||||
|
||||
if(pfl->ctx!=dbfl_context_event || pfl->mask&DBE_PROPERTY) {
|
||||
|
||||
@@ -67,7 +67,7 @@ typedef struct calc_link {
|
||||
struct link out;
|
||||
double arg[CALCPERFORM_NARGS];
|
||||
epicsTimeStamp time;
|
||||
epicsInt32 utag;
|
||||
epicsUTag utag;
|
||||
double val;
|
||||
} calc_link;
|
||||
|
||||
@@ -535,7 +535,7 @@ static long lnkCalc_getElements(const struct link *plink, long *nelements)
|
||||
struct lcvt {
|
||||
double *pval;
|
||||
epicsTimeStamp *ptime;
|
||||
epicsInt32 *ptag;
|
||||
epicsUTag *ptag;
|
||||
};
|
||||
|
||||
static long readLocked(struct link *pinp, void *vvt)
|
||||
@@ -754,7 +754,7 @@ static long lnkCalc_getAlarm(const struct link *plink, epicsEnum16 *status,
|
||||
return lnkCalc_getAlarmMsg(plink, status, severity, NULL, 0u);
|
||||
}
|
||||
|
||||
static long lnkCalc_getTimestampTag(const struct link *plink, epicsTimeStamp *pstamp, epicsInt32 *ptag)
|
||||
static long lnkCalc_getTimestampTag(const struct link *plink, epicsTimeStamp *pstamp, epicsUTag *ptag)
|
||||
{
|
||||
calc_link *clink = CONTAINER(plink->value.json.jlink,
|
||||
struct calc_link, jlink);
|
||||
|
||||
Reference in New Issue
Block a user