diff --git a/include/AmptekHardwareInterface.h b/include/AmptekHardwareInterface.h index 544ffdd331339f2147d4a9cfaf0f14323ab799c0..f183957f8907b707843b229dd813df862424337f 100644 --- a/include/AmptekHardwareInterface.h +++ b/include/AmptekHardwareInterface.h @@ -4,10 +4,13 @@ #include <chrono> #include <thread> #include <fstream> +#include <utility> #include "AmptekConnectionHandler.h" -#define STATUS_SIZE 64 +#include "AmptekStatus.h" +#include "AmptekSpectrum.h" + #define SPECLEN 8192 enum AmptekState{ @@ -29,9 +32,6 @@ public: void connectSimulator(); void connectUDP(std::string hostname, int port, double timeout); - //bool readStatus(const byte*, int&, double max_age_ms = -1); - const byte* readSpectrum(double max_age_ms = -1); - const byte* readSpectrumAndStatus(const byte* statusbuffer, double max_age_ms = -1); bool Enable(); bool Disable(); @@ -41,7 +41,7 @@ public: bool SetPresetRealTime(double t); bool SetPresetCounts(int c); bool SetTextConfiguration(std::vector<std::string> commands); - bool UpdateStatus() {return updateStatus(-1);}; + AmptekStatus& updateStatus(double max_age_ms ); bool EnableListMode(std::string targetfile); bool ResetListModeTimer(); @@ -49,35 +49,14 @@ public: bool startBuffering(); bool stopBuffering(); - std::vector<unsigned int> GetBuffered(size_t id); + std::pair<AmptekSpectrum, AmptekStatus> GetBufferedSpectrum(size_t id); bool StartCommtestStreaming(uint16_t min_channel,uint16_t max_channel, uint16_t increment, uint32_t rate); bool StopCommtestStreaming(); - int FastCount(double max_age_ms = 100); - int SlowCount(double max_age_ms = 100); - double DeadTime(double max_age_ms = 100); - double AccTime(double max_age_ms = 100); - double RealTime(double max_age_ms = 100); - int FirmwareMajor(double max_age_ms = 1000000); - int FirmwareMinor(double max_age_ms = 1000000); - int FirmwareBuild(double max_age_ms = 1000000); - int FpgaMajor(double max_age_ms = 1000000); - int FpgaMinor(double max_age_ms = 1000000); - int SerialNb(double max_age_ms = 1000000); - double HighVoltage(double max_age_ms = 100); - double DetectorTemp(double max_age_ms = 100); - int BoardTemp(double max_age_ms = 100); - bool IsPresetTimeReached(double max_age_ms = 100); - bool IsEnabled(double max_age_ms = 100); - bool IsPresetCountReached(double max_age_ms = 100); - bool IsGated(double max_age_ms = 100); - int FpgaClock(double max_age_ms = 100); - int DeviceType(double max_age_ms = 1000000); - double TecVoltage(double max_age_ms = 100); - - int GetSpectrum(unsigned int* spectrum, double max_age_ms = 100); + + // int GetSpectrum(unsigned int* spectrum, double max_age_ms = 100); std::vector<unsigned int> GetSpectrum(double max_age_ms = 100); std::vector<std::string> GetTextConfiguration(std::vector<std::string> commands); @@ -87,15 +66,17 @@ private: bool spectrumAgeOk( double max_age_ms ) const; bool statusAgeOk( double max_age_ms ) const; - bool updateStatus(double max_age_ms ); + bool updateSpectrum( double max_age_ms); void expectAcknowledge(Packet); - byte last_status[STATUS_SIZE]; - unsigned int last_spectrum[SPECLEN]; - unsigned int spectrum_length = 0; - std::chrono::time_point<std::chrono::system_clock> last_status_update_time; - std::chrono::time_point<std::chrono::system_clock> last_spectrum_update_time; + //byte last_status[STATUS_SIZE]; + AmptekStatus last_status; + AmptekSpectrum last_spectrum; + // unsigned int last_spectrum[SPECLEN]; + // unsigned int spectrum_length = 0; + //std::chrono::time_point<std::chrono::system_clock> last_status_update_time; + // std::chrono::time_point<std::chrono::system_clock> last_spectrum_update_time; bool listmode_flag; diff --git a/include/AmptekSpectrum.h b/include/AmptekSpectrum.h new file mode 100644 index 0000000000000000000000000000000000000000..838595067a6a899887e0104e72bfa189eeb8236a --- /dev/null +++ b/include/AmptekSpectrum.h @@ -0,0 +1,43 @@ +#ifndef AmptekSpectrum_h +#define AmptekSpectrum_h + +#include "types.h" +#include <chrono> + +struct AmptekSpectrum{ + std::vector<unsigned int> bins; + size_t nbins; + std::chrono::time_point<std::chrono::system_clock> timestamp; + + + AmptekSpectrum(const byte* raw_spec, size_t nbins, std::chrono::time_point<std::chrono::system_clock> timestamp) + : nbins(nbins), timestamp(timestamp) + { + for (size_t i = 0; i < nbins; ++i){ + bins.push_back(mergeBytes( raw_spec[DATA + 3*i + 2], + raw_spec[DATA + 3*i + 1], + raw_spec[DATA + 3*i ] + ) + ); + } + } + + AmptekSpectrum(const byte* raw_spec, size_t nbins) + : AmptekSpectrum(raw_spec, nbins,std::chrono::system_clock::now()) + { + + } + + AmptekSpectrum() + : AmptekSpectrum(nullptr, 0, std::chrono::system_clock::from_time_t(0)) + { + + } + + double AgeMillis() const{ + auto now = std::chrono::system_clock::now(); + return std::chrono::duration_cast<std::chrono::milliseconds>(now - timestamp).count(); + } +}; + +#endif \ No newline at end of file diff --git a/include/AmptekSpectrumAndStatus.h b/include/AmptekSpectrumAndStatus.h new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/include/AmptekStatus.h b/include/AmptekStatus.h new file mode 100644 index 0000000000000000000000000000000000000000..9ff6cb7a23a03d32e83757489f3009b896945afd --- /dev/null +++ b/include/AmptekStatus.h @@ -0,0 +1,52 @@ +#ifndef AmptekStatus_h +#define AmptekStatus_h + +#include "types.h" +#include <chrono> +#define STATUS_SIZE 64 + +class AmptekStatus{ + +public: + AmptekStatus(const byte* raw); + AmptekStatus(const byte* raw, std::chrono::time_point<std::chrono::system_clock> timestamp); + AmptekStatus(); + ~AmptekStatus(); + int FastCount(); + int SlowCount(); + double DeadTime(); + double AccTime(); + double RealTime(); + int FirmwareMajor(); + int FirmwareMinor(); + int FirmwareBuild(); + int FpgaMajor(); + int FpgaMinor(); + int SerialNb(); + double HighVoltage(); + double DetectorTemp(); + int BoardTemp(); + bool IsPresetTimeReached(); + bool IsEnabled(); + bool IsPresetCountReached(); + bool IsGated(); + int FpgaClock(); + int DeviceType(); + double TecVoltage(); + + bool ListModeLMMO(); + int ListModeClock(); + int ListModeSync(); + bool SequentialBufferRunning(); + int SequentialBufferIndex(); + + + double AgeMillis() const; +private: + byte raw_status[STATUS_SIZE]; + std::chrono::time_point<std::chrono::system_clock> timestamp; + + +}; + +#endif \ No newline at end of file diff --git a/python/AmptekHardwareInterface.i b/python/AmptekHardwareInterface.i index 2de150ee1812fc756644d535f0f60912fdb047ac..7ab124965208cc1e591e353ad262bca89b083a37 100644 --- a/python/AmptekHardwareInterface.i +++ b/python/AmptekHardwareInterface.i @@ -14,6 +14,8 @@ %include "stdint.i" %include "std_vector.i" +%include "std_pair.i" + %include exception.i namespace std { %template(IntVector) vector<int>; @@ -37,4 +39,6 @@ namespace std { } } -%include "include/AmptekHardwareInterface.h" \ No newline at end of file +%include "include/AmptekHardwareInterface.h" +%include "include/AmptekStatus.h" +%include "include/AmptekSpectrum.h" \ No newline at end of file diff --git a/python/AmptekHardwareInterface.py b/python/AmptekHardwareInterface.py index 11c98d754dd64c2019e42f3debe434af27d00b7a..ef98f02e7ef5849791de87783b2be96a5c5ea4c4 100644 --- a/python/AmptekHardwareInterface.py +++ b/python/AmptekHardwareInterface.py @@ -1,15 +1,22 @@ # This file was automatically generated by SWIG (http://www.swig.org). -# Version 3.0.8 +# Version 3.0.12 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead. - - - - -from sys import version_info -if version_info >= (2, 6, 0): +from sys import version_info as _swig_python_version_info +if _swig_python_version_info >= (2, 7, 0): + def swig_import_helper(): + import importlib + pkg = __name__.rpartition('.')[0] + mname = '.'.join((pkg, '_AmptekHardwareInterface')).lstrip('.') + try: + return importlib.import_module(mname) + except ImportError: + return importlib.import_module('_AmptekHardwareInterface') + _AmptekHardwareInterface = swig_import_helper() + del swig_import_helper +elif _swig_python_version_info >= (2, 6, 0): def swig_import_helper(): from os.path import dirname import imp @@ -19,22 +26,27 @@ if version_info >= (2, 6, 0): except ImportError: import _AmptekHardwareInterface return _AmptekHardwareInterface - if fp is not None: - try: - _mod = imp.load_module('_AmptekHardwareInterface', fp, pathname, description) - finally: + try: + _mod = imp.load_module('_AmptekHardwareInterface', fp, pathname, description) + finally: + if fp is not None: fp.close() - return _mod + return _mod _AmptekHardwareInterface = swig_import_helper() del swig_import_helper else: import _AmptekHardwareInterface -del version_info +del _swig_python_version_info + try: _swig_property = property except NameError: pass # Python < 2.2 doesn't have 'property'. +try: + import builtins as __builtin__ +except ImportError: + import __builtin__ def _swig_setattr_nondynamic(self, class_type, name, value, static=1): if (name == "thisown"): @@ -56,37 +68,22 @@ def _swig_setattr(self, class_type, name, value): return _swig_setattr_nondynamic(self, class_type, name, value, 0) -def _swig_getattr_nondynamic(self, class_type, name, static=1): +def _swig_getattr(self, class_type, name): if (name == "thisown"): return self.this.own() method = class_type.__swig_getmethods__.get(name, None) if method: return method(self) - if (not static): - return object.__getattr__(self, name) - else: - raise AttributeError(name) - -def _swig_getattr(self, class_type, name): - return _swig_getattr_nondynamic(self, class_type, name, 0) + raise AttributeError("'%s' object has no attribute '%s'" % (class_type.__name__, name)) def _swig_repr(self): try: strthis = "proxy of " + self.this.__repr__() - except Exception: + except __builtin__.Exception: strthis = "" return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,) -try: - _object = object - _newclass = 1 -except AttributeError: - class _object: - pass - _newclass = 0 - - def _swig_setattr_nondynamic_method(set): def set_attr(self, name, value): @@ -239,7 +236,7 @@ class IntVector(object): this = _AmptekHardwareInterface.new_IntVector(*args) try: self.this.append(this) - except Exception: + except __builtin__.Exception: self.this = this def push_back(self, x): @@ -349,7 +346,7 @@ class StringVector(object): this = _AmptekHardwareInterface.new_StringVector(*args) try: self.this.append(this) - except Exception: + except __builtin__.Exception: self.this = this def push_back(self, x): @@ -459,7 +456,7 @@ class DoubleVector(object): this = _AmptekHardwareInterface.new_DoubleVector(*args) try: self.this.append(this) - except Exception: + except __builtin__.Exception: self.this = this def push_back(self, x): @@ -569,7 +566,7 @@ class UIntVector(object): this = _AmptekHardwareInterface.new_UIntVector(*args) try: self.this.append(this) - except Exception: + except __builtin__.Exception: self.this = this def push_back(self, x): @@ -600,23 +597,10 @@ class UIntVector(object): UIntVector_swigregister = _AmptekHardwareInterface.UIntVector_swigregister UIntVector_swigregister(UIntVector) - -_AmptekHardwareInterface.STATUS_SIZE_swigconstant(_AmptekHardwareInterface) -STATUS_SIZE = _AmptekHardwareInterface.STATUS_SIZE - -_AmptekHardwareInterface.SPECLEN_swigconstant(_AmptekHardwareInterface) SPECLEN = _AmptekHardwareInterface.SPECLEN - -_AmptekHardwareInterface.NOT_CONNECTED_swigconstant(_AmptekHardwareInterface) NOT_CONNECTED = _AmptekHardwareInterface.NOT_CONNECTED - -_AmptekHardwareInterface.ON_swigconstant(_AmptekHardwareInterface) ON = _AmptekHardwareInterface.ON - -_AmptekHardwareInterface.RECORDING_swigconstant(_AmptekHardwareInterface) RECORDING = _AmptekHardwareInterface.RECORDING - -_AmptekHardwareInterface.ERROR_swigconstant(_AmptekHardwareInterface) ERROR = _AmptekHardwareInterface.ERROR class AmptekHardwareInterface(object): thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') @@ -626,7 +610,7 @@ class AmptekHardwareInterface(object): this = _AmptekHardwareInterface.new_AmptekHardwareInterface() try: self.this.append(this) - except Exception: + except __builtin__.Exception: self.this = this __swig_destroy__ = _AmptekHardwareInterface.delete_AmptekHardwareInterface __del__ = lambda self: None @@ -640,12 +624,6 @@ class AmptekHardwareInterface(object): def connectUDP(self, hostname, port, timeout): return _AmptekHardwareInterface.AmptekHardwareInterface_connectUDP(self, hostname, port, timeout) - def readSpectrum(self, max_age_ms=-1): - return _AmptekHardwareInterface.AmptekHardwareInterface_readSpectrum(self, max_age_ms) - - def readSpectrumAndStatus(self, statusbuffer, max_age_ms=-1): - return _AmptekHardwareInterface.AmptekHardwareInterface_readSpectrumAndStatus(self, statusbuffer, max_age_ms) - def Enable(self): return _AmptekHardwareInterface.AmptekHardwareInterface_Enable(self) @@ -670,8 +648,8 @@ class AmptekHardwareInterface(object): def SetTextConfiguration(self, commands): return _AmptekHardwareInterface.AmptekHardwareInterface_SetTextConfiguration(self, commands) - def UpdateStatus(self): - return _AmptekHardwareInterface.AmptekHardwareInterface_UpdateStatus(self) + def updateStatus(self, max_age_ms): + return _AmptekHardwareInterface.AmptekHardwareInterface_updateStatus(self, max_age_ms) def EnableListMode(self, targetfile): return _AmptekHardwareInterface.AmptekHardwareInterface_EnableListMode(self, targetfile) @@ -688,8 +666,8 @@ class AmptekHardwareInterface(object): def stopBuffering(self): return _AmptekHardwareInterface.AmptekHardwareInterface_stopBuffering(self) - def GetBuffered(self, id): - return _AmptekHardwareInterface.AmptekHardwareInterface_GetBuffered(self, id) + def GetBufferedSpectrum(self, id): + return _AmptekHardwareInterface.AmptekHardwareInterface_GetBufferedSpectrum(self, id) def StartCommtestStreaming(self, min_channel, max_channel, increment, rate): return _AmptekHardwareInterface.AmptekHardwareInterface_StartCommtestStreaming(self, min_channel, max_channel, increment, rate) @@ -697,79 +675,134 @@ class AmptekHardwareInterface(object): def StopCommtestStreaming(self): return _AmptekHardwareInterface.AmptekHardwareInterface_StopCommtestStreaming(self) - def FastCount(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_FastCount(self, max_age_ms) + def GetSpectrum(self, max_age_ms=100): + return _AmptekHardwareInterface.AmptekHardwareInterface_GetSpectrum(self, max_age_ms) - def SlowCount(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_SlowCount(self, max_age_ms) + def GetTextConfiguration(self, commands): + return _AmptekHardwareInterface.AmptekHardwareInterface_GetTextConfiguration(self, commands) - def DeadTime(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_DeadTime(self, max_age_ms) + def GetState(self): + return _AmptekHardwareInterface.AmptekHardwareInterface_GetState(self) +AmptekHardwareInterface_swigregister = _AmptekHardwareInterface.AmptekHardwareInterface_swigregister +AmptekHardwareInterface_swigregister(AmptekHardwareInterface) - def AccTime(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_AccTime(self, max_age_ms) +STATUS_SIZE = _AmptekHardwareInterface.STATUS_SIZE +class AmptekStatus(object): + thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr - def RealTime(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_RealTime(self, max_age_ms) + def __init__(self, *args): + this = _AmptekHardwareInterface.new_AmptekStatus(*args) + try: + self.this.append(this) + except __builtin__.Exception: + self.this = this + __swig_destroy__ = _AmptekHardwareInterface.delete_AmptekStatus + __del__ = lambda self: None - def FirmwareMajor(self, max_age_ms=1000000): - return _AmptekHardwareInterface.AmptekHardwareInterface_FirmwareMajor(self, max_age_ms) + def FastCount(self): + return _AmptekHardwareInterface.AmptekStatus_FastCount(self) - def FirmwareMinor(self, max_age_ms=1000000): - return _AmptekHardwareInterface.AmptekHardwareInterface_FirmwareMinor(self, max_age_ms) + def SlowCount(self): + return _AmptekHardwareInterface.AmptekStatus_SlowCount(self) - def FirmwareBuild(self, max_age_ms=1000000): - return _AmptekHardwareInterface.AmptekHardwareInterface_FirmwareBuild(self, max_age_ms) + def DeadTime(self): + return _AmptekHardwareInterface.AmptekStatus_DeadTime(self) - def FpgaMajor(self, max_age_ms=1000000): - return _AmptekHardwareInterface.AmptekHardwareInterface_FpgaMajor(self, max_age_ms) + def AccTime(self): + return _AmptekHardwareInterface.AmptekStatus_AccTime(self) - def FpgaMinor(self, max_age_ms=1000000): - return _AmptekHardwareInterface.AmptekHardwareInterface_FpgaMinor(self, max_age_ms) + def RealTime(self): + return _AmptekHardwareInterface.AmptekStatus_RealTime(self) - def SerialNb(self, max_age_ms=1000000): - return _AmptekHardwareInterface.AmptekHardwareInterface_SerialNb(self, max_age_ms) + def FirmwareMajor(self): + return _AmptekHardwareInterface.AmptekStatus_FirmwareMajor(self) - def HighVoltage(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_HighVoltage(self, max_age_ms) + def FirmwareMinor(self): + return _AmptekHardwareInterface.AmptekStatus_FirmwareMinor(self) - def DetectorTemp(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_DetectorTemp(self, max_age_ms) + def FirmwareBuild(self): + return _AmptekHardwareInterface.AmptekStatus_FirmwareBuild(self) - def BoardTemp(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_BoardTemp(self, max_age_ms) + def FpgaMajor(self): + return _AmptekHardwareInterface.AmptekStatus_FpgaMajor(self) - def IsPresetTimeReached(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_IsPresetTimeReached(self, max_age_ms) + def FpgaMinor(self): + return _AmptekHardwareInterface.AmptekStatus_FpgaMinor(self) - def IsEnabled(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_IsEnabled(self, max_age_ms) + def SerialNb(self): + return _AmptekHardwareInterface.AmptekStatus_SerialNb(self) - def IsPresetCountReached(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_IsPresetCountReached(self, max_age_ms) + def HighVoltage(self): + return _AmptekHardwareInterface.AmptekStatus_HighVoltage(self) - def IsGated(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_IsGated(self, max_age_ms) + def DetectorTemp(self): + return _AmptekHardwareInterface.AmptekStatus_DetectorTemp(self) - def FpgaClock(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_FpgaClock(self, max_age_ms) + def BoardTemp(self): + return _AmptekHardwareInterface.AmptekStatus_BoardTemp(self) - def DeviceType(self, max_age_ms=1000000): - return _AmptekHardwareInterface.AmptekHardwareInterface_DeviceType(self, max_age_ms) + def IsPresetTimeReached(self): + return _AmptekHardwareInterface.AmptekStatus_IsPresetTimeReached(self) - def TecVoltage(self, max_age_ms=100): - return _AmptekHardwareInterface.AmptekHardwareInterface_TecVoltage(self, max_age_ms) + def IsEnabled(self): + return _AmptekHardwareInterface.AmptekStatus_IsEnabled(self) - def GetSpectrum(self, *args): - return _AmptekHardwareInterface.AmptekHardwareInterface_GetSpectrum(self, *args) + def IsPresetCountReached(self): + return _AmptekHardwareInterface.AmptekStatus_IsPresetCountReached(self) - def GetTextConfiguration(self, commands): - return _AmptekHardwareInterface.AmptekHardwareInterface_GetTextConfiguration(self, commands) + def IsGated(self): + return _AmptekHardwareInterface.AmptekStatus_IsGated(self) - def GetState(self): - return _AmptekHardwareInterface.AmptekHardwareInterface_GetState(self) -AmptekHardwareInterface_swigregister = _AmptekHardwareInterface.AmptekHardwareInterface_swigregister -AmptekHardwareInterface_swigregister(AmptekHardwareInterface) + def FpgaClock(self): + return _AmptekHardwareInterface.AmptekStatus_FpgaClock(self) + + def DeviceType(self): + return _AmptekHardwareInterface.AmptekStatus_DeviceType(self) + + def TecVoltage(self): + return _AmptekHardwareInterface.AmptekStatus_TecVoltage(self) + + def ListModeLMMO(self): + return _AmptekHardwareInterface.AmptekStatus_ListModeLMMO(self) + + def ListModeClock(self): + return _AmptekHardwareInterface.AmptekStatus_ListModeClock(self) + + def ListModeSync(self): + return _AmptekHardwareInterface.AmptekStatus_ListModeSync(self) + + def SequentialBufferRunning(self): + return _AmptekHardwareInterface.AmptekStatus_SequentialBufferRunning(self) + + def SequentialBufferIndex(self): + return _AmptekHardwareInterface.AmptekStatus_SequentialBufferIndex(self) + + def AgeMillis(self): + return _AmptekHardwareInterface.AmptekStatus_AgeMillis(self) +AmptekStatus_swigregister = _AmptekHardwareInterface.AmptekStatus_swigregister +AmptekStatus_swigregister(AmptekStatus) + +class AmptekSpectrum(object): + thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag') + __repr__ = _swig_repr + bins = _swig_property(_AmptekHardwareInterface.AmptekSpectrum_bins_get, _AmptekHardwareInterface.AmptekSpectrum_bins_set) + nbins = _swig_property(_AmptekHardwareInterface.AmptekSpectrum_nbins_get, _AmptekHardwareInterface.AmptekSpectrum_nbins_set) + timestamp = _swig_property(_AmptekHardwareInterface.AmptekSpectrum_timestamp_get, _AmptekHardwareInterface.AmptekSpectrum_timestamp_set) + + def __init__(self, *args): + this = _AmptekHardwareInterface.new_AmptekSpectrum(*args) + try: + self.this.append(this) + except __builtin__.Exception: + self.this = this + + def AgeMillis(self): + return _AmptekHardwareInterface.AmptekSpectrum_AgeMillis(self) + __swig_destroy__ = _AmptekHardwareInterface.delete_AmptekSpectrum + __del__ = lambda self: None +AmptekSpectrum_swigregister = _AmptekHardwareInterface.AmptekSpectrum_swigregister +AmptekSpectrum_swigregister(AmptekSpectrum) diff --git a/python/AmptekHardwareInterface_wrap.cpp b/python/AmptekHardwareInterface_wrap.cpp index 314ff42e500f5088fc780ca0b8107fe1e4fd3901..696f3ab6f49a0c7927df6b61bd3d5fff9fe99ac9 100644 --- a/python/AmptekHardwareInterface_wrap.cpp +++ b/python/AmptekHardwareInterface_wrap.cpp @@ -1,6 +1,6 @@ /* ---------------------------------------------------------------------------- * This file was automatically generated by SWIG (http://www.swig.org). - * Version 3.0.8 + * Version 3.0.12 * * This file is not intended to be easily readable and contains a number of * coding conventions designed to improve portability and efficiency. Do not make @@ -106,9 +106,11 @@ template <typename T> T SwigValueInit() { #endif /* exporting methods */ -#if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) -# ifndef GCC_HASCLASSVISIBILITY -# define GCC_HASCLASSVISIBILITY +#if defined(__GNUC__) +# if (__GNUC__ >= 4) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) +# ifndef GCC_HASCLASSVISIBILITY +# define GCC_HASCLASSVISIBILITY +# endif # endif #endif @@ -668,16 +670,16 @@ SWIG_UnpackData(const char *c, void *ptr, size_t sz) { char d = *(c++); unsigned char uu; if ((d >= '0') && (d <= '9')) - uu = ((d - '0') << 4); + uu = (unsigned char)((d - '0') << 4); else if ((d >= 'a') && (d <= 'f')) - uu = ((d - ('a'-10)) << 4); + uu = (unsigned char)((d - ('a'-10)) << 4); else return (char *) 0; d = *(c++); if ((d >= '0') && (d <= '9')) - uu |= (d - '0'); + uu |= (unsigned char)(d - '0'); else if ((d >= 'a') && (d <= 'f')) - uu |= (d - ('a'-10)); + uu |= (unsigned char)(d - ('a'-10)); else return (char *) 0; *u = uu; @@ -860,10 +862,6 @@ PyString_FromFormat(const char *fmt, ...) { } #endif -/* Add PyObject_Del for old Pythons */ -#if PY_VERSION_HEX < 0x01060000 -# define PyObject_Del(op) PyMem_DEL((op)) -#endif #ifndef PyObject_DEL # define PyObject_DEL PyObject_Del #endif @@ -978,6 +976,7 @@ typedef destructor freefunc; #if PY_VERSION_HEX < 0x03020000 #define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type) #define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name) +#define Py_hash_t long #endif /* ----------------------------------------------------------------------------- @@ -1926,7 +1925,6 @@ SwigPyObject_TypeOnce(void) { static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { - /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else @@ -1937,7 +1935,7 @@ SwigPyObject_TypeOnce(void) { sizeof(SwigPyObject), /* tp_basicsize */ 0, /* tp_itemsize */ (destructor)SwigPyObject_dealloc, /* tp_dealloc */ - 0, /* tp_print */ + 0, /* tp_print */ #if PY_VERSION_HEX < 0x02020000 (getattrfunc)SwigPyObject_getattr, /* tp_getattr */ #else @@ -1945,7 +1943,7 @@ SwigPyObject_TypeOnce(void) { #endif (setattrfunc)0, /* tp_setattr */ #if PY_VERSION_HEX >= 0x03000000 - 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */ + 0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */ #else (cmpfunc)SwigPyObject_compare, /* tp_compare */ #endif @@ -1955,7 +1953,7 @@ SwigPyObject_TypeOnce(void) { 0, /* tp_as_mapping */ (hashfunc)0, /* tp_hash */ (ternaryfunc)0, /* tp_call */ - 0, /* tp_str */ + 0, /* tp_str */ PyObject_GenericGetAttr, /* tp_getattro */ 0, /* tp_setattro */ 0, /* tp_as_buffer */ @@ -2118,7 +2116,6 @@ SwigPyPacked_TypeOnce(void) { static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { - /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX>=0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else @@ -3010,33 +3007,37 @@ SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) { /* -------- TYPES TABLE (BEGIN) -------- */ #define SWIGTYPE_p_AmptekHardwareInterface swig_types[0] -#define SWIGTYPE_p_allocator_type swig_types[1] -#define SWIGTYPE_p_byte swig_types[2] -#define SWIGTYPE_p_char swig_types[3] -#define SWIGTYPE_p_difference_type swig_types[4] -#define SWIGTYPE_p_int swig_types[5] -#define SWIGTYPE_p_long_long swig_types[6] -#define SWIGTYPE_p_p_PyObject swig_types[7] -#define SWIGTYPE_p_short swig_types[8] -#define SWIGTYPE_p_signed_char swig_types[9] -#define SWIGTYPE_p_size_type swig_types[10] -#define SWIGTYPE_p_std__allocatorT_double_t swig_types[11] -#define SWIGTYPE_p_std__allocatorT_int_t swig_types[12] -#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[13] -#define SWIGTYPE_p_std__allocatorT_unsigned_int_t swig_types[14] -#define SWIGTYPE_p_std__invalid_argument swig_types[15] -#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[16] -#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[17] -#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[18] -#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[19] -#define SWIGTYPE_p_swig__SwigPyIterator swig_types[20] -#define SWIGTYPE_p_unsigned_char swig_types[21] -#define SWIGTYPE_p_unsigned_int swig_types[22] -#define SWIGTYPE_p_unsigned_long_long swig_types[23] -#define SWIGTYPE_p_unsigned_short swig_types[24] -#define SWIGTYPE_p_value_type swig_types[25] -static swig_type_info *swig_types[27]; -static swig_module_info swig_module = {swig_types, 26, 0, 0, 0, 0}; +#define SWIGTYPE_p_AmptekSpectrum swig_types[1] +#define SWIGTYPE_p_AmptekStatus swig_types[2] +#define SWIGTYPE_p_allocator_type swig_types[3] +#define SWIGTYPE_p_byte swig_types[4] +#define SWIGTYPE_p_char swig_types[5] +#define SWIGTYPE_p_difference_type swig_types[6] +#define SWIGTYPE_p_int swig_types[7] +#define SWIGTYPE_p_long_long swig_types[8] +#define SWIGTYPE_p_p_PyObject swig_types[9] +#define SWIGTYPE_p_short swig_types[10] +#define SWIGTYPE_p_signed_char swig_types[11] +#define SWIGTYPE_p_size_type swig_types[12] +#define SWIGTYPE_p_std__allocatorT_double_t swig_types[13] +#define SWIGTYPE_p_std__allocatorT_int_t swig_types[14] +#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[15] +#define SWIGTYPE_p_std__allocatorT_unsigned_int_t swig_types[16] +#define SWIGTYPE_p_std__chrono__time_pointT_std__chrono__system_clock_t swig_types[17] +#define SWIGTYPE_p_std__invalid_argument swig_types[18] +#define SWIGTYPE_p_std__pairT_AmptekSpectrum_AmptekStatus_t swig_types[19] +#define SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t swig_types[20] +#define SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t swig_types[21] +#define SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t swig_types[22] +#define SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t swig_types[23] +#define SWIGTYPE_p_swig__SwigPyIterator swig_types[24] +#define SWIGTYPE_p_unsigned_char swig_types[25] +#define SWIGTYPE_p_unsigned_int swig_types[26] +#define SWIGTYPE_p_unsigned_long_long swig_types[27] +#define SWIGTYPE_p_unsigned_short swig_types[28] +#define SWIGTYPE_p_value_type swig_types[29] +static swig_type_info *swig_types[31]; +static swig_module_info swig_module = {swig_types, 30, 0, 0, 0, 0}; #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name) #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name) @@ -3063,7 +3064,7 @@ static swig_module_info swig_module = {swig_types, 26, 0, 0, 0, 0}; #endif #define SWIG_name "_AmptekHardwareInterface" -#define SWIGVERSION 0x030008 +#define SWIGVERSION 0x030012 #define SWIG_VERSION SWIGVERSION @@ -3174,6 +3175,7 @@ namespace swig { #endif +#include <typeinfo> #include <stdexcept> @@ -3323,7 +3325,7 @@ SWIG_AsVal_double (PyObject *obj, double *val) return SWIG_OK; #if PY_VERSION_HEX < 0x03000000 } else if (PyInt_Check(obj)) { - if (val) *val = PyInt_AsLong(obj); + if (val) *val = (double) PyInt_AsLong(obj); return SWIG_OK; #endif } else if (PyLong_Check(obj)) { @@ -3444,23 +3446,109 @@ SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) } +#include <limits.h> +#if !defined(SWIG_NO_LLONG_MAX) +# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) +# define LLONG_MAX __LONG_LONG_MAX__ +# define LLONG_MIN (-LLONG_MAX - 1LL) +# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) +# endif +#endif + + +#if defined(LLONG_MAX) && !defined(SWIG_LONG_LONG_AVAILABLE) +# define SWIG_LONG_LONG_AVAILABLE +#endif + + +#ifdef SWIG_LONG_LONG_AVAILABLE +SWIGINTERN int +SWIG_AsVal_unsigned_SS_long_SS_long (PyObject *obj, unsigned long long *val) +{ + int res = SWIG_TypeError; + if (PyLong_Check(obj)) { + unsigned long long v = PyLong_AsUnsignedLongLong(obj); + if (!PyErr_Occurred()) { + if (val) *val = v; + return SWIG_OK; + } else { + PyErr_Clear(); + res = SWIG_OverflowError; + } + } else { + unsigned long v; + res = SWIG_AsVal_unsigned_SS_long (obj,&v); + if (SWIG_IsOK(res)) { + if (val) *val = v; + return res; + } + } +#ifdef SWIG_PYTHON_CAST_MODE + { + const double mant_max = 1LL << DBL_MANT_DIG; + double d; + res = SWIG_AsVal_double (obj,&d); + if (SWIG_IsOK(res) && !SWIG_CanCastAsInteger(&d, 0, mant_max)) + return SWIG_OverflowError; + if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, 0, mant_max)) { + if (val) *val = (unsigned long long)(d); + return SWIG_AddCast(res); + } + res = SWIG_TypeError; + } +#endif + return res; +} +#endif + + SWIGINTERNINLINE int SWIG_AsVal_size_t (PyObject * obj, size_t *val) { - unsigned long v; - int res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); - if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); + int res = SWIG_TypeError; +#ifdef SWIG_LONG_LONG_AVAILABLE + if (sizeof(size_t) <= sizeof(unsigned long)) { +#endif + unsigned long v; + res = SWIG_AsVal_unsigned_SS_long (obj, val ? &v : 0); + if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); +#ifdef SWIG_LONG_LONG_AVAILABLE + } else if (sizeof(size_t) <= sizeof(unsigned long long)) { + unsigned long long v; + res = SWIG_AsVal_unsigned_SS_long_SS_long (obj, val ? &v : 0); + if (SWIG_IsOK(res) && val) *val = static_cast< size_t >(v); + } +#endif return res; } - #define SWIG_From_long PyLong_FromLong + #define SWIG_From_long PyInt_FromLong + + +#ifdef SWIG_LONG_LONG_AVAILABLE +SWIGINTERNINLINE PyObject* +SWIG_From_long_SS_long (long long value) +{ + return ((value < LONG_MIN) || (value > LONG_MAX)) ? + PyLong_FromLongLong(value) : PyInt_FromLong(static_cast< long >(value)); +} +#endif SWIGINTERNINLINE PyObject * SWIG_From_ptrdiff_t (ptrdiff_t value) { - return SWIG_From_long (static_cast< long >(value)); +#ifdef SWIG_LONG_LONG_AVAILABLE + if (sizeof(ptrdiff_t) <= sizeof(long)) { +#endif + return SWIG_From_long (static_cast< long >(value)); +#ifdef SWIG_LONG_LONG_AVAILABLE + } else { + /* assume sizeof(ptrdiff_t) <= sizeof(long long) */ + return SWIG_From_long_SS_long (static_cast< long long >(value)); + } +#endif } @@ -3514,12 +3602,65 @@ SWIG_AsVal_long (PyObject *obj, long* val) } +#ifdef SWIG_LONG_LONG_AVAILABLE +SWIGINTERN int +SWIG_AsVal_long_SS_long (PyObject *obj, long long *val) +{ + int res = SWIG_TypeError; + if (PyLong_Check(obj)) { + long long v = PyLong_AsLongLong(obj); + if (!PyErr_Occurred()) { + if (val) *val = v; + return SWIG_OK; + } else { + PyErr_Clear(); + res = SWIG_OverflowError; + } + } else { + long v; + res = SWIG_AsVal_long (obj,&v); + if (SWIG_IsOK(res)) { + if (val) *val = v; + return res; + } + } +#ifdef SWIG_PYTHON_CAST_MODE + { + const double mant_max = 1LL << DBL_MANT_DIG; + const double mant_min = -mant_max; + double d; + res = SWIG_AsVal_double (obj,&d); + if (SWIG_IsOK(res) && !SWIG_CanCastAsInteger(&d, mant_min, mant_max)) + return SWIG_OverflowError; + if (SWIG_IsOK(res) && SWIG_CanCastAsInteger(&d, mant_min, mant_max)) { + if (val) *val = (long long)(d); + return SWIG_AddCast(res); + } + res = SWIG_TypeError; + } +#endif + return res; +} +#endif + + SWIGINTERNINLINE int SWIG_AsVal_ptrdiff_t (PyObject * obj, ptrdiff_t *val) { - long v; - int res = SWIG_AsVal_long (obj, val ? &v : 0); - if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v); + int res = SWIG_TypeError; +#ifdef SWIG_LONG_LONG_AVAILABLE + if (sizeof(ptrdiff_t) <= sizeof(long)) { +#endif + long v; + res = SWIG_AsVal_long (obj, val ? &v : 0); + if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v); +#ifdef SWIG_LONG_LONG_AVAILABLE + } else if (sizeof(ptrdiff_t) <= sizeof(long long)) { + long long v; + res = SWIG_AsVal_long_SS_long (obj, val ? &v : 0); + if (SWIG_IsOK(res) && val) *val = static_cast< ptrdiff_t >(v); + } +#endif return res; } @@ -3530,6 +3671,9 @@ SWIG_AsVal_ptrdiff_t (PyObject * obj, ptrdiff_t *val) #include <vector> +#include <utility> + + namespace swig { template <class Type> struct noconst_traits { @@ -3557,8 +3701,21 @@ namespace swig { return traits<typename noconst_traits<Type >::noconst_type >::type_name(); } - template <class Type> - struct traits_info { + template <class Type> struct traits_info { + static swig_type_info *type_query(std::string name) { + name += " *"; + return SWIG_TypeQuery(name.c_str()); + } + static swig_type_info *type_info() { + static swig_type_info *info = type_query(type_name<Type>()); + return info; + } + }; + + /* + Partial specialization for pointers (traits_info) + */ + template <class Type> struct traits_info<Type *> { static swig_type_info *type_query(std::string name) { name += " *"; return SWIG_TypeQuery(name.c_str()); @@ -3575,7 +3732,7 @@ namespace swig { } /* - Partial specialization for pointers + Partial specialization for pointers (traits) */ template <class Type> struct traits <Type *> { typedef pointer_category category; @@ -3645,7 +3802,8 @@ namespace swig { struct traits_asptr { static int asptr(PyObject *obj, Type **val) { Type *p; - int res = SWIG_ConvertPtr(obj, (void**)&p, type_info<Type>(), 0); + swig_type_info *descriptor = type_info<Type>(); + int res = descriptor ? SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0) : SWIG_ERROR; if (SWIG_IsOK(res)) { if (val) *val = p; } @@ -3793,7 +3951,7 @@ namespace swig { namespace std { template <> - struct less <PyObject *>: public binary_function<PyObject *, PyObject *, bool> + struct less <PyObject *> { bool operator()(PyObject * v, PyObject *w) const @@ -3818,7 +3976,7 @@ namespace std { }; template <> - struct less <swig::SwigPtr_PyObject>: public binary_function<swig::SwigPtr_PyObject, swig::SwigPtr_PyObject, bool> + struct less <swig::SwigPtr_PyObject> { bool operator()(const swig::SwigPtr_PyObject& v, const swig::SwigPtr_PyObject& w) const @@ -3828,7 +3986,7 @@ namespace std { }; template <> - struct less <swig::SwigVar_PyObject>: public binary_function<swig::SwigVar_PyObject, swig::SwigVar_PyObject, bool> + struct less <swig::SwigVar_PyObject> { bool operator()(const swig::SwigVar_PyObject& v, const swig::SwigVar_PyObject& w) const @@ -3891,7 +4049,7 @@ namespace swig { if (step == 0) { throw std::invalid_argument("slice step cannot be zero"); } else if (step > 0) { - // Required range: 0 <= i < size, 0 <= j < size + // Required range: 0 <= i < size, 0 <= j < size, i <= j if (i < 0) { ii = 0; } else if (i < (Difference)size) { @@ -3899,13 +4057,15 @@ namespace swig { } else if (insert && (i >= (Difference)size)) { ii = (Difference)size; } - if ( j < 0 ) { + if (j < 0) { jj = 0; } else { jj = (j < (Difference)size) ? j : (Difference)size; } + if (jj < ii) + jj = ii; } else { - // Required range: -1 <= i < size-1, -1 <= j < size-1 + // Required range: -1 <= i < size-1, -1 <= j < size-1, i >= j if (i < -1) { ii = -1; } else if (i < (Difference) size) { @@ -3918,6 +4078,8 @@ namespace swig { } else { jj = (j < (Difference)size ) ? j : (Difference)(size-1); } + if (ii < jj) + ii = jj; } } @@ -3943,6 +4105,13 @@ namespace swig { seq->erase(position); } + template <class Sequence> + struct traits_reserve { + static void reserve(Sequence & /*seq*/, typename Sequence::size_type /*n*/) { + // This should be specialized for types that support reserve + } + }; + template <class Sequence, class Difference> inline Sequence* getslice(const Sequence* self, Difference i, Difference j, Py_ssize_t step) { @@ -3960,6 +4129,7 @@ namespace swig { return new Sequence(sb, se); } else { Sequence *sequence = new Sequence(); + swig::traits_reserve<Sequence>::reserve(*sequence, (jj - ii + step - 1) / step); typename Sequence::const_iterator it = sb; while (it!=se) { sequence->push_back(*it); @@ -3970,17 +4140,16 @@ namespace swig { } } else { Sequence *sequence = new Sequence(); - if (ii > jj) { - typename Sequence::const_reverse_iterator sb = self->rbegin(); - typename Sequence::const_reverse_iterator se = self->rbegin(); - std::advance(sb,size-ii-1); - std::advance(se,size-jj-1); - typename Sequence::const_reverse_iterator it = sb; - while (it!=se) { - sequence->push_back(*it); - for (Py_ssize_t c=0; c<-step && it!=se; ++c) - it++; - } + swig::traits_reserve<Sequence>::reserve(*sequence, (ii - jj - step - 1) / -step); + typename Sequence::const_reverse_iterator sb = self->rbegin(); + typename Sequence::const_reverse_iterator se = self->rbegin(); + std::advance(sb,size-ii-1); + std::advance(se,size-jj-1); + typename Sequence::const_reverse_iterator it = sb; + while (it!=se) { + sequence->push_back(*it); + for (Py_ssize_t c=0; c<-step && it!=se; ++c) + it++; } return sequence; } @@ -3994,12 +4163,11 @@ namespace swig { Difference jj = 0; swig::slice_adjust(i, j, step, size, ii, jj, true); if (step > 0) { - if (jj < ii) - jj = ii; if (step == 1) { size_t ssize = jj - ii; if (ssize <= is.size()) { // expanding/staying the same size + swig::traits_reserve<Sequence>::reserve(*self, self->size() - ssize + is.size()); typename Sequence::iterator sb = self->begin(); typename InputSeq::const_iterator isit = is.begin(); std::advance(sb,ii); @@ -4033,8 +4201,6 @@ namespace swig { } } } else { - if (jj > ii) - jj = ii; size_t replacecount = (ii - jj - step - 1) / -step; if (is.size() != replacecount) { char msg[1024]; @@ -4060,37 +4226,33 @@ namespace swig { Difference jj = 0; swig::slice_adjust(i, j, step, size, ii, jj, true); if (step > 0) { - if (jj > ii) { - typename Sequence::iterator sb = self->begin(); - std::advance(sb,ii); - if (step == 1) { - typename Sequence::iterator se = self->begin(); - std::advance(se,jj); - self->erase(sb,se); - } else { - typename Sequence::iterator it = sb; - size_t delcount = (jj - ii + step - 1) / step; - while (delcount) { - it = self->erase(it); - for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c) - it++; - delcount--; - } - } - } - } else { - if (ii > jj) { - typename Sequence::reverse_iterator sb = self->rbegin(); - std::advance(sb,size-ii-1); - typename Sequence::reverse_iterator it = sb; - size_t delcount = (ii - jj - step - 1) / -step; + typename Sequence::iterator sb = self->begin(); + std::advance(sb,ii); + if (step == 1) { + typename Sequence::iterator se = self->begin(); + std::advance(se,jj); + self->erase(sb,se); + } else { + typename Sequence::iterator it = sb; + size_t delcount = (jj - ii + step - 1) / step; while (delcount) { - it = typename Sequence::reverse_iterator(self->erase((++it).base())); - for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c) + it = self->erase(it); + for (Py_ssize_t c=0; c<(step-1) && it != self->end(); ++c) it++; delcount--; } } + } else { + typename Sequence::reverse_iterator sb = self->rbegin(); + std::advance(sb,size-ii-1); + typename Sequence::reverse_iterator it = sb; + size_t delcount = (ii - jj - step - 1) / -step; + while (delcount) { + it = typename Sequence::reverse_iterator(self->erase((++it).base())); + for (Py_ssize_t c=0; c<(-step-1) && it != self->rend(); ++c) + it++; + delcount--; + } } } } @@ -4546,16 +4708,6 @@ namespace swig } -#include <limits.h> -#if !defined(SWIG_NO_LLONG_MAX) -# if !defined(LLONG_MAX) && defined(__GNUC__) && defined (__LONG_LONG_MAX__) -# define LLONG_MAX __LONG_LONG_MAX__ -# define LLONG_MIN (-LLONG_MAX - 1LL) -# define ULLONG_MAX (LLONG_MAX * 2ULL + 1ULL) -# endif -#endif - - SWIGINTERN int SWIG_AsVal_int (PyObject * obj, int *val) { @@ -4619,8 +4771,8 @@ namespace swig { static int asptr(PyObject *obj, sequence **seq) { if (obj == Py_None || SWIG_Python_GetSwigThis(obj)) { sequence *p; - if (::SWIG_ConvertPtr(obj,(void**)&p, - swig::type_info<sequence>(),0) == SWIG_OK) { + swig_type_info *descriptor = swig::type_info<sequence>(); + if (descriptor && SWIG_IsOK(::SWIG_ConvertPtr(obj, (void **)&p, descriptor, 0))) { if (seq) *seq = p; return SWIG_OLDOBJ; } @@ -4659,7 +4811,7 @@ namespace swig { #ifdef SWIG_PYTHON_EXTRA_NATIVE_CONTAINERS swig_type_info *desc = swig::type_info<sequence>(); if (desc && desc->clientdata) { - return SWIG_NewPointerObj(new sequence(seq), desc, SWIG_POINTER_OWN); + return SWIG_InternalNewPointerObj(new sequence(seq), desc, SWIG_POINTER_OWN); } #endif size_type size = seq.size(); @@ -4680,6 +4832,13 @@ namespace swig { namespace swig { + template <class T> + struct traits_reserve<std::vector<T> > { + static void reserve(std::vector<T> &seq, typename std::vector<T>::size_type n) { + seq.reserve(n); + } + }; + template <class T> struct traits_asptr<std::vector<T> > { static int asptr(PyObject *obj, std::vector<T> **vec) { @@ -4722,14 +4881,33 @@ SWIGINTERNINLINE PyObject* SWIG_From_unsigned_SS_long (unsigned long value) { return (value > LONG_MAX) ? - PyLong_FromUnsignedLong(value) : PyLong_FromLong(static_cast< long >(value)); + PyLong_FromUnsignedLong(value) : PyInt_FromLong(static_cast< long >(value)); +} + + +#ifdef SWIG_LONG_LONG_AVAILABLE +SWIGINTERNINLINE PyObject* +SWIG_From_unsigned_SS_long_SS_long (unsigned long long value) +{ + return (value > LONG_MAX) ? + PyLong_FromUnsignedLongLong(value) : PyInt_FromLong(static_cast< long >(value)); } +#endif SWIGINTERNINLINE PyObject * SWIG_From_size_t (size_t value) { - return SWIG_From_unsigned_SS_long (static_cast< unsigned long >(value)); +#ifdef SWIG_LONG_LONG_AVAILABLE + if (sizeof(size_t) <= sizeof(unsigned long)) { +#endif + return SWIG_From_unsigned_SS_long (static_cast< unsigned long >(value)); +#ifdef SWIG_LONG_LONG_AVAILABLE + } else { + /* assume sizeof(size_t) <= sizeof(unsigned long long) */ + return SWIG_From_unsigned_SS_long_SS_long (static_cast< unsigned long long >(value)); + } +#endif } SWIGINTERN std::vector< int,std::allocator< int > > *std_vector_Sl_int_Sg____getslice__(std::vector< int > *self,std::vector< int >::difference_type i,std::vector< int >::difference_type j){ @@ -4829,13 +5007,18 @@ SWIGINTERN int SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) { #if PY_VERSION_HEX>=0x03000000 +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) + if (PyBytes_Check(obj)) +#else if (PyUnicode_Check(obj)) +#endif #else if (PyString_Check(obj)) #endif { char *cstr; Py_ssize_t len; #if PY_VERSION_HEX>=0x03000000 +#if !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) if (!alloc && cptr) { /* We can't allow converting without allocation, since the internal representation of string in Python 3 is UCS-2/UCS-4 but we require @@ -4844,8 +5027,9 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) return SWIG_RuntimeError; } obj = PyUnicode_AsUTF8String(obj); - PyBytes_AsStringAndSize(obj, &cstr, &len); if(alloc) *alloc = SWIG_NEWOBJ; +#endif + PyBytes_AsStringAndSize(obj, &cstr, &len); #else PyString_AsStringAndSize(obj, &cstr, &len); #endif @@ -4866,26 +5050,34 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) if (*alloc == SWIG_NEWOBJ) #endif { - *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1))); + *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1))); *alloc = SWIG_NEWOBJ; } else { *cptr = cstr; *alloc = SWIG_OLDOBJ; } } else { - #if PY_VERSION_HEX>=0x03000000 - assert(0); /* Should never reach here in Python 3 */ - #endif +#if PY_VERSION_HEX>=0x03000000 +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) + *cptr = PyBytes_AsString(obj); +#else + assert(0); /* Should never reach here with Unicode strings in Python 3 */ +#endif +#else *cptr = SWIG_Python_str_AsChar(obj); +#endif } } if (psize) *psize = len + 1; -#if PY_VERSION_HEX>=0x03000000 +#if PY_VERSION_HEX>=0x03000000 && !defined(SWIG_PYTHON_STRICT_BYTE_CHAR) Py_XDECREF(obj); #endif return SWIG_OK; } else { #if defined(SWIG_PYTHON_2_UNICODE) +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) +#error "Cannot use both SWIG_PYTHON_2_UNICODE and SWIG_PYTHON_STRICT_BYTE_CHAR at once" +#endif #if PY_VERSION_HEX<0x03000000 if (PyUnicode_Check(obj)) { char *cstr; Py_ssize_t len; @@ -4896,7 +5088,7 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc) if (PyString_AsStringAndSize(obj, &cstr, &len) != -1) { if (cptr) { if (alloc) *alloc = SWIG_NEWOBJ; - *cptr = reinterpret_cast< char* >(memcpy((new char[len + 1]), cstr, sizeof(char)*(len + 1))); + *cptr = reinterpret_cast< char* >(memcpy(new char[len + 1], cstr, sizeof(char)*(len + 1))); } if (psize) *psize = len + 1; @@ -4983,11 +5175,15 @@ SWIG_FromCharPtrAndSize(const char* carray, size_t size) SWIG_InternalNewPointerObj(const_cast< char * >(carray), pchar_descriptor, 0) : SWIG_Py_Void(); } else { #if PY_VERSION_HEX >= 0x03000000 +#if defined(SWIG_PYTHON_STRICT_BYTE_CHAR) + return PyBytes_FromStringAndSize(carray, static_cast< Py_ssize_t >(size)); +#else #if PY_VERSION_HEX >= 0x03010000 return PyUnicode_DecodeUTF8(carray, static_cast< Py_ssize_t >(size), "surrogateescape"); #else return PyUnicode_FromStringAndSize(carray, static_cast< Py_ssize_t >(size)); #endif +#endif #else return PyString_FromStringAndSize(carray, static_cast< Py_ssize_t >(size)); #endif @@ -6257,7 +6453,7 @@ fail: SWIGINTERN PyObject *SwigPyIterator_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_swig__SwigPyIterator, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } @@ -8175,7 +8371,7 @@ fail: SWIGINTERN PyObject *IntVector_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_int_std__allocatorT_int_t_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } @@ -10123,7 +10319,7 @@ fail: SWIGINTERN PyObject *StringVector_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_std__string_std__allocatorT_std__string_t_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } @@ -12041,7 +12237,7 @@ fail: SWIGINTERN PyObject *DoubleVector_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_double_std__allocatorT_double_t_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } @@ -13959,77 +14155,11 @@ fail: SWIGINTERN PyObject *UIntVector_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; + if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; SWIG_TypeNewClientData(SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } -SWIGINTERN PyObject *STATUS_SIZE_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "STATUS_SIZE",SWIG_From_int(static_cast< int >(64))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *SPECLEN_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "SPECLEN",SWIG_From_int(static_cast< int >(8192))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *NOT_CONNECTED_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "NOT_CONNECTED",SWIG_From_int(static_cast< int >(NOT_CONNECTED))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ON_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ON",SWIG_From_int(static_cast< int >(ON))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *RECORDING_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "RECORDING",SWIG_From_int(static_cast< int >(RECORDING))); - return SWIG_Py_Void(); -} - - -SWIGINTERN PyObject *ERROR_swigconstant(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *module; - PyObject *d; - if (!PyArg_ParseTuple(args,(char*)"O:swigconstant", &module)) return NULL; - d = PyModule_GetDict(module); - if (!d) return NULL; - SWIG_Python_SetConstant(d, "ERROR",SWIG_From_int(static_cast< int >(ERROR))); - return SWIG_Py_Void(); -} - - SWIGINTERN PyObject *_wrap_new_AmptekHardwareInterface(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; AmptekHardwareInterface *result = 0 ; @@ -14165,288 +14295,62 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_readSpectrum__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_Enable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - byte *result = 0 ; + bool result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_readSpectrum",&obj0,&obj1)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_Enable",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_readSpectrum" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_Enable" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); } arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_readSpectrum" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (byte *)(arg1)->readSpectrum(arg2); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_byte, 0 | 0 ); + result = (bool)(arg1)->Enable(); + resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_readSpectrum__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_Disable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - byte *result = 0 ; + bool result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_readSpectrum",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_Disable",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_readSpectrum" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_Disable" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); } arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (byte *)(arg1)->readSpectrum(); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_byte, 0 | 0 ); + result = (bool)(arg1)->Disable(); + resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_readSpectrum(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; +SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_Ping(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + bool result; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_readSpectrum__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_readSpectrum__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_readSpectrum'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::readSpectrum(double)\n" - " AmptekHardwareInterface::readSpectrum()\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_readSpectrumAndStatus__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - byte *arg2 = (byte *) 0 ; - double arg3 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - double val3 ; - int ecode3 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - byte *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OOO:AmptekHardwareInterface_readSpectrumAndStatus",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_readSpectrumAndStatus" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_byte, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AmptekHardwareInterface_readSpectrumAndStatus" "', argument " "2"" of type '" "byte const *""'"); - } - arg2 = reinterpret_cast< byte * >(argp2); - ecode3 = SWIG_AsVal_double(obj2, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "AmptekHardwareInterface_readSpectrumAndStatus" "', argument " "3"" of type '" "double""'"); - } - arg3 = static_cast< double >(val3); - result = (byte *)(arg1)->readSpectrumAndStatus((byte const *)arg2,arg3); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_byte, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_readSpectrumAndStatus__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - byte *arg2 = (byte *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - byte *result = 0 ; - - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_readSpectrumAndStatus",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_readSpectrumAndStatus" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_byte, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AmptekHardwareInterface_readSpectrumAndStatus" "', argument " "2"" of type '" "byte const *""'"); - } - arg2 = reinterpret_cast< byte * >(argp2); - result = (byte *)(arg1)->readSpectrumAndStatus((byte const *)arg2); - resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_byte, 0 | 0 ); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_readSpectrumAndStatus(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[4] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 3) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_byte, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_readSpectrumAndStatus__SWIG_1(self, args); - } - } - } - if (argc == 3) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_byte, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[2], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_readSpectrumAndStatus__SWIG_0(self, args); - } - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_readSpectrumAndStatus'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::readSpectrumAndStatus(byte const *,double)\n" - " AmptekHardwareInterface::readSpectrumAndStatus(byte const *)\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_Enable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - bool result; - - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_Enable",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_Enable" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (bool)(arg1)->Enable(); - resultobj = SWIG_From_bool(static_cast< bool >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_Disable(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - bool result; - - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_Disable",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_Disable" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (bool)(arg1)->Disable(); - resultobj = SWIG_From_bool(static_cast< bool >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_Ping(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - bool result; - - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_Ping",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_Ping" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_Ping",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_Ping" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); } arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); result = (bool)(arg1)->Ping(); @@ -14605,22 +14509,31 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_UpdateStatus(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_updateStatus(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + double arg2 ; void *argp1 = 0 ; int res1 = 0 ; + double val2 ; + int ecode2 = 0 ; PyObject * obj0 = 0 ; - bool result; + PyObject * obj1 = 0 ; + AmptekStatus *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_UpdateStatus",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_updateStatus",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_UpdateStatus" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_updateStatus" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); } arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (bool)(arg1)->UpdateStatus(); - resultobj = SWIG_From_bool(static_cast< bool >(result)); + ecode2 = SWIG_AsVal_double(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_updateStatus" "', argument " "2"" of type '" "double""'"); + } + arg2 = static_cast< double >(val2); + result = (AmptekStatus *) &(arg1)->updateStatus(arg2); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AmptekStatus, 0 | 0 ); return resultobj; fail: return NULL; @@ -14748,7 +14661,7 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetBuffered(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetBufferedSpectrum(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; size_t arg2 ; @@ -14758,21 +14671,21 @@ SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetBuffered(PyObject *SWIGUNU int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - std::vector< unsigned int,std::allocator< unsigned int > > result; + SwigValueWrapper< std::pair< AmptekSpectrum,AmptekStatus > > result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_GetBuffered",&obj0,&obj1)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_GetBufferedSpectrum",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetBuffered" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetBufferedSpectrum" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); } arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_GetBuffered" "', argument " "2"" of type '" "size_t""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_GetBufferedSpectrum" "', argument " "2"" of type '" "size_t""'"); } arg2 = static_cast< size_t >(val2); - result = (arg1)->GetBuffered(arg2); - resultobj = swig::from(static_cast< std::vector< unsigned int,std::allocator< unsigned int > > >(result)); + result = (arg1)->GetBufferedSpectrum(arg2); + resultobj = SWIG_NewPointerObj((new std::pair< AmptekSpectrum,AmptekStatus >(static_cast< const std::pair< AmptekSpectrum,AmptekStatus >& >(result))), SWIGTYPE_p_std__pairT_AmptekSpectrum_AmptekStatus_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; @@ -14859,7 +14772,7 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FastCount__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetSpectrum__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; double arg2 ; @@ -14869,50 +14782,50 @@ SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FastCount__SWIG_0(PyObject *S int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - int result; + std::vector< unsigned int,std::allocator< unsigned int > > result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_FastCount",&obj0,&obj1)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_GetSpectrum",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FastCount" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetSpectrum" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); } arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); ecode2 = SWIG_AsVal_double(obj1, &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_FastCount" "', argument " "2"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_GetSpectrum" "', argument " "2"" of type '" "double""'"); } arg2 = static_cast< double >(val2); - result = (int)(arg1)->FastCount(arg2); - resultobj = SWIG_From_int(static_cast< int >(result)); + result = (arg1)->GetSpectrum(arg2); + resultobj = swig::from(static_cast< std::vector< unsigned int,std::allocator< unsigned int > > >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FastCount__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetSpectrum__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - int result; + std::vector< unsigned int,std::allocator< unsigned int > > result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_FastCount",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_GetSpectrum",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FastCount" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetSpectrum" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); } arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (int)(arg1)->FastCount(); - resultobj = SWIG_From_int(static_cast< int >(result)); + result = (arg1)->GetSpectrum(); + resultobj = swig::from(static_cast< std::vector< unsigned int,std::allocator< unsigned int > > >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FastCount(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetSpectrum(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { 0 @@ -14930,7 +14843,7 @@ SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FastCount(PyObject *self, PyO int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_AmptekHardwareInterface_FastCount__SWIG_1(self, args); + return _wrap_AmptekHardwareInterface_GetSpectrum__SWIG_1(self, args); } } if (argc == 2) { @@ -14944,66 +14857,68 @@ SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FastCount(PyObject *self, PyO _v = SWIG_CheckState(res); } if (_v) { - return _wrap_AmptekHardwareInterface_FastCount__SWIG_0(self, args); + return _wrap_AmptekHardwareInterface_GetSpectrum__SWIG_0(self, args); } } } fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_FastCount'.\n" + SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_GetSpectrum'.\n" " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::FastCount(double)\n" - " AmptekHardwareInterface::FastCount()\n"); + " AmptekHardwareInterface::GetSpectrum(double)\n" + " AmptekHardwareInterface::GetSpectrum()\n"); return 0; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_SlowCount__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetTextConfiguration(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + std::vector< std::string,std::allocator< std::string > > arg2 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - int result; + std::vector< std::string,std::allocator< std::string > > result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_SlowCount",&obj0,&obj1)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_GetTextConfiguration",&obj0,&obj1)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_SlowCount" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetTextConfiguration" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); } arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_SlowCount" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (int)(arg1)->SlowCount(arg2); - resultobj = SWIG_From_int(static_cast< int >(result)); + { + std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0; + int res = swig::asptr(obj1, &ptr); + if (!SWIG_IsOK(res) || !ptr) { + SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "AmptekHardwareInterface_GetTextConfiguration" "', argument " "2"" of type '" "std::vector< std::string,std::allocator< std::string > >""'"); + } + arg2 = *ptr; + if (SWIG_IsNewObj(res)) delete ptr; + } + result = (arg1)->GetTextConfiguration(arg2); + resultobj = swig::from(static_cast< std::vector< std::string,std::allocator< std::string > > >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_SlowCount__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetState(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - int result; + AmptekState result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_SlowCount",&obj0)) SWIG_fail; + if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_GetState",&obj0)) SWIG_fail; res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_SlowCount" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetState" "', argument " "1"" of type '" "AmptekHardwareInterface const *""'"); } arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (int)(arg1)->SlowCount(); + result = (AmptekState)((AmptekHardwareInterface const *)arg1)->GetState(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -15011,106 +14926,88 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_SlowCount(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; +SWIGINTERN PyObject *AmptekHardwareInterface_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; + SWIG_TypeNewClientData(SWIGTYPE_p_AmptekHardwareInterface, SWIG_NewClientData(obj)); + return SWIG_Py_Void(); +} + +SWIGINTERN PyObject *_wrap_new_AmptekStatus__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + byte *arg1 = (byte *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + AmptekStatus *result = 0 ; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); + if (!PyArg_ParseTuple(args,(char *)"O:new_AmptekStatus",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_byte, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_AmptekStatus" "', argument " "1"" of type '" "byte const *""'"); } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_SlowCount__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_SlowCount__SWIG_0(self, args); - } - } - } - + arg1 = reinterpret_cast< byte * >(argp1); + result = (AmptekStatus *)new AmptekStatus((byte const *)arg1); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AmptekStatus, SWIG_POINTER_NEW | 0 ); + return resultobj; fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_SlowCount'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::SlowCount(double)\n" - " AmptekHardwareInterface::SlowCount()\n"); - return 0; + return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_DeadTime__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_AmptekStatus__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + byte *arg1 = (byte *) 0 ; + std::chrono::time_point< std::chrono::system_clock > arg2 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; + void *argp2 ; + int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - double result; + AmptekStatus *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_DeadTime",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"OO:new_AmptekStatus",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_byte, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_DeadTime" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_AmptekStatus" "', argument " "1"" of type '" "byte const *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_DeadTime" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (double)(arg1)->DeadTime(arg2); - resultobj = SWIG_From_double(static_cast< double >(result)); + arg1 = reinterpret_cast< byte * >(argp1); + { + res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__chrono__time_pointT_std__chrono__system_clock_t, 0 | 0); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "new_AmptekStatus" "', argument " "2"" of type '" "std::chrono::time_point< std::chrono::system_clock >""'"); + } + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_AmptekStatus" "', argument " "2"" of type '" "std::chrono::time_point< std::chrono::system_clock >""'"); + } else { + std::chrono::time_point< std::chrono::system_clock > * temp = reinterpret_cast< std::chrono::time_point< std::chrono::system_clock > * >(argp2); + arg2 = *temp; + if (SWIG_IsNewObj(res2)) delete temp; + } + } + result = (AmptekStatus *)new AmptekStatus((byte const *)arg1,arg2); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AmptekStatus, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_DeadTime__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_AmptekStatus__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - double result; + AmptekStatus *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_DeadTime",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_DeadTime" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (double)(arg1)->DeadTime(); - resultobj = SWIG_From_double(static_cast< double >(result)); + if (!PyArg_ParseTuple(args,(char *)":new_AmptekStatus")) SWIG_fail; + result = (AmptekStatus *)new AmptekStatus(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AmptekStatus, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_DeadTime(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_new_AmptekStatus(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[3] = { 0 @@ -15122,163 +15019,122 @@ SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_DeadTime(PyObject *self, PyOb for (ii = 0; (ii < 2) && (ii < argc); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } + if (argc == 0) { + return _wrap_new_AmptekStatus__SWIG_2(self, args); + } if (argc == 1) { int _v; void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); + int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_byte, 0); _v = SWIG_CheckState(res); if (_v) { - return _wrap_AmptekHardwareInterface_DeadTime__SWIG_1(self, args); + return _wrap_new_AmptekStatus__SWIG_0(self, args); } } if (argc == 2) { int _v; void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); + int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_byte, 0); _v = SWIG_CheckState(res); if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } + int res = SWIG_ConvertPtr(argv[1], 0, SWIGTYPE_p_std__chrono__time_pointT_std__chrono__system_clock_t, 0); + _v = SWIG_CheckState(res); if (_v) { - return _wrap_AmptekHardwareInterface_DeadTime__SWIG_0(self, args); + return _wrap_new_AmptekStatus__SWIG_1(self, args); } } } fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_DeadTime'.\n" + SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_AmptekStatus'.\n" " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::DeadTime(double)\n" - " AmptekHardwareInterface::DeadTime()\n"); + " AmptekStatus::AmptekStatus(byte const *)\n" + " AmptekStatus::AmptekStatus(byte const *,std::chrono::time_point< std::chrono::system_clock >)\n" + " AmptekStatus::AmptekStatus()\n"); return 0; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_AccTime__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_AmptekStatus(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - double result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_AccTime",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:delete_AmptekStatus",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_AccTime" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_AmptekStatus" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_AccTime" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (double)(arg1)->AccTime(arg2); - resultobj = SWIG_From_double(static_cast< double >(result)); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + delete arg1; + resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_AccTime__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_FastCount(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - double result; + int result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_AccTime",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_FastCount",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_AccTime" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_FastCount" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (double)(arg1)->AccTime(); - resultobj = SWIG_From_double(static_cast< double >(result)); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->FastCount(); + resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_AccTime(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; +SWIGINTERN PyObject *_wrap_AmptekStatus_SlowCount(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + int result; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_AccTime__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_AccTime__SWIG_0(self, args); - } - } + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_SlowCount",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_SlowCount" "', argument " "1"" of type '" "AmptekStatus *""'"); } - + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->SlowCount(); + resultobj = SWIG_From_int(static_cast< int >(result)); + return resultobj; fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_AccTime'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::AccTime(double)\n" - " AmptekHardwareInterface::AccTime()\n"); - return 0; + return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_RealTime__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_DeadTime(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; double result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_RealTime",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_DeadTime",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_RealTime" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_DeadTime" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_RealTime" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (double)(arg1)->RealTime(arg2); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (double)(arg1)->DeadTime(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -15286,21 +15142,21 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_RealTime__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_AccTime(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; double result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_RealTime",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_AccTime",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_RealTime" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_AccTime" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (double)(arg1)->RealTime(); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (double)(arg1)->AccTime(); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: @@ -15308,76 +15164,43 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_RealTime(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; +SWIGINTERN PyObject *_wrap_AmptekStatus_RealTime(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + double result; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_RealTime__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_RealTime__SWIG_0(self, args); - } - } + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_RealTime",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_RealTime" "', argument " "1"" of type '" "AmptekStatus *""'"); } - + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (double)(arg1)->RealTime(); + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_RealTime'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::RealTime(double)\n" - " AmptekHardwareInterface::RealTime()\n"); - return 0; + return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FirmwareMajor__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_FirmwareMajor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; int result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_FirmwareMajor",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_FirmwareMajor",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FirmwareMajor" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_FirmwareMajor" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_FirmwareMajor" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (int)(arg1)->FirmwareMajor(arg2); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->FirmwareMajor(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -15385,21 +15208,21 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FirmwareMajor__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_FirmwareMinor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_FirmwareMajor",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_FirmwareMinor",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FirmwareMajor" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_FirmwareMinor" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (int)(arg1)->FirmwareMajor(); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->FirmwareMinor(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -15407,98 +15230,43 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FirmwareMajor(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; +SWIGINTERN PyObject *_wrap_AmptekStatus_FirmwareBuild(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + int result; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_FirmwareMajor__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_FirmwareMajor__SWIG_0(self, args); - } - } + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_FirmwareBuild",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_FirmwareBuild" "', argument " "1"" of type '" "AmptekStatus *""'"); } - + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->FirmwareBuild(); + resultobj = SWIG_From_int(static_cast< int >(result)); + return resultobj; fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_FirmwareMajor'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::FirmwareMajor(double)\n" - " AmptekHardwareInterface::FirmwareMajor()\n"); - return 0; + return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FirmwareMinor__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_FpgaMajor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_FirmwareMinor",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FirmwareMinor" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_FirmwareMinor" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (int)(arg1)->FirmwareMinor(arg2); - resultobj = SWIG_From_int(static_cast< int >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FirmwareMinor__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_FirmwareMinor",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_FpgaMajor",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FirmwareMinor" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_FpgaMajor" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (int)(arg1)->FirmwareMinor(); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->FpgaMajor(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -15506,76 +15274,21 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FirmwareMinor(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_FirmwareMinor__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_FirmwareMinor__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_FirmwareMinor'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::FirmwareMinor(double)\n" - " AmptekHardwareInterface::FirmwareMinor()\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FirmwareBuild__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_FpgaMinor(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; int result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_FirmwareBuild",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_FpgaMinor",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FirmwareBuild" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_FpgaMinor" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_FirmwareBuild" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (int)(arg1)->FirmwareBuild(arg2); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->FpgaMinor(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -15583,21 +15296,21 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FirmwareBuild__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_SerialNb(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_FirmwareBuild",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_SerialNb",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FirmwareBuild" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_SerialNb" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (int)(arg1)->FirmwareBuild(); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->SerialNb(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -15605,175 +15318,65 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FirmwareBuild(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_FirmwareBuild__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_FirmwareBuild__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_FirmwareBuild'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::FirmwareBuild(double)\n" - " AmptekHardwareInterface::FirmwareBuild()\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FpgaMajor__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_HighVoltage(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; + double result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_FpgaMajor",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_HighVoltage",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FpgaMajor" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_HighVoltage" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_FpgaMajor" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (int)(arg1)->FpgaMajor(arg2); - resultobj = SWIG_From_int(static_cast< int >(result)); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (double)(arg1)->HighVoltage(); + resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FpgaMajor__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_DetectorTemp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - int result; + double result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_FpgaMajor",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_DetectorTemp",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FpgaMajor" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_DetectorTemp" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (int)(arg1)->FpgaMajor(); - resultobj = SWIG_From_int(static_cast< int >(result)); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (double)(arg1)->DetectorTemp(); + resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FpgaMajor(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_FpgaMajor__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_FpgaMajor__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_FpgaMajor'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::FpgaMajor(double)\n" - " AmptekHardwareInterface::FpgaMajor()\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FpgaMinor__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_BoardTemp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; int result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_FpgaMinor",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_BoardTemp",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FpgaMinor" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_BoardTemp" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_FpgaMinor" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (int)(arg1)->FpgaMinor(arg2); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->BoardTemp(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -15781,692 +15384,43 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FpgaMinor__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_IsPresetTimeReached(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_FpgaMinor",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FpgaMinor" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (int)(arg1)->FpgaMinor(); - resultobj = SWIG_From_int(static_cast< int >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FpgaMinor(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_FpgaMinor__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_FpgaMinor__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_FpgaMinor'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::FpgaMinor(double)\n" - " AmptekHardwareInterface::FpgaMinor()\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_SerialNb__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_SerialNb",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_SerialNb" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_SerialNb" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (int)(arg1)->SerialNb(arg2); - resultobj = SWIG_From_int(static_cast< int >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_SerialNb__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_SerialNb",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_SerialNb" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (int)(arg1)->SerialNb(); - resultobj = SWIG_From_int(static_cast< int >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_SerialNb(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_SerialNb__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_SerialNb__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_SerialNb'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::SerialNb(double)\n" - " AmptekHardwareInterface::SerialNb()\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_HighVoltage__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - double result; - - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_HighVoltage",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_HighVoltage" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_HighVoltage" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (double)(arg1)->HighVoltage(arg2); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_HighVoltage__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - double result; - - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_HighVoltage",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_HighVoltage" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (double)(arg1)->HighVoltage(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_HighVoltage(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_HighVoltage__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_HighVoltage__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_HighVoltage'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::HighVoltage(double)\n" - " AmptekHardwareInterface::HighVoltage()\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_DetectorTemp__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - double result; - - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_DetectorTemp",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_DetectorTemp" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_DetectorTemp" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (double)(arg1)->DetectorTemp(arg2); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_DetectorTemp__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - double result; - - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_DetectorTemp",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_DetectorTemp" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (double)(arg1)->DetectorTemp(); - resultobj = SWIG_From_double(static_cast< double >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_DetectorTemp(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_DetectorTemp__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_DetectorTemp__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_DetectorTemp'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::DetectorTemp(double)\n" - " AmptekHardwareInterface::DetectorTemp()\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_BoardTemp__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_BoardTemp",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_BoardTemp" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_BoardTemp" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (int)(arg1)->BoardTemp(arg2); - resultobj = SWIG_From_int(static_cast< int >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_BoardTemp__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - int result; - - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_BoardTemp",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_BoardTemp" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (int)(arg1)->BoardTemp(); - resultobj = SWIG_From_int(static_cast< int >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_BoardTemp(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_BoardTemp__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_BoardTemp__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_BoardTemp'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::BoardTemp(double)\n" - " AmptekHardwareInterface::BoardTemp()\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsPresetTimeReached__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - bool result; - - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_IsPresetTimeReached",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_IsPresetTimeReached" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_IsPresetTimeReached" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (bool)(arg1)->IsPresetTimeReached(arg2); - resultobj = SWIG_From_bool(static_cast< bool >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsPresetTimeReached__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - bool result; - - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_IsPresetTimeReached",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_IsPresetTimeReached" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (bool)(arg1)->IsPresetTimeReached(); - resultobj = SWIG_From_bool(static_cast< bool >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsPresetTimeReached(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_IsPresetTimeReached__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_IsPresetTimeReached__SWIG_0(self, args); - } - } - } - -fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_IsPresetTimeReached'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::IsPresetTimeReached(double)\n" - " AmptekHardwareInterface::IsPresetTimeReached()\n"); - return 0; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsEnabled__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; - void *argp1 = 0 ; - int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; - PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - bool result; - - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_IsEnabled",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_IsEnabled" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_IsEnabled" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (bool)(arg1)->IsEnabled(arg2); - resultobj = SWIG_From_bool(static_cast< bool >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsEnabled__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject * obj0 = 0 ; - bool result; - - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_IsEnabled",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_IsEnabled" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (bool)(arg1)->IsEnabled(); - resultobj = SWIG_From_bool(static_cast< bool >(result)); - return resultobj; -fail: - return NULL; -} - - -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsEnabled(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_IsEnabled__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_IsEnabled__SWIG_0(self, args); - } - } - } + bool result; + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_IsPresetTimeReached",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_IsPresetTimeReached" "', argument " "1"" of type '" "AmptekStatus *""'"); + } + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (bool)(arg1)->IsPresetTimeReached(); + resultobj = SWIG_From_bool(static_cast< bool >(result)); + return resultobj; fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_IsEnabled'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::IsEnabled(double)\n" - " AmptekHardwareInterface::IsEnabled()\n"); - return 0; + return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsPresetCountReached__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_IsEnabled(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; bool result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_IsPresetCountReached",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_IsEnabled",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_IsPresetCountReached" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_IsEnabled" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_IsPresetCountReached" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (bool)(arg1)->IsPresetCountReached(arg2); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (bool)(arg1)->IsEnabled(); resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: @@ -16474,20 +15428,20 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsPresetCountReached__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_IsPresetCountReached(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; bool result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_IsPresetCountReached",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_IsPresetCountReached",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_IsPresetCountReached" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_IsPresetCountReached" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); result = (bool)(arg1)->IsPresetCountReached(); resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; @@ -16496,197 +15450,131 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsPresetCountReached(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; +SWIGINTERN PyObject *_wrap_AmptekStatus_IsGated(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + bool result; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_IsPresetCountReached__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_IsPresetCountReached__SWIG_0(self, args); - } - } + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_IsGated",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_IsGated" "', argument " "1"" of type '" "AmptekStatus *""'"); } - + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (bool)(arg1)->IsGated(); + resultobj = SWIG_From_bool(static_cast< bool >(result)); + return resultobj; fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_IsPresetCountReached'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::IsPresetCountReached(double)\n" - " AmptekHardwareInterface::IsPresetCountReached()\n"); - return 0; + return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsGated__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_FpgaClock(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - bool result; + int result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_IsGated",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_FpgaClock",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_IsGated" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_FpgaClock" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_IsGated" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (bool)(arg1)->IsGated(arg2); - resultobj = SWIG_From_bool(static_cast< bool >(result)); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->FpgaClock(); + resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsGated__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_DeviceType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - bool result; + int result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_IsGated",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_DeviceType",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_IsGated" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_DeviceType" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (bool)(arg1)->IsGated(); - resultobj = SWIG_From_bool(static_cast< bool >(result)); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->DeviceType(); + resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_IsGated(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; +SWIGINTERN PyObject *_wrap_AmptekStatus_TecVoltage(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + double result; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_IsGated__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_IsGated__SWIG_0(self, args); - } - } + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_TecVoltage",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_TecVoltage" "', argument " "1"" of type '" "AmptekStatus *""'"); } - + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (double)(arg1)->TecVoltage(); + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_IsGated'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::IsGated(double)\n" - " AmptekHardwareInterface::IsGated()\n"); - return 0; + return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FpgaClock__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_ListModeLMMO(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; + bool result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_FpgaClock",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_ListModeLMMO",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FpgaClock" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_ListModeLMMO" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_FpgaClock" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (int)(arg1)->FpgaClock(arg2); - resultobj = SWIG_From_int(static_cast< int >(result)); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (bool)(arg1)->ListModeLMMO(); + resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FpgaClock__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_ListModeClock(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_FpgaClock",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_ListModeClock",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_FpgaClock" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_ListModeClock" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (int)(arg1)->FpgaClock(); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->ListModeClock(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -16694,98 +15582,65 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_FpgaClock(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; +SWIGINTERN PyObject *_wrap_AmptekStatus_ListModeSync(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + int result; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_FpgaClock__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_FpgaClock__SWIG_0(self, args); - } - } + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_ListModeSync",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_ListModeSync" "', argument " "1"" of type '" "AmptekStatus *""'"); } - + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->ListModeSync(); + resultobj = SWIG_From_int(static_cast< int >(result)); + return resultobj; fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_FpgaClock'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::FpgaClock(double)\n" - " AmptekHardwareInterface::FpgaClock()\n"); - return 0; + return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_DeviceType__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_SequentialBufferRunning(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; + bool result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_DeviceType",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_SequentialBufferRunning",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_DeviceType" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_SequentialBufferRunning" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_DeviceType" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (int)(arg1)->DeviceType(arg2); - resultobj = SWIG_From_int(static_cast< int >(result)); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (bool)(arg1)->SequentialBufferRunning(); + resultobj = SWIG_From_bool(static_cast< bool >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_DeviceType__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekStatus_SequentialBufferIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; int result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_DeviceType",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_SequentialBufferIndex",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_DeviceType" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_SequentialBufferIndex" "', argument " "1"" of type '" "AmptekStatus *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (int)(arg1)->DeviceType(); + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (int)(arg1)->SequentialBufferIndex(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -16793,276 +15648,292 @@ fail: } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_DeviceType(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; - - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_DeviceType__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_DeviceType__SWIG_0(self, args); - } - } - } +SWIGINTERN PyObject *_wrap_AmptekStatus_AgeMillis(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AmptekStatus *arg1 = (AmptekStatus *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + double result; + if (!PyArg_ParseTuple(args,(char *)"O:AmptekStatus_AgeMillis",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekStatus, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekStatus_AgeMillis" "', argument " "1"" of type '" "AmptekStatus const *""'"); + } + arg1 = reinterpret_cast< AmptekStatus * >(argp1); + result = (double)((AmptekStatus const *)arg1)->AgeMillis(); + resultobj = SWIG_From_double(static_cast< double >(result)); + return resultobj; fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_DeviceType'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::DeviceType(double)\n" - " AmptekHardwareInterface::DeviceType()\n"); - return 0; + return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_TecVoltage__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *AmptekStatus_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *obj; + if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; + SWIG_TypeNewClientData(SWIGTYPE_p_AmptekStatus, SWIG_NewClientData(obj)); + return SWIG_Py_Void(); +} + +SWIGINTERN PyObject *_wrap_AmptekSpectrum_bins_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + AmptekSpectrum *arg1 = (AmptekSpectrum *) 0 ; + std::vector< unsigned int,std::allocator< unsigned int > > *arg2 = (std::vector< unsigned int,std::allocator< unsigned int > > *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; - int ecode2 = 0 ; + void *argp2 = 0 ; + int res2 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - double result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_TecVoltage",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"OO:AmptekSpectrum_bins_set",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekSpectrum, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_TecVoltage" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekSpectrum_bins_set" "', argument " "1"" of type '" "AmptekSpectrum *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); - if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_TecVoltage" "', argument " "2"" of type '" "double""'"); - } - arg2 = static_cast< double >(val2); - result = (double)(arg1)->TecVoltage(arg2); - resultobj = SWIG_From_double(static_cast< double >(result)); + arg1 = reinterpret_cast< AmptekSpectrum * >(argp1); + res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t, 0 | 0 ); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AmptekSpectrum_bins_set" "', argument " "2"" of type '" "std::vector< unsigned int,std::allocator< unsigned int > > *""'"); + } + arg2 = reinterpret_cast< std::vector< unsigned int,std::allocator< unsigned int > > * >(argp2); + if (arg1) (arg1)->bins = *arg2; + resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_TecVoltage__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekSpectrum_bins_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekSpectrum *arg1 = (AmptekSpectrum *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - double result; + std::vector< unsigned int,std::allocator< unsigned int > > *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_TecVoltage",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekSpectrum_bins_get",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekSpectrum, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_TecVoltage" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekSpectrum_bins_get" "', argument " "1"" of type '" "AmptekSpectrum *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (double)(arg1)->TecVoltage(); - resultobj = SWIG_From_double(static_cast< double >(result)); + arg1 = reinterpret_cast< AmptekSpectrum * >(argp1); + result = (std::vector< unsigned int,std::allocator< unsigned int > > *)& ((arg1)->bins); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_std__vectorT_unsigned_int_std__allocatorT_unsigned_int_t_t, 0 | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_TecVoltage(PyObject *self, PyObject *args) { - Py_ssize_t argc; - PyObject *argv[3] = { - 0 - }; - Py_ssize_t ii; +SWIGINTERN PyObject *_wrap_AmptekSpectrum_nbins_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AmptekSpectrum *arg1 = (AmptekSpectrum *) 0 ; + size_t arg2 ; + void *argp1 = 0 ; + int res1 = 0 ; + size_t val2 ; + int ecode2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; - if (!PyTuple_Check(args)) SWIG_fail; - argc = args ? PyObject_Length(args) : 0; - for (ii = 0; (ii < 2) && (ii < argc); ii++) { - argv[ii] = PyTuple_GET_ITEM(args,ii); - } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_TecVoltage__SWIG_1(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - { - int res = SWIG_AsVal_double(argv[1], NULL); - _v = SWIG_CheckState(res); - } - if (_v) { - return _wrap_AmptekHardwareInterface_TecVoltage__SWIG_0(self, args); - } - } + if (!PyArg_ParseTuple(args,(char *)"OO:AmptekSpectrum_nbins_set",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekSpectrum, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekSpectrum_nbins_set" "', argument " "1"" of type '" "AmptekSpectrum *""'"); } + arg1 = reinterpret_cast< AmptekSpectrum * >(argp1); + ecode2 = SWIG_AsVal_size_t(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekSpectrum_nbins_set" "', argument " "2"" of type '" "size_t""'"); + } + arg2 = static_cast< size_t >(val2); + if (arg1) (arg1)->nbins = arg2; + resultobj = SWIG_Py_Void(); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_AmptekSpectrum_nbins_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AmptekSpectrum *arg1 = (AmptekSpectrum *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject * obj0 = 0 ; + size_t result; + if (!PyArg_ParseTuple(args,(char *)"O:AmptekSpectrum_nbins_get",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekSpectrum, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekSpectrum_nbins_get" "', argument " "1"" of type '" "AmptekSpectrum *""'"); + } + arg1 = reinterpret_cast< AmptekSpectrum * >(argp1); + result = ((arg1)->nbins); + resultobj = SWIG_From_size_t(static_cast< size_t >(result)); + return resultobj; fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_TecVoltage'.\n" - " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::TecVoltage(double)\n" - " AmptekHardwareInterface::TecVoltage()\n"); - return 0; + return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetSpectrum__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekSpectrum_timestamp_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - unsigned int *arg2 = (unsigned int *) 0 ; - double arg3 ; + AmptekSpectrum *arg1 = (AmptekSpectrum *) 0 ; + std::chrono::time_point< std::chrono::system_clock > arg2 ; void *argp1 = 0 ; int res1 = 0 ; - void *argp2 = 0 ; + void *argp2 ; int res2 = 0 ; - double val3 ; - int ecode3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - PyObject * obj2 = 0 ; - int result; - if (!PyArg_ParseTuple(args,(char *)"OOO:AmptekHardwareInterface_GetSpectrum",&obj0,&obj1,&obj2)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"OO:AmptekSpectrum_timestamp_set",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekSpectrum, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetSpectrum" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekSpectrum_timestamp_set" "', argument " "1"" of type '" "AmptekSpectrum *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_int, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AmptekHardwareInterface_GetSpectrum" "', argument " "2"" of type '" "unsigned int *""'"); + arg1 = reinterpret_cast< AmptekSpectrum * >(argp1); + { + res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_std__chrono__time_pointT_std__chrono__system_clock_t, 0 | 0); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AmptekSpectrum_timestamp_set" "', argument " "2"" of type '" "std::chrono::time_point< std::chrono::system_clock >""'"); + } + if (!argp2) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "AmptekSpectrum_timestamp_set" "', argument " "2"" of type '" "std::chrono::time_point< std::chrono::system_clock >""'"); + } else { + std::chrono::time_point< std::chrono::system_clock > * temp = reinterpret_cast< std::chrono::time_point< std::chrono::system_clock > * >(argp2); + arg2 = *temp; + if (SWIG_IsNewObj(res2)) delete temp; + } } - arg2 = reinterpret_cast< unsigned int * >(argp2); - ecode3 = SWIG_AsVal_double(obj2, &val3); - if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "AmptekHardwareInterface_GetSpectrum" "', argument " "3"" of type '" "double""'"); - } - arg3 = static_cast< double >(val3); - result = (int)(arg1)->GetSpectrum(arg2,arg3); - resultobj = SWIG_From_int(static_cast< int >(result)); + if (arg1) (arg1)->timestamp = arg2; + resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetSpectrum__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekSpectrum_timestamp_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - unsigned int *arg2 = (unsigned int *) 0 ; + AmptekSpectrum *arg1 = (AmptekSpectrum *) 0 ; void *argp1 = 0 ; int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - int result; + std::chrono::time_point< std::chrono::system_clock > result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_GetSpectrum",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekSpectrum_timestamp_get",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekSpectrum, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetSpectrum" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_unsigned_int, 0 | 0 ); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "AmptekHardwareInterface_GetSpectrum" "', argument " "2"" of type '" "unsigned int *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekSpectrum_timestamp_get" "', argument " "1"" of type '" "AmptekSpectrum *""'"); } - arg2 = reinterpret_cast< unsigned int * >(argp2); - result = (int)(arg1)->GetSpectrum(arg2); - resultobj = SWIG_From_int(static_cast< int >(result)); + arg1 = reinterpret_cast< AmptekSpectrum * >(argp1); + result = ((arg1)->timestamp); + resultobj = SWIG_NewPointerObj((new std::chrono::time_point< std::chrono::system_clock >(static_cast< const std::chrono::time_point< std::chrono::system_clock >& >(result))), SWIGTYPE_p_std__chrono__time_pointT_std__chrono__system_clock_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetSpectrum__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_AmptekSpectrum__SWIG_0(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - double arg2 ; + byte *arg1 = (byte *) 0 ; + size_t arg2 ; + std::chrono::time_point< std::chrono::system_clock > arg3 ; void *argp1 = 0 ; int res1 = 0 ; - double val2 ; + size_t val2 ; int ecode2 = 0 ; + void *argp3 ; + int res3 = 0 ; PyObject * obj0 = 0 ; PyObject * obj1 = 0 ; - std::vector< unsigned int,std::allocator< unsigned int > > result; + PyObject * obj2 = 0 ; + AmptekSpectrum *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_GetSpectrum",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"OOO:new_AmptekSpectrum",&obj0,&obj1,&obj2)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_byte, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetSpectrum" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_AmptekSpectrum" "', argument " "1"" of type '" "byte const *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - ecode2 = SWIG_AsVal_double(obj1, &val2); + arg1 = reinterpret_cast< byte * >(argp1); + ecode2 = SWIG_AsVal_size_t(obj1, &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "AmptekHardwareInterface_GetSpectrum" "', argument " "2"" of type '" "double""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_AmptekSpectrum" "', argument " "2"" of type '" "size_t""'"); } - arg2 = static_cast< double >(val2); - result = (arg1)->GetSpectrum(arg2); - resultobj = swig::from(static_cast< std::vector< unsigned int,std::allocator< unsigned int > > >(result)); + arg2 = static_cast< size_t >(val2); + { + res3 = SWIG_ConvertPtr(obj2, &argp3, SWIGTYPE_p_std__chrono__time_pointT_std__chrono__system_clock_t, 0 | 0); + if (!SWIG_IsOK(res3)) { + SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "new_AmptekSpectrum" "', argument " "3"" of type '" "std::chrono::time_point< std::chrono::system_clock >""'"); + } + if (!argp3) { + SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "new_AmptekSpectrum" "', argument " "3"" of type '" "std::chrono::time_point< std::chrono::system_clock >""'"); + } else { + std::chrono::time_point< std::chrono::system_clock > * temp = reinterpret_cast< std::chrono::time_point< std::chrono::system_clock > * >(argp3); + arg3 = *temp; + if (SWIG_IsNewObj(res3)) delete temp; + } + } + result = (AmptekSpectrum *)new AmptekSpectrum((byte const *)arg1,arg2,arg3); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AmptekSpectrum, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetSpectrum__SWIG_3(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_AmptekSpectrum__SWIG_1(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + byte *arg1 = (byte *) 0 ; + size_t arg2 ; void *argp1 = 0 ; int res1 = 0 ; + size_t val2 ; + int ecode2 = 0 ; PyObject * obj0 = 0 ; - std::vector< unsigned int,std::allocator< unsigned int > > result; + PyObject * obj1 = 0 ; + AmptekSpectrum *result = 0 ; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_GetSpectrum",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"OO:new_AmptekSpectrum",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_byte, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetSpectrum" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "new_AmptekSpectrum" "', argument " "1"" of type '" "byte const *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (arg1)->GetSpectrum(); - resultobj = swig::from(static_cast< std::vector< unsigned int,std::allocator< unsigned int > > >(result)); + arg1 = reinterpret_cast< byte * >(argp1); + ecode2 = SWIG_AsVal_size_t(obj1, &val2); + if (!SWIG_IsOK(ecode2)) { + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "new_AmptekSpectrum" "', argument " "2"" of type '" "size_t""'"); + } + arg2 = static_cast< size_t >(val2); + result = (AmptekSpectrum *)new AmptekSpectrum((byte const *)arg1,arg2); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AmptekSpectrum, SWIG_POINTER_NEW | 0 ); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetSpectrum(PyObject *self, PyObject *args) { +SWIGINTERN PyObject *_wrap_new_AmptekSpectrum__SWIG_2(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + AmptekSpectrum *result = 0 ; + + if (!PyArg_ParseTuple(args,(char *)":new_AmptekSpectrum")) SWIG_fail; + result = (AmptekSpectrum *)new AmptekSpectrum(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_AmptekSpectrum, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_new_AmptekSpectrum(PyObject *self, PyObject *args) { Py_ssize_t argc; PyObject *argv[4] = { 0 @@ -17074,135 +15945,101 @@ SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetSpectrum(PyObject *self, P for (ii = 0; (ii < 3) && (ii < argc); ii++) { argv[ii] = PyTuple_GET_ITEM(args,ii); } - if (argc == 1) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_GetSpectrum__SWIG_3(self, args); - } - } - if (argc == 2) { - int _v; - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); - _v = SWIG_CheckState(res); - if (_v) { - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_unsigned_int, 0); - _v = SWIG_CheckState(res); - if (_v) { - return _wrap_AmptekHardwareInterface_GetSpectrum__SWIG_1(self, args); - } - } + if (argc == 0) { + return _wrap_new_AmptekSpectrum__SWIG_2(self, args); } if (argc == 2) { int _v; void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); + int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_byte, 0); _v = SWIG_CheckState(res); if (_v) { { - int res = SWIG_AsVal_double(argv[1], NULL); + int res = SWIG_AsVal_size_t(argv[1], NULL); _v = SWIG_CheckState(res); } if (_v) { - return _wrap_AmptekHardwareInterface_GetSpectrum__SWIG_2(self, args); + return _wrap_new_AmptekSpectrum__SWIG_1(self, args); } } } if (argc == 3) { int _v; void *vptr = 0; - int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_AmptekHardwareInterface, 0); + int res = SWIG_ConvertPtr(argv[0], &vptr, SWIGTYPE_p_byte, 0); _v = SWIG_CheckState(res); if (_v) { - void *vptr = 0; - int res = SWIG_ConvertPtr(argv[1], &vptr, SWIGTYPE_p_unsigned_int, 0); - _v = SWIG_CheckState(res); + { + int res = SWIG_AsVal_size_t(argv[1], NULL); + _v = SWIG_CheckState(res); + } if (_v) { - { - int res = SWIG_AsVal_double(argv[2], NULL); - _v = SWIG_CheckState(res); - } + int res = SWIG_ConvertPtr(argv[2], 0, SWIGTYPE_p_std__chrono__time_pointT_std__chrono__system_clock_t, 0); + _v = SWIG_CheckState(res); if (_v) { - return _wrap_AmptekHardwareInterface_GetSpectrum__SWIG_0(self, args); + return _wrap_new_AmptekSpectrum__SWIG_0(self, args); } } } } fail: - SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'AmptekHardwareInterface_GetSpectrum'.\n" + SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'new_AmptekSpectrum'.\n" " Possible C/C++ prototypes are:\n" - " AmptekHardwareInterface::GetSpectrum(unsigned int *,double)\n" - " AmptekHardwareInterface::GetSpectrum(unsigned int *)\n" - " AmptekHardwareInterface::GetSpectrum(double)\n" - " AmptekHardwareInterface::GetSpectrum()\n"); + " AmptekSpectrum::AmptekSpectrum(byte const *,size_t,std::chrono::time_point< std::chrono::system_clock >)\n" + " AmptekSpectrum::AmptekSpectrum(byte const *,size_t)\n" + " AmptekSpectrum::AmptekSpectrum()\n"); return 0; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetTextConfiguration(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_AmptekSpectrum_AgeMillis(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; - std::vector< std::string,std::allocator< std::string > > arg2 ; + AmptekSpectrum *arg1 = (AmptekSpectrum *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - PyObject * obj1 = 0 ; - std::vector< std::string,std::allocator< std::string > > result; + double result; - if (!PyArg_ParseTuple(args,(char *)"OO:AmptekHardwareInterface_GetTextConfiguration",&obj0,&obj1)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:AmptekSpectrum_AgeMillis",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekSpectrum, 0 | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetTextConfiguration" "', argument " "1"" of type '" "AmptekHardwareInterface *""'"); - } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - { - std::vector< std::string,std::allocator< std::string > > *ptr = (std::vector< std::string,std::allocator< std::string > > *)0; - int res = swig::asptr(obj1, &ptr); - if (!SWIG_IsOK(res) || !ptr) { - SWIG_exception_fail(SWIG_ArgError((ptr ? res : SWIG_TypeError)), "in method '" "AmptekHardwareInterface_GetTextConfiguration" "', argument " "2"" of type '" "std::vector< std::string,std::allocator< std::string > >""'"); - } - arg2 = *ptr; - if (SWIG_IsNewObj(res)) delete ptr; + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekSpectrum_AgeMillis" "', argument " "1"" of type '" "AmptekSpectrum const *""'"); } - result = (arg1)->GetTextConfiguration(arg2); - resultobj = swig::from(static_cast< std::vector< std::string,std::allocator< std::string > > >(result)); + arg1 = reinterpret_cast< AmptekSpectrum * >(argp1); + result = (double)((AmptekSpectrum const *)arg1)->AgeMillis(); + resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *_wrap_AmptekHardwareInterface_GetState(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_delete_AmptekSpectrum(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AmptekHardwareInterface *arg1 = (AmptekHardwareInterface *) 0 ; + AmptekSpectrum *arg1 = (AmptekSpectrum *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject * obj0 = 0 ; - AmptekState result; - if (!PyArg_ParseTuple(args,(char *)"O:AmptekHardwareInterface_GetState",&obj0)) SWIG_fail; - res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekHardwareInterface, 0 | 0 ); + if (!PyArg_ParseTuple(args,(char *)"O:delete_AmptekSpectrum",&obj0)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_AmptekSpectrum, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "AmptekHardwareInterface_GetState" "', argument " "1"" of type '" "AmptekHardwareInterface const *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_AmptekSpectrum" "', argument " "1"" of type '" "AmptekSpectrum *""'"); } - arg1 = reinterpret_cast< AmptekHardwareInterface * >(argp1); - result = (AmptekState)((AmptekHardwareInterface const *)arg1)->GetState(); - resultobj = SWIG_From_int(static_cast< int >(result)); + arg1 = reinterpret_cast< AmptekSpectrum * >(argp1); + delete arg1; + resultobj = SWIG_Py_Void(); return resultobj; fail: return NULL; } -SWIGINTERN PyObject *AmptekHardwareInterface_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *AmptekSpectrum_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; - if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_AmptekHardwareInterface, SWIG_NewClientData(obj)); + if (!PyArg_ParseTuple(args,(char *)"O:swigregister", &obj)) return NULL; + SWIG_TypeNewClientData(SWIGTYPE_p_AmptekSpectrum, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } @@ -17362,19 +16199,11 @@ static PyMethodDef SwigMethods[] = { { (char *)"UIntVector_capacity", _wrap_UIntVector_capacity, METH_VARARGS, NULL}, { (char *)"delete_UIntVector", _wrap_delete_UIntVector, METH_VARARGS, NULL}, { (char *)"UIntVector_swigregister", UIntVector_swigregister, METH_VARARGS, NULL}, - { (char *)"STATUS_SIZE_swigconstant", STATUS_SIZE_swigconstant, METH_VARARGS, NULL}, - { (char *)"SPECLEN_swigconstant", SPECLEN_swigconstant, METH_VARARGS, NULL}, - { (char *)"NOT_CONNECTED_swigconstant", NOT_CONNECTED_swigconstant, METH_VARARGS, NULL}, - { (char *)"ON_swigconstant", ON_swigconstant, METH_VARARGS, NULL}, - { (char *)"RECORDING_swigconstant", RECORDING_swigconstant, METH_VARARGS, NULL}, - { (char *)"ERROR_swigconstant", ERROR_swigconstant, METH_VARARGS, NULL}, { (char *)"new_AmptekHardwareInterface", _wrap_new_AmptekHardwareInterface, METH_VARARGS, NULL}, { (char *)"delete_AmptekHardwareInterface", _wrap_delete_AmptekHardwareInterface, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_connectUSB", _wrap_AmptekHardwareInterface_connectUSB, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_connectSimulator", _wrap_AmptekHardwareInterface_connectSimulator, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_connectUDP", _wrap_AmptekHardwareInterface_connectUDP, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_readSpectrum", _wrap_AmptekHardwareInterface_readSpectrum, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_readSpectrumAndStatus", _wrap_AmptekHardwareInterface_readSpectrumAndStatus, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_Enable", _wrap_AmptekHardwareInterface_Enable, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_Disable", _wrap_AmptekHardwareInterface_Disable, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_Ping", _wrap_AmptekHardwareInterface_Ping, METH_VARARGS, NULL}, @@ -17383,40 +16212,59 @@ static PyMethodDef SwigMethods[] = { { (char *)"AmptekHardwareInterface_SetPresetRealTime", _wrap_AmptekHardwareInterface_SetPresetRealTime, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_SetPresetCounts", _wrap_AmptekHardwareInterface_SetPresetCounts, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_SetTextConfiguration", _wrap_AmptekHardwareInterface_SetTextConfiguration, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_UpdateStatus", _wrap_AmptekHardwareInterface_UpdateStatus, METH_VARARGS, NULL}, + { (char *)"AmptekHardwareInterface_updateStatus", _wrap_AmptekHardwareInterface_updateStatus, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_EnableListMode", _wrap_AmptekHardwareInterface_EnableListMode, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_ResetListModeTimer", _wrap_AmptekHardwareInterface_ResetListModeTimer, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_DisableListMode", _wrap_AmptekHardwareInterface_DisableListMode, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_startBuffering", _wrap_AmptekHardwareInterface_startBuffering, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_stopBuffering", _wrap_AmptekHardwareInterface_stopBuffering, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_GetBuffered", _wrap_AmptekHardwareInterface_GetBuffered, METH_VARARGS, NULL}, + { (char *)"AmptekHardwareInterface_GetBufferedSpectrum", _wrap_AmptekHardwareInterface_GetBufferedSpectrum, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_StartCommtestStreaming", _wrap_AmptekHardwareInterface_StartCommtestStreaming, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_StopCommtestStreaming", _wrap_AmptekHardwareInterface_StopCommtestStreaming, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_FastCount", _wrap_AmptekHardwareInterface_FastCount, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_SlowCount", _wrap_AmptekHardwareInterface_SlowCount, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_DeadTime", _wrap_AmptekHardwareInterface_DeadTime, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_AccTime", _wrap_AmptekHardwareInterface_AccTime, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_RealTime", _wrap_AmptekHardwareInterface_RealTime, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_FirmwareMajor", _wrap_AmptekHardwareInterface_FirmwareMajor, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_FirmwareMinor", _wrap_AmptekHardwareInterface_FirmwareMinor, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_FirmwareBuild", _wrap_AmptekHardwareInterface_FirmwareBuild, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_FpgaMajor", _wrap_AmptekHardwareInterface_FpgaMajor, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_FpgaMinor", _wrap_AmptekHardwareInterface_FpgaMinor, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_SerialNb", _wrap_AmptekHardwareInterface_SerialNb, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_HighVoltage", _wrap_AmptekHardwareInterface_HighVoltage, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_DetectorTemp", _wrap_AmptekHardwareInterface_DetectorTemp, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_BoardTemp", _wrap_AmptekHardwareInterface_BoardTemp, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_IsPresetTimeReached", _wrap_AmptekHardwareInterface_IsPresetTimeReached, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_IsEnabled", _wrap_AmptekHardwareInterface_IsEnabled, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_IsPresetCountReached", _wrap_AmptekHardwareInterface_IsPresetCountReached, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_IsGated", _wrap_AmptekHardwareInterface_IsGated, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_FpgaClock", _wrap_AmptekHardwareInterface_FpgaClock, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_DeviceType", _wrap_AmptekHardwareInterface_DeviceType, METH_VARARGS, NULL}, - { (char *)"AmptekHardwareInterface_TecVoltage", _wrap_AmptekHardwareInterface_TecVoltage, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_GetSpectrum", _wrap_AmptekHardwareInterface_GetSpectrum, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_GetTextConfiguration", _wrap_AmptekHardwareInterface_GetTextConfiguration, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_GetState", _wrap_AmptekHardwareInterface_GetState, METH_VARARGS, NULL}, { (char *)"AmptekHardwareInterface_swigregister", AmptekHardwareInterface_swigregister, METH_VARARGS, NULL}, + { (char *)"new_AmptekStatus", _wrap_new_AmptekStatus, METH_VARARGS, NULL}, + { (char *)"delete_AmptekStatus", _wrap_delete_AmptekStatus, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_FastCount", _wrap_AmptekStatus_FastCount, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_SlowCount", _wrap_AmptekStatus_SlowCount, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_DeadTime", _wrap_AmptekStatus_DeadTime, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_AccTime", _wrap_AmptekStatus_AccTime, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_RealTime", _wrap_AmptekStatus_RealTime, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_FirmwareMajor", _wrap_AmptekStatus_FirmwareMajor, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_FirmwareMinor", _wrap_AmptekStatus_FirmwareMinor, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_FirmwareBuild", _wrap_AmptekStatus_FirmwareBuild, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_FpgaMajor", _wrap_AmptekStatus_FpgaMajor, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_FpgaMinor", _wrap_AmptekStatus_FpgaMinor, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_SerialNb", _wrap_AmptekStatus_SerialNb, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_HighVoltage", _wrap_AmptekStatus_HighVoltage, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_DetectorTemp", _wrap_AmptekStatus_DetectorTemp, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_BoardTemp", _wrap_AmptekStatus_BoardTemp, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_IsPresetTimeReached", _wrap_AmptekStatus_IsPresetTimeReached, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_IsEnabled", _wrap_AmptekStatus_IsEnabled, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_IsPresetCountReached", _wrap_AmptekStatus_IsPresetCountReached, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_IsGated", _wrap_AmptekStatus_IsGated, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_FpgaClock", _wrap_AmptekStatus_FpgaClock, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_DeviceType", _wrap_AmptekStatus_DeviceType, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_TecVoltage", _wrap_AmptekStatus_TecVoltage, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_ListModeLMMO", _wrap_AmptekStatus_ListModeLMMO, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_ListModeClock", _wrap_AmptekStatus_ListModeClock, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_ListModeSync", _wrap_AmptekStatus_ListModeSync, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_SequentialBufferRunning", _wrap_AmptekStatus_SequentialBufferRunning, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_SequentialBufferIndex", _wrap_AmptekStatus_SequentialBufferIndex, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_AgeMillis", _wrap_AmptekStatus_AgeMillis, METH_VARARGS, NULL}, + { (char *)"AmptekStatus_swigregister", AmptekStatus_swigregister, METH_VARARGS, NULL}, + { (char *)"AmptekSpectrum_bins_set", _wrap_AmptekSpectrum_bins_set, METH_VARARGS, NULL}, + { (char *)"AmptekSpectrum_bins_get", _wrap_AmptekSpectrum_bins_get, METH_VARARGS, NULL}, + { (char *)"AmptekSpectrum_nbins_set", _wrap_AmptekSpectrum_nbins_set, METH_VARARGS, NULL}, + { (char *)"AmptekSpectrum_nbins_get", _wrap_AmptekSpectrum_nbins_get, METH_VARARGS, NULL}, + { (char *)"AmptekSpectrum_timestamp_set", _wrap_AmptekSpectrum_timestamp_set, METH_VARARGS, NULL}, + { (char *)"AmptekSpectrum_timestamp_get", _wrap_AmptekSpectrum_timestamp_get, METH_VARARGS, NULL}, + { (char *)"new_AmptekSpectrum", _wrap_new_AmptekSpectrum, METH_VARARGS, NULL}, + { (char *)"AmptekSpectrum_AgeMillis", _wrap_AmptekSpectrum_AgeMillis, METH_VARARGS, NULL}, + { (char *)"delete_AmptekSpectrum", _wrap_delete_AmptekSpectrum, METH_VARARGS, NULL}, + { (char *)"AmptekSpectrum_swigregister", AmptekSpectrum_swigregister, METH_VARARGS, NULL}, { NULL, NULL, 0, NULL } }; @@ -17424,6 +16272,8 @@ static PyMethodDef SwigMethods[] = { /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */ static swig_type_info _swigt__p_AmptekHardwareInterface = {"_p_AmptekHardwareInterface", "AmptekHardwareInterface *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_AmptekSpectrum = {"_p_AmptekSpectrum", "AmptekSpectrum *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_AmptekStatus = {"_p_AmptekStatus", "AmptekStatus *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_allocator_type = {"_p_allocator_type", "allocator_type *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_byte = {"_p_byte", "byte *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0}; @@ -17438,7 +16288,9 @@ static swig_type_info _swigt__p_std__allocatorT_double_t = {"_p_std__allocatorT_ static swig_type_info _swigt__p_std__allocatorT_int_t = {"_p_std__allocatorT_int_t", "std::vector< int >::allocator_type *|std::allocator< int > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_std__string_t = {"_p_std__allocatorT_std__string_t", "std::vector< std::string >::allocator_type *|std::allocator< std::string > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__allocatorT_unsigned_int_t = {"_p_std__allocatorT_unsigned_int_t", "std::vector< unsigned int >::allocator_type *|std::allocator< unsigned int > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__chrono__time_pointT_std__chrono__system_clock_t = {"_p_std__chrono__time_pointT_std__chrono__system_clock_t", "std::chrono::time_point< std::chrono::system_clock > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__pairT_AmptekSpectrum_AmptekStatus_t = {"_p_std__pairT_AmptekSpectrum_AmptekStatus_t", "std::pair< AmptekSpectrum,AmptekStatus > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_double_std__allocatorT_double_t_t = {"_p_std__vectorT_double_std__allocatorT_double_t_t", "std::vector< double,std::allocator< double > > *|std::vector< double > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_int_std__allocatorT_int_t_t = {"_p_std__vectorT_int_std__allocatorT_int_t_t", "std::vector< int,std::allocator< int > > *|std::vector< int > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t = {"_p_std__vectorT_std__string_std__allocatorT_std__string_t_t", "std::vector< std::string,std::allocator< std::string > > *|std::vector< std::string > *", 0, 0, (void*)0, 0}; @@ -17452,6 +16304,8 @@ static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0 static swig_type_info *swig_type_initial[] = { &_swigt__p_AmptekHardwareInterface, + &_swigt__p_AmptekSpectrum, + &_swigt__p_AmptekStatus, &_swigt__p_allocator_type, &_swigt__p_byte, &_swigt__p_char, @@ -17466,7 +16320,9 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_std__allocatorT_int_t, &_swigt__p_std__allocatorT_std__string_t, &_swigt__p_std__allocatorT_unsigned_int_t, + &_swigt__p_std__chrono__time_pointT_std__chrono__system_clock_t, &_swigt__p_std__invalid_argument, + &_swigt__p_std__pairT_AmptekSpectrum_AmptekStatus_t, &_swigt__p_std__vectorT_double_std__allocatorT_double_t_t, &_swigt__p_std__vectorT_int_std__allocatorT_int_t_t, &_swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t, @@ -17480,6 +16336,8 @@ static swig_type_info *swig_type_initial[] = { }; static swig_cast_info _swigc__p_AmptekHardwareInterface[] = { {&_swigt__p_AmptekHardwareInterface, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_AmptekSpectrum[] = { {&_swigt__p_AmptekSpectrum, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_AmptekStatus[] = { {&_swigt__p_AmptekStatus, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_allocator_type[] = { {&_swigt__p_allocator_type, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_byte[] = { {&_swigt__p_byte, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_char[] = { {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}}; @@ -17494,7 +16352,9 @@ static swig_cast_info _swigc__p_std__allocatorT_double_t[] = { {&_swigt__p_std_ static swig_cast_info _swigc__p_std__allocatorT_int_t[] = { {&_swigt__p_std__allocatorT_int_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__allocatorT_std__string_t[] = { {&_swigt__p_std__allocatorT_std__string_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__allocatorT_unsigned_int_t[] = { {&_swigt__p_std__allocatorT_unsigned_int_t, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_std__chrono__time_pointT_std__chrono__system_clock_t[] = { {&_swigt__p_std__chrono__time_pointT_std__chrono__system_clock_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__invalid_argument[] = { {&_swigt__p_std__invalid_argument, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_std__pairT_AmptekSpectrum_AmptekStatus_t[] = { {&_swigt__p_std__pairT_AmptekSpectrum_AmptekStatus_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_double_std__allocatorT_double_t_t[] = { {&_swigt__p_std__vectorT_double_std__allocatorT_double_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_int_std__allocatorT_int_t_t[] = { {&_swigt__p_std__vectorT_int_std__allocatorT_int_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_std__string_std__allocatorT_std__string_t_t[] = { {&_swigt__p_std__vectorT_std__string_std__allocatorT_std__string_t_t, 0, 0, 0},{0, 0, 0, 0}}; @@ -17508,6 +16368,8 @@ static swig_cast_info _swigc__p_value_type[] = { {&_swigt__p_value_type, 0, 0, static swig_cast_info *swig_cast_initial[] = { _swigc__p_AmptekHardwareInterface, + _swigc__p_AmptekSpectrum, + _swigc__p_AmptekStatus, _swigc__p_allocator_type, _swigc__p_byte, _swigc__p_char, @@ -17522,7 +16384,9 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_std__allocatorT_int_t, _swigc__p_std__allocatorT_std__string_t, _swigc__p_std__allocatorT_unsigned_int_t, + _swigc__p_std__chrono__time_pointT_std__chrono__system_clock_t, _swigc__p_std__invalid_argument, + _swigc__p_std__pairT_AmptekSpectrum_AmptekStatus_t, _swigc__p_std__vectorT_double_std__allocatorT_double_t_t, _swigc__p_std__vectorT_int_std__allocatorT_int_t_t, _swigc__p_std__vectorT_std__string_std__allocatorT_std__string_t_t, @@ -17912,7 +16776,6 @@ extern "C" { static int type_init = 0; if (!type_init) { const PyTypeObject tmp = { - /* PyObject header changed in Python 3 */ #if PY_VERSION_HEX >= 0x03000000 PyVarObject_HEAD_INIT(NULL, 0) #else @@ -18144,13 +17007,13 @@ SWIG_init(void) { static PyGetSetDef thisown_getset_def = { (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure }; - PyObject *metatype_args; PyTypeObject *builtin_pytype; int builtin_base_count; swig_type_info *builtin_basetype; PyObject *tuple; PyGetSetDescrObject *static_getset; PyTypeObject *metatype; + PyTypeObject *swigpyobject; SwigPyClientData *cd; PyObject *public_interface, *public_symbol; PyObject *this_descr; @@ -18165,14 +17028,9 @@ SWIG_init(void) { (void)static_getset; (void)self; - /* metatype is used to implement static member variables. */ - metatype_args = Py_BuildValue("(s(O){})", "SwigPyObjectType", &PyType_Type); - assert(metatype_args); - metatype = (PyTypeObject *) PyType_Type.tp_call((PyObject *) &PyType_Type, metatype_args, NULL); + /* Metaclass is used to implement static member variables */ + metatype = SwigPyObjectType(); assert(metatype); - Py_DECREF(metatype_args); - metatype->tp_setattro = (setattrofunc) &SwigPyObjectType_setattro; - assert(PyType_Ready(metatype) >= 0); #endif /* Fix SwigMethods to carry the callback ptrs when needed */ @@ -18190,13 +17048,15 @@ SWIG_init(void) { SWIG_InitializeModule(0); #ifdef SWIGPYTHON_BUILTIN + swigpyobject = SwigPyObject_TypeOnce(); + SwigPyObject_stype = SWIG_MangledTypeQuery("_p_SwigPyObject"); assert(SwigPyObject_stype); cd = (SwigPyClientData*) SwigPyObject_stype->clientdata; if (!cd) { SwigPyObject_stype->clientdata = &SwigPyObject_clientdata; - SwigPyObject_clientdata.pytype = SwigPyObject_TypeOnce(); - } else if (SwigPyObject_TypeOnce()->tp_basicsize != cd->pytype->tp_basicsize) { + SwigPyObject_clientdata.pytype = swigpyobject; + } else if (swigpyobject->tp_basicsize != cd->pytype->tp_basicsize) { PyErr_SetString(PyExc_RuntimeError, "Import error: attempted to load two incompatible swig-generated modules."); # if PY_VERSION_HEX >= 0x03000000 return NULL; @@ -18230,6 +17090,12 @@ SWIG_init(void) { import_array(); + SWIG_Python_SetConstant(d, "SPECLEN",SWIG_From_int(static_cast< int >(8192))); + SWIG_Python_SetConstant(d, "NOT_CONNECTED",SWIG_From_int(static_cast< int >(NOT_CONNECTED))); + SWIG_Python_SetConstant(d, "ON",SWIG_From_int(static_cast< int >(ON))); + SWIG_Python_SetConstant(d, "RECORDING",SWIG_From_int(static_cast< int >(RECORDING))); + SWIG_Python_SetConstant(d, "ERROR",SWIG_From_int(static_cast< int >(ERROR))); + SWIG_Python_SetConstant(d, "STATUS_SIZE",SWIG_From_int(static_cast< int >(64))); #if PY_VERSION_HEX >= 0x03000000 return m; #else diff --git a/python/show_list_data.py b/python/show_list_data.py index e0a99dfcc48d9276d520ee3a21bd1cbbf129c955..95d6f2f674d4e2e2fa0c249f29a96f7e33db40cc 100644 --- a/python/show_list_data.py +++ b/python/show_list_data.py @@ -2,7 +2,7 @@ import sys import struct - +import numpy as np def read_records(f,datalength): records = [] @@ -113,12 +113,23 @@ t = [ r["full_ts"] for r in event_records if "full_ts" in r ] a = [ r["amplitude"] for r in event_records if "full_ts" in r ] ax2.plot(t,a) +figWF, axesWF = plt.subplots(2,1,sharex=True) +h2D, tedges, xedges = np.histogram2d( t,a,bins=(1000,1024), range=( (0,max(t)),(0,4096) ) ) +print(h2D.shape) +axesWF[0].plot( h2D[-1] ) +axesWF[1].imshow(h2D, extent = (0,1024,tedges[0],tedges[-1]), aspect = "auto", origin = "lower" ) + fig3, ax3 = plt.subplots() event_records = [r for r in records if r["type"] == "event"] t = [ r["full_ts"] for r in event_records if "full_ts" in r ] a = [ r["frame"] for r in event_records if "full_ts" in r ] ax3.plot(t,a) + + +# for i in range(len(records)): +# if records[i]['type'] == 'frame': +# print( "{:03d}:{:06d}".format( records[i]["frame"],records[i]["ts_upper"] ) ) plt.show() diff --git a/src/AmptekHardwareInterface.cpp b/src/AmptekHardwareInterface.cpp index 2d466248e54a91b427b4e47f24ff14b28f3391aa..ae68318553c79d0eaf84ae9ab0416f8183a369e6 100644 --- a/src/AmptekHardwareInterface.cpp +++ b/src/AmptekHardwareInterface.cpp @@ -20,7 +20,13 @@ AmptekHardwareInterface::~AmptekHardwareInterface(){ } - +/** + * @brief Connect via UDP to the detector + * + * @param hostname host of the detector, can be IP address + * @param port port on which the amptek is listening. Should be 10001 + * @param timeout connection timeout in seconds + */ void AmptekHardwareInterface::connectUDP(std::string hostname, int port, double timeout){ if (connection_handler != nullptr){ @@ -32,6 +38,26 @@ void AmptekHardwareInterface::connectUDP(std::string hostname, int port, double } } +/** + * @brief Connect via USB to the detector + * + * @param serialNb the serial number of the detector to connect with + */ +void AmptekHardwareInterface::connectUSB(int serialNb){ +if (connection_handler != nullptr){ + throw AmptekException("Amptek is already connected"); + } + else{ + connection_handler = new AmptekUsbConnectionHandler(serialNb); + current_state = ON; + } +} + +/** + * @brief Connect to a simulator interface + * This allows debugging of interface logic without an available hardware to connect to + * + */ void AmptekHardwareInterface::connectSimulator(){ if (connection_handler != nullptr){ @@ -43,23 +69,43 @@ void AmptekHardwareInterface::connectSimulator(){ } } + +/** + * @brief Checks if the stored last spectrum is younger than the given maximum age + * + * @param max_age_ms maximum allowed age in milliseconds + * @return true if spectrum is young enough + * @return false if it is too old + */ bool AmptekHardwareInterface::spectrumAgeOk( double max_age_ms ) const { if (max_age_ms < 0){ return false; } - auto now = std::chrono::system_clock::now(); - return std::chrono::duration_cast<std::chrono::milliseconds>(now - last_spectrum_update_time).count() < max_age_ms; + return last_spectrum.AgeMillis() < max_age_ms; } + +/** + * @brief Checks if the stored last status is younger than the given maximum age + * + * @param max_age_ms maximum allowed age in milliseconds + * @return true true if status is young enough + * @return false false if it is too old + */ bool AmptekHardwareInterface::statusAgeOk( double max_age_ms ) const { if (max_age_ms < 0){ return false; } - auto now = std::chrono::system_clock::now(); - return std::chrono::duration_cast<std::chrono::milliseconds>(now - last_status_update_time).count() < max_age_ms; + return last_status.AgeMillis() < max_age_ms; } +/** + * @brief Enables the acquisition on the detector + * + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::Enable(){ try{ expectAcknowledge( connection_handler->sendAndReceive( Packet::DP5_PKT_REQUEST_ENABLE ) ); @@ -73,7 +119,12 @@ bool AmptekHardwareInterface::Enable(){ } - +/** + * @brief Disable the acquisition on the detector + * + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::Disable(){ try{ expectAcknowledge( connection_handler->sendAndReceive( Packet::DP5_PKT_REQUEST_DISABLE ) ); @@ -85,6 +136,13 @@ bool AmptekHardwareInterface::Disable(){ } return true; } + +/** + * @brief Send a test packet to the detector + * + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::Ping(){ try{ expectAcknowledge( connection_handler->sendAndReceive( Packet::DP5_PKT_REQUEST_KEEP_ALIVE_NO_SHARING ) ); @@ -97,6 +155,12 @@ bool AmptekHardwareInterface::Ping(){ return true; } +/** + * @brief Clear the current spectrum buffer on the detector + * + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::ClearSpectrum(){ try{ expectAcknowledge( connection_handler->sendAndReceive( Packet::DP5_PKT_REQUEST_CLEAR_SPECTRUM ) ); @@ -109,6 +173,18 @@ bool AmptekHardwareInterface::ClearSpectrum(){ return true; } + +/** + * @brief Set the accumulation time for a measurement. The detector will stop automatically when the duration is reached + * + * @note The Accumulation timer is stopped while the detector is gated, in transfer mode, reset lockout + * or any other mode that temporarily blockes the MCA. Therefore, accumulation time is larger than the real measurement duration + * + * @see SetPresetAccumulationTime, SetPresetRealTime, SetPresetCounts + * @param t accumulation time in seconds. Minimum is 0.1. If below zero, the accumulation time is not part of the stop condition during acquisition + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::SetPresetAccumulationTime(double t){ std::stringstream cmd_stream; cmd_stream << "PRET="; @@ -121,6 +197,15 @@ bool AmptekHardwareInterface::SetPresetAccumulationTime(double t){ return SetTextConfiguration( {cmd_stream.str()} ); } + +/** + * @brief Set the real time for a measurement. The detector will stop automatically when the duration is reached + * + * @see SetPresetAccumulationTime, SetPresetRealTime, SetPresetCounts + * @param t real time in seconds. If below zero, the real time is not part of the stop condition during acquisition + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::SetPresetRealTime(double t){ std::stringstream cmd_stream; cmd_stream << "PRER="; @@ -133,6 +218,15 @@ bool AmptekHardwareInterface::SetPresetRealTime(double t){ return SetTextConfiguration( {cmd_stream.str()} ); } + +/** + * @brief Set the count limit for a measurement. The detector will stop automatically when the slow count is reached + * + * @see SetPresetAccumulationTime, SetPresetRealTime, SetPresetCounts + * @param c maximum slow counts. If below zero, the slow count is not part of the stop condition during acquisition + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::SetPresetCounts(int c){ std::stringstream cmd_stream; cmd_stream << "PREC="; @@ -145,7 +239,13 @@ bool AmptekHardwareInterface::SetPresetCounts(int c){ return SetTextConfiguration( {cmd_stream.str()} ); } - +/** + * @brief Send text configuration parameters to the detector. See DP5 Programmers Guide for available commands + * + * @param commands vector of strings in the format "CMD=VAL", each entry in the vector being one config + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::SetTextConfiguration(std::vector<std::string> commands){ try{ @@ -180,6 +280,13 @@ bool AmptekHardwareInterface::SetTextConfiguration(std::vector<std::string> comm return true; } + +/** + * @brief Configuration read back from the detector + * + * @param commands each element being one configuration parameter CMD + * @return std::vector<std::string> vector of strings in the format "CMD=VAL" + */ std::vector<std::string> AmptekHardwareInterface::GetTextConfiguration(std::vector<std::string> commands){ stringstream cmdstream; @@ -218,25 +325,35 @@ std::vector<std::string> AmptekHardwareInterface::GetTextConfiguration(std::vect return configs; } -bool AmptekHardwareInterface::updateStatus(double max_age_ms){ + +/** + * @brief Update the detector status if too old + * + * @param max_age_ms maximum age of status in milliseconds. If too old, the status will be read from the detector + * @return AmptekStatus& reference to the current status object + */ +AmptekStatus& AmptekHardwareInterface::updateStatus(double max_age_ms){ if ( !statusAgeOk(max_age_ms)){ Packet statusResponse = connection_handler->sendAndReceive( Packet::DP5_PKT_REQUEST_STATUS ); - //std::cout << statusResponse.size() << std::endl; if (statusResponse.at(PID1) != DP5_P1_STATUS_RESPONSE || statusResponse.at(PID2) != DP5_P2_STATUS_RESPONSE_INFO) { - std::cerr<< "Response Packet did not match expected PIDs: " << statusResponse.toString() << std::endl; - return false; + throw AmptekException("Response Packet did not match expected PIDs: " + statusResponse.toString() ); + return last_status; } - - //std::cout << "copy from status response" << std::endl; - memcpy(last_status,&(statusResponse.at(DATA)), statusResponse.dataLength ); - //std::cout << "done" << std::endl; - last_status_update_time = std::chrono::system_clock::now(); + last_status = AmptekStatus(&(statusResponse.at(DATA))); } - return true; + return last_status; } + +/** + * @brief Update the spectrum data if too old + * + * @param max_age_ms maximum age of spectrum in milliseconds. If too old, the spectrum will be read from the detector + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::updateSpectrum(double max_age_ms){ if ( !spectrumAgeOk(max_age_ms)){ Packet spectrumResponse = connection_handler->sendAndReceive( Packet::DP5_PKT_REQUEST_SPECTRUM_AND_STATUS ); @@ -247,6 +364,7 @@ bool AmptekHardwareInterface::updateSpectrum(double max_age_ms){ return false; } bool with_status = true; + int spectrum_length; switch( spectrumResponse.at(PID2) ){ case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM256: with_status = false; // not break! use the respose with status setting the length @@ -284,16 +402,14 @@ bool AmptekHardwareInterface::updateSpectrum(double max_age_ms){ case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM8192_STATUS: spectrum_length=8192; break; + default: + throw AmptekException("Unknown PID2. Cannot read Spectrum Response"); } int spectrum_bytesize = 3*spectrum_length; try{ - for (int i = 0; i < spectrum_length; ++i){ - last_spectrum[i] = mergeBytes( spectrumResponse.at(DATA + 3*i + 2), - spectrumResponse.at(DATA + 3*i + 1), - spectrumResponse.at(DATA + 3*i ) - ); - } + last_spectrum = AmptekSpectrum( &(spectrumResponse.at(DATA) ), spectrum_length ); + } catch(std::runtime_error& e){ throw AmptekException(std::string("Failed in AmptekHardwareInterface::updateSpectrum \ @@ -301,10 +417,8 @@ bool AmptekHardwareInterface::updateSpectrum(double max_age_ms){ } try{ - last_spectrum_update_time = std::chrono::system_clock::now(); if (with_status){ - memcpy(last_status,&(spectrumResponse.at(DATA + spectrum_bytesize)), spectrumResponse.dataLength - spectrum_bytesize ); - last_status_update_time = last_spectrum_update_time; + last_status = AmptekStatus(&(spectrumResponse.at(DATA + spectrum_bytesize))); } } catch(std::runtime_error& e){ @@ -316,26 +430,22 @@ bool AmptekHardwareInterface::updateSpectrum(double max_age_ms){ return true; } -const byte* AmptekHardwareInterface::readSpectrum(double max_age_ms){ - throw AmptekException("AmptekHardwareInterface::readSpectrum not implemented"); - -} -const byte* AmptekHardwareInterface::readSpectrumAndStatus(const byte* statusbuffer, double max_age_ms){ - throw AmptekException("AmptekHardwareInterface::readSpectrumAndStatus not implemented"); - -} -void AmptekHardwareInterface::connectUSB(int serialNb){ -if (connection_handler != nullptr){ - throw AmptekException("Amptek is already connected"); - } - else{ - connection_handler = new AmptekUsbConnectionHandler(serialNb); - current_state = ON; - } -} - - +/** + * @brief Enables the list mode and streams the records into the targetfile + * + * The targetfile will be filled with the packet content of list data response messages + * The sync and checksum bytes are stripped from the response, but PIDs and LEN bytes will be written as well. + * This allows extending the output with other packet types later on if needed, + * as well as having a clean way to find FIFO overflow packets during analysis + * + * This function will invoke a continous loop in a worker thread and will result in + * high load on the USB interface and possibly CPU + * + * @param targetfile the path of the file to stream the responses + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::EnableListMode(std::string targetfile){ streamfile.open( targetfile, ios::binary ); @@ -372,6 +482,65 @@ bool AmptekHardwareInterface::EnableListMode(std::string targetfile){ } + + + +/** + * @brief Disable the list mode streaming. + * + * This will close the target file and delete the worker thread + * + * @return true on success + * @return false on failure + */ +bool AmptekHardwareInterface::DisableListMode(){ + listmode_flag = false; + if (list_reader_thread != nullptr ){ + list_reader_thread->join(); + streamfile.close(); + delete list_reader_thread; + list_reader_thread = nullptr; + return true; + } + return false; +} + + +/** + * @brief Reset the frame and counter registers of the list mode timer + * + * This will create a 0 time record in the data stream. + * + * @note The list mode timer is free running! This does not stop the timer, only resets it! + * @return true on success + * @return false on failure + */ +bool AmptekHardwareInterface::ResetListModeTimer(){ + try{ + expectAcknowledge(connection_handler->sendAndReceive( Packet::DP5_PKT_REQUEST_CLEAR_LIST_TIMER) ); + } + catch(AmptekException& e){ + + std::cerr<< "Failed clearing list-mode timer: " << e.what() << std::endl; + return false; + } + return true; +} + + +/** + * @brief Starts the hardware sequential buffering mode. + * + * THe sequential buffering mode ends, when all buffers are full or the buffering is canceled using stopBuffering. + * The hardware channel for buffer triggers is AUX IN 2 + * + * @note Hardware signals have to be provided to buffer a spectrum + * @note On PX5, the Connector input has to be configured to the right AUX input + * @note While in buffering mode, spectrum requests will be blocked with an ACK BUSY response packet + * + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::startBuffering(){ try{ expectAcknowledge(connection_handler->sendAndReceive( Packet::DP5_PKT_REQUEST_RESTART_SEQ_BUFFERING) ); @@ -381,7 +550,16 @@ bool AmptekHardwareInterface::startBuffering(){ std::cerr<< "Failed clearing list-mode timer: " << e.what() << std::endl; return false; } + return true; } + + +/** + * @brief Cancels the hardware sequential buffering mode. + * + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::stopBuffering(){ try{ expectAcknowledge(connection_handler->sendAndReceive( Packet::DP5_PKT_REQUEST_CANCEL_SEQ_BUFFERING) ); @@ -391,119 +569,83 @@ bool AmptekHardwareInterface::stopBuffering(){ std::cerr<< "Failed clearing list-mode timer: " << e.what() << std::endl; return false; } + return true; } -std::vector<unsigned int> AmptekHardwareInterface::GetBuffered(size_t id){ + +/** + * @brief Get Status and spectrum stored in an hardware buffer on the detector + * + * @note This will always return data. It as to be assured externally, that the buffer is really filled + * @param id index of the buffer to read from + * @return std::pair<AmptekSpectrum, AmptekStatus> spectrum and status stored in the buffer slot + */ +std::pair<AmptekSpectrum, AmptekStatus> AmptekHardwareInterface::GetBufferedSpectrum(size_t id){ Packet spectrumResponse = connection_handler->sendAndReceive( Packet::generateGetBufferRequest(id) ); //std::cout << spectrumResponse.size() << std::endl; if (spectrumResponse.at(PID1) != DP5_P1_SPECTRUM_RESPONSE ) { - std::cerr<< "Response Packet is not of type Spectrum: " << spectrumResponse.toString() << std::endl; - return std::vector<unsigned int>(); + throw AmptekException( "Response Packet is not of type Spectrum: " + spectrumResponse.toString() ); + } - bool with_status = true; + int spectrum_length; switch( spectrumResponse.at(PID2) ){ - case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM256: - with_status = false; // not break! use the respose with status setting the length case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM256_STATUS: spectrum_length=256; break; - case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM512: - with_status = false; // not break! use the respose with status setting the length case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM512_STATUS: spectrum_length=512; break; - case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM1024: - with_status = false; // not break! use the respose with status setting the length case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM1024_STATUS: spectrum_length=1024; break; - case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM2048: - with_status = false; // not break! use the respose with status setting the length case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM2048_STATUS: spectrum_length=2048; break; - case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM4096: - with_status = false; // not break! use the respose with status setting the length case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM4096_STATUS: spectrum_length=4096; break; - case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM8192: - with_status = false; // not break! use the respose with status setting the length case DP5_P2_SPECTRUM_RESPONSE_SPECTRUM8192_STATUS: spectrum_length=8192; break; + + default: + throw AmptekException("Invalid PID2. No Status Attached: " + spectrumResponse.toString() ); } int spectrum_bytesize = 3*spectrum_length; - try{ - for (int i = 0; i < spectrum_length; ++i){ - last_spectrum[i] = mergeBytes( spectrumResponse.at(DATA + 3*i + 2), - spectrumResponse.at(DATA + 3*i + 1), - spectrumResponse.at(DATA + 3*i ) - ); - } - } - catch(std::runtime_error& e){ - throw AmptekException(std::string("Failed in AmptekHardwareInterface::updateSpectrum \ - during spectrum update: ") + e.what()); - } - - try{ - last_spectrum_update_time = std::chrono::system_clock::now(); - if (with_status){ - memcpy(last_status,&(spectrumResponse.at(DATA + spectrum_bytesize)), spectrumResponse.dataLength - spectrum_bytesize ); - last_status_update_time = last_spectrum_update_time; - } - } - catch(std::runtime_error& e){ - throw AmptekException(std::string("Failed in AmptekHardwareInterface::updateSpectrum \ - during status update: ") + e.what()); - } - - - std::vector<unsigned int> spec( last_spectrum, last_spectrum + spectrum_length ); - return spec; -} - - - -bool AmptekHardwareInterface::DisableListMode(){ - listmode_flag = false; - if (list_reader_thread != nullptr ){ - list_reader_thread->join(); - streamfile.close(); - delete list_reader_thread; - list_reader_thread = nullptr; - return true; - } - return false; -} - -bool AmptekHardwareInterface::ResetListModeTimer(){ - try{ - expectAcknowledge(connection_handler->sendAndReceive( Packet::DP5_PKT_REQUEST_CLEAR_LIST_TIMER) ); - } - catch(AmptekException& e){ - - std::cerr<< "Failed clearing list-mode timer: " << e.what() << std::endl; - return false; - } -} - - - + AmptekSpectrum buffered_spectrum( &(spectrumResponse.at(DATA) ), spectrum_length ); + AmptekStatus buffered_status(&(spectrumResponse.at(DATA + spectrum_bytesize))); + return std::pair<AmptekSpectrum, AmptekStatus>( buffered_spectrum, buffered_status ); +} + + + +/** + * @brief This starts the streaming commtest allowing debugging without a signal source + * + * This will generate predictable counts in the digital backend of the detector, which can be used for MCA, MCS and List Mode. + * It will generate signals starting at amplitude min_channel, incrementing by increment until max_channel is reached. Then the generated + * amplitude falls down to min_channel again. + * + * @param min_channel lower amplitude limit for generated events + * @param max_channel upper amplitude limit for generated events + * @param increment amplitude increment between two generated events + * @param rate event rate in evt/sec + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::StartCommtestStreaming(uint16_t min_channel,uint16_t max_channel, uint16_t increment, uint32_t rate) { // convert from rate (cts/sec) to number of fpga clock cycles between two events - uint32_t period = std::max(8., FpgaClock()*1e6/rate ); + uint32_t period = std::max(8., last_status.FpgaClock()*1e6/rate ); std::cout << "Pulse Period: " << period << std::endl; try{ Packet commtest_packet = Packet::generateCommtestStreamingRequest(min_channel, max_channel, increment, period); @@ -517,6 +659,14 @@ bool AmptekHardwareInterface::StartCommtestStreaming(uint16_t min_channel,uint16 } return true; } + + +/** + * @brief Disables the commtest streaming mode + * + * @return true on success + * @return false on failure + */ bool AmptekHardwareInterface::StopCommtestStreaming(){ try{ expectAcknowledge(connection_handler->sendAndReceive( Packet::DP5_PKT_REQUEST_STOP_STREAM_COMMTEST) ); @@ -538,131 +688,28 @@ bool AmptekHardwareInterface::StopCommtestStreaming(){ std::vector<unsigned int> AmptekHardwareInterface::GetSpectrum(double max_age_ms){ updateSpectrum(max_age_ms); - std::vector<unsigned int> spec( last_spectrum, last_spectrum + spectrum_length ); - return spec; + return last_spectrum.bins; } -int AmptekHardwareInterface::GetSpectrum(unsigned int* spectrum, double max_age_ms) { - updateSpectrum(max_age_ms); - spectrum = last_spectrum; - return spectrum_length; -} - +// int AmptekHardwareInterface::GetSpectrum(unsigned int* spectrum, double max_age_ms) { +// updateSpectrum(max_age_ms); +// spectrum = last_spectrum; +// return spectrum_length; +// } -int AmptekHardwareInterface::FastCount(double max_age_ms){ - updateStatus(max_age_ms); - return mergeBytes(last_status[3],last_status[2],last_status[1],last_status[0]); -} - -int AmptekHardwareInterface::SlowCount(double max_age_ms){ - updateStatus(max_age_ms); - return mergeBytes(last_status[7],last_status[6],last_status[5],last_status[4]); -} -double AmptekHardwareInterface::DeadTime(double max_age_ms){ - updateStatus(max_age_ms); - int sc = SlowCount(1e6); - int fc = FastCount(1e6); - if (fc ==0){ - if (sc ==0){ - return 0; - }else{ - return 100.; - } - } - return 100. * (1. - 1.0 * sc/fc); -} -double AmptekHardwareInterface::AccTime(double max_age_ms){ - updateStatus(max_age_ms); - return 0.001*last_status[12] + 0.1 * mergeBytes(last_status[15],last_status[14],last_status[13]); -} - -double AmptekHardwareInterface::RealTime(double max_age_ms){ - updateStatus(max_age_ms); - return 0.001 * mergeBytes(last_status[23],last_status[22],last_status[21],last_status[20]); -} - -int AmptekHardwareInterface::FirmwareMajor(double max_age_ms){ - updateStatus(max_age_ms); - return (last_status[24] >> 4); -} - -int AmptekHardwareInterface::FirmwareMinor(double max_age_ms){ - updateStatus(max_age_ms); - return(last_status[24] & ~(0x0F << 4)); -} - -int AmptekHardwareInterface::FirmwareBuild(double max_age_ms){ - updateStatus(max_age_ms); - return(last_status[37] & ~(0x0F << 4)); -} - -int AmptekHardwareInterface::FpgaMajor(double max_age_ms){ - updateStatus(max_age_ms); - return (last_status[25] >> 4); -} - -int AmptekHardwareInterface::FpgaMinor(double max_age_ms){ - updateStatus(max_age_ms); - return(last_status[25] & ~(0x0F << 4)); -} - -int AmptekHardwareInterface::SerialNb(double max_age_ms){ - updateStatus(max_age_ms); - return mergeBytes(last_status[29],last_status[28],last_status[27],last_status[26]); -} - -double AmptekHardwareInterface::HighVoltage(double max_age_ms){ - updateStatus(max_age_ms); - return 0.5 * static_cast<signed_word16>( mergeBytes(last_status[30],last_status[31]) ); -} - -double AmptekHardwareInterface::DetectorTemp(double max_age_ms){ - updateStatus(max_age_ms); - return 0.1 * mergeBytes(last_status[32] & ~(0x0F << 4),last_status[33]); -} - -int AmptekHardwareInterface::BoardTemp(double max_age_ms){ - updateStatus(max_age_ms); - return last_status[34]; -} - -bool AmptekHardwareInterface::IsPresetTimeReached(double max_age_ms){ - updateStatus(max_age_ms); - return last_status[35] & (1 << 7); -} - -bool AmptekHardwareInterface::IsEnabled(double max_age_ms){ - updateStatus(max_age_ms); - return last_status[35] & (1 << 5); -} -bool AmptekHardwareInterface::IsPresetCountReached(double max_age_ms){ - updateStatus(max_age_ms); - return last_status[35] & (1 << 4); -} -bool AmptekHardwareInterface::IsGated(double max_age_ms){ - updateStatus(max_age_ms); - return !( last_status[35] & (1 << 3) ); -} -int AmptekHardwareInterface::FpgaClock(double max_age_ms){ - updateStatus(max_age_ms); - return last_status[36] & (1 << 1) ? 80 : 20; -} -int AmptekHardwareInterface::DeviceType(double max_age_ms){ - updateStatus(max_age_ms); - return last_status[39]; -} - - -double AmptekHardwareInterface::TecVoltage(double max_age_ms){ - updateStatus(max_age_ms); - return 1./758.5 * mergeBytes(last_status[40],last_status[41]); -} - +/** + * @brief Throws AmptekException if packet is not of type Acknowledge OK. + * + * This function can be wrapped around sendAndReceive calls if the request package ony expects an acknowledge response + * + * + * @param packet + */ void AmptekHardwareInterface::expectAcknowledge(Packet packet){ if (packet.at(PID1) != DP5_P1_ACK){ throw AmptekException("Response Package was not an Acknowledge: " + packet.toString()); diff --git a/src/AmptekStatus.cpp b/src/AmptekStatus.cpp new file mode 100644 index 0000000000000000000000000000000000000000..3fac9e905b2371c94c0914be12bfdb251cb9f46f --- /dev/null +++ b/src/AmptekStatus.cpp @@ -0,0 +1,317 @@ +#include "AmptekStatus.h" + +#include <cstring> + +AmptekStatus::AmptekStatus(const byte* raw) : AmptekStatus(raw, std::chrono::system_clock::now()) +{ +} + + + +AmptekStatus::AmptekStatus(const byte* raw, std::chrono::time_point<std::chrono::system_clock> timestamp) + : timestamp(timestamp) +{ + memcpy(raw_status,raw, STATUS_SIZE ); +} +AmptekStatus::AmptekStatus(){ + timestamp = std::chrono::system_clock::from_time_t(0); +} +AmptekStatus::~AmptekStatus(){ + //delete[] raw_status; +} + + +double AmptekStatus::AgeMillis() const{ + auto now = std::chrono::system_clock::now(); + return std::chrono::duration_cast<std::chrono::milliseconds>(now - timestamp).count(); +} + + +/** + * @brief Total fast counts of the current acqusition + * + * @return int + */ +int AmptekStatus::FastCount(){ + + return mergeBytes(raw_status[3],raw_status[2],raw_status[1],raw_status[0]); +} + + +/** + * @brief Total slow counts of the current acqusition + * + * @return int counts + */ +int AmptekStatus::SlowCount(){ + + return mergeBytes(raw_status[7],raw_status[6],raw_status[5],raw_status[4]); +} + +/** + * @brief Dead time of the current acquisition + * + * @return double dead time in per cent + */ +double AmptekStatus::DeadTime(){ + + int sc = SlowCount(); + int fc = FastCount(); + if (fc ==0){ + if (sc ==0){ + return 0; + }else{ + return 100.; + } + } + return 100. * (1. - 1.0 * sc/fc); +} + +/** + * @brief Accumulation time of the current acquisition + * + * This timer is stopped during gateing, transfer or reset lockout + * + * @return double time in seconds + */ +double AmptekStatus::AccTime(){ + + return 0.001*raw_status[12] + 0.1 * mergeBytes(raw_status[15],raw_status[14],raw_status[13]); +} + +/** + * @brief Total real time of the current acquisition + * + * @return double time in seconds + */ +double AmptekStatus::RealTime(){ + + return 0.001 * mergeBytes(raw_status[23],raw_status[22],raw_status[21],raw_status[20]); +} + + +/** + * @brief Firmware major version number + * + * @return int + */ +int AmptekStatus::FirmwareMajor(){ + + return (raw_status[24] >> 4); +} + + +/** + * @brief Firmware minor version number + * + * @return int + */ +int AmptekStatus::FirmwareMinor(){ + + return(raw_status[24] & ~(0x0F << 4)); +} + + +/** + * @brief Firmware build version number + * + * @return int + */ +int AmptekStatus::FirmwareBuild(){ + + return(raw_status[37] & ~(0x0F << 4)); +} + +/** + * @brief FPGA major version number + * + * @return int + */ +int AmptekStatus::FpgaMajor(){ + + return (raw_status[25] >> 4); +} + + +/** + * @brief FPGA minor version number + * + * @return int + */ +int AmptekStatus::FpgaMinor(){ + + return(raw_status[25] & ~(0x0F << 4)); +} + + +/** + * @brief Device Serial Number + * + * @return int + */ +int AmptekStatus::SerialNb(){ + + return mergeBytes(raw_status[29],raw_status[28],raw_status[27],raw_status[26]); +} + + +/** + * @brief Voltage applied accross the chip + * + * @return double in volts + */ +double AmptekStatus::HighVoltage(){ + + return 0.5 * static_cast<signed_word16>( mergeBytes(raw_status[30],raw_status[31]) ); +} + + +/** + * @brief Detector Chip Temperature + * + * @return double temperature in Kelvin + */ +double AmptekStatus::DetectorTemp(){ + + return 0.1 * mergeBytes(raw_status[32] & ~(0x0F << 4),raw_status[33]); +} + +/** + * @brief Amptek Board Temperature + * + * @return int in deg Celsius + */ +int AmptekStatus::BoardTemp(){ + + return raw_status[34]; +} + +/** + * @brief Preset time reached flag + * + * @return true if acquisition was stopped due to reaching the set preset time + * @return false if not reached or not set + */ +bool AmptekStatus::IsPresetTimeReached(){ + + return raw_status[35] & (1 << 7); +} + +/** + * @brief MCA acquisition status + * + * @return true if acquisition is running + * @return false otherwise + */ +bool AmptekStatus::IsEnabled(){ + + return raw_status[35] & (1 << 5); +} + +/** + * @brief preset count reached flag + * + * @return true if acquisition was stopped due to reaching the set preset counts + * @return false if not reached or not set + */ +bool AmptekStatus::IsPresetCountReached(){ + + return raw_status[35] & (1 << 4); +} + +/** + * @brief Gating status + * + * @return true if gate active (rejecting counts) + * @return false if disabled or deactivated (accepting counts) + */ +bool AmptekStatus::IsGated(){ + + return !( raw_status[35] & (1 << 3) ); +} + +/** + * @brief FPGA clock speed + * + * @return int clock speed in MHz + */ +int AmptekStatus::FpgaClock(){ + + return raw_status[36] & (1 << 1) ? 80 : 20; +} + + +/** + * @brief DP5 device type + * + * @return int 0: DP5, 1: PX5, 2: DP5G, 3: MCA8000D, 4: TB5, 5: DP5-X + */ +int AmptekStatus::DeviceType(){ + + return raw_status[39]; +} + + +/** + * @brief Voltage applied to the termoelectric cooler + * + * @return double voltage in volts + */ +double AmptekStatus::TecVoltage(){ + + return 1./758.5 * mergeBytes(raw_status[40],raw_status[41]); +} + + +/** + * @brief list mode deadtime correction feature + * + * @return true deadtime correction feature enabled + * @return false normal list mode operation + */ +bool AmptekStatus::ListModeLMMO(){ + return raw_status[43] & (1 << 3); +} + + +/** + * @brief list mode clock speed + * + * @return int list mode clock speed in nanoseconds + */ +int AmptekStatus::ListModeClock(){ + int multiplier = ListModeSync() == 1 ? 1000 : 1; + return raw_status[43] & (1 << 2) ? multiplier * 1000 : multiplier * 100; +} + + +/** + * @brief List Mode sync source + * + * @return int 0: internal, 1: no timetag, 2: external, 3: frame + */ +int AmptekStatus::ListModeSync(){ + return raw_status[43] & 0b11; +} + + +/** + * @brief Checks if sequential buffering is running + * + * @return true if running + * @return false if finished or disabled + */ +bool AmptekStatus::SequentialBufferRunning(){ + return raw_status[46] & (1 << 1); +} + +/** + * @brief Returns the buffer index of this status packet + * + * @return int current buffer index + */ +int AmptekStatus::SequentialBufferIndex(){ + return ( (raw_status[46] & (0b1)) << 8) + raw_status[47]; // 9 bit value +} + +