mrfioc2  2.3.0
pulser.h
Go to the documentation of this file.
1 /*************************************************************************\
2 * Copyright (c) 2010 Brookhaven Science Associates, as Operator of
3 * Brookhaven National Laboratory.
4 * mrfioc2 is distributed subject to a Software License Agreement found
5 * in file LICENSE that is included with this distribution.
6 \*************************************************************************/
7 /*
8  * Author: Michael Davidsaver <mdavidsaver@gmail.com>
9  */
10 
11 #ifndef PULSER_HPP_INC
12 #define PULSER_HPP_INC
13 
14 #include "mrf/object.h"
15 
16 #include <epicsTypes.h>
17 
18 #include <string>
19 
20 struct MapType {
21  enum type {
22  None=0,
26  };
27 };
28 
38 class epicsShareClass Pulser : public mrf::ObjectInst<Pulser>
39 {
40 public:
41  explicit Pulser(const std::string& n) : mrf::ObjectInst<Pulser>(n) {}
42  virtual ~Pulser()=0;
43 
47  virtual bool enabled() const=0;
48  virtual void enable(bool)=0;
56  virtual void setDelayRaw(epicsUInt32)=0;
57  virtual void setDelay(double)=0;
58  virtual epicsUInt32 delayRaw() const=0;
59  virtual double delay() const=0;
67  virtual void setWidthRaw(epicsUInt32)=0;
68  virtual void setWidth(double)=0;
69  virtual epicsUInt32 widthRaw() const=0;
70  virtual double width() const=0;
76  virtual epicsUInt32 prescaler() const=0;
77  virtual void setPrescaler(epicsUInt32)=0;
85  virtual bool polarityInvert() const=0;
86  virtual void setPolarityInvert(bool)=0;
96  virtual MapType::type mappedSource(epicsUInt32 src) const=0;
99  virtual void sourceSetMap(epicsUInt32 src,MapType::type action)=0;
101 };
102 
103 #endif // PULSER_HPP_INC
Pulser(const std::string &n)
Definition: pulser.h:41
A programmable delay unit.
Definition: pulser.h:38
User implementation hook.
Definition: object.h:459
Definition: pulser.h:20
type
Definition: pulser.h:21
Definition: flash.cpp:23