ISIS Logo
ISISBEAM
ISIS Beam Information
isisbeamDriver.h
Go to the documentation of this file.
1 #ifndef ISISBEAMDRIVER_H
2 #define ISISBEAMDRIVER_H
3 
5 
6 #include "asynPortDriver.h"
7 
8 template <typename T>
9 struct asynItems
10 {
11  enum ParamType { value = -1 };
12 };
13 
14 template <>
15 struct asynItems<double>
16 {
17  enum ParamType { value = asynParamFloat64 };
18 };
19 
20 template <>
21 struct asynItems<int>
22 {
23  enum ParamType { value = asynParamInt32 };
24 };
25 
26 
28 class isisbeamDriver : public asynPortDriver
29 {
30 public:
31  isisbeamDriver(const char* portName);
32  static void pollerThreadC(void* arg);
33  virtual asynStatus readFloat64(asynUser *pasynUser, epicsFloat64 *value);
34 
35 private:
36  int P_BeamTS1;
37  int P_BeamTS2; // double
38  int P_MethaneTS1; // double
39  int P_HydrogenTS1; // double
40  int P_BeamSynch; // double
41  int P_FreqSynch; // double
42  int P_TotalTS1; // double
43  int P_FreqTS2; // double
44  int P_TotalTS2; // double
45  int P_DeMethaneTS2; // double
46  int P_MethaneTS2; // double
47  int P_HydrogenTS2; // double
48  int P_MuonKick; // double
49  int P_DmodRunTS2; // double
50  int P_DmodRunLimTS2; // double
51  int P_BeamDmodTS2; // double
52  int P_DmodAnnLowTS2; // double
53  int P_OnTS1; //string
54  int P_OffTS1; //string
55  int P_OnTS2; //string
56  int P_OffTS2; //string
57  int P_InstTS1; // string
58  int P_InstTS2; // string
59  int P_OsirisCryomag; // int
60  int P_UpdateTime; // string
61  int P_UpdateTimeT; // int
62  int P_BeamEPB1; // double
63 
64  std::map<std::string,int> m_blparams;
65 
66  void pollerThread();
67  epicsTimeStamp m_timestamp;
68 };
69 
70 #define P_BeamTS1String "BEAMTS1"
71 #define P_BeamTS2String "BEAMTS2"
72 #define P_MethaneTS1String "METHTS1"
73 #define P_HydrogenTS1String "HDGNTS1"
74 #define P_BeamEPB1String "BEAMEPB1"
75 #define P_BeamSynchString "BEAMSYNCH"
76 #define P_FreqSynchString "FREQSYNCH"
77 #define P_TotalTS1String "TOTALTS1"
78 #define P_FreqTS2String "FREQTS2"
79 #define P_TotalTS2String "TOTALTS2"
80 #define P_DeMethaneTS2String "DEMETHTS2"
81 #define P_MethaneTS2String "METHTS2"
82 #define P_HydrogenTS2String "HDGNTS2"
83 #define P_MuonKickString "MUKICK"
84 #define P_DmodRunTS2String "DRUNTS2"
85 #define P_DmodRunLimTS2String "DRLIMTS2"
86 #define P_BeamDmodTS2String "BEAMDMODTS2"
87 #define P_DmodAnnLowTS2String "DMODANNLOWTS2"
88 #define P_OnTS1String "ONTS1"
89 #define P_OffTS1String "OFFTS1"
90 #define P_OnTS2String "ONTS2"
91 #define P_OffTS2String "OFFTS2"
92 #define P_InstTS1String "INSTTS1"
93 #define P_InstTS2String "INSTTS2"
94 #define P_OsirisCryomagString "OSRSCRYO"
95 #define P_UpdateTimeString "UPDTIME"
96 #define P_UpdateTimeTString "UPDTIMET"
97 
98 #endif /* ISISBEAMDRIVER_H */
isisbeamDriver(const char *portName)
Constructor for the isisbeamDriver class.
std::map< std::string, int > m_blparams
ASYN diver parameters for beamline specific information (shutter etc.)
static void pollerThreadC(void *arg)
virtual asynStatus readFloat64(asynUser *pasynUser, epicsFloat64 *value)
int P_BeamTS1
ASYN driver parameter index for TS1 beam current (double)
epicsTimeStamp m_timestamp
Driver for ISIS beam.
Copyright © 2013 Science and Technology Facilities Council | Generated by   doxygen 1.8.5