1.air部署,细节待修改
This commit is contained in:
81
Source/OSIF/include/vendors/OceanOptics/features/acquisition_delay/AcquisitionDelayFeature.h
vendored
Normal file
81
Source/OSIF/include/vendors/OceanOptics/features/acquisition_delay/AcquisitionDelayFeature.h
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
/***************************************************//**
|
||||
* @file AcquisitionDelayFeature.h
|
||||
* @date November 2015
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef ACQUISITION_DELAY_FEATURE_H
|
||||
#define ACQUISITION_DELAY_FEATURE_H
|
||||
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "vendors/OceanOptics/features/acquisition_delay/AcquisitionDelayFeatureInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class AcquisitionDelayFeature : public FeatureImpl,
|
||||
public AcquisitionDelayFeatureInterface {
|
||||
public:
|
||||
AcquisitionDelayFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~AcquisitionDelayFeature();
|
||||
|
||||
virtual void setAcquisitionDelayMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus,
|
||||
const unsigned long delayMicros)
|
||||
throw (FeatureException);
|
||||
|
||||
virtual unsigned long getAcquisitionDelayMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
/* Methods that remain pure virtual since the protocol interface does
|
||||
* not necessarily provide clean methods for these. A derived
|
||||
* class will be necessary to specify the limits.
|
||||
*/
|
||||
virtual unsigned long getAcquisitionDelayIncrementMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException) = 0;
|
||||
virtual unsigned long getAcquisitionDelayMaximumMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException) = 0;
|
||||
virtual unsigned long getAcquisitionDelayMinimumMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException) = 0;
|
||||
|
||||
protected:
|
||||
unsigned long lastAcquisitionDelayMicroseconds;
|
||||
bool lastAcquisitionDelayValid;
|
||||
};
|
||||
|
||||
} /* end namespace seabreeze */
|
||||
|
||||
#endif /* ACQUISITION_DELAY_FEATURE_H */
|
||||
|
@ -0,0 +1,67 @@
|
||||
/***************************************************//**
|
||||
* @file AcquisitionDelayFeatureInterface.h
|
||||
* @date November 2015
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SEABREEZE_ACQUISITION_DELAY_FEATURE_INTERFACE_H
|
||||
#define SEABREEZE_ACQUISITION_DELAY_FEATURE_INTERFACE_H
|
||||
|
||||
#include "common/features/Feature.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class AcquisitionDelayFeatureInterface {
|
||||
public:
|
||||
virtual ~AcquisitionDelayFeatureInterface();
|
||||
virtual unsigned long getAcquisitionDelayIncrementMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException) = 0;
|
||||
virtual unsigned long getAcquisitionDelayMaximumMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException) = 0;
|
||||
virtual unsigned long getAcquisitionDelayMinimumMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException) = 0;
|
||||
virtual unsigned long getAcquisitionDelayMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException) = 0;
|
||||
virtual void setAcquisitionDelayMicroseconds(
|
||||
const Protocol &Protocol, const Bus &bus,
|
||||
const unsigned long delayMicros)
|
||||
throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline AcquisitionDelayFeatureInterface::~AcquisitionDelayFeatureInterface() {}
|
||||
|
||||
} /* end namespace */
|
||||
|
||||
#endif /* SEABREEZE_ACQUISITION_DELAY_FEATURE_INTERFACE_H */
|
||||
|
@ -0,0 +1,79 @@
|
||||
/***************************************************//**
|
||||
* @file AcquisitionDelayFeature_FPGA.h
|
||||
* @date November 2015
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the acquisition
|
||||
* delay feature that is controlled by the FPGA in many
|
||||
* devices. This is likely to be derived from to
|
||||
* override the device limits.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef ACQUISITION_DELAY_FEATURE_FPGA_H
|
||||
#define ACQUISITION_DELAY_FEATURE_FPGA_H
|
||||
|
||||
#include "vendors/OceanOptics/features/acquisition_delay/AcquisitionDelayFeature.h"
|
||||
#include <vector>
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class AcquisitionDelayFeature_FPGA : public AcquisitionDelayFeature {
|
||||
public:
|
||||
AcquisitionDelayFeature_FPGA(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~AcquisitionDelayFeature_FPGA();
|
||||
|
||||
/* Inherited from AcquisitionDelayFeature */
|
||||
|
||||
virtual void setAcquisitionDelayMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus,
|
||||
const unsigned long delayMicros)
|
||||
throw (FeatureException);
|
||||
|
||||
virtual unsigned long getAcquisitionDelayIncrementMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
virtual unsigned long getAcquisitionDelayMaximumMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
virtual unsigned long getAcquisitionDelayMinimumMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
protected:
|
||||
virtual unsigned long countsToMicroseconds(unsigned long counts);
|
||||
virtual unsigned long microsecondsToCounts(unsigned long microseconds);
|
||||
|
||||
unsigned char acquisitionDelayRegister;
|
||||
unsigned long countsPerMicrosecond;
|
||||
unsigned long minimumDelayCounts;
|
||||
unsigned long maximumDelayCounts;
|
||||
unsigned long incrementMicroseconds;
|
||||
};
|
||||
|
||||
} /* end namespace seabreeze */
|
||||
|
||||
#endif /* ACQUISITION_DELAY_FEATURE_FPGA_H */
|
||||
|
60
Source/OSIF/include/vendors/OceanOptics/features/acquisition_delay/STSAcquisitionDelayFeature.h
vendored
Normal file
60
Source/OSIF/include/vendors/OceanOptics/features/acquisition_delay/STSAcquisitionDelayFeature.h
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
/***************************************************//**
|
||||
* @file STSAcquisitionDelayFeature.h
|
||||
* @date November 2015
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the acquisition
|
||||
* delay feature in the STS.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef STSACQUISITIONDELAYFEATURE_H
|
||||
#define STSACQUISITIONDELAYFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/acquisition_delay/AcquisitionDelayFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class STSAcquisitionDelayFeature : public AcquisitionDelayFeature {
|
||||
public:
|
||||
STSAcquisitionDelayFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~STSAcquisitionDelayFeature();
|
||||
|
||||
/* Inherited from AcquisitionDelayFeature */
|
||||
virtual unsigned long getAcquisitionDelayIncrementMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
virtual unsigned long getAcquisitionDelayMaximumMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
virtual unsigned long getAcquisitionDelayMinimumMicroseconds(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
};
|
||||
|
||||
} /* end namespace seabreeze */
|
||||
|
||||
#endif /* STSACQUISITIONDELAYFEATURE_H */
|
||||
|
59
Source/OSIF/include/vendors/OceanOptics/features/continuous_strobe/ContinuousStrobeFeature.h
vendored
Normal file
59
Source/OSIF/include/vendors/OceanOptics/features/continuous_strobe/ContinuousStrobeFeature.h
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
/***************************************************//**
|
||||
* @file ContinuousStrobeFeature.h
|
||||
* @date October 2012
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SEABREEZE_CONTINUOUS_STROBE_FEATURE_H
|
||||
#define SEABREEZE_CONTINUOUS_STROBE_FEATURE_H
|
||||
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "vendors/OceanOptics/features/continuous_strobe/ContinuousStrobeFeatureInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class ContinuousStrobeFeature : public FeatureImpl,
|
||||
public ContinuousStrobeFeatureInterface {
|
||||
public:
|
||||
ContinuousStrobeFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~ContinuousStrobeFeature();
|
||||
virtual void setContinuousStrobePeriodMicroseconds(const Protocol &protocol,
|
||||
const Bus &bus, unsigned short strobe_id, unsigned long period_usec)
|
||||
throw (FeatureException);
|
||||
virtual void setContinuousStrobeEnable(const Protocol &protocol,
|
||||
const Bus &bus, unsigned short strobe_id, bool enable)
|
||||
throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* SEABREEZE_CONTINUOUS_STROBE_FEATURE_H */
|
@ -0,0 +1,55 @@
|
||||
/***************************************************//**
|
||||
* @file ContinuousStrobeFeatureInterface.h
|
||||
* @date October 2012
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SEABREEZE_CONTINUOUS_STROBE_FEATURE_INTERFACE_H
|
||||
#define SEABREEZE_CONTINUOUS_STROBE_FEATURE_INTERFACE_H
|
||||
|
||||
#include "common/features/Feature.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class ContinuousStrobeFeatureInterface {
|
||||
public:
|
||||
virtual ~ContinuousStrobeFeatureInterface() = 0;
|
||||
virtual void setContinuousStrobePeriodMicroseconds(const Protocol &protocol,
|
||||
const Bus &bus, unsigned short strobe_id, unsigned long period_usec)
|
||||
throw (FeatureException) = 0;
|
||||
virtual void setContinuousStrobeEnable(const Protocol &protocol,
|
||||
const Bus &bus, unsigned short strobe_id, bool enable)
|
||||
throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline ContinuousStrobeFeatureInterface::~ContinuousStrobeFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif
|
@ -0,0 +1,59 @@
|
||||
/***************************************************//**
|
||||
* @file ContinuousStrobeFeature_FPGA.h
|
||||
* @date February 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SEABREEZE_CONTINUOUS_STROBE_FEATURE_FPGA_H
|
||||
#define SEABREEZE_CONTINUOUS_STROBE_FEATURE_FPGA_H
|
||||
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "vendors/OceanOptics/features/continuous_strobe/ContinuousStrobeFeatureInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class ContinuousStrobeFeature_FPGA : public FeatureImpl,
|
||||
public ContinuousStrobeFeatureInterface {
|
||||
public:
|
||||
ContinuousStrobeFeature_FPGA();
|
||||
virtual ~ContinuousStrobeFeature_FPGA();
|
||||
virtual void setContinuousStrobePeriodMicroseconds(const Protocol &protocol,
|
||||
const Bus &bus, unsigned short strobe_id, unsigned long period_usec)
|
||||
throw (FeatureException);
|
||||
virtual void setContinuousStrobeEnable(const Protocol &protocol,
|
||||
const Bus &bus, unsigned short strobe_id, bool enable)
|
||||
throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* SEABREEZE_CONTINUOUS_STROBE_FEATURE_FPGA_H */
|
80
Source/OSIF/include/vendors/OceanOptics/features/data_buffer/DataBufferFeatureBase.h
vendored
Normal file
80
Source/OSIF/include/vendors/OceanOptics/features/data_buffer/DataBufferFeatureBase.h
vendored
Normal file
@ -0,0 +1,80 @@
|
||||
/***************************************************//**
|
||||
* @file DataBufferFeature.h
|
||||
* @date October 2015
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef DATABUFFERFEATUREBASE_H
|
||||
#define DATABUFFERFEATUREBASE_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "vendors/OceanOptics/features/data_buffer/DataBufferFeatureInterface.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class DataBufferFeatureBase : public FeatureImpl, public DataBufferFeatureInterface {
|
||||
public:
|
||||
DataBufferFeatureBase();
|
||||
virtual ~DataBufferFeatureBase();
|
||||
|
||||
virtual DataBufferCount_t getNumberOfBuffers();
|
||||
virtual void clearBuffer(const Protocol &protocol, const Bus &bus,
|
||||
const DataBufferIndex_t bufferIndex)
|
||||
throw (FeatureException);
|
||||
virtual DataBufferElementCount_t getNumberOfElements(
|
||||
const Protocol &protocol, const Bus &bus,
|
||||
const DataBufferIndex_t bufferIndex)
|
||||
throw (FeatureException);
|
||||
virtual DataBufferElementCount_t getBufferCapacity(
|
||||
const Protocol &protocol,
|
||||
const Bus &bus, const DataBufferIndex_t bufferIndex)
|
||||
throw (FeatureException);
|
||||
virtual DataBufferElementCount_t getBufferCapacityMinimum(
|
||||
const Protocol &protocol, const Bus &bus,
|
||||
const DataBufferIndex_t bufferIndex)
|
||||
throw (FeatureException);
|
||||
virtual DataBufferElementCount_t getBufferCapacityMaximum(
|
||||
const Protocol &protocol, const Bus &bus,
|
||||
const DataBufferIndex_t bufferIndex)
|
||||
throw (FeatureException);
|
||||
virtual void setBufferCapacity(const Protocol &protocol, const Bus &bus,
|
||||
const DataBufferIndex_t bufferIndex,
|
||||
const DataBufferElementCount_t bufferSize)
|
||||
throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
protected:
|
||||
DataBufferIndex_t numberOfBuffers;
|
||||
};
|
||||
|
||||
} /* end namespace */
|
||||
|
||||
#endif /* DATABUFFERFEATUREBASE_H */
|
||||
|
75
Source/OSIF/include/vendors/OceanOptics/features/data_buffer/DataBufferFeatureInterface.h
vendored
Normal file
75
Source/OSIF/include/vendors/OceanOptics/features/data_buffer/DataBufferFeatureInterface.h
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
/***************************************************//**
|
||||
* @file DataBufferFeatureInterface.h
|
||||
* @date October 2015
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef DATABUFFERFEATUREINTERFACE_H
|
||||
#define DATABUFFERFEATUREINTERFACE_H
|
||||
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
typedef unsigned char DataBufferIndex_t;
|
||||
typedef DataBufferIndex_t DataBufferCount_t;
|
||||
typedef unsigned long DataBufferElementCount_t;
|
||||
|
||||
class DataBufferFeatureInterface {
|
||||
public:
|
||||
virtual ~DataBufferFeatureInterface() = 0;
|
||||
|
||||
virtual DataBufferCount_t getNumberOfBuffers() = 0;
|
||||
virtual void clearBuffer(const Protocol &protocol, const Bus &bus,
|
||||
const DataBufferIndex_t bufferIndex) throw (FeatureException) = 0;
|
||||
virtual DataBufferElementCount_t getBufferCapacity(const Protocol &protocol,
|
||||
const Bus &bus, const DataBufferIndex_t bufferIndex)
|
||||
throw (FeatureException) = 0;
|
||||
virtual DataBufferElementCount_t getBufferCapacityMaximum(
|
||||
const Protocol &protocol, const Bus &bus,
|
||||
const DataBufferIndex_t bufferIndex) throw (FeatureException) = 0;
|
||||
virtual DataBufferElementCount_t getBufferCapacityMinimum(
|
||||
const Protocol &protocol, const Bus &bus,
|
||||
const DataBufferIndex_t bufferIndex) throw (FeatureException) = 0;
|
||||
virtual DataBufferElementCount_t getNumberOfElements(
|
||||
const Protocol &protocol, const Bus &bus,
|
||||
const DataBufferIndex_t bufferIndex) throw (FeatureException) = 0;
|
||||
virtual void setBufferCapacity(const Protocol &protocol, const Bus &bus,
|
||||
const DataBufferIndex_t bufferIndex,
|
||||
const DataBufferElementCount_t bufferSize)
|
||||
throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline DataBufferFeatureInterface::~DataBufferFeatureInterface() {}
|
||||
|
||||
} /* end namespace */
|
||||
|
||||
|
||||
#endif /* DATABUFFERFEATUREINTERFACE_H */
|
||||
|
49
Source/OSIF/include/vendors/OceanOptics/features/data_buffer/QEProDataBufferFeature.h
vendored
Normal file
49
Source/OSIF/include/vendors/OceanOptics/features/data_buffer/QEProDataBufferFeature.h
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
/***************************************************//**
|
||||
* @file QEProDataBufferFeature.h
|
||||
* @date October 2015
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the spectral
|
||||
* data buffer in the QE-PRO.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef QEPRODATABUFFERFEATURE_H
|
||||
#define QEPRODATABUFFERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/data_buffer/DataBufferFeatureBase.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class QEProDataBufferFeature : public DataBufferFeatureBase {
|
||||
public:
|
||||
QEProDataBufferFeature();
|
||||
virtual ~QEProDataBufferFeature();
|
||||
};
|
||||
|
||||
} /* end namespace */
|
||||
|
||||
#endif /* QEPRODATABUFFERFEATURE_H */
|
||||
|
62
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeature.h
vendored
Normal file
62
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeature.h
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
/***************************************************//**
|
||||
* @file EEPROMSlotFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef EEPROMSLOTFEATURE_H
|
||||
#define EEPROMSLOTFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeatureBase.h"
|
||||
#include "vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeatureInterface.h"
|
||||
#include <vector>
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class EEPROMSlotFeature : public EEPROMSlotFeatureBase, public EEPROMSlotFeatureInterface {
|
||||
public:
|
||||
EEPROMSlotFeature(unsigned int numberOfSlots);
|
||||
virtual ~EEPROMSlotFeature();
|
||||
virtual std::vector< std::vector<byte> * > *readAllEEPROMSlots(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Overriding this to change its visibility */
|
||||
virtual std::vector<byte> *readEEPROMSlot(const Protocol &protocol,
|
||||
const Bus &bus, unsigned int slot) throw (FeatureException, IllegalArgumentException);
|
||||
virtual int writeEEPROMSlot(const Protocol &protocol,
|
||||
const Bus &bus, unsigned int slot, const std::vector<byte> &data)
|
||||
throw (FeatureException, IllegalArgumentException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
private:
|
||||
unsigned int numberOfSlots;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* EEPROMSLOTFEATURE_H */
|
75
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeatureBase.h
vendored
Normal file
75
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeatureBase.h
vendored
Normal file
@ -0,0 +1,75 @@
|
||||
/***************************************************//**
|
||||
* @file EEPROMSlotFeatureBase.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef EEPROMSLOTFEATUREBASE_H
|
||||
#define EEPROMSLOTFEATUREBASE_H
|
||||
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/SeaBreeze.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/NumberFormatException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
#include <vector>
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class EEPROMSlotFeatureBase : public FeatureImpl {
|
||||
/* Keeping most of this class protected to force use of the derived
|
||||
* classes, e.g. EEPROMSlotFeature, which can provide better control
|
||||
* over which slots are accessed.
|
||||
*/
|
||||
|
||||
protected:
|
||||
|
||||
EEPROMSlotFeatureBase();
|
||||
virtual ~EEPROMSlotFeatureBase();
|
||||
virtual std::vector<byte> *readEEPROMSlot(const Protocol &protocol,
|
||||
const Bus &bus, unsigned int slot) throw (FeatureException, IllegalArgumentException);
|
||||
virtual int writeEEPROMSlot(const Protocol &protocol,
|
||||
const Bus &bus, unsigned int slot, const std::vector<byte> &data)
|
||||
throw (FeatureException, IllegalArgumentException);
|
||||
|
||||
/* This is a utility function that reads out the given EEPROM slot and
|
||||
* parses it into a double value. If for some reason the parse fails,
|
||||
* this will throw a NumberFormatException.
|
||||
*/
|
||||
double readDouble(const Protocol &protocol, const Bus &bus,
|
||||
unsigned int slot) throw (FeatureException, NumberFormatException);
|
||||
|
||||
/* As with readDouble(), this will read a slot and parse into an integer */
|
||||
long readLong(const Protocol &protocol, const Bus &bus,
|
||||
unsigned int slot) throw (FeatureException, NumberFormatException);
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* EEPROMSLOTFEATUREBASE_H */
|
60
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeatureInterface.h
vendored
Normal file
60
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeatureInterface.h
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
/***************************************************//**
|
||||
* @file EEPROMSlotFeature.h
|
||||
* @date February 2011
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef EEPROMSLOTFEATUREINTERFACE_H
|
||||
#define EEPROMSLOTFEATUREINTERFACE_H
|
||||
|
||||
#include <vector>
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class EEPROMSlotFeatureInterface {
|
||||
public:
|
||||
virtual ~EEPROMSlotFeatureInterface() = 0;
|
||||
virtual std::vector< std::vector<byte> * > *readAllEEPROMSlots(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
|
||||
virtual std::vector<byte> *readEEPROMSlot(const Protocol &protocol,
|
||||
const Bus &bus, unsigned int slot) throw (FeatureException, IllegalArgumentException) = 0;
|
||||
virtual int writeEEPROMSlot(const Protocol &protocol,
|
||||
const Bus &bus, unsigned int slot, const std::vector<byte> &data)
|
||||
throw (FeatureException, IllegalArgumentException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline EEPROMSlotFeatureInterface::~EEPROMSlotFeatureInterface() {}
|
||||
|
||||
}
|
||||
|
||||
#endif /* EEPROMSLOTFEATUREINTERFACE_H */
|
||||
|
55
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/NonlinearityEEPROMSlotFeature.h
vendored
Normal file
55
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/NonlinearityEEPROMSlotFeature.h
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
/***************************************************//**
|
||||
* @file NonlinearityEEPROMSlotFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef NONLINEARITYEEPROMSLOTFEATURE_H
|
||||
#define NONLINEARITYEEPROMSLOTFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeatureBase.h"
|
||||
#include "vendors/OceanOptics/features/nonlinearity/NonlinearityCoeffsFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include <vector>
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class NonlinearityEEPROMSlotFeature
|
||||
: public NonlinearityCoeffsFeatureInterface, public EEPROMSlotFeatureBase {
|
||||
public:
|
||||
NonlinearityEEPROMSlotFeature();
|
||||
virtual ~NonlinearityEEPROMSlotFeature();
|
||||
std::vector<double> *readNonlinearityCoefficients(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* NONLINEARITYEEPROMSLOTFEATURE_H */
|
59
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/SaturationEEPROMSlotFeature.h
vendored
Normal file
59
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/SaturationEEPROMSlotFeature.h
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
/***************************************************//**
|
||||
* @file SaturationEEPROMSlotFeature_EEPROM.h
|
||||
* @date March 2016
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2016, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SATURATIONEEPROMSLOTFEATURE_EEPROM_H
|
||||
#define SATURATIONEEPROMSLOTFEATURE_EEPROM_H
|
||||
|
||||
#include "vendors/OceanOptics/features/eeprom_slots/SaturationEEPROMSlotFeatureBase.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
/* This class is intended for most devices that store their saturation level
|
||||
* in EEPROM in the so-called "autonulling" configuration. Note that the
|
||||
* NIRQuest, MayaPro, Apex and some others do not do things quite the same
|
||||
* way, so they should not use this class.
|
||||
*/
|
||||
class SaturationEEPROMSlotFeature
|
||||
: public SaturationEEPROMSlotFeatureBase {
|
||||
public:
|
||||
SaturationEEPROMSlotFeature(int slot);
|
||||
virtual ~SaturationEEPROMSlotFeature();
|
||||
|
||||
protected:
|
||||
/* Inherited from SaturationEEPROMSlotFeatureBase */
|
||||
virtual unsigned int getSaturation(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
private:
|
||||
int autonullingSlot;
|
||||
};
|
||||
|
||||
} /* end namespace seabreeze */
|
||||
|
||||
#endif /* SATURATIONEEPROMSLOTFEATURE_EEPROM_H */
|
67
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/SaturationEEPROMSlotFeatureBase.h
vendored
Normal file
67
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/SaturationEEPROMSlotFeatureBase.h
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
/***************************************************//**
|
||||
* @file SaturationEEPROMSlotFeatureBase.h
|
||||
* @date March 2016
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2016, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SATURATIONEEPROMSLOTFEATUREBASE_H
|
||||
#define SATURATIONEEPROMSLOTFEATUREBASE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/ProgrammableSaturationFeatureBase.h"
|
||||
#include "vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeatureBase.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class SaturationEEPROMSlotFeatureBase
|
||||
: public EEPROMSlotFeatureBase, public ProgrammableSaturationFeatureBase {
|
||||
public:
|
||||
SaturationEEPROMSlotFeatureBase();
|
||||
virtual ~SaturationEEPROMSlotFeatureBase();
|
||||
|
||||
/* Inherited from ProgrammableSaturationFeature */
|
||||
virtual unsigned int getSaturation() throw (FeatureException);
|
||||
|
||||
/* Inherited from Feature */
|
||||
virtual bool initialize(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
protected:
|
||||
/* Derived classes must implement this in whatever way is appropriate
|
||||
* to get the saturation level for the device.
|
||||
*/
|
||||
virtual unsigned int getSaturation(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
|
||||
private:
|
||||
unsigned int saturation;
|
||||
bool valid;
|
||||
};
|
||||
|
||||
} /* end namespace seabreeze */
|
||||
|
||||
#endif /* SATURATIONEEPROMSLOTFEATUREBASE_H */
|
@ -0,0 +1,57 @@
|
||||
/***************************************************//**
|
||||
* @file SaturationEEPROMSlotFeature_MayaPro.h
|
||||
* @date March 2016
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2016, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
#ifndef SATURATIONEEPROMSLOTFEATURE_MAYAPRO_H
|
||||
#define SATURATIONEEPROMSLOTFEATURE_MAYAPRO_H
|
||||
|
||||
#include "vendors/OceanOptics/features/eeprom_slots/SaturationEEPROMSlotFeatureBase.h"
|
||||
#include <vector>
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
/* This class is intended specifically for getting the saturation level
|
||||
* from a MayaPro or devices that are closely related to it.
|
||||
*/
|
||||
class SaturationEEPROMSlotFeature_MayaPro
|
||||
: public SaturationEEPROMSlotFeatureBase {
|
||||
public:
|
||||
SaturationEEPROMSlotFeature_MayaPro(int slot);
|
||||
virtual ~SaturationEEPROMSlotFeature_MayaPro();
|
||||
|
||||
protected:
|
||||
/* Inherited from SaturationEEPROMSlotFeatureBase */
|
||||
virtual unsigned int getSaturation(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
private:
|
||||
int saturationSlot;
|
||||
};
|
||||
|
||||
} /* end namespace seabreeze */
|
||||
|
||||
#endif /* SATURATIONEEPROMSLOTFEATURE_MAYAPRO_H */
|
@ -0,0 +1,57 @@
|
||||
/***************************************************//**
|
||||
* @file SaturationEEPROMSlotFeature_NIRQuest.h
|
||||
* @date March 2016
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2016, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
#ifndef SATURATIONEEPROMSLOTFEATURE_NIRQUEST_H
|
||||
#define SATURATIONEEPROMSLOTFEATURE_NIRQUEST_H
|
||||
|
||||
#include "vendors/OceanOptics/features/eeprom_slots/SaturationEEPROMSlotFeatureBase.h"
|
||||
#include <vector>
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
/* This class is intended specifically for getting the saturation level
|
||||
* from a NIRQuest256/512. No other devices should use this class.
|
||||
*/
|
||||
class SaturationEEPROMSlotFeature_NIRQuest
|
||||
: public SaturationEEPROMSlotFeatureBase {
|
||||
public:
|
||||
SaturationEEPROMSlotFeature_NIRQuest(int slot);
|
||||
virtual ~SaturationEEPROMSlotFeature_NIRQuest();
|
||||
|
||||
protected:
|
||||
/* Inherited from SaturationEEPROMSlotFeatureBase */
|
||||
virtual unsigned int getSaturation(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
private:
|
||||
int saturationSlot;
|
||||
};
|
||||
|
||||
} /* end namespace seabreeze */
|
||||
|
||||
#endif /* SATURATIONEEPROMSLOTFEATURE_NIRQUEST_H */
|
55
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/SerialNumberEEPROMSlotFeature.h
vendored
Normal file
55
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/SerialNumberEEPROMSlotFeature.h
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
/***************************************************//**
|
||||
* @file SerialNumberEEPROMSlotFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SERIALNUMBEREEPROMSLOTFEATURE_H
|
||||
#define SERIALNUMBEREEPROMSLOTFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeatureBase.h"
|
||||
#include "vendors/OceanOptics/features/serial_number/SerialNumberFeatureInterface.h"
|
||||
#include <string>
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class SerialNumberEEPROMSlotFeature
|
||||
: public EEPROMSlotFeatureBase, public SerialNumberFeatureInterface {
|
||||
public:
|
||||
SerialNumberEEPROMSlotFeature();
|
||||
virtual ~SerialNumberEEPROMSlotFeature();
|
||||
std::string *readSerialNumber(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
unsigned char readSerialNumberMaximumLength(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* SERIALNUMBEREEPROMSLOTFEATURE_H */
|
55
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/StrayLightEEPROMSlotFeature.h
vendored
Normal file
55
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/StrayLightEEPROMSlotFeature.h
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
/***************************************************//**
|
||||
* @file StrayLightEEPROMSlotFeature.h
|
||||
* @date February 2012
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef STRAYLIGHTEEPROMSLOTFEATURE_H
|
||||
#define STRAYLIGHTEEPROMSLOTFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeatureBase.h"
|
||||
#include "vendors/OceanOptics/features/stray_light/StrayLightCoeffsFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include <vector>
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class StrayLightEEPROMSlotFeature
|
||||
: public StrayLightCoeffsFeatureInterface, public EEPROMSlotFeatureBase {
|
||||
public:
|
||||
StrayLightEEPROMSlotFeature();
|
||||
virtual ~StrayLightEEPROMSlotFeature();
|
||||
std::vector<double> *readStrayLightCoefficients(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* STRAYLIGHTEEPROMSLOTFEATURE_H */
|
61
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/WavelengthEEPROMSlotFeature.h
vendored
Normal file
61
Source/OSIF/include/vendors/OceanOptics/features/eeprom_slots/WavelengthEEPROMSlotFeature.h
vendored
Normal file
@ -0,0 +1,61 @@
|
||||
/***************************************************//**
|
||||
* @file WavelengthEEPROMSlotFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef WAVELENGTHEEPROMSLOTFEATURE_H
|
||||
#define WAVELENGTHEEPROMSLOTFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/eeprom_slots/EEPROMSlotFeatureBase.h"
|
||||
#include "vendors/OceanOptics/features/wavecal/WaveCalFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include <vector>
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class WavelengthEEPROMSlotFeature
|
||||
: public WaveCalFeatureInterface, public EEPROMSlotFeatureBase {
|
||||
public:
|
||||
WavelengthEEPROMSlotFeature(unsigned int numberOfPixels);
|
||||
virtual ~WavelengthEEPROMSlotFeature();
|
||||
std::vector<double> *readWavelengths(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
protected:
|
||||
virtual std::vector<double> *computeWavelengths(
|
||||
double polynomial[], int length);
|
||||
unsigned int numberOfPixels;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* WAVELENGTHEEPROMSLOTFEATURE_H */
|
||||
|
@ -0,0 +1,54 @@
|
||||
/***************************************************//**
|
||||
* @file WavelengthEEPROMSlotFeature_QE65000.h
|
||||
* @date March 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef WAVELENGTHEEPROMSLOTFEATUREQE65000_H
|
||||
#define WAVELENGTHEEPROMSLOTFEATUREQE65000_H
|
||||
|
||||
#include "vendors/OceanOptics/features/eeprom_slots/WavelengthEEPROMSlotFeature.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include <vector>
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class WavelengthEEPROMSlotFeature_QE65000
|
||||
: public WavelengthEEPROMSlotFeature {
|
||||
public:
|
||||
WavelengthEEPROMSlotFeature_QE65000(unsigned int numberOfPixels);
|
||||
virtual ~WavelengthEEPROMSlotFeature_QE65000();
|
||||
|
||||
protected:
|
||||
/* Overriding from WavelengthEEPROMSlotFeature */
|
||||
virtual std::vector<double> *computeWavelengths(double polynomial[],
|
||||
int length);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* WAVELENGTHEEPROMSLOTFEATUREQE65000_H */
|
57
Source/OSIF/include/vendors/OceanOptics/features/fpga_register/FPGARegisterFeature.h
vendored
Normal file
57
Source/OSIF/include/vendors/OceanOptics/features/fpga_register/FPGARegisterFeature.h
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
/***************************************************//**
|
||||
* @file FPGARegisterFeature.h
|
||||
* @date October 2012
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SEABREEZE_FPGA_REGISTER_FEATURE_H
|
||||
#define SEABREEZE_FPGA_REGISTER_FEATURE_H
|
||||
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "vendors/OceanOptics/features/fpga_register/FPGARegisterFeatureInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class FPGARegisterFeature : public FeatureImpl, public FPGARegisterFeatureInterface {
|
||||
public:
|
||||
FPGARegisterFeature();
|
||||
virtual ~FPGARegisterFeature();
|
||||
virtual unsigned int readRegister(const Bus &bus, byte address)
|
||||
throw (FeatureException);
|
||||
virtual void writeRegister(const Bus &bus, byte address, unsigned int value)
|
||||
throw (FeatureException);
|
||||
virtual unsigned char getMajorVersion(const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
53
Source/OSIF/include/vendors/OceanOptics/features/fpga_register/FPGARegisterFeatureInterface.h
vendored
Normal file
53
Source/OSIF/include/vendors/OceanOptics/features/fpga_register/FPGARegisterFeatureInterface.h
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
/***************************************************//**
|
||||
* @file FPGARegisterFeatureInterface.h
|
||||
* @date October 2012
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SEABREEZE_FPGA_REGISTER_FEATURE_INTERFACE_H
|
||||
#define SEABREEZE_FPGA_REGISTER_FEATURE_INTERFACE_H
|
||||
|
||||
#include "common/features/Feature.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class FPGARegisterFeatureInterface {
|
||||
public:
|
||||
virtual ~FPGARegisterFeatureInterface() = 0;
|
||||
virtual unsigned int readRegister(const Bus &bus, byte address)
|
||||
throw (FeatureException) = 0;
|
||||
virtual void writeRegister(const Bus &bus, byte address, unsigned int value)
|
||||
throw (FeatureException) = 0;
|
||||
virtual unsigned char getMajorVersion(const Bus &bus)
|
||||
throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
inline FPGARegisterFeatureInterface::~FPGARegisterFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif
|
71
Source/OSIF/include/vendors/OceanOptics/features/irradcal/IrradCalFeature.h
vendored
Normal file
71
Source/OSIF/include/vendors/OceanOptics/features/irradcal/IrradCalFeature.h
vendored
Normal file
@ -0,0 +1,71 @@
|
||||
/***************************************************//**
|
||||
* @file IrradCalFeature.h
|
||||
* @date March 2010
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the
|
||||
* irradiance calibration storage available on some
|
||||
* devices (such as the USB2000+).
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef IRRADCALFEATURE_H
|
||||
#define IRRADCALFEATURE_H
|
||||
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/FloatVector.h"
|
||||
#include "vendors/OceanOptics/features/irradcal/IrradCalFeatureInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class IrradCalFeature : public FeatureImpl, public IrradCalFeatureInterface {
|
||||
public:
|
||||
IrradCalFeature(std::vector<ProtocolHelper *> helpers, int numPixels);
|
||||
virtual ~IrradCalFeature();
|
||||
virtual std::vector<float> *readIrradCalibration(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual int writeIrradCalibration(const Protocol &protocol,
|
||||
const Bus &bus, const std::vector<float> &values) throw (FeatureException);
|
||||
int getNumberOfPixels();
|
||||
virtual int hasCollectionArea(const Protocol &protocol,
|
||||
const Bus &bus);
|
||||
virtual double readCollectionArea(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual void writeCollectionArea(const Protocol &protocol,
|
||||
const Bus &bus, double area) throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
private:
|
||||
int numberOfPixels;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* IRRADCALFEATURE_H */
|
62
Source/OSIF/include/vendors/OceanOptics/features/irradcal/IrradCalFeatureInterface.h
vendored
Normal file
62
Source/OSIF/include/vendors/OceanOptics/features/irradcal/IrradCalFeatureInterface.h
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
/***************************************************//**
|
||||
* @file IrradCalFeatureInterface.h
|
||||
* @date February 2011
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the
|
||||
* irradiance calibration storage available on some
|
||||
* devices (such as the USB2000+).
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef IRRADCALFEATUREINTERFACE_H
|
||||
#define IRRADCALFEATUREINTERFACE_H
|
||||
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class IrradCalFeatureInterface {
|
||||
public:
|
||||
virtual ~IrradCalFeatureInterface() = 0;
|
||||
virtual std::vector<float> *readIrradCalibration(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual int writeIrradCalibration(const Protocol &protocol,
|
||||
const Bus &bus, const std::vector<float> &values) throw (FeatureException) = 0;
|
||||
virtual int hasCollectionArea(const Protocol &protocol,
|
||||
const Bus &bus) = 0;
|
||||
virtual double readCollectionArea(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual void writeCollectionArea(const Protocol &protocol,
|
||||
const Bus &bus, double area) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline IrradCalFeatureInterface::~IrradCalFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* IRRADCALFEATUREINTERFACE_H */
|
76
Source/OSIF/include/vendors/OceanOptics/features/light_source/LightSourceFeatureBase.h
vendored
Normal file
76
Source/OSIF/include/vendors/OceanOptics/features/light_source/LightSourceFeatureBase.h
vendored
Normal file
@ -0,0 +1,76 @@
|
||||
/***************************************************//**
|
||||
* @file LightSourceFeatureBase.h
|
||||
* @date April 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef LIGHTSOURCEFEATUREBASE_H
|
||||
#define LIGHTSOURCEFEATUREBASE_H
|
||||
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "vendors/OceanOptics/features/light_source/LightSourceFeatureInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class LightSourceFeatureBase : public FeatureImpl,
|
||||
public LightSourceFeatureInterface {
|
||||
public:
|
||||
LightSourceFeatureBase(std::vector<ProtocolHelper *> helpers, int lampModuleIndex);
|
||||
virtual ~LightSourceFeatureBase();
|
||||
|
||||
/* Enable controls */
|
||||
virtual bool hasLightSourceEnable(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex) throw (FeatureException);
|
||||
|
||||
virtual bool isLightSourceEnabled(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex) throw (FeatureException);
|
||||
|
||||
virtual void setLightSourceEnable(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex, bool enable) throw (FeatureException);
|
||||
|
||||
/* Intensity controls */
|
||||
virtual bool hasVariableIntensity(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex) throw (FeatureException);
|
||||
|
||||
virtual double getLightSourceIntensity(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex) throw (FeatureException);
|
||||
|
||||
virtual void setLightSourceIntensity(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex, double intensity) throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
protected:
|
||||
int moduleIndex;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* LIGHTSOURCEFEATUREBASE_H */
|
57
Source/OSIF/include/vendors/OceanOptics/features/light_source/LightSourceFeatureImpl.h
vendored
Normal file
57
Source/OSIF/include/vendors/OceanOptics/features/light_source/LightSourceFeatureImpl.h
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
/***************************************************//**
|
||||
* @file LightSourceFeatureImpl.h
|
||||
* @date April 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This is a trivial implementation of LightSourceFeatureInterface
|
||||
* that can manage a single module with one or more light sources
|
||||
* (e.g. light bulbs, lasers, LEDs).
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef LIGHTSOURCEFEATUREIMPL_H
|
||||
#define LIGHTSOURCEFEATUREIMPL_H
|
||||
|
||||
#include "vendors/OceanOptics/features/light_source/LightSourceFeatureBase.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class LightSourceFeatureImpl : public LightSourceFeatureBase {
|
||||
public:
|
||||
LightSourceFeatureImpl(std::vector<ProtocolHelper *> helpers,
|
||||
int lampModuleIndex, int lightSources);
|
||||
virtual ~LightSourceFeatureImpl();
|
||||
|
||||
/* Override from LightSourceFeatureBase */
|
||||
virtual int getLightSourceCount(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
protected:
|
||||
int lightSourceCount;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* LIGHTSOURCEFEATUREIMPL_H */
|
72
Source/OSIF/include/vendors/OceanOptics/features/light_source/LightSourceFeatureInterface.h
vendored
Normal file
72
Source/OSIF/include/vendors/OceanOptics/features/light_source/LightSourceFeatureInterface.h
vendored
Normal file
@ -0,0 +1,72 @@
|
||||
/***************************************************//**
|
||||
* @file LightSourceFeatureInterface.h
|
||||
* @date April 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef LIGHTSOURCEFEATUREINTERFACE_H
|
||||
#define LIGHTSOURCEFEATUREINTERFACE_H
|
||||
|
||||
#include "common/features/Feature.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class LightSourceFeatureInterface {
|
||||
public:
|
||||
virtual ~LightSourceFeatureInterface() = 0;
|
||||
|
||||
virtual int getLightSourceCount(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
|
||||
virtual bool hasLightSourceEnable(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex) throw (FeatureException) = 0;
|
||||
|
||||
virtual bool isLightSourceEnabled(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex) throw (FeatureException) = 0;
|
||||
|
||||
virtual void setLightSourceEnable(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex, bool enable) throw (FeatureException) = 0;
|
||||
|
||||
virtual bool hasVariableIntensity(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex) throw (FeatureException) = 0;
|
||||
|
||||
virtual double getLightSourceIntensity(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex) throw (FeatureException) = 0;
|
||||
|
||||
virtual void setLightSourceIntensity(const Protocol &protocol,
|
||||
const Bus &bus, int lightSourceIndex, double intensity) throw (FeatureException) = 0;
|
||||
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline LightSourceFeatureInterface::~LightSourceFeatureInterface() {}
|
||||
|
||||
}
|
||||
|
||||
#endif /* LIGHTSOURCEFEATUREINTERFACE_H */
|
55
Source/OSIF/include/vendors/OceanOptics/features/light_source/StrobeLampFeature.h
vendored
Normal file
55
Source/OSIF/include/vendors/OceanOptics/features/light_source/StrobeLampFeature.h
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
/***************************************************//**
|
||||
* @file StrobeLampFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef STROBELAMPFEATURE_H
|
||||
#define STROBELAMPFEATURE_H
|
||||
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "vendors/OceanOptics/features/light_source/StrobeLampFeatureInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class StrobeLampFeature : public FeatureImpl, public StrobeLampFeatureInterface {
|
||||
public:
|
||||
StrobeLampFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~StrobeLampFeature();
|
||||
virtual void setStrobeLampEnable(const Protocol &protocol,
|
||||
const Bus &bus, bool enable) throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* STROBELAMPFEATURE_H */
|
51
Source/OSIF/include/vendors/OceanOptics/features/light_source/StrobeLampFeatureInterface.h
vendored
Normal file
51
Source/OSIF/include/vendors/OceanOptics/features/light_source/StrobeLampFeatureInterface.h
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
/***************************************************//**
|
||||
* @file StrobeLampFeatureInterface.h
|
||||
* @date February 2011
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef STROBELAMPFEATUREINTERFACE_H
|
||||
#define STROBELAMPFEATUREINTERFACE_H
|
||||
|
||||
#include "common/features/Feature.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class StrobeLampFeatureInterface {
|
||||
public:
|
||||
virtual ~StrobeLampFeatureInterface() = 0;
|
||||
virtual void setStrobeLampEnable(const Protocol &protocol,
|
||||
const Bus &bus, bool enable) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline StrobeLampFeatureInterface::~StrobeLampFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* STROBELAMPFEATUREINTERFACE_H */
|
49
Source/OSIF/include/vendors/OceanOptics/features/light_source/VentanaLightSourceFeature.h
vendored
Normal file
49
Source/OSIF/include/vendors/OceanOptics/features/light_source/VentanaLightSourceFeature.h
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
/***************************************************//**
|
||||
* @file VentanaLightSourceFeature.h
|
||||
* @date April 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef VENTANALIGHTSOURCEFEATURE_H
|
||||
#define VENTANALIGHTSOURCEFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/light_source/LightSourceFeatureImpl.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class VentanaLightSourceFeature : public LightSourceFeatureImpl {
|
||||
public:
|
||||
VentanaLightSourceFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~VentanaLightSourceFeature();
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual bool initialize(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* VENTANALIGHTSOURCEFEATURE_H */
|
57
Source/OSIF/include/vendors/OceanOptics/features/nonlinearity/NonlinearityCoeffsFeature.h
vendored
Normal file
57
Source/OSIF/include/vendors/OceanOptics/features/nonlinearity/NonlinearityCoeffsFeature.h
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
/***************************************************//**
|
||||
* @file NonlinearityCoeffsFeature.h
|
||||
* @date February 2012
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef NONLINEARITYCOEFFSFEATURE_H
|
||||
#define NONLINEARITYCOEFFSFEATURE_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "vendors/OceanOptics/features/nonlinearity/NonlinearityCoeffsFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class NonlinearityCoeffsFeature : public FeatureImpl,
|
||||
public NonlinearityCoeffsFeatureInterface {
|
||||
public:
|
||||
NonlinearityCoeffsFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~NonlinearityCoeffsFeature();
|
||||
virtual std::vector<double> *readNonlinearityCoefficients(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* NONLINEARITYCOEFFSFEATURE_H */
|
@ -0,0 +1,50 @@
|
||||
/***************************************************//**
|
||||
* @file NonlinearityCoeffsFeatureInterface.h
|
||||
* @date February 2012
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef NONLINEARITYCOEFFSFEATUREINTERFACE_H
|
||||
#define NONLINEARITYCOEFFSFEATUREINTERFACE_H
|
||||
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class NonlinearityCoeffsFeatureInterface {
|
||||
public:
|
||||
virtual ~NonlinearityCoeffsFeatureInterface() = 0;
|
||||
virtual std::vector<double> *readNonlinearityCoefficients(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline NonlinearityCoeffsFeatureInterface::~NonlinearityCoeffsFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* NONLINEARITYCOEFFSFEATUREINTERFACE_H */
|
70
Source/OSIF/include/vendors/OceanOptics/features/optical_bench/OpticalBenchFeature.h
vendored
Normal file
70
Source/OSIF/include/vendors/OceanOptics/features/optical_bench/OpticalBenchFeature.h
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
/***************************************************//**
|
||||
* @file OpticalBenchFeature.h
|
||||
* @date January 2015
|
||||
* @author Kirk Clendinning, Heliospecgtra
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc, Heliospectra AB
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef OPTICALBENCHEFEATURE_H
|
||||
#define OPTICALBENCHEFEATURE_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "vendors/OceanOptics/features/optical_bench/OpticalBenchFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class OpticalBenchFeature
|
||||
: public FeatureImpl, public OpticalBenchFeatureInterface {
|
||||
public:
|
||||
OpticalBenchFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~OpticalBenchFeature();
|
||||
virtual unsigned short int readOpticalBenchFiberDiameterMicrons(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual unsigned short int readOpticalBenchSlitWidthMicrons(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual std::string *readOpticalBenchID(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual std::string *readOpticalBenchSerialNumber(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual std::string *readOpticalBenchCoating(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual std::string *readOpticalBenchFilter(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual std::string *readOpticalBenchGrating(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* OPTICALBENCHEFEATURE_H */
|
62
Source/OSIF/include/vendors/OceanOptics/features/optical_bench/OpticalBenchFeatureInterface.h
vendored
Normal file
62
Source/OSIF/include/vendors/OceanOptics/features/optical_bench/OpticalBenchFeatureInterface.h
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
/***************************************************//**
|
||||
* @file OpticalBenchFeatureInterface.h
|
||||
* @date January 2015
|
||||
* @author Ocean Optics, Inc., Kirk Clendinning, Heliospectra
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef OPTICALBENCHFEATUREINTERFACE_H
|
||||
#define OPTICALBENCHFEATUREINTERFACE_H
|
||||
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class OpticalBenchFeatureInterface {
|
||||
public:
|
||||
virtual ~OpticalBenchFeatureInterface() = 0;
|
||||
virtual unsigned short int readOpticalBenchFiberDiameterMicrons(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual unsigned short int readOpticalBenchSlitWidthMicrons(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual std::string *readOpticalBenchID(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual std::string *readOpticalBenchSerialNumber(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual std::string *readOpticalBenchCoating(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual std::string *readOpticalBenchFilter(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual std::string *readOpticalBenchGrating(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline OpticalBenchFeatureInterface::~OpticalBenchFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* OPTICALBENCHFEATUREINTERFACE_H */
|
61
Source/OSIF/include/vendors/OceanOptics/features/pixel_binning/PixelBinningFeatureInterface.h
vendored
Normal file
61
Source/OSIF/include/vendors/OceanOptics/features/pixel_binning/PixelBinningFeatureInterface.h
vendored
Normal file
@ -0,0 +1,61 @@
|
||||
/***************************************************//**
|
||||
* @file PixelBinningFeatureInterface.h
|
||||
* @date October 2015
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the thermo-
|
||||
* electric cooler (TEC) feature.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef PIXELBINNINGFEATUREINTERFACE_H
|
||||
#define PIXELBINNINGFEATUREINTERFACE_H
|
||||
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class PixelBinningFeatureInterface {
|
||||
public:
|
||||
virtual ~PixelBinningFeatureInterface() = 0;
|
||||
virtual void setPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus, const unsigned char binningFactor) throw (FeatureException) = 0;
|
||||
virtual unsigned char getPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual void setDefaultPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus, const unsigned char binningFactor) throw (FeatureException) = 0;
|
||||
virtual void setDefaultPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual unsigned char getDefaultPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual unsigned char getMaxPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* PIXELBINNINGFEATUREINTERFACE_H */
|
89
Source/OSIF/include/vendors/OceanOptics/features/pixel_binning/STSPixelBinningFeature.h
vendored
Normal file
89
Source/OSIF/include/vendors/OceanOptics/features/pixel_binning/STSPixelBinningFeature.h
vendored
Normal file
@ -0,0 +1,89 @@
|
||||
/***************************************************//**
|
||||
* @file STSPixelBinningFeature.h
|
||||
* @date October 2015
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the thermo-
|
||||
* electric unit for devices with a clean
|
||||
* protocol implementation. This is an abstract base
|
||||
* class but it does much of the work needed for most
|
||||
* implementations that can delegate almost everything
|
||||
* to the protocol layer.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef STSPIXELBINNINGFEATURE_H
|
||||
#define STSPIXELBINNINGFEATURE_H
|
||||
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/protocols/ProtocolHelper.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
#include "vendors/OceanOptics/features/pixel_binning/PixelBinningFeatureInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class STSSpectrometerFeature;
|
||||
|
||||
class STSPixelBinningFeature : public FeatureImpl,
|
||||
public PixelBinningFeatureInterface {
|
||||
public:
|
||||
STSPixelBinningFeature(std::vector<ProtocolHelper *> helpers,
|
||||
STSSpectrometerFeature *spectroFeature);
|
||||
virtual ~STSPixelBinningFeature();
|
||||
|
||||
virtual void setPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus, const unsigned char binningFactor)
|
||||
throw (FeatureException);
|
||||
virtual unsigned char getPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual void setDefaultPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus, const unsigned char binningFactor)
|
||||
throw (FeatureException);
|
||||
virtual void setDefaultPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual unsigned char getDefaultPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual unsigned char getMaxPixelBinningFactor(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Inherited from Feature */
|
||||
/* This is still abstract in case the device needs to do anything
|
||||
* special with regards to defaults when it is initialized.
|
||||
*/
|
||||
virtual bool initialize(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
protected:
|
||||
STSSpectrometerFeature *spectrometerFeature;
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* STSPIXELBINNINGFEATURE_H */
|
55
Source/OSIF/include/vendors/OceanOptics/features/raw_bus_access/RawUSBBusAccessFeature.h
vendored
Normal file
55
Source/OSIF/include/vendors/OceanOptics/features/raw_bus_access/RawUSBBusAccessFeature.h
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
/***************************************************//**
|
||||
* @file RawUSBBusAccessFeature.h
|
||||
* @date October 2012
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SEABREEZE_RAW_USB_BUS_ACCESS_FEATURE_H
|
||||
#define SEABREEZE_RAW_USB_BUS_ACCESS_FEATURE_H
|
||||
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "vendors/OceanOptics/features/raw_bus_access/RawUSBBusAccessFeatureInterface.h"
|
||||
#include "common/buses/usb/USBInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class RawUSBBusAccessFeature : public FeatureImpl,
|
||||
public RawUSBBusAccessFeatureInterface {
|
||||
public:
|
||||
RawUSBBusAccessFeature();
|
||||
virtual ~RawUSBBusAccessFeature();
|
||||
virtual std::vector<byte> readUSB(const USBInterface *bus, int endpoint,
|
||||
unsigned int length) throw (FeatureException);
|
||||
virtual int writeUSB(const USBInterface *bus, int endpoint,
|
||||
const std::vector<byte> &data) throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
@ -0,0 +1,52 @@
|
||||
/***************************************************//**
|
||||
* @file RawUSBBusAccessFeatureInterface.h
|
||||
* @date October 2012
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SEABREEZE_RAW_USB_BUS_ACCESS_FEATURE_INTERFACE_H
|
||||
#define SEABREEZE_RAW_USB_BUS_ACCESS_FEATURE_INTERFACE_H
|
||||
|
||||
#include "common/features/Feature.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/buses/usb/USBInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class RawUSBBusAccessFeatureInterface {
|
||||
public:
|
||||
virtual ~RawUSBBusAccessFeatureInterface() = 0;
|
||||
virtual std::vector<byte> readUSB(const USBInterface *bus, int endpoint,
|
||||
unsigned int length ) throw (FeatureException) = 0;
|
||||
virtual int writeUSB(const USBInterface *bus, int endpoint,
|
||||
const std::vector<byte> &data) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline RawUSBBusAccessFeatureInterface::~RawUSBBusAccessFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif
|
59
Source/OSIF/include/vendors/OceanOptics/features/revision/RevisionFeature.h
vendored
Normal file
59
Source/OSIF/include/vendors/OceanOptics/features/revision/RevisionFeature.h
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
/***************************************************//**
|
||||
* @file RevisionFeature.h
|
||||
* @date January 2015
|
||||
* @author Kirk Clendinning, Heliospectra
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc, Heliospectra AB
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef REVISIONFEATURE_H
|
||||
#define REVISIONFEATURE_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "vendors/OceanOptics/features/revision/RevisionFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class RevisionFeature
|
||||
: public FeatureImpl, public RevisionFeatureInterface {
|
||||
public:
|
||||
RevisionFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~RevisionFeature();
|
||||
virtual unsigned char readHardwareRevision(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual unsigned short int readFirmwareRevision(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* REVISIONFEATURE_H */
|
52
Source/OSIF/include/vendors/OceanOptics/features/revision/RevisionFeatureInterface.h
vendored
Normal file
52
Source/OSIF/include/vendors/OceanOptics/features/revision/RevisionFeatureInterface.h
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
/***************************************************//**
|
||||
* @file RevisionFeatureInterface.h
|
||||
* @date January 2015
|
||||
* @author Ocean Optics, Inc., Kirk Clendinning, Heliospectra
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef REVISIONFEATUREINTERFACE_H
|
||||
#define REVISIONFEATUREINTERFACE_H
|
||||
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class RevisionFeatureInterface {
|
||||
public:
|
||||
virtual ~RevisionFeatureInterface() = 0;
|
||||
virtual unsigned char readHardwareRevision(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual unsigned short int readFirmwareRevision(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline RevisionFeatureInterface::~RevisionFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* REVISIONFEATUREINTERFACE_H */
|
58
Source/OSIF/include/vendors/OceanOptics/features/serial_number/SerialNumberFeature.h
vendored
Normal file
58
Source/OSIF/include/vendors/OceanOptics/features/serial_number/SerialNumberFeature.h
vendored
Normal file
@ -0,0 +1,58 @@
|
||||
/***************************************************//**
|
||||
* @file SerialNumberFeature.h
|
||||
* @date February 2011
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SERIALNUMBERFEATURE_H
|
||||
#define SERIALNUMBERFEATURE_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "vendors/OceanOptics/features/serial_number/SerialNumberFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class SerialNumberFeature : public FeatureImpl, public SerialNumberFeatureInterface {
|
||||
public:
|
||||
SerialNumberFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~SerialNumberFeature();
|
||||
virtual std::string *readSerialNumber(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual unsigned char readSerialNumberMaximumLength(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* SERIALNUMBERFEATURE_H */
|
53
Source/OSIF/include/vendors/OceanOptics/features/serial_number/SerialNumberFeatureInterface.h
vendored
Normal file
53
Source/OSIF/include/vendors/OceanOptics/features/serial_number/SerialNumberFeatureInterface.h
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
/***************************************************//**
|
||||
* @file SerialNumberFeatureInterface.h
|
||||
* @date February 2011
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SERIALNUMBERFEATUREINTERFACE_H
|
||||
#define SERIALNUMBERFEATUREINTERFACE_H
|
||||
|
||||
#include <string>
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class SerialNumberFeatureInterface {
|
||||
public:
|
||||
virtual ~SerialNumberFeatureInterface() = 0;
|
||||
virtual unsigned char readSerialNumberMaximumLength(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual std::string *readSerialNumber(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline SerialNumberFeatureInterface::~SerialNumberFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* SERIALNUMBERFEATUREINTERFACE_H */
|
56
Source/OSIF/include/vendors/OceanOptics/features/shutter/ShutterFeature.h
vendored
Normal file
56
Source/OSIF/include/vendors/OceanOptics/features/shutter/ShutterFeature.h
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
/***************************************************//**
|
||||
* @file ShutterFeature.h
|
||||
* @date February 2011
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SHUTTERFEATURE_H
|
||||
#define SHUTTERFEATURE_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "vendors/OceanOptics/features/shutter/ShutterFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class ShutterFeature : public FeatureImpl, public ShutterFeatureInterface {
|
||||
public:
|
||||
ShutterFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~ShutterFeature();
|
||||
virtual void setShutterOpen(const Protocol &protocol,
|
||||
const Bus &bus, bool opened) throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* SHUTTERFEATURE_H */
|
50
Source/OSIF/include/vendors/OceanOptics/features/shutter/ShutterFeatureInterface.h
vendored
Normal file
50
Source/OSIF/include/vendors/OceanOptics/features/shutter/ShutterFeatureInterface.h
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
/***************************************************//**
|
||||
* @file ShutterFeatureInterface.h
|
||||
* @date February 2011
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SHUTTERFEATUREINTERFACE_H
|
||||
#define SHUTTERFEATUREINTERFACE_H
|
||||
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class ShutterFeatureInterface {
|
||||
public:
|
||||
virtual ~ShutterFeatureInterface() = 0;
|
||||
virtual void setShutterOpen(const Protocol &protocol,
|
||||
const Bus &bus, bool opened) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline ShutterFeatureInterface::~ShutterFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* SHUTTERFEATUREINTERFACE_H */
|
52
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/ApexSpectrometerFeature.h
vendored
Normal file
52
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/ApexSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
/***************************************************//**
|
||||
* @file ApexSpectrometerFeature.h
|
||||
* @date January 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef APEXSPECTROMETERFEATURE_H
|
||||
#define APEXSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class ApexSpectrometerFeature : public GainAdjustedSpectrometerFeature {
|
||||
public:
|
||||
ApexSpectrometerFeature(
|
||||
ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~ApexSpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* APEXSPECTROMETERFEATURE_H */
|
56
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/BlazeSpectrometerFeature.h
vendored
Normal file
56
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/BlazeSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
/***************************************************//**
|
||||
* @file BlazeSpectrometerFeature.h
|
||||
* @date February 2016
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2016, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef BLAZESPECTROMETERFEATURE_H
|
||||
#define BLAZESPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class BlazeSpectrometerFeature : public GainAdjustedSpectrometerFeature {
|
||||
public:
|
||||
BlazeSpectrometerFeature(
|
||||
ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~BlazeSpectrometerFeature();
|
||||
|
||||
/* The Blaze gets wavelengths a bit differently */
|
||||
virtual std::vector<double> *getWavelengths(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* BLAZESPECTROMETERFEATURE_H */
|
53
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/FlameNIRSpectrometerFeature.h
vendored
Normal file
53
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/FlameNIRSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
/***************************************************//**
|
||||
* @file FlameNIRSpectrometerFeature.h
|
||||
* @date Apr 2016
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2016, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef FLAMENIRSPECTROMETERFEATURE_H
|
||||
#define FLAMENIRSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class FlameNIRSpectrometerFeature
|
||||
: public GainAdjustedSpectrometerFeature {
|
||||
public:
|
||||
FlameNIRSpectrometerFeature(
|
||||
ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~FlameNIRSpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif
|
56
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h
vendored
Normal file
56
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
/***************************************************//**
|
||||
* @file GainAdjustedSpectrometerFeature.h
|
||||
* @date July 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef GAINADJUSTEDSPECTROMETERFEATURE_H
|
||||
#define GAINADJUSTEDSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h"
|
||||
#include "vendors/OceanOptics/features/spectrometer/ProgrammableSaturationFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class GainAdjustedSpectrometerFeature : public OOISpectrometerFeature {
|
||||
public:
|
||||
GainAdjustedSpectrometerFeature(
|
||||
ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~GainAdjustedSpectrometerFeature();
|
||||
|
||||
virtual unsigned int getSaturationLevel();
|
||||
|
||||
/* Inherited from Feature */
|
||||
virtual bool initialize(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
protected:
|
||||
ProgrammableSaturationFeature *saturation;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* GAINADJUSTEDSPECTROMETERFEATURE_H */
|
51
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/HR2000PlusSpectrometerFeature.h
vendored
Normal file
51
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/HR2000PlusSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
/***************************************************//**
|
||||
* @file HR2000PlusSpectrometerFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef HR2000PLUSSPECTROMETERFEATURE_H
|
||||
#define HR2000PLUSSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class HR2000PlusSpectrometerFeature : public OOISpectrometerFeature {
|
||||
public:
|
||||
HR2000PlusSpectrometerFeature();
|
||||
virtual ~HR2000PlusSpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* HR2000PLUSSPECTROMETERFEATURE_H */
|
51
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/HR2000SpectrometerFeature.h
vendored
Normal file
51
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/HR2000SpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
/***************************************************//**
|
||||
* @file HR2000SpectrometerFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef HR2000SPECTROMETERFEATURE_H
|
||||
#define HR2000SPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class HR2000SpectrometerFeature : public OOISpectrometerFeature {
|
||||
public:
|
||||
HR2000SpectrometerFeature();
|
||||
virtual ~HR2000SpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* HR2000SPECTROMETERFEATURE_H */
|
51
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/HR4000SpectrometerFeature.h
vendored
Normal file
51
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/HR4000SpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
/***************************************************//**
|
||||
* @file HR4000SpectrometerFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef HR4000SPECTROMETERFEATURE_H
|
||||
#define HR4000SPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class HR4000SpectrometerFeature : public OOISpectrometerFeature {
|
||||
public:
|
||||
HR4000SpectrometerFeature();
|
||||
virtual ~HR4000SpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* HR4000SPECTROMETERFEATURE_H */
|
52
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/JazSpectrometerFeature.h
vendored
Normal file
52
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/JazSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
/***************************************************//**
|
||||
* @file JazSpectrometerFeature.h
|
||||
* @date November 2011
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef JAZSPECTROMETERFEATURE_H
|
||||
#define JAZSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class JazSpectrometerFeature
|
||||
: public GainAdjustedSpectrometerFeature {
|
||||
public:
|
||||
JazSpectrometerFeature(ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~JazSpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* JAZSPECTROMETERFEATURE_H */
|
53
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/Maya2000ProSpectrometerFeature.h
vendored
Normal file
53
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/Maya2000ProSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
/***************************************************//**
|
||||
* @file Maya2000ProSpectrometerFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef MAYA2000PROSPECTROMETERFEATURE_H
|
||||
#define MAYA2000PROSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class Maya2000ProSpectrometerFeature
|
||||
: public GainAdjustedSpectrometerFeature {
|
||||
public:
|
||||
Maya2000ProSpectrometerFeature(
|
||||
ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~Maya2000ProSpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* MAYA2000PROSPECTROMETERFEATURE_H */
|
51
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/Maya2000SpectrometerFeature.h
vendored
Normal file
51
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/Maya2000SpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
/***************************************************//**
|
||||
* @file Maya2000SpectrometerFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef MAYA2000SPECTROMETERFEATURE_H
|
||||
#define MAYA2000SPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class Maya2000SpectrometerFeature : public OOISpectrometerFeature {
|
||||
public:
|
||||
Maya2000SpectrometerFeature();
|
||||
virtual ~Maya2000SpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* MAYA2000SPECTROMETERFEATURE_H */
|
52
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/MayaLSLSpectrometerFeature.h
vendored
Normal file
52
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/MayaLSLSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
/***************************************************//**
|
||||
* @file MayaLSLSpectrometerFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef MAYALSLSPECTROMETERFEATURE_H
|
||||
#define MAYALSLSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class MayaLSLSpectrometerFeature : public GainAdjustedSpectrometerFeature {
|
||||
public:
|
||||
MayaLSLSpectrometerFeature(
|
||||
ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~MayaLSLSpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* MAYALSLSPECTROMETERFEATURE_H */
|
46
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/NIRQuest256SpectrometerFeature.h
vendored
Normal file
46
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/NIRQuest256SpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
/***************************************************//**
|
||||
* @file NIRQuest256SpectrometerFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef NIRQUEST256SPECTROMETERFEATURE_H
|
||||
#define NIRQUEST256SPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/NIRQuestSpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class NIRQuest256SpectrometerFeature : public NIRQuestSpectrometerFeature {
|
||||
public:
|
||||
NIRQuest256SpectrometerFeature(
|
||||
ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~NIRQuest256SpectrometerFeature();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* NIRQUEST256SPECTROMETERFEATURE_H */
|
46
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/NIRQuest512SpectrometerFeature.h
vendored
Normal file
46
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/NIRQuest512SpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
/***************************************************//**
|
||||
* @file NIRQuest512SpectrometerFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef NIRQUEST512SPECTROMETERFEATURE_H
|
||||
#define NIRQUEST512SPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/NIRQuestSpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class NIRQuest512SpectrometerFeature : public NIRQuestSpectrometerFeature {
|
||||
public:
|
||||
NIRQuest512SpectrometerFeature(
|
||||
ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~NIRQuest512SpectrometerFeature();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* NIRQUEST512SPECTROMETERFEATURE_H */
|
54
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/NIRQuestSpectrometerFeature.h
vendored
Normal file
54
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/NIRQuestSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
/***************************************************//**
|
||||
* @file NIRQuestSpectrometerFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef NIRQUESTSPECTROMETERFEATURE_H
|
||||
#define NIRQUESTSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class NIRQuestSpectrometerFeature : public GainAdjustedSpectrometerFeature {
|
||||
public:
|
||||
NIRQuestSpectrometerFeature(
|
||||
ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~NIRQuestSpectrometerFeature();
|
||||
|
||||
protected:
|
||||
void setupExchanges(int readoutLength);
|
||||
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* NIRQUESTSPECTROMETERFEATURE_H */
|
111
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h
vendored
Normal file
111
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,111 @@
|
||||
/***************************************************//**
|
||||
* @file OOISpectrometerFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef OOISPECTROMETERFEATURE_H
|
||||
#define OOISPECTROMETERFEATURE_H
|
||||
|
||||
#include <vector>
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
#include "vendors/OceanOptics/features/spectrometer/SpectrometerTriggerMode.h"
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeatureInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class OOISpectrometerFeature : public FeatureImpl,
|
||||
public OOISpectrometerFeatureInterface {
|
||||
public:
|
||||
OOISpectrometerFeature();
|
||||
virtual ~OOISpectrometerFeature();
|
||||
/* Request and read out a spectrum formatted into intensity (A/D counts) */
|
||||
virtual std::vector<double> *getSpectrum(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Request and read out the raw spectrum data stream */
|
||||
virtual std::vector<byte> *getUnformattedSpectrum(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Request and read out the wavelengths in nanometers as a vector of doubles */
|
||||
virtual std::vector<double> *getWavelengths(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Read the raw spectrum data stream. No request is made first. */
|
||||
virtual std::vector<byte> *readUnformattedSpectrum(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Set the integration time of the spectrometer */
|
||||
virtual void setIntegrationTimeMicros(const Protocol &protocol,
|
||||
const Bus &bus, unsigned long time_usec)
|
||||
throw (FeatureException, IllegalArgumentException);
|
||||
|
||||
/* Request that the spectrometer make a spectrum available for
|
||||
* reading (e.g. with readUnformattedSpectrum())
|
||||
*/
|
||||
virtual void writeRequestSpectrum(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Setting the external trigger mode for the spectrometer */
|
||||
virtual void setTriggerMode(const Protocol &protocol,
|
||||
const Bus &bus, SpectrometerTriggerMode &mode) throw (FeatureException);
|
||||
|
||||
virtual std::vector<SpectrometerTriggerMode *> getTriggerModes() const;
|
||||
|
||||
virtual std::vector<int> getElectricDarkPixelIndices() const;
|
||||
|
||||
virtual long getIntegrationTimeMinimum() const;
|
||||
virtual long getIntegrationTimeMaximum() const;
|
||||
virtual long getIntegrationTimeIncrement() const;
|
||||
|
||||
virtual int getNumberOfPixels() const;
|
||||
virtual int getMaximumIntensity() const;
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
protected:
|
||||
/* Detector details */
|
||||
int numberOfPixels;
|
||||
int maxIntensity;
|
||||
|
||||
/* Integration time parameters (measured in microseconds) */
|
||||
long integrationTimeMinimum;
|
||||
long integrationTimeMaximum;
|
||||
long integrationTimeBase;
|
||||
long integrationTimeIncrement;
|
||||
|
||||
std::vector<SpectrometerTriggerMode *> triggerModes;
|
||||
std::vector<int> electricDarkPixelIndices;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* OOISPECTROMETERFEATURE_H */
|
95
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/OOISpectrometerFeatureInterface.h
vendored
Normal file
95
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/OOISpectrometerFeatureInterface.h
vendored
Normal file
@ -0,0 +1,95 @@
|
||||
/***************************************************//**
|
||||
* @file OOISpectrometerFeatureInterface.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef OOISPECTROMETERFEATUREINTERFACE_H
|
||||
#define OOISPECTROMETERFEATUREINTERFACE_H
|
||||
|
||||
#include <vector>
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
#include "vendors/OceanOptics/features/spectrometer/SpectrometerTriggerMode.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class OOISpectrometerFeatureInterface {
|
||||
public:
|
||||
virtual ~OOISpectrometerFeatureInterface() = 0;
|
||||
|
||||
/* Request and read out a spectrum formatted into intensity (A/D counts) */
|
||||
virtual std::vector<double> *getSpectrum(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
|
||||
/* Request and read out the raw spectrum data stream */
|
||||
virtual std::vector<byte> *getUnformattedSpectrum(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
|
||||
/* Request and read out the wavelengths in nanometers as a vector of doubles */
|
||||
virtual std::vector<double> *getWavelengths(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
|
||||
/* Read the raw spectrum data stream. No request is made first. */
|
||||
virtual std::vector<byte> *readUnformattedSpectrum(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
|
||||
/* Set the integration time of the spectrometer */
|
||||
virtual void setIntegrationTimeMicros(const Protocol &protocol,
|
||||
const Bus &bus, unsigned long time_usec)
|
||||
throw (FeatureException, IllegalArgumentException) = 0;
|
||||
|
||||
/* Request that the spectrometer make a spectrum available for
|
||||
* reading (e.g. with readUnformattedSpectrum())
|
||||
*/
|
||||
virtual void writeRequestSpectrum(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
|
||||
/* Setting the external trigger mode for the spectrometer */
|
||||
virtual void setTriggerMode(const Protocol &protocol,
|
||||
const Bus &bus, SpectrometerTriggerMode &mode) throw (FeatureException) = 0;
|
||||
|
||||
virtual std::vector<SpectrometerTriggerMode *> getTriggerModes() const = 0;
|
||||
|
||||
virtual std::vector<int> getElectricDarkPixelIndices() const = 0;
|
||||
|
||||
virtual long getIntegrationTimeMinimum() const = 0;
|
||||
virtual long getIntegrationTimeMaximum() const = 0;
|
||||
virtual long getIntegrationTimeIncrement() const = 0;
|
||||
|
||||
virtual int getNumberOfPixels() const = 0;
|
||||
virtual int getMaximumIntensity() const = 0;
|
||||
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline OOISpectrometerFeatureInterface::~OOISpectrometerFeatureInterface() {}
|
||||
|
||||
}
|
||||
|
||||
#endif /* OOISPECTROMETERFEATUREINTERFACE_H */
|
60
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/ProgrammableSaturationFeature.h
vendored
Normal file
60
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/ProgrammableSaturationFeature.h
vendored
Normal file
@ -0,0 +1,60 @@
|
||||
/***************************************************//**
|
||||
* @file ProgrammableSaturationFeature.h
|
||||
* @date March 2016
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2016, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef PROGRAMMABLESATURATIONFEATURE_H
|
||||
#define PROGRAMMABLESATURATIONFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/ProgrammableSaturationFeatureInterface.h"
|
||||
#include "common/features/Feature.h"
|
||||
#include <vector>
|
||||
|
||||
namespace seabreeze {
|
||||
/* ProgrammableSaturationFeature might be implemented by extending another
|
||||
* Feature, so this needs to use virtual inheritance to solve the
|
||||
* diamond problem.
|
||||
*/
|
||||
class ProgrammableSaturationFeature : public virtual Feature,
|
||||
public ProgrammableSaturationFeatureInterface {
|
||||
|
||||
public:
|
||||
ProgrammableSaturationFeature();
|
||||
virtual ~ProgrammableSaturationFeature();
|
||||
|
||||
virtual unsigned int getSaturation() throw (FeatureException) = 0;
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual bool initialize(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException) = 0;
|
||||
|
||||
virtual FeatureFamily getFeatureFamily() = 0;
|
||||
};
|
||||
|
||||
} /* end namespace seabreeze */
|
||||
|
||||
#endif /* PROGRAMMABLESATURATIONFEATURE_H */
|
@ -0,0 +1,66 @@
|
||||
/***************************************************//**
|
||||
* @file ProgrammableSaturationFeatureBase.h
|
||||
* @date March 2016
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2016, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef PROGRAMMABLESATURATIONFEATUREBASE_H
|
||||
#define PROGRAMMABLESATURATIONFEATUREBASE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/ProgrammableSaturationFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class ProgrammableSaturationFeatureBase
|
||||
: public ProgrammableSaturationFeature {
|
||||
public:
|
||||
ProgrammableSaturationFeatureBase();
|
||||
virtual ~ProgrammableSaturationFeatureBase();
|
||||
|
||||
/* Inherited from ProgrammableSaturationFeature */
|
||||
virtual unsigned int getSaturation() throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual bool initialize(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
protected:
|
||||
/* Derived classes must implement this in whatever way is appropriate
|
||||
* to get the saturation level for the device.
|
||||
*/
|
||||
virtual unsigned int getSaturation(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
|
||||
private:
|
||||
unsigned int saturation;
|
||||
bool valid;
|
||||
};
|
||||
|
||||
} /* end namespace seabreeze */
|
||||
|
||||
#endif /* PROGRAMMABLESATURATIONFEATUREBASE_H */
|
@ -0,0 +1,61 @@
|
||||
/***************************************************//**
|
||||
* @file ProgrammableSaturationFeatureImpl.h
|
||||
* @date March 2016
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2016, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef PROGRAMMABLESATURATIONFEATUREIMPL_H
|
||||
#define PROGRAMMABLESATURATIONFEATUREIMPL_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/ProgrammableSaturationFeatureBase.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/protocols/ProtocolHelper.h"
|
||||
#include <vector>
|
||||
|
||||
namespace seabreeze {
|
||||
/* This class is intended for devices that have a clean protocol
|
||||
* interface for reading out the saturation level directly.
|
||||
*/
|
||||
class ProgrammableSaturationFeatureImpl
|
||||
: public ProgrammableSaturationFeatureBase, FeatureImpl {
|
||||
public:
|
||||
ProgrammableSaturationFeatureImpl(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~ProgrammableSaturationFeatureImpl();
|
||||
|
||||
virtual bool initialize(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
protected:
|
||||
/* Inherited from ProgrammableSaturationFeatureBase */
|
||||
virtual unsigned int getSaturation(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
};
|
||||
|
||||
} /* end namespace seabreeze */
|
||||
|
||||
#endif /* PROGRAMMABLESATURATIONFEATUREIMPL_H */
|
@ -0,0 +1,53 @@
|
||||
/***************************************************//**
|
||||
* @file ProgrammableSaturationFeatureInterface.h
|
||||
* @date March 2016
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2016, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef PROGRAMMABLESATURATIONFEATUREINTERFACE_H
|
||||
#define PROGRAMMABLESATURATIONFEATUREINTERFACE_H
|
||||
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class ProgrammableSaturationFeatureInterface {
|
||||
public:
|
||||
virtual ~ProgrammableSaturationFeatureInterface() = 0;
|
||||
|
||||
/*
|
||||
* Get the detector saturation level from the device.
|
||||
*/
|
||||
virtual unsigned int getSaturation() throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline ProgrammableSaturationFeatureInterface::~ProgrammableSaturationFeatureInterface() {}
|
||||
|
||||
} /* end namespace seabreeze */
|
||||
|
||||
#endif /* PROGRAMMABLESATURATIONFEATUREINTERFACE_H */
|
57
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/QE65000SpectrometerFeature.h
vendored
Normal file
57
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/QE65000SpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
/***************************************************//**
|
||||
* @file QE65000SpectrometerFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef QE65000SPECTROMETERFEATURE_H
|
||||
#define QE65000SPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class QE65000SpectrometerFeature : public OOISpectrometerFeature {
|
||||
public:
|
||||
QE65000SpectrometerFeature();
|
||||
virtual ~QE65000SpectrometerFeature();
|
||||
|
||||
/* Overridden from OOISpectrometerFeature because the QE65000
|
||||
* wavelength calibration is done differently than in most others
|
||||
*/
|
||||
virtual std::vector<double> *getWavelengths(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* QE65000SPECTROMETERFEATURE_H */
|
55
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/QEProSpectrometerFeature.h
vendored
Normal file
55
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/QEProSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
/***************************************************//**
|
||||
* @file QEProSpectrometerFeature.h
|
||||
* @date June 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef QEPROSPECTROMETERFEATURE_H
|
||||
#define QEPROSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class QEProSpectrometerFeature : public OOISpectrometerFeature {
|
||||
public:
|
||||
QEProSpectrometerFeature();
|
||||
virtual ~QEProSpectrometerFeature();
|
||||
|
||||
/* The QE-PRO gets wavelengths a bit differently */
|
||||
virtual std::vector<double> *getWavelengths(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* QEPROSPECTROMETERFEATURE_H */
|
74
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/STSSpectrometerFeature.h
vendored
Normal file
74
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/STSSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,74 @@
|
||||
/***************************************************//**
|
||||
* @file STSSpectrometerFeature.h
|
||||
* @date May 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef STSSPECTROMETERFEATURE_H
|
||||
#define STSSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/temperature/TemperatureFeature.h"
|
||||
#include "vendors/OceanOptics/protocols/obp/impls/OBPTemperatureProtocol.h"
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h"
|
||||
|
||||
|
||||
#define STS_TEMPERATURE_DETECTOR_INDEX 0
|
||||
#define STS_TEMPERATURE_RESERVED_INDEX 1
|
||||
#define STS_TEMPERATURE_CPU_INDEX 2
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
namespace oceanBinaryProtocol {
|
||||
class OBPReadRawSpectrumExchange;
|
||||
class OBPReadSpectrumExchange;
|
||||
}
|
||||
|
||||
class STSSpectrometerFeature : public OOISpectrometerFeature {
|
||||
public:
|
||||
STSSpectrometerFeature();
|
||||
virtual ~STSSpectrometerFeature();
|
||||
|
||||
void setPixelBinningFactor(unsigned char binningFactor);
|
||||
|
||||
/* The STS gets wavelengths a bit differently */
|
||||
virtual std::vector<double> *getWavelengths(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
private:
|
||||
oceanBinaryProtocol::OBPReadRawSpectrumExchange *unformattedSpectrum;
|
||||
oceanBinaryProtocol::OBPReadSpectrumExchange *formattedSpectrum;
|
||||
unsigned char binningFactor;
|
||||
|
||||
static const unsigned int unbinnedNumberOfPixels = 1024;
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* STSSPECTROMETERFEATURE_H */
|
62
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/SparkSpectrometerFeature.h
vendored
Normal file
62
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/SparkSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,62 @@
|
||||
/***************************************************//**
|
||||
* @file SparkSpectrometerFeature.h
|
||||
* @date May 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SPARKSPECTROMETERFEATURE_H
|
||||
#define SPARKSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/temperature/TemperatureFeature.h"
|
||||
#include "vendors/OceanOptics/protocols/obp/impls/OBPTemperatureProtocol.h"
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h"
|
||||
|
||||
|
||||
#define SPARK_TEMPERATURE_DETECTOR_INDEX 0
|
||||
#define SPARK_TEMPERATURE_RESERVED_INDEX 1
|
||||
#define SPARK_TEMPERATURE_CPU_INDEX 2
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class SparkSpectrometerFeature : public OOISpectrometerFeature {
|
||||
public:
|
||||
SparkSpectrometerFeature();
|
||||
virtual ~SparkSpectrometerFeature();
|
||||
|
||||
/* The Spark gets wavelengths a bit differently */
|
||||
virtual std::vector<double> *getWavelengths(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* SPARKSPECTROMETERFEATURE_H */
|
70
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/SpectrometerTriggerMode.h
vendored
Normal file
70
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/SpectrometerTriggerMode.h
vendored
Normal file
@ -0,0 +1,70 @@
|
||||
/***************************************************//**
|
||||
* @file SpectrometerTriggerMode.h
|
||||
* @date August 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This file describes the different kinds of trigger modes
|
||||
* that spectrometers may support.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SPECTROMETER_TRIGGER_MODE_H
|
||||
#define SPECTROMETER_TRIGGER_MODE_H
|
||||
|
||||
#define SPECTROMETER_TRIGGER_MODE_NORMAL 0x00
|
||||
#define SPECTROMETER_TRIGGER_MODE_SOFTWARE 0x01
|
||||
#define SPECTROMETER_TRIGGER_MODE_LEVEL 0x01
|
||||
#define SPECTROMETER_TRIGGER_MODE_SYNCHRONIZATION 0x02
|
||||
#define SPECTROMETER_TRIGGER_MODE_HARDWARE 0x03
|
||||
#define SPECTROMETER_TRIGGER_MODE_EDGE 0x03
|
||||
#define SPECTROMETER_TRIGGER_MODE_SINGLE_SHOT 0x04
|
||||
#define SPECTROMETER_TRIGGER_MODE_SELF_NORMAL 0x80
|
||||
#define SPECTROMETER_TRIGGER_MODE_SELF_SOFTWARE 0x81
|
||||
#define SPECTROMETER_TRIGGER_MODE_SELF_SYNCHRONIZATION 0x82
|
||||
#define SPECTROMETER_TRIGGER_MODE_SELF_HARDWARE 0x83
|
||||
|
||||
#define SPECTROMETER_TRIGGER_MODE_OBP_NORMAL 0x00
|
||||
#define SPECTROMETER_TRIGGER_MODE_OBP_EXTERNAL 0x01
|
||||
#define SPECTROMETER_TRIGGER_MODE_OBP_INTERNAL 0x02
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class SpectrometerTriggerMode {
|
||||
public:
|
||||
SpectrometerTriggerMode(int mode);
|
||||
virtual ~SpectrometerTriggerMode();
|
||||
|
||||
int getTriggerMode();
|
||||
|
||||
/* Overriding equality operator so that modes can be compared. */
|
||||
bool operator==(const SpectrometerTriggerMode &that);
|
||||
|
||||
private:
|
||||
int triggerMode;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* SPECTROMETER_TRIGGER_MODE_H */
|
53
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/USB2000PlusSpectrometerFeature.h
vendored
Normal file
53
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/USB2000PlusSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
/***************************************************//**
|
||||
* @file USB2000PlusSpectrometerFeature.h
|
||||
* @date May 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef USB2000PLUSSPECTROMETERFEATURE_H
|
||||
#define USB2000PLUSSPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class USB2000PlusSpectrometerFeature
|
||||
: public GainAdjustedSpectrometerFeature {
|
||||
public:
|
||||
USB2000PlusSpectrometerFeature(
|
||||
ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~USB2000PlusSpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* USB2000PLUSSPECTROMETERFEATURE_H */
|
51
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/USB2000SpectrometerFeature.h
vendored
Normal file
51
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/USB2000SpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
/***************************************************//**
|
||||
* @file USB2000SpectrometerFeature.h
|
||||
* @date May 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef USB2000SPECTROMETERFEATURE_H
|
||||
#define USB2000SPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class USB2000SpectrometerFeature : public OOISpectrometerFeature {
|
||||
public:
|
||||
USB2000SpectrometerFeature();
|
||||
virtual ~USB2000SpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* USB2000SPECTROMETERFEATURE_H */
|
52
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/USB4000SpectrometerFeature.h
vendored
Normal file
52
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/USB4000SpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
/***************************************************//**
|
||||
* @file USB4000SpectrometerFeature.h
|
||||
* @date May 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef USB4000SPECTROMETERFEATURE_H
|
||||
#define USB4000SPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class USB4000SpectrometerFeature : public GainAdjustedSpectrometerFeature {
|
||||
public:
|
||||
USB4000SpectrometerFeature(
|
||||
ProgrammableSaturationFeature *saturationFeature);
|
||||
virtual ~USB4000SpectrometerFeature();
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* USB4000SPECTROMETERFEATURE_H */
|
55
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/VentanaSpectrometerFeature.h
vendored
Normal file
55
Source/OSIF/include/vendors/OceanOptics/features/spectrometer/VentanaSpectrometerFeature.h
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
/***************************************************//**
|
||||
* @file VentanaSpectrometerFeature.h
|
||||
* @date January 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef VENTANASPECTROMETERFEATURE_H
|
||||
#define VENTANASPECTROMETERFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrometer/OOISpectrometerFeature.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class VentanaSpectrometerFeature : public OOISpectrometerFeature {
|
||||
public:
|
||||
VentanaSpectrometerFeature();
|
||||
virtual ~VentanaSpectrometerFeature();
|
||||
|
||||
/* The Ventana gets wavelengths a bit differently */
|
||||
virtual std::vector<double> *getWavelengths(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
private:
|
||||
static const long INTEGRATION_TIME_MINIMUM;
|
||||
static const long INTEGRATION_TIME_MAXIMUM;
|
||||
static const long INTEGRATION_TIME_INCREMENT;
|
||||
static const long INTEGRATION_TIME_BASE;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* VENTANASPECTROMETERFEATURE_H */
|
68
Source/OSIF/include/vendors/OceanOptics/features/spectrum_processing/SpectrumProcessingFeature.h
vendored
Normal file
68
Source/OSIF/include/vendors/OceanOptics/features/spectrum_processing/SpectrumProcessingFeature.h
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
/***************************************************//**
|
||||
* @file SpectrumProcessingFeature.h
|
||||
* @date February 2015
|
||||
* @author Kirk Clendinning, Heliospectra
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SPECTRUMPROCESSINGFEATURE_H
|
||||
#define SPECTRUMPROCESSINGFEATURE_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "vendors/OceanOptics/features/spectrum_processing/SpectrumProcessingFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class SpectrumProcessingFeature
|
||||
: public FeatureImpl, public SpectrumProcessingFeatureInterface {
|
||||
public:
|
||||
SpectrumProcessingFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~SpectrumProcessingFeature();
|
||||
virtual unsigned char readSpectrumProcessingBoxcarWidth(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
virtual unsigned short int readSpectrumProcessingScansToAverage(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
virtual void writeSpectrumProcessingBoxcarWidth(const Protocol &protocol,
|
||||
const Bus &bus, unsigned char boxcarWidth)
|
||||
throw (FeatureException, IllegalArgumentException);
|
||||
virtual void writeSpectrumProcessingScansToAverage(const Protocol &protocol,
|
||||
const Bus &bus, unsigned short int scansToAverage)
|
||||
throw (FeatureException, IllegalArgumentException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* SPECTRUMPROCESSINGFEATURE_H */
|
@ -0,0 +1,59 @@
|
||||
/***************************************************//**
|
||||
* @file SpectrumProcessingFeatureInterface.h
|
||||
* @date February 2015
|
||||
* @author Ocean Optics, Inc., Kirk Clendinning, Heliospectra
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef SPECTRUMPROCESSINGFEATUREINTERFACE_H
|
||||
#define SPECTRUMPROCESSINGFEATUREINTERFACE_H
|
||||
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class SpectrumProcessingFeatureInterface {
|
||||
public:
|
||||
virtual ~SpectrumProcessingFeatureInterface() = 0;
|
||||
virtual unsigned char readSpectrumProcessingBoxcarWidth(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual unsigned short int readSpectrumProcessingScansToAverage(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual void writeSpectrumProcessingBoxcarWidth(const Protocol &protocol,
|
||||
const Bus &bus, unsigned char boxcarWidth)
|
||||
throw (FeatureException, IllegalArgumentException) = 0;
|
||||
virtual void writeSpectrumProcessingScansToAverage(const Protocol &protocol,
|
||||
const Bus &bus, unsigned short int scansToAverage)
|
||||
throw (FeatureException, IllegalArgumentException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline SpectrumProcessingFeatureInterface::~SpectrumProcessingFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* SPECTRUMPROCESSINGFEATUREINTERFACE_H */
|
57
Source/OSIF/include/vendors/OceanOptics/features/stray_light/StrayLightCoeffsFeature.h
vendored
Normal file
57
Source/OSIF/include/vendors/OceanOptics/features/stray_light/StrayLightCoeffsFeature.h
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
/***************************************************//**
|
||||
* @file StrayLightCoeffsFeature.h
|
||||
* @date February 2012
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef STRAYLIGHTCOEFFSFEATURE_H
|
||||
#define STRAYLIGHTCOEFFSFEATURE_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "vendors/OceanOptics/features/stray_light/StrayLightCoeffsFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class StrayLightCoeffsFeature
|
||||
: public FeatureImpl, public StrayLightCoeffsFeatureInterface {
|
||||
public:
|
||||
StrayLightCoeffsFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~StrayLightCoeffsFeature();
|
||||
virtual std::vector<double> *readStrayLightCoefficients(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* STRAYLIGHTCOEFFSFEATURE_H */
|
50
Source/OSIF/include/vendors/OceanOptics/features/stray_light/StrayLightCoeffsFeatureInterface.h
vendored
Normal file
50
Source/OSIF/include/vendors/OceanOptics/features/stray_light/StrayLightCoeffsFeatureInterface.h
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
/***************************************************//**
|
||||
* @file StrayLightCoeffsFeatureInterface.h
|
||||
* @date February 2012
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef STRAYLIGHTCOEFFSFEATUREINTERFACE_H
|
||||
#define STRAYLIGHTCOEFFSFEATUREINTERFACE_H
|
||||
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class StrayLightCoeffsFeatureInterface {
|
||||
public:
|
||||
virtual ~StrayLightCoeffsFeatureInterface() = 0;
|
||||
virtual std::vector<double> *readStrayLightCoefficients(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline StrayLightCoeffsFeatureInterface::~StrayLightCoeffsFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* STRAYLIGHTCOEFFSFEATUREINTERFACE_H */
|
65
Source/OSIF/include/vendors/OceanOptics/features/temperature/TemperatureFeature.h
vendored
Normal file
65
Source/OSIF/include/vendors/OceanOptics/features/temperature/TemperatureFeature.h
vendored
Normal file
@ -0,0 +1,65 @@
|
||||
/***************************************************//**
|
||||
* @file TemperatureFeature.h
|
||||
* @date January 2015
|
||||
* @author Kirk Clendinning, Heliospectra
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc, Heliospectra AB
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef TEMPERATUREFEATURE_H
|
||||
#define TEMPERATUREFEATURE_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "vendors/OceanOptics/features/temperature/TemperatureFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class TemperatureFeature
|
||||
: public FeatureImpl, public TemperatureFeatureInterface {
|
||||
public:
|
||||
TemperatureFeature(std::vector<ProtocolHelper *> helpers);
|
||||
virtual ~TemperatureFeature();
|
||||
|
||||
virtual unsigned char readTemperatureCount(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
virtual double readTemperature(const Protocol &protocol,
|
||||
const Bus &bus, int index) throw (FeatureException);
|
||||
|
||||
virtual std::vector<double> *readAllTemperatures(
|
||||
const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* TEMPERATUREFEATURE_H */
|
54
Source/OSIF/include/vendors/OceanOptics/features/temperature/TemperatureFeatureInterface.h
vendored
Normal file
54
Source/OSIF/include/vendors/OceanOptics/features/temperature/TemperatureFeatureInterface.h
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
/***************************************************//**
|
||||
* @file TemperatureFeatureInterface.h
|
||||
* @date January 2015
|
||||
* @author Ocean Optics, Inc., Kirk Clendinning, Heliospectra
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2015, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef TEMPERATUREFEATUREINTERFACE_H
|
||||
#define TEMPERATUREFEATUREINTERFACE_H
|
||||
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class TemperatureFeatureInterface {
|
||||
public:
|
||||
virtual ~TemperatureFeatureInterface() = 0;
|
||||
virtual unsigned char readTemperatureCount(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual double readTemperature(const Protocol &protocol,
|
||||
const Bus &bus, int index) throw (FeatureException) = 0;
|
||||
virtual std::vector<double> *readAllTemperatures(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline TemperatureFeatureInterface::~TemperatureFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* TEMPERATUREFEATUREINTERFACE_H */
|
55
Source/OSIF/include/vendors/OceanOptics/features/thermoelectric/QEProThermoElectricFeature.h
vendored
Normal file
55
Source/OSIF/include/vendors/OceanOptics/features/thermoelectric/QEProThermoElectricFeature.h
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
/***************************************************//**
|
||||
* @file QEProThermoElectricFeature.h
|
||||
* @date September 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the thermo-
|
||||
* electric unit (TEC) on the QE-PRO.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
#ifndef QEPROTHERMOELECTRICFEATURE_H
|
||||
#define QEPROTHERMOELECTRICFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/thermoelectric/ThermoElectricFeatureBase.h"
|
||||
|
||||
namespace seabreeze {
|
||||
class QEProThermoElectricFeature : public ThermoElectricFeatureBase {
|
||||
public:
|
||||
QEProThermoElectricFeature();
|
||||
virtual ~QEProThermoElectricFeature();
|
||||
|
||||
/* Inherited from ThermoElectricFeatureBase where they are pure virtual */
|
||||
virtual double getDefaultSetPointCelsius(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual bool getDefaultThermoElectricEnable(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Override from Feature */
|
||||
virtual bool initialize(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
};
|
||||
}
|
||||
|
||||
#endif /* QEPROTHERMOELECTRICFEATURE_H */
|
84
Source/OSIF/include/vendors/OceanOptics/features/thermoelectric/ThermoElectricFeatureBase.h
vendored
Normal file
84
Source/OSIF/include/vendors/OceanOptics/features/thermoelectric/ThermoElectricFeatureBase.h
vendored
Normal file
@ -0,0 +1,84 @@
|
||||
/***************************************************//**
|
||||
* @file ThermoElectricFeatureBase.h
|
||||
* @date March 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the thermo-
|
||||
* electric unit for devices with a clean
|
||||
* protocol implementation. This is an abstract base
|
||||
* class but it does much of the work needed for most
|
||||
* implementations that can delegate almost everything
|
||||
* to the protocol layer.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef THERMOELECTRICFEATUREBASE_H
|
||||
#define THERMOELECTRICFEATUREBASE_H
|
||||
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/protocols/ProtocolHelper.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
#include "vendors/OceanOptics/features/thermoelectric/ThermoElectricFeatureInterface.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class ThermoElectricFeatureBase : public FeatureImpl,
|
||||
public ThermoElectricFeatureInterface {
|
||||
public:
|
||||
ThermoElectricFeatureBase();
|
||||
virtual ~ThermoElectricFeatureBase();
|
||||
virtual void setThermoElectricEnable(const Protocol &protocol,
|
||||
const Bus &bus, bool enable) throw (FeatureException);
|
||||
virtual double getTemperatureCelsius(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual void setTemperatureSetPointCelsius(const Protocol &protocol,
|
||||
const Bus &bus, double degreesC)
|
||||
throw (FeatureException, IllegalArgumentException);
|
||||
|
||||
/* These remain abstract because the limits of any given device will
|
||||
* depend on its implementation. They will either need to be hardcoded
|
||||
* into the implementation or be queried from the device.
|
||||
*/
|
||||
virtual double getDefaultSetPointCelsius(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual bool getDefaultThermoElectricEnable(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
|
||||
/* Inherited from Feature */
|
||||
/* This is still abstract in case the device needs to do anything
|
||||
* special with regards to defaults when it is initialized.
|
||||
*/
|
||||
virtual bool initialize(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException) = 0;
|
||||
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* THERMOELECTRICFEATUREBASE_H */
|
64
Source/OSIF/include/vendors/OceanOptics/features/thermoelectric/ThermoElectricFeatureInterface.h
vendored
Normal file
64
Source/OSIF/include/vendors/OceanOptics/features/thermoelectric/ThermoElectricFeatureInterface.h
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
/***************************************************//**
|
||||
* @file ThermoElectricFeatureInterface.h
|
||||
* @date February 2011
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the thermo-
|
||||
* electric cooler (TEC) feature.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef THERMOELECTRICFEATUREINTERFACE_H
|
||||
#define THERMOELECTRICFEATUREINTERFACE_H
|
||||
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class ThermoElectricFeatureInterface {
|
||||
public:
|
||||
virtual ~ThermoElectricFeatureInterface() = 0;
|
||||
virtual void setThermoElectricEnable(const Protocol &protocol,
|
||||
const Bus &bus, bool enable) throw (FeatureException) = 0;
|
||||
virtual double getTemperatureCelsius(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual void setTemperatureSetPointCelsius(const Protocol &protocol,
|
||||
const Bus &bus, double degreesC)
|
||||
throw (FeatureException, IllegalArgumentException) = 0;
|
||||
|
||||
virtual double getDefaultSetPointCelsius(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
virtual bool getDefaultThermoElectricEnable(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline ThermoElectricFeatureInterface::~ThermoElectricFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* THERMOELECTRICFEATUREINTERFACE_H */
|
68
Source/OSIF/include/vendors/OceanOptics/features/thermoelectric/ThermoElectricQEFeature.h
vendored
Normal file
68
Source/OSIF/include/vendors/OceanOptics/features/thermoelectric/ThermoElectricQEFeature.h
vendored
Normal file
@ -0,0 +1,68 @@
|
||||
/***************************************************//**
|
||||
* @file ThermoElectricQEFeature.h
|
||||
* @date February 2009
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the thermo-
|
||||
* electric cooler (TEC) on the QE65000 and similar
|
||||
* spectrometers (including the NIRQuest).
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef THERMOELECTRICQEFEATURE_H
|
||||
#define THERMOELECTRICQEFEATURE_H
|
||||
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/Feature.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
#include "vendors/OceanOptics/features/thermoelectric/ThermoElectricFeatureBase.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class ThermoElectricQEFeature : public ThermoElectricFeatureBase {
|
||||
public:
|
||||
ThermoElectricQEFeature();
|
||||
virtual ~ThermoElectricQEFeature();
|
||||
|
||||
/* Inherited from ThermoElectricFeatureBase where they are pure virtual */
|
||||
double getDefaultSetPointCelsius(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
bool getDefaultThermoElectricEnable(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Override from Feature */
|
||||
virtual bool initialize(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
|
||||
private:
|
||||
std::vector<byte> *readTECDefaults(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* THERMOELECTRICQEFEATURE_H */
|
63
Source/OSIF/include/vendors/OceanOptics/features/thermoelectric/VentanaThermoElectricFeature.h
vendored
Normal file
63
Source/OSIF/include/vendors/OceanOptics/features/thermoelectric/VentanaThermoElectricFeature.h
vendored
Normal file
@ -0,0 +1,63 @@
|
||||
/***************************************************//**
|
||||
* @file VentanaThermoElectricFeature.h
|
||||
* @date March 2013
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* This feature provides an interface to the thermo-
|
||||
* electric unit (TEC) on the Ventana.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef VENTANATHERMOELECTRICFEATURE_H
|
||||
#define VENTANATHERMOELECTRICFEATURE_H
|
||||
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/Feature.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
#include "common/exceptions/IllegalArgumentException.h"
|
||||
#include "vendors/OceanOptics/features/thermoelectric/ThermoElectricFeatureBase.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class VentanaThermoElectricFeature : public ThermoElectricFeatureBase {
|
||||
public:
|
||||
VentanaThermoElectricFeature();
|
||||
virtual ~VentanaThermoElectricFeature();
|
||||
|
||||
/* Inherited from ThermoElectricFeatureBase where they are pure virtual */
|
||||
virtual double getDefaultSetPointCelsius(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
virtual bool getDefaultThermoElectricEnable(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Override from Feature, used to detect whether capability is present */
|
||||
virtual bool initialize(const Protocol &protocol, const Bus &bus)
|
||||
throw (FeatureException);
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* VENTANATHERMOELECTRICFEATURE_H */
|
59
Source/OSIF/include/vendors/OceanOptics/features/wavecal/WaveCalFeature.h
vendored
Normal file
59
Source/OSIF/include/vendors/OceanOptics/features/wavecal/WaveCalFeature.h
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
/***************************************************//**
|
||||
* @file WaveCalFeature.h
|
||||
* @date February 2011
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef WAVECALFEATURE_H
|
||||
#define WAVECALFEATURE_H
|
||||
|
||||
#include "vendors/OceanOptics/features/wavecal/WaveCalFeatureInterface.h"
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/features/FeatureImpl.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
|
||||
class WaveCalFeature : public FeatureImpl, public WaveCalFeatureInterface {
|
||||
public:
|
||||
WaveCalFeature(std::vector<ProtocolHelper *> helpers,
|
||||
unsigned int numberOfPixels);
|
||||
virtual ~WaveCalFeature();
|
||||
virtual std::vector<double> *readWavelengths(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException);
|
||||
|
||||
/* Overriding from Feature */
|
||||
virtual FeatureFamily getFeatureFamily();
|
||||
|
||||
protected:
|
||||
unsigned int numberOfPixels;
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif /* WAVECALFEATURE_H */
|
||||
|
50
Source/OSIF/include/vendors/OceanOptics/features/wavecal/WaveCalFeatureInterface.h
vendored
Normal file
50
Source/OSIF/include/vendors/OceanOptics/features/wavecal/WaveCalFeatureInterface.h
vendored
Normal file
@ -0,0 +1,50 @@
|
||||
/***************************************************//**
|
||||
* @file WaveCalFeatureInterface.h
|
||||
* @date February 2011
|
||||
* @author Ocean Optics, Inc.
|
||||
*
|
||||
* LICENSE:
|
||||
*
|
||||
* SeaBreeze Copyright (C) 2014, Ocean Optics Inc
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining
|
||||
* a copy of this software and associated documentation files (the
|
||||
* "Software"), to deal in the Software without restriction, including
|
||||
* without limitation the rights to use, copy, modify, merge, publish,
|
||||
* distribute, sublicense, and/or sell copies of the Software, and to
|
||||
* permit persons to whom the Software is furnished to do so, subject
|
||||
* to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included
|
||||
* in all copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*******************************************************/
|
||||
|
||||
#ifndef WAVECALFEATUREINTERFACE_H
|
||||
#define WAVECALFEATUREINTERFACE_H
|
||||
|
||||
#include "common/protocols/Protocol.h"
|
||||
#include "common/buses/Bus.h"
|
||||
#include "common/exceptions/FeatureException.h"
|
||||
|
||||
namespace seabreeze {
|
||||
class WaveCalFeatureInterface {
|
||||
public:
|
||||
virtual ~WaveCalFeatureInterface() = 0;
|
||||
virtual std::vector<double> *readWavelengths(const Protocol &protocol,
|
||||
const Bus &bus) throw (FeatureException) = 0;
|
||||
};
|
||||
|
||||
/* Default implementation for (otherwise) pure virtual destructor */
|
||||
inline WaveCalFeatureInterface::~WaveCalFeatureInterface() {}
|
||||
}
|
||||
|
||||
#endif /* WAVECALFEATUREINTERFACE_H */
|
||||
|
Reference in New Issue
Block a user