lecroy.h
1 /***************************************************************************
2  Copyright (C) 2002-2015 Kentaro Kitagawa
3  kitagawa@phys.s.u-tokyo.ac.jp
4 
5  This program is free software; you can redistribute it and/or
6  modify it under the terms of the GNU Library General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 
10  You should have received a copy of the GNU Library General
11  Public License and a list of authors along with this program;
12  see the files COPYING and AUTHORS.
13 ***************************************************************************/
14 #ifndef lecroyH
15 #define lecroyH
16 
17 #include "dso.h"
18 #include "chardevicedriver.h"
19 //---------------------------------------------------------------------------
20 
21 //! Lecroy/Iwatsu DSO
22 class XLecroyDSO : public XCharDeviceDriver<XDSO> {
23 public:
24  XLecroyDSO(const char *name, bool runtime,
25  Transaction &tr_meas, const shared_ptr<XMeasure> &meas);
26  ~XLecroyDSO() {}
27  //! Converts the raw to a display-able style.
28  virtual void convertRaw(RawDataReader &reader, Transaction &tr) throw (XRecordError&);
29 protected:
30  virtual void onTrace1Changed(const Snapshot &shot, XValueNodeBase *);
31  virtual void onTrace2Changed(const Snapshot &shot, XValueNodeBase *);
32  virtual void onTrace3Changed(const Snapshot &shot, XValueNodeBase *);
33  virtual void onTrace4Changed(const Snapshot &shot, XValueNodeBase *);
34  virtual void onAverageChanged(const Snapshot &shot, XValueNodeBase *);
35  virtual void onSingleChanged(const Snapshot &shot, XValueNodeBase *);
36  virtual void onTrigSourceChanged(const Snapshot &shot, XValueNodeBase *);
37  virtual void onTrigPosChanged(const Snapshot &shot, XValueNodeBase *);
38  virtual void onTrigLevelChanged(const Snapshot &shot, XValueNodeBase *);
39  virtual void onTrigFallingChanged(const Snapshot &shot, XValueNodeBase *);
40  virtual void onTimeWidthChanged(const Snapshot &shot, XValueNodeBase *);
41  virtual void onVFullScale1Changed(const Snapshot &shot, XValueNodeBase *);
42  virtual void onVFullScale2Changed(const Snapshot &shot, XValueNodeBase *);
43  virtual void onVFullScale3Changed(const Snapshot &shot, XValueNodeBase *);
44  virtual void onVFullScale4Changed(const Snapshot &shot, XValueNodeBase *);
45  virtual void onVOffset1Changed(const Snapshot &shot, XValueNodeBase *);
46  virtual void onVOffset2Changed(const Snapshot &shot, XValueNodeBase *);
47  virtual void onVOffset3Changed(const Snapshot &shot, XValueNodeBase *);
48  virtual void onVOffset4Changed(const Snapshot &shot, XValueNodeBase *);
49  virtual void onRecordLengthChanged(const Snapshot &shot, XValueNodeBase *);
50  virtual void onForceTriggerTouched(const Snapshot &shot, XTouchableNode *);
51 
52  //! Be called just after opening interface. Call start() inside this routine appropriately.
53  virtual void open() throw (XKameError &);
54 
55  virtual double getTimeInterval();
56  //! clear count or start sequence measurement
57  virtual void startSequence();
58  virtual int acqCount(bool *seq_busy);
59 
60  //! Loads waveforms and settings from the instrument.
61  virtual void getWave(shared_ptr<RawData> &writer, std::deque<XString> &channels);
62 private:
63  void activateTrace(const char *name);
64  double inspectDouble(const char *req, const XString &trace);
65  bool isWaveMaster();
66  int m_totalCount;
67 };
68 
69 #endif

Generated for KAME4 by  doxygen 1.8.3