Sylvac S_Dial Work
#include <TObject.h>
#include <TString.h>
#include <ftdi.h>

class SylvacDial : public TObject
{
private:
	ftdi_context *ftdi;
	TString fSense;			// Measurement sense
	TString fFunCache;		// Function cache active?
	TString fUnit;				// Measurement unit active?
	TString fKeyLock;			// Keypad locked?
	TString fMulFac;			// Multiplication factor
	TString fPresetValue;	// Preset value
	TString fReference;		// Reference activ
	TString fHold;				// Status of hold function
	TString fTolLimits;		// Current tolerance limit values
	TString fLCal;				// Date of last calibration
	TString fNCal;				// Date of next calibration
	TString fMode; 			// Active mode (MIN, MAX, DELta, NORmal)
	TString fMainParams;		// Main instrument parameters
	TString fId; 				// Instrument identification code

	TString fBatt;				// battery status, BAT1 = ok, BAT0 low
	TString fFwVersion;		// Version No and date of firmware
	Bool_t fTolLimitsActiveState; 
	int fVerbose;				// Level of debug printout
	double fValue;				// Last read value 
	const static int MAXBUF = 1000;
	unsigned char fBuf[MAXBUF]; // Read buffer

public:
	SylvacDial();
	virtual ~SylvacDial();
	const char * GetSense();
	const char * GetFunCache();
	const char * GetUnit();
	const char * GetKeyLock();
	const char * GetMulFac();
	const char * GetPresetValue();
	const char * GetReference();
	const char * GetHold();
	const char * GetTolLimits();
	const char * GetLCal();
	const char * GetNCal();
	const char * GetMode();
	const char * GetMainParams();
	const char * GetId();
	
	const char * GetBatt();
	const char * GetFwVersion();
	
	const unsigned char * GetBuf() { return fBuf;};
	double GetValue();
	int SetSense(const char * sense);		// +/-
	int SetFunCache(const char * func);		// FCT0..9 A..F
	int SetUnit(const char * unit);			// mm/in
	int SetKeyLock(Bool_t lock);
	int SetMulFac(double mul);
	int SetPresetValue(double preset);
	int SetReference(const char * );			// REF1/Ref2
	int SetHold(Bool_t hold);
	int SetTolLimits(double x, double y);
	int ActivateTolLimits(Bool_t active = kTRUE);
	Bool_t GetTolLimitsActiveState() { return fTolLimitsActiveState; };
	int SetLCal(const char * date);
	int SetNCal(const char * date);
	int SetMode(const char * mode);
	
	void Reset();
	void SetVerbose(int verbose = 1){ fVerbose = verbose;};
	
private:	
	int GetData(TString *str, const char *tit);
	void PrintData(unsigned char * buf, int rsize);
	void ClearBuf() { for (int i=0; i < MAXBUF; i++) fBuf[i]=0;};
	ClassDef (SylvacDial, 0)
};
 SylvacDial.h:1
 SylvacDial.h:2
 SylvacDial.h:3
 SylvacDial.h:4
 SylvacDial.h:5
 SylvacDial.h:6
 SylvacDial.h:7
 SylvacDial.h:8
 SylvacDial.h:9
 SylvacDial.h:10
 SylvacDial.h:11
 SylvacDial.h:12
 SylvacDial.h:13
 SylvacDial.h:14
 SylvacDial.h:15
 SylvacDial.h:16
 SylvacDial.h:17
 SylvacDial.h:18
 SylvacDial.h:19
 SylvacDial.h:20
 SylvacDial.h:21
 SylvacDial.h:22
 SylvacDial.h:23
 SylvacDial.h:24
 SylvacDial.h:25
 SylvacDial.h:26
 SylvacDial.h:27
 SylvacDial.h:28
 SylvacDial.h:29
 SylvacDial.h:30
 SylvacDial.h:31
 SylvacDial.h:32
 SylvacDial.h:33
 SylvacDial.h:34
 SylvacDial.h:35
 SylvacDial.h:36
 SylvacDial.h:37
 SylvacDial.h:38
 SylvacDial.h:39
 SylvacDial.h:40
 SylvacDial.h:41
 SylvacDial.h:42
 SylvacDial.h:43
 SylvacDial.h:44
 SylvacDial.h:45
 SylvacDial.h:46
 SylvacDial.h:47
 SylvacDial.h:48
 SylvacDial.h:49
 SylvacDial.h:50
 SylvacDial.h:51
 SylvacDial.h:52
 SylvacDial.h:53
 SylvacDial.h:54
 SylvacDial.h:55
 SylvacDial.h:56
 SylvacDial.h:57
 SylvacDial.h:58
 SylvacDial.h:59
 SylvacDial.h:60
 SylvacDial.h:61
 SylvacDial.h:62
 SylvacDial.h:63
 SylvacDial.h:64
 SylvacDial.h:65
 SylvacDial.h:66
 SylvacDial.h:67
 SylvacDial.h:68
 SylvacDial.h:69
 SylvacDial.h:70
 SylvacDial.h:71
 SylvacDial.h:72
 SylvacDial.h:73
 SylvacDial.h:74
 SylvacDial.h:75
 SylvacDial.h:76
 SylvacDial.h:77
 SylvacDial.h:78