author | Heinz Junkes <junkes@fhi-berlin.mpg.de> |
Wed, 12 Jun 2013 16:50:23 +0200 | |
changeset 2 | 57c937174a2e |
parent 0 | 50cbed80af1a |
permissions | -rw-r--r-- |
0
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
1 |
/* |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
2 |
* Stringin device support for EPICS time stamps |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
3 |
* |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
4 |
* devTimestampSI.c,v 1.1.2.1 2004/01/08 21:08:56 norume Exp |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
5 |
* |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
6 |
* fixed for vxWorks 5.4.2 bfr |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
7 |
*/ |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
8 |
|
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
9 |
#include <string.h> |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
10 |
#include <epicsStdio.h> |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
11 |
#include <epicsTime.h> |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
12 |
#include <stringinRecord.h> |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
13 |
#include <alarm.h> |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
14 |
#include <devSup.h> |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
15 |
#include <recGbl.h> |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
16 |
#include <epicsExport.h> |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
17 |
|
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
18 |
static long |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
19 |
read_stringin (struct stringinRecord *psi) |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
20 |
{ |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
21 |
int l; |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
22 |
|
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
23 |
recGblGetTimeStamp(psi); |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
24 |
if (strcmp(psi->inp.value.instio.string,"%s")==0) { |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
25 |
l = epicsSnprintf(psi->val, sizeof psi->val, "%u", psi->time.secPastEpoch); |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
26 |
} else { |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
27 |
l = epicsTimeToStrftime(psi->val, sizeof psi->val, psi->inp.value.instio.string, &psi->time); |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
28 |
} |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
29 |
if (l >= sizeof psi->val) { |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
30 |
psi->udf = 1; |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
31 |
recGblSetSevr(psi,UDF_ALARM,INVALID_ALARM); |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
32 |
return -1; |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
33 |
} |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
34 |
psi->udf = 0; |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
35 |
return 0; |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
36 |
} |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
37 |
|
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
38 |
struct { |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
39 |
long number; |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
40 |
DEVSUPFUN dev_report; |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
41 |
DEVSUPFUN init; |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
42 |
DEVSUPFUN init_record; /*returns: (0,2)=>(success,success no convert)*/ |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
43 |
DEVSUPFUN get_ioint_info; |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
44 |
DEVSUPFUN read_stringin;/*(0)=>(success ) */ |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
45 |
} devSiTimestampWorkaround = { |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
46 |
6, |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
47 |
NULL, |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
48 |
NULL, |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
49 |
NULL, |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
50 |
NULL, |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
51 |
read_stringin |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
52 |
}; |
50cbed80af1a
Add IOCDOSE to repository
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff
changeset
|
53 |
epicsExportAddress(dset,devSiTimestampWorkaround); |