first commnit

This commit is contained in:
2022-08-16 09:26:36 +08:00
commit 11d5fc83c2
941 changed files with 168924 additions and 0 deletions

View File

@ -0,0 +1,81 @@
/***************************************************//**
* @file FPGARegisterCodes.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_CODES_H
#define SEABREEZE_FPGA_REGISTER_CODES_H
#include "common/features/Feature.h"
#include "common/buses/Bus.h"
#include "common/exceptions/FeatureException.h"
namespace seabreeze {
namespace ooiProtocol {
namespace FPGARegisterCodes {
/**
* These codes were taken from the USB2000+ Data Sheet as it existed
* in October 2012. They are believed to apply to the vast majority
* of Ocean Optics spectrometers, but because some variance is expected
* between models and over time (especially with custom OEM firmware),
* you should check your spectrometer's documentation before assuming
* these codes are correct for your device.
*/
class Base {
public:
static const byte FIRMWARE_VERSION;
static const byte SINGLE_STROBE_HIGH_CLOCK_TRANSITION_DELAY_COUNT;
static const byte SINGLE_STROBE_LOW_CLOCK_TRANSITION_DELAY_COUNT;
static const byte LAMP_ENABLE;
static const byte GPIO_MUX_REGISTER;
static const byte GPIO_OUTPUT_ENABLE;
static const byte GPIO_DATA_REGISTER;
static const byte OFFSET_VALUE;
static const byte OFFSET_CONTROL;
static const byte MAXIMUM_SATURATION_LEVEL;
};
class V1 : public Base {
public:
static const byte CONTINUOUS_STROBE_TIMER_INTERVAL_DIVISOR;
static const byte CONTINUOUS_STROBE_BASE_CLOCK_DIVISOR;
};
class V3 : public Base {
public:
static const byte CONTINUOUS_STROBE_TIMER_MSB;
static const byte CONTINUOUS_STROBE_TIMER_LSB;
};
}
}
}
#endif

View File

@ -0,0 +1,83 @@
/***************************************************//**
* @file OpCodes.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 SEABREEZE_OPCODES_H
#define SEABREEZE_OPCODES_H
#include "common/SeaBreeze.h"
namespace seabreeze {
namespace ooiProtocol {
class OpCodes {
public:
/* Set the integration time */
static const byte OP_ITIME;
/* Set the strobe/lamp enable */
static const byte OP_STROBE;
/* Read 15 bytes from an EEPROM slot */
static const byte OP_GETINFO;
/* Write 15 bytes to an EEPROM slot */
static const byte OP_SETINFO;
/* Request a spectrum */
static const byte OP_REQUESTSPEC;
/* Set the trigger mode */
static const byte OP_SETTRIGMODE;
/* Set the thermoelectric cooling enable on the QE */
static const byte OP_TECENABLE_QE;
/* Read the current TEC temperature on the QE */
static const byte OP_READTEC_QE;
/* Set the TEC set point on the QE */
static const byte OP_TECSETTEMP_QE;
/* Write a field to the FPGA status register */
static const byte OP_WRITE_REGISTER;
/* Read a field from the FPGA status register */
static const byte OP_READ_REGISTER;
/* Read the irradiance calibration from EEPROM (if available) */
static const byte OP_READ_IRRAD_CAL;
/* Write the irradiance calibration to EEPROM (if available) */
static const byte OP_WRITE_IRRAD_CAL;
};
}
}
#endif

View File

@ -0,0 +1,36 @@
/***************************************************//**
* @file QETECConstants.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 SEABREEZE_QETECCONSTANTS_H
#define SEABREEZE_QETECCONSTANTS_H
// TEC cooler understands increments of 0.1 degrees C per encoder count.
#define QE_TEC_COUNTS_PER_DEGREE_C 10
#endif

View File

@ -0,0 +1,45 @@
/***************************************************//**
* @file FPGARegisterReadExchange.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_READ_EXCHANGE_H
#define SEABREEZE_FPGA_REGISTER_READ_EXCHANGE_H
#include "common/protocols/Transaction.h"
namespace seabreeze {
class FPGARegisterReadExchange : public Transaction {
public:
FPGARegisterReadExchange(byte address);
virtual ~FPGARegisterReadExchange();
};
}
#endif

View File

@ -0,0 +1,45 @@
/***************************************************//**
* @file FPGARegisterWriteExchange.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_WRITE_EXCHANGE_H
#define SEABREEZE_FPGA_REGISTER_WRITE_EXCHANGE_H
#include "common/protocols/Transfer.h"
namespace seabreeze {
class FPGARegisterWriteExchange : public Transfer {
public:
FPGARegisterWriteExchange(byte address, unsigned short value);
virtual ~FPGARegisterWriteExchange();
};
}
#endif

View File

@ -0,0 +1,50 @@
/***************************************************//**
* @file FPGASpectrumExchange.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 SEABREEZE_FPGASPECTRUMEXCHANGE_H
#define SEABREEZE_FPGASPECTRUMEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/ReadSpectrumExchange.h"
#include "common/Data.h"
namespace seabreeze {
namespace ooiProtocol {
class FPGASpectrumExchange : public ReadSpectrumExchange {
public:
FPGASpectrumExchange(unsigned int readoutLength,
unsigned int numberOfPixels);
virtual ~FPGASpectrumExchange();
/* Inherited */
virtual Data *transfer(TransferHelper *helper) throw (ProtocolException);
};
}
}
#endif

View File

@ -0,0 +1,59 @@
/***************************************************//**
* @file FlameNIRSpectrumExchange.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 SEABREEZE_FLAMENIRSPECTRUMEXCHANGE_H
#define SEABREEZE_FLAMENIRSPECTRUMEXCHANGE_H
#include "common/Data.h"
#include "vendors/OceanOptics/protocols/ooi/exchanges/ReadSpectrumExchange.h"
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
namespace seabreeze {
namespace ooiProtocol {
/**
* @brief Spectrum exchange for FlameNIR spectrometer
*
* This class was needed because unlike other FX2-era spectrometers,
* the Flame-NIR does not return a "sync byte" at the end of a spectrum.
*/
class FlameNIRSpectrumExchange : public ReadSpectrumExchange {
public:
FlameNIRSpectrumExchange(unsigned int readoutLength,
unsigned int numberOfPixels, GainAdjustedSpectrometerFeature *feature);
virtual ~FlameNIRSpectrumExchange();
virtual Data *transfer(TransferHelper *helper) throw (ProtocolException);
protected:
GainAdjustedSpectrometerFeature *spectrometerFeature;
};
}
}
#endif

View File

@ -0,0 +1,50 @@
/***************************************************//**
* @file HRFPGASpectrumExchange.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 SEABREEZE_HRFPGASPECTRUMEXCHANGE_H
#define SEABREEZE_HRFPGASPECTRUMEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/ReadSpectrumExchange.h"
#include "common/Data.h"
namespace seabreeze {
namespace ooiProtocol {
class HRFPGASpectrumExchange : public ReadSpectrumExchange {
public:
HRFPGASpectrumExchange(unsigned int readoutLength,
unsigned int numberOfPixels);
virtual ~HRFPGASpectrumExchange();
/* Inherited */
virtual Data *transfer(TransferHelper *helper) throw (ProtocolException);
};
}
}
#endif

View File

@ -0,0 +1,54 @@
/***************************************************//**
* @file IntegrationTimeExchange.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 SEABREEZE_INTEGRATIONTIMEEXCHANGE_H
#define SEABREEZE_INTEGRATIONTIMEEXCHANGE_H
#include "common/protocols/Transfer.h"
#include "common/Data.h"
namespace seabreeze {
namespace ooiProtocol {
class IntegrationTimeExchange : public Transfer {
public:
IntegrationTimeExchange(unsigned long integrationTimeBase_usec);
virtual ~IntegrationTimeExchange();
void setIntegrationTimeMicros(unsigned long integrationTime_usec);
/* Inherited from Transfer */
Data *transfer(TransferHelper *helper) throw (ProtocolException);
private:
unsigned long integrationTimeBase_usec;
unsigned long integrationTime_usec;
};
}
}
#endif

View File

@ -0,0 +1,57 @@
/***************************************************//**
* @file JazSpectrumExchange.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 SEABREEZE_JAZSPECTRUMEXCHANGE_H
#define SEABREEZE_JAZSPECTRUMEXCHANGE_H
#include "common/Data.h"
#include "vendors/OceanOptics/protocols/ooi/exchanges/ReadSpectrumExchange.h"
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
namespace seabreeze {
namespace ooiProtocol {
class JazSpectrumExchange : public ReadSpectrumExchange {
public:
JazSpectrumExchange(unsigned int readoutLength,
unsigned int numberOfPixels, GainAdjustedSpectrometerFeature *feature);
virtual ~JazSpectrumExchange();
/* Inherited */
virtual Data *transfer(TransferHelper *helper) throw (ProtocolException);
protected:
/* This is necessary so that the saturation level which is determined
* at initialization is available to certain protocol messages.
*/
GainAdjustedSpectrometerFeature *spectrometerFeature;
};
}
}
#endif

View File

@ -0,0 +1,58 @@
/***************************************************//**
* @file MayaProSpectrumExchange.h
* @date November 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 SEABREEZE_MAYAPROSPECTRUMEXCHANGE_H
#define SEABREEZE_MAYAPROSPECTRUMEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/ReadSpectrumExchange.h"
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
#include "common/Data.h"
namespace seabreeze {
namespace ooiProtocol {
class MayaProSpectrumExchange : public ReadSpectrumExchange {
public:
MayaProSpectrumExchange(unsigned int readoutLength,
unsigned int numberOfPixels,
GainAdjustedSpectrometerFeature *spectrometer);
virtual ~MayaProSpectrumExchange();
/* Inherited */
virtual Data *transfer(TransferHelper *helper) throw (ProtocolException);
private:
/* This is necessary so that the saturation level which is determined
* at initialization is available to certain protocol messages.
*/
GainAdjustedSpectrometerFeature *spectrometerFeature;
};
}
}
#endif

View File

@ -0,0 +1,57 @@
/***************************************************//**
* @file NIRQuestSpectrumExchange.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 SEABREEZE_NIRQUESTSPECTRUMEXCHANGE_H
#define SEABREEZE_NIRQUESTSPECTRUMEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/QESpectrumExchange.h"
#include "common/Data.h"
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
namespace seabreeze {
namespace ooiProtocol {
class NIRQuestSpectrumExchange : public QESpectrumExchange {
public:
NIRQuestSpectrumExchange(unsigned int readoutLength,
unsigned int numberOfPixels, GainAdjustedSpectrometerFeature *feature);
virtual ~NIRQuestSpectrumExchange();
/* Inherited */
virtual Data *transfer(TransferHelper *helper) throw (ProtocolException);
protected:
/* This is necessary so that the saturation level which is determined
* at initialization is available to certain protocol messages.
*/
GainAdjustedSpectrometerFeature *spectrometerFeature;
};
}
}
#endif

View File

@ -0,0 +1,52 @@
/***************************************************//**
* @file OOI2KSpectrumExchange.h
* @date February 2009
* @author Ocean Optics, Inc.
*
* This is a protocol exchange that can be used for the
* HR2000 (as well as some other early OOI spectrometers).
*
* 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_OOI2KSPECTRUMEXCHANGE_H
#define SEABREEZE_OOI2KSPECTRUMEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/ReadSpectrumExchange.h"
#include "common/Data.h"
namespace seabreeze {
namespace ooiProtocol {
class OOI2KSpectrumExchange : public ReadSpectrumExchange {
public:
OOI2KSpectrumExchange(unsigned int readoutLength, unsigned int numberOfPixels);
virtual ~OOI2KSpectrumExchange();
/* Inherited */
virtual Data *transfer(TransferHelper *helper) throw (ProtocolException);
};
}
}
#endif

View File

@ -0,0 +1,51 @@
/***************************************************//**
* @file OOIIrradCalExchange.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 SEABREEZE_OOIIRRADCALEXCHANGE_H
#define SEABREEZE_OOIIRRADCALEXCHANGE_H
#include "common/protocols/Transaction.h"
#include "common/protocols/ProtocolHint.h"
#include <vector>
namespace seabreeze {
namespace ooiProtocol {
class OOIIrradCalExchange : public Transaction {
public:
OOIIrradCalExchange(int numberOfPixels);
virtual ~OOIIrradCalExchange();
protected:
unsigned int numberOfPixels;
};
}
}
#endif /* SEABREEZE_OOIIRRADCALEXCHANGE_H */

View File

@ -0,0 +1,53 @@
/***************************************************//**
* @file OOIReadIrradCalExchange.h
* @date March 2010
* @author Ocean Optics, Inc.
*
* This is a protocol exchange that can be used for the
* USB2000+ and some others.
*
* 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_OOIREADIRRADCALEXCHANGE_H
#define SEABREEZE_OOIREADIRRADCALEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/OOIIrradCalExchange.h"
#include "common/Data.h"
namespace seabreeze {
namespace ooiProtocol {
class OOIReadIrradCalExchange : public OOIIrradCalExchange {
public:
OOIReadIrradCalExchange(int numberOfPixels);
virtual ~OOIReadIrradCalExchange();
/* Inherited */
virtual Data *transfer(TransferHelper* helper) throw (ProtocolException);
};
}
}
#endif /* SEABREEZE_OOIREADIRRADCALEXCHANGE_H */

View File

@ -0,0 +1,54 @@
/***************************************************//**
* @file OOIWriteIrradCalExchange.h
* @date February 2012
* @author Ocean Optics, Inc.
*
* This is a protocol exchange that can be used for the
* USB2000+ and some others.
*
* 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_OOIWRITEIRRADCALEXCHANGE_H
#define SEABREEZE_OOIWRITEIRRADCALEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/OOIIrradCalExchange.h"
#include "common/Data.h"
namespace seabreeze {
namespace ooiProtocol {
class OOIWriteIrradCalExchange : public OOIIrradCalExchange {
public:
OOIWriteIrradCalExchange(int numberOfPixels);
virtual ~OOIWriteIrradCalExchange();
int setCalibration(const std::vector<float> &calibration);
/* Inherited */
virtual Data *transfer(TransferHelper* helper) throw (ProtocolException);
};
}
}
#endif /* SEABREEZE_OOIWRITEIRRADCALEXCHANGE_H */

View File

@ -0,0 +1,50 @@
/***************************************************//**
* @file QESpectrumExchange.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 SEABREEZE_QESPECTRUMEXCHANGE_H
#define SEABREEZE_QESPECTRUMEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/ReadSpectrumExchange.h"
#include "common/Data.h"
namespace seabreeze {
namespace ooiProtocol {
class QESpectrumExchange : public ReadSpectrumExchange {
public:
QESpectrumExchange(unsigned int readoutLength,
unsigned int numberOfPixels);
virtual ~QESpectrumExchange();
/* Inherited */
virtual Data *transfer(TransferHelper *helper) throw (ProtocolException);
};
}
}
#endif

View File

@ -0,0 +1,46 @@
/***************************************************//**
* @file ReadEEPROMSlotExchange.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 SEABREEZE_READEEPROMSLOTEXCHANGE_H
#define SEABREEZE_READEEPROMSLOTEXCHANGE_H
#include "common/protocols/Transaction.h"
namespace seabreeze {
class ReadEEPROMSlotExchange : public Transaction {
public:
ReadEEPROMSlotExchange(int slot);
virtual ~ReadEEPROMSlotExchange();
};
}
#endif

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file ReadSpectrumExchange.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 SEABREEZE_READSPECTRUMEXCHANGE_H
#define SEABREEZE_READSPECTRUMEXCHANGE_H
#include "common/protocols/Transfer.h"
namespace seabreeze {
namespace ooiProtocol {
class ReadSpectrumExchange : public Transfer {
public:
ReadSpectrumExchange(unsigned int readoutLength, unsigned int numberOfPixels);
virtual ~ReadSpectrumExchange();
protected:
unsigned int numberOfPixels;
};
}
}
#endif

View File

@ -0,0 +1,49 @@
/***************************************************//**
* @file ReadTECQETemperatureExchange.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 SEABREEZE_READTECQETEMPERATUREEXCHANGE_H
#define SEABREEZE_READTECQETEMPERATUREEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/ReadTECTemperatureExchange.h"
namespace seabreeze {
namespace ooiProtocol {
class ReadTECQETemperatureExchange : public ReadTECTemperatureExchange {
public:
ReadTECQETemperatureExchange();
virtual ~ReadTECQETemperatureExchange();
/* Inherited from Transaction */
virtual Data *transfer(TransferHelper *helper) throw (ProtocolException);
};
}
}
#endif

View File

@ -0,0 +1,45 @@
/***************************************************//**
* @file ReadTECTemperatureExchange.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 SEABREEZE_READTECTEMPERATUREEXCHANGE_H
#define SEABREEZE_READTECTEMPERATUREEXCHANGE_H
#include "common/protocols/Transaction.h"
namespace seabreeze {
namespace ooiProtocol {
class ReadTECTemperatureExchange : public Transaction {
public:
ReadTECTemperatureExchange();
virtual ~ReadTECTemperatureExchange();
};
}
}
#endif

View File

@ -0,0 +1,45 @@
/***************************************************//**
* @file RequestSpectrumExchange.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 SEABREEZE_REQUESTSPECTRUMEXCHANGE_H
#define SEABREEZE_REQUESTSPECTRUMEXCHANGE_H
#include "common/protocols/Transfer.h"
namespace seabreeze {
namespace ooiProtocol {
class RequestSpectrumExchange : public Transfer {
public:
RequestSpectrumExchange();
virtual ~RequestSpectrumExchange();
};
}
}
#endif

View File

@ -0,0 +1,54 @@
/***************************************************//**
* @file StrobeEnableExchange.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 SEABREEZE_STROBEENABLEEXCHANGE_H
#define SEABREEZE_STROBEENABLEEXCHANGE_H
#include "common/protocols/Transfer.h"
namespace seabreeze {
namespace ooiProtocol {
class StrobeEnableExchange : public Transfer {
public:
StrobeEnableExchange();
virtual ~StrobeEnableExchange();
void setEnable(bool enable);
/* Inherited from Transfer */
Data *transfer(TransferHelper *helper) throw (ProtocolException);
private:
bool strobeEnable;
};
}
}
#endif

View File

@ -0,0 +1,52 @@
/***************************************************//**
* @file TECEnableExchange.h
* @date February 2009
* @author Ocean Optics, Inc.
*
* This is made abstract so that subclasses specific to
* the QE/NIRQuest protocol and the old legacy NIR256/512
* can coexist. The NIR256/512 are not going to be supported
* at first, but the design will leave room for them.
*
* 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_TECENABLEEXCHANGE_H
#define SEABREEZE_TECENABLEEXCHANGE_H
#include "common/protocols/Transfer.h"
namespace seabreeze {
namespace ooiProtocol {
class TECEnableExchange : public Transfer {
public:
TECEnableExchange();
virtual ~TECEnableExchange();
virtual void setEnable(bool enable) = 0;
};
}
}
#endif

View File

@ -0,0 +1,58 @@
/***************************************************//**
* @file TECQEEnableExchange.h
* @date February 2009
* @author Ocean Optics, Inc.
*
* This is specifically for the QE-style of TEC, including
* the QE65000 and NIRQuest thermoelectric coolers. This
* will not work for the legacy NIR256/512 TEC, but a
* corresponding implementation could be derived adjacent
* to this class.
*
* 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_TECQEENABLEEXCHANGE_H
#define SEABREEZE_TECQEENABLEEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/TECEnableExchange.h"
namespace seabreeze {
namespace ooiProtocol {
class TECQEEnableExchange : public TECEnableExchange {
public:
TECQEEnableExchange();
virtual ~TECQEEnableExchange();
/* Inherited from TECEnableExchange */
virtual void setEnable(bool enable);
Data *transfer(TransferHelper *helper) throw (ProtocolException);
private:
bool tecEnable;
};
}
}
#endif

View File

@ -0,0 +1,54 @@
/***************************************************//**
* @file TriggerModeExchange.h
* @date August 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 SEABREEZE_TRIGGERMODEEXCHANGE_H
#define SEABREEZE_TRIGGERMODEEXCHANGE_H
#include "common/protocols/Transfer.h"
#include "common/Data.h"
#include "vendors/OceanOptics/features/spectrometer/SpectrometerTriggerMode.h"
namespace seabreeze {
namespace ooiProtocol {
class TriggerModeExchange : public Transfer {
public:
TriggerModeExchange();
virtual ~TriggerModeExchange();
void setTriggerMode(SpectrometerTriggerMode &mode);
/* Inherited from Transfer */
Data *transfer(TransferHelper *helper) throw (ProtocolException);
private:
int triggerMode;
};
}
}
#endif

View File

@ -0,0 +1,57 @@
/***************************************************//**
* @file USBFPGASpectrumExchange.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 SEABREEZE_USBFPGASPECTRUMEXCHANGE_H
#define SEABREEZE_USBFPGASPECTRUMEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/FPGASpectrumExchange.h"
#include "common/Data.h"
#include "vendors/OceanOptics/features/spectrometer/GainAdjustedSpectrometerFeature.h"
namespace seabreeze {
namespace ooiProtocol {
class USBFPGASpectrumExchange : public FPGASpectrumExchange {
public:
USBFPGASpectrumExchange(unsigned int readoutLength,
unsigned int numberOfPixels, GainAdjustedSpectrometerFeature *feature);
virtual ~USBFPGASpectrumExchange();
/* Inherited */
virtual Data *transfer(TransferHelper *helper) throw (ProtocolException);
protected:
/* This is necessary so that the saturation level which is determined
* at initialization is available to certain protocol messages.
*/
GainAdjustedSpectrometerFeature *spectrometerFeature;
};
}
}
#endif

View File

@ -0,0 +1,43 @@
/***************************************************//**
* @file WriteEEPROMSlotExchange.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_WRITE_EEPROM_SLOT_EXCHANGE_H
#define SEABREEZE_WRITE_EEPROM_SLOT_EXCHANGE_H
#include "common/protocols/Transaction.h"
namespace seabreeze {
class WriteEEPROMSlotExchange : public Transaction {
public:
WriteEEPROMSlotExchange(int slot, const std::vector<unsigned char>& data);
virtual ~WriteEEPROMSlotExchange();
};
}
#endif

View File

@ -0,0 +1,58 @@
/***************************************************//**
* @file WriteTECQESetPointExchange.h
* @date February 2009
* @author Ocean Optics, Inc.
*
* This is made abstract so that subclasses specific to
* the QE/NIRQuest protocol and the old legacy NIR256/512
* can coexist. The NIR256/512 are not going to be supported
* at first, but the design will leave room for them.
*
* 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_WRITETECQESETPOINTEXCHANGE_H
#define SEABREEZE_WRITETECQESETPOINTEXCHANGE_H
#include "vendors/OceanOptics/protocols/ooi/exchanges/WriteTECSetPointExchange.h"
namespace seabreeze {
namespace ooiProtocol {
class WriteTECQESetPointExchange : public WriteTECSetPointExchange {
public:
WriteTECQESetPointExchange();
virtual ~WriteTECQESetPointExchange();
/** Inherited from WriteTECSetPointExchange */
virtual void setSetPointCelsius(double degreesC);
Data *transfer(TransferHelper *helper) throw (ProtocolException);
private:
int tecCounts;
};
}
}
#endif /* OOIPROTOCOLWRITETECQESETPOINTEXCHANGE_H */

View File

@ -0,0 +1,52 @@
/***************************************************//**
* @file WriteTECSetPointExchange.h
* @date February 2009
* @author Ocean Optics, Inc.
*
* This is made abstract so that subclasses specific to
* the QE/NIRQuest protocol and the old legacy NIR256/512
* can coexist. The NIR256/512 are not going to be supported
* at first, but the design will leave room for them.
*
* 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_WRITETECSETPOINTEXCHANGE_H
#define SEABREEZE_WRITETECSETPOINTEXCHANGE_H
#include "common/protocols/Transfer.h"
namespace seabreeze {
namespace ooiProtocol {
class WriteTECSetPointExchange : public Transfer {
public:
WriteTECSetPointExchange();
virtual ~WriteTECSetPointExchange();
virtual void setSetPointCelsius(double degreesC) = 0;
};
}
}
#endif

View File

@ -0,0 +1,45 @@
/***************************************************//**
* @file ControlHint.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 SEABREEZE_CONTROLHINT_H
#define SEABREEZE_CONTROLHINT_H
#include "common/protocols/ProtocolHint.h"
namespace seabreeze {
namespace ooiProtocol {
class ControlHint : public ProtocolHint {
public:
ControlHint();
virtual ~ControlHint();
};
}
}
#endif

View File

@ -0,0 +1,45 @@
/***************************************************//**
* @file SpectrumHint.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 SEABREEZE_SPECTRUMHINT_H
#define SEABREEZE_SPECTRUMHINT_H
#include "common/protocols/ProtocolHint.h"
namespace seabreeze {
namespace ooiProtocol {
class SpectrumHint : public ProtocolHint {
public:
SpectrumHint();
virtual ~SpectrumHint();
};
}
}
#endif

View File

@ -0,0 +1,52 @@
/***************************************************//**
* @file FPGARegisterProtocol.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_PROTOCOL_H
#define SEABREEZE_FPGA_REGISTER_PROTOCOL_H
#include "common/SeaBreeze.h"
#include "common/buses/Bus.h"
#include "common/exceptions/ProtocolException.h"
#include "vendors/OceanOptics/protocols/interfaces/FPGARegisterProtocolInterface.h"
namespace seabreeze {
namespace ooiProtocol {
class FPGARegisterProtocol : public FPGARegisterProtocolInterface {
public:
FPGARegisterProtocol();
virtual ~FPGARegisterProtocol();
virtual unsigned int readRegister(const Bus &bus, byte address)
throw (ProtocolException);
virtual void writeRegister(const Bus &bus, byte address,
unsigned int value) throw (ProtocolException);
};
}
}
#endif

View File

@ -0,0 +1,53 @@
/***************************************************//**
* @file OOIEEPROMProtocol.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 OOIEEPROMPROTOCOL_H
#define OOIEEPROMPROTOCOL_H
#include "common/SeaBreeze.h"
#include "common/buses/Bus.h"
#include "common/exceptions/ProtocolException.h"
#include "vendors/OceanOptics/protocols/interfaces/EEPROMProtocolInterface.h"
#include <vector>
namespace seabreeze {
namespace ooiProtocol {
class OOIEEPROMProtocol : public EEPROMProtocolInterface {
public:
OOIEEPROMProtocol();
virtual ~OOIEEPROMProtocol();
virtual std::vector<byte> *readEEPROMSlot(const Bus &bus, int slot)
throw (ProtocolException);
virtual int writeEEPROMSlot(const Bus &bus, int slot,
const std::vector<byte> &data) throw (ProtocolException);
};
}
}
#endif /* OOIEEPROMPROTOCOL_H */

View File

@ -0,0 +1,63 @@
/***************************************************//**
* @file OOIIrradCalProtocol.h
* @date March 2010
* @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 OOIIRRADCALPROTOCOL_H
#define OOIIRRADCALPROTOCOL_H
#include "common/buses/Bus.h"
#include "vendors/OceanOptics/protocols/interfaces/IrradCalProtocolInterface.h"
#include "vendors/OceanOptics/protocols/ooi/exchanges/OOIReadIrradCalExchange.h"
#include "vendors/OceanOptics/protocols/ooi/exchanges/OOIWriteIrradCalExchange.h"
#include "common/exceptions/ProtocolException.h"
namespace seabreeze {
namespace ooiProtocol {
class OOIIrradCalProtocol : public IrradCalProtocolInterface {
public:
OOIIrradCalProtocol(unsigned int numberOfPixels);
virtual ~OOIIrradCalProtocol();
/* Inherited from IrradCalProtocolInterface */
virtual std::vector<float> *readIrradCal(const Bus &bus)
throw (ProtocolException);
virtual int writeIrradCal(const Bus &bus, const std::vector<float> &cal)
throw (ProtocolException);
virtual int hasCollectionArea(const Bus &bus);
virtual float readCollectionArea(const Bus &bus)
throw (ProtocolException);
virtual void writeCollectionArea(const Bus &bus, float area)
throw (ProtocolException);
private:
unsigned int numberOfPixels;
};
}
}
#endif /* OOIIRRADCALPROTOCOL_H */

View File

@ -0,0 +1,51 @@
/***************************************************//**
* @file OOIProtocol.h
* @date February 2009
* @author Ocean Optics, Inc.
*
* This provides a singleton object that identifies the
* OOI legacy USB command set.
*
* 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 OOIPROTOCOL_H
#define OOIPROTOCOL_H
#include "common/protocols/Protocol.h"
namespace seabreeze {
namespace ooiProtocol {
class OOIProtocol : public Protocol {
public:
OOIProtocol();
virtual ~OOIProtocol();
/* Must be overridden from Protocol */
virtual ProtocolFamily getProtocolFamily();
};
}
}
#endif /* OOIPROTOCOL_H */

View File

@ -0,0 +1,79 @@
/***************************************************//**
* @file OOISpectrometerProtocol.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 OOISPECTROMETERPROTOCOL_H
#define OOISPECTROMETERPROTOCOL_H
#include "common/SeaBreeze.h"
#include "common/protocols/Exchange.h"
#include "common/buses/Bus.h"
#include "vendors/OceanOptics/protocols/ooi/exchanges/IntegrationTimeExchange.h"
#include "vendors/OceanOptics/protocols/ooi/exchanges/TriggerModeExchange.h"
#include "vendors/OceanOptics/protocols/interfaces/SpectrometerProtocolInterface.h"
#include <vector>
namespace seabreeze {
namespace ooiProtocol {
class OOISpectrometerProtocol : public SpectrometerProtocolInterface {
public:
OOISpectrometerProtocol(
IntegrationTimeExchange *integrationTimeExchange,
Transfer *requestSpectrumExchange,
Transfer *unformattedSpectrumExchange,
Transfer *spectrumTransferExchange,
TriggerModeExchange *triggerMode);
virtual ~OOISpectrometerProtocol();
/* FIXME: instead of returning primitive vectors, should this return Data* so that
* metadata (units, etc.) can also be attached?
*/
virtual std::vector<byte> *readUnformattedSpectrum(const Bus &bus)
throw (ProtocolException);
virtual std::vector<double> *readSpectrum(const Bus &bus)
throw (ProtocolException);
virtual void requestSpectrum(const Bus &bus) throw (ProtocolException);
virtual void setIntegrationTimeMicros(const Bus &bus,
unsigned long time_usec) throw (ProtocolException);
virtual void setTriggerMode(const Bus &bus,
SpectrometerTriggerMode &mode) throw (ProtocolException);
private:
IntegrationTimeExchange *integrationTimeExchange;
/* These are Transfers instead of Exchanges so that we can call getHints() on them.
* if getHints is promoted up to the level of Exchange, then these can revert back.
*/
Transfer *unformattedSpectrumExchange;
Transfer *requestSpectrumExchange;
Transfer *spectrumTransferExchange;
TriggerModeExchange *triggerModeExchange;
};
}
}
#endif /* OOISPECTROMETERPROTOCOL_H */

View File

@ -0,0 +1,55 @@
/***************************************************//**
* @file OOIStrobeLampProtocol.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 OOISTROBELAMPPROTOCOL_H
#define OOISTROBELAMPPROTOCOL_H
#include "common/buses/Bus.h"
#include "vendors/OceanOptics/protocols/ooi/exchanges/StrobeEnableExchange.h"
#include "vendors/OceanOptics/protocols/interfaces/StrobeLampProtocolInterface.h"
#include "common/exceptions/ProtocolException.h"
namespace seabreeze {
namespace ooiProtocol {
class OOIStrobeLampProtocol : public StrobeLampProtocolInterface {
public:
OOIStrobeLampProtocol();
virtual ~OOIStrobeLampProtocol();
virtual void setStrobeLampEnable(const Bus &bus, bool enable)
throw (ProtocolException);
private:
StrobeEnableExchange *strobeEnableExchange;
};
}
}
#endif /* OOISTROBELAMPPROTOCOL_H */

View File

@ -0,0 +1,65 @@
/***************************************************//**
* @file OOITECProtocol.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 OOITECPROTOCOL_H
#define OOITECPROTOCOL_H
#include "common/buses/Bus.h"
#include "vendors/OceanOptics/protocols/interfaces/ThermoElectricProtocolInterface.h"
#include "vendors/OceanOptics/protocols/ooi/exchanges/TECEnableExchange.h"
#include "vendors/OceanOptics/protocols/ooi/exchanges/WriteTECSetPointExchange.h"
#include "vendors/OceanOptics/protocols/ooi/exchanges/ReadTECTemperatureExchange.h"
#include "common/exceptions/ProtocolException.h"
namespace seabreeze {
namespace ooiProtocol {
class OOITECProtocol : public ThermoElectricProtocolInterface {
public:
OOITECProtocol(TECEnableExchange *enableExchange,
WriteTECSetPointExchange *writeSetPointExchange,
ReadTECTemperatureExchange *readTECTempExchange);
virtual ~OOITECProtocol();
/* Inherited from ThermoElectricProtocolInterface */
virtual double readThermoElectricTemperatureCelsius(const Bus &bus)
throw (ProtocolException);
virtual void writeThermoElectricEnable(const Bus &bus, bool enable)
throw (ProtocolException);
virtual void writeThermoElectricSetPointCelsius(const Bus &bus, double degreesC)
throw (ProtocolException);
private:
TECEnableExchange *tecEnable;
WriteTECSetPointExchange *tecWriteSetPoint;
ReadTECTemperatureExchange *tecReadTemperature;
};
}
}
#endif /* OOITECPROTOCOL_H */