主采集逻辑修改中,添加了部分写文件实现

This commit is contained in:
2021-12-02 18:07:29 +08:00
parent 95da780693
commit efbcde38d7
403 changed files with 26857 additions and 77 deletions

View File

@ -0,0 +1,46 @@
/***************************************************//**
* @file BlazeTCPIPv4.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 SEABREEZE_BLAZETCPIPV4_H
#define SEABREEZE_BLAZETCPIPV4_H
#include "common/buses/network/TCPIPv4SocketBus.h"
namespace seabreeze {
class BlazeTCPIPv4 : public TCPIPv4SocketBus {
public:
BlazeTCPIPv4();
virtual ~BlazeTCPIPv4();
virtual bool open();
virtual void close();
};
}
#endif /* SEABREEZE_BLAZETCPIPV4_H */

View File

@ -0,0 +1,47 @@
/***************************************************//**
* @file JazTCPIPv4.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 SEABREEZE_JAZTCPIPV4_H
#define SEABREEZE_JAZTCPIPV4_H
#include "common/buses/network/TCPIPv4SocketBus.h"
namespace seabreeze {
class JazTCPIPv4 : public TCPIPv4SocketBus {
public:
JazTCPIPv4();
virtual ~JazTCPIPv4();
virtual bool open();
virtual void close();
};
}
#endif /* SEABREEZE_JAZTCPIPV4_H */

View File

@ -0,0 +1,59 @@
/***************************************************//**
* @file OOIRS232Interface.h
* @date April 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 OOIRS232INTERFACE_H
#define OOIRS232INTERFACE_H
#include "common/buses/rs232/RS232Interface.h"
#include "common/protocols/ProtocolHint.h"
#include "common/buses/TransferHelper.h"
namespace seabreeze {
class OOIRS232Interface : public RS232Interface {
public:
OOIRS232Interface();
virtual ~OOIRS232Interface();
/* Inherited from Bus */
virtual TransferHelper *getHelper(const std::vector<ProtocolHint *> &hints) const;
virtual void setLocation(const DeviceLocatorInterface &location) throw (IllegalArgumentException);
virtual bool open();
virtual void close();
protected:
TransferHelper *rs232Helper;
int baudRate;
};
}
#endif /* OOIRS232INTERFACE_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file ApexUSB.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 APEXUSB_H
#define APEXUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class ApexUSB : public OOIUSBInterface {
public:
ApexUSB();
virtual ~ApexUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* APEXUSB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file BlazeUSB.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 BLAZEUSB_H
#define BLAZEUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class BlazeUSB : public OOIUSBInterface {
public:
BlazeUSB();
virtual ~BlazeUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* BLAZEUSB_H */

View File

@ -0,0 +1,61 @@
/***************************************************//**
* @file BlazeUSBTransferHelper.h
* @date February 2016
* @author Ocean Optics, Inc.
*
* This class encapsulates the behavior of the USB4000 and HR4000
* in the case where they are connected via a USB2.0 bus. For the
* case where the device is connected via USB 1.1, then the
* OOIUSBSpectrumTransferHelper should be used instead.
*
* 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 BLAZEUSBTRANSFERHELPER_H
#define BLAZEUSBTRANSFERHELPER_H
#include "common/buses/usb/USBTransferHelper.h"
#include "vendors/OceanOptics/buses/usb/OOIUSBEndpointMaps.h"
namespace seabreeze {
class BlazeUSBTransferHelper : public USBTransferHelper {
public:
BlazeUSBTransferHelper(USB *usb,
const OOIUSBBidrectionalEndpointMap &map);
virtual ~BlazeUSBTransferHelper();
/* Inherited */
virtual int receive(std::vector<byte> &buffer, unsigned int length)
throw (BusTransferException);
virtual int send(const std::vector<byte> &buffer, unsigned int length) const
throw (BusTransferException);
private:
static const int WORD_SIZE_BYTES;
};
}
#endif /* BLAZEUSBTRANSFERHELPER_H */

View File

@ -0,0 +1,47 @@
/***************************************************//**
* @file FlameNIRUSB.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 FLAMENIRUSB_H
#define FLAMENIRUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class FlameNIRUSB : public OOIUSBInterface {
public:
FlameNIRUSB();
virtual ~FlameNIRUSB();
virtual bool open();
};
}
#endif

View File

@ -0,0 +1,49 @@
/***************************************************//**
* @file HR2000PlusUSB.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 HR2000PLUSUSB_H
#define HR2000PLUSUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class HR2000PlusUSB : public OOIUSBInterface {
public:
HR2000PlusUSB();
virtual ~HR2000PlusUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* HR2000PLUSUSB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file HR2000USB.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 HR2000USB_H
#define HR2000USB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class HR2000USB : public OOIUSBInterface {
public:
HR2000USB();
virtual ~HR2000USB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* HR2000USB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file HR4000USB.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 HR4000USB_H
#define HR4000USB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class HR4000USB : public OOIUSBInterface {
public:
HR4000USB();
virtual ~HR4000USB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* HR4000USB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file JazUSB.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 JAZUSB_H
#define JAZUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class JazUSB : public OOIUSBInterface {
public:
JazUSB();
virtual ~JazUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* JAZUSB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file Maya2000ProUSB.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 MAYA2000PROUSB_H
#define MAYA2000PROUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class Maya2000ProUSB : public OOIUSBInterface {
public:
Maya2000ProUSB();
virtual ~Maya2000ProUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* MAYA2000PROUSB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file Maya2000USB.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 MAYA2000USB_H
#define MAYA2000USB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class Maya2000USB : public OOIUSBInterface {
public:
Maya2000USB();
virtual ~Maya2000USB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* MAYA2000USB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file MayaLSLUSB.h
* @date 13-Jan-2015
* @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 MAYALSLUSB_H
#define MAYALSLUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class MayaLSLUSB : public OOIUSBInterface {
public:
MayaLSLUSB();
virtual ~MayaLSLUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* MAYALSLUSB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file NIRQuest256USB.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 NIRQUEST256USB_H
#define NIRQUEST256USB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class NIRQuest256USB : public OOIUSBInterface {
public:
NIRQuest256USB();
virtual ~NIRQuest256USB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* NIRQUEST256USB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file NIRQuest512USB.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 NIRQUEST512USB_H
#define NIRQUEST512USB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class NIRQuest512USB : public OOIUSBInterface {
public:
NIRQuest512USB();
virtual ~NIRQuest512USB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* NIRQUEST512USB_H */

View File

@ -0,0 +1,61 @@
/***************************************************//**
* @file OOIUSB4KSpectrumTransferHelper.h
* @date February 2009
* @author Ocean Optics, Inc.
*
* This class encapsulates the behavior of the USB4000 and HR4000
* in the case where they are connected via a USB2.0 bus. For the
* case where the device is connected via USB 1.1, then the
* OOIUSBSpectrumTransferHelper should be used instead.
*
* 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 OOIUSB4KSPECTRUMTRANSFERHELPER_H
#define OOIUSB4KSPECTRUMTRANSFERHELPER_H
#include "common/buses/usb/USBTransferHelper.h"
#include "vendors/OceanOptics/buses/usb/OOIUSBEndpointMaps.h"
namespace seabreeze {
class OOIUSB4KSpectrumTransferHelper : public USBTransferHelper {
public:
OOIUSB4KSpectrumTransferHelper(USB *usb,
const OOIUSBCypressEndpointMap &map);
virtual ~OOIUSB4KSpectrumTransferHelper();
/* Inherited */
virtual int receive(std::vector<byte> &buffer, unsigned int length)
throw (BusTransferException);
private:
int secondaryHighSpeedEP;
std::vector<byte> primaryReadBuffer;
std::vector<byte> secondaryReadBuffer;
};
}
#endif /* OOIUSB4KSPECTRUMTRANSFERHELPER_H */

View File

@ -0,0 +1,47 @@
/***************************************************//**
* @file OOIUSBControlTransferHelper.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 OOIUSBCONTROLTRANSFERHELPER_H
#define OOIUSBCONTROLTRANSFERHELPER_H
#include "common/buses/usb/USBTransferHelper.h"
#include "vendors/OceanOptics/buses/usb/OOIUSBEndpointMaps.h"
namespace seabreeze {
class OOIUSBControlTransferHelper : public USBTransferHelper {
public:
OOIUSBControlTransferHelper(USB *usb,
const OOIUSBCypressEndpointMap &map);
virtual ~OOIUSBControlTransferHelper();
};
}
#endif /* OOIUSBCONTROLTRANSFERHELPER_H */

View File

@ -0,0 +1,123 @@
/***************************************************//**
* @file OOIUSBEndpointMaps.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 OOIUSBENDPOINTMAPS_H
#define OOIUSBENDPOINTMAPS_H
namespace seabreeze {
class OOIUSBCypressEndpointMap {
public:
int getLowSpeedInEP() const;
int getLowSpeedOutEP() const;
int getHighSpeedInEP() const;
int getHighSpeedIn2EP() const;
protected:
int lowSpeedIn;
int lowSpeedOut;
int highSpeedIn;
int highSpeedIn2;
};
/* This map is appropriate for the following spectrometers:
* USB2000 (and its variants), HR2000, ADC1000-USB,
* NIR256, NIR512, SAS
*/
class OOIUSBLegacy2KEndpointMap : public OOIUSBCypressEndpointMap {
public:
OOIUSBLegacy2KEndpointMap();
virtual ~OOIUSBLegacy2KEndpointMap();
};
/* This map is appropriate for the following spectrometers:
* HR2000+, HR4000, Maya, Maya2000Pro, MayaLSL, QE65000, USB2000+, USB4000
*/
class OOIUSBFPGAEndpointMap : public OOIUSBCypressEndpointMap {
public:
OOIUSBFPGAEndpointMap();
virtual ~OOIUSBFPGAEndpointMap();
};
class OOIUSBJazEndpointMap : public OOIUSBCypressEndpointMap {
public:
OOIUSBJazEndpointMap();
virtual ~OOIUSBJazEndpointMap();
};
/* This defines a simple interface for an endpoint map that has a one input
* and one output endpoint.
*/
class OOIUSBBidrectionalEndpointMap {
public:
OOIUSBBidrectionalEndpointMap();
virtual ~OOIUSBBidrectionalEndpointMap();
virtual int getPrimaryInEndpoint() const;
virtual int getPrimaryOutEndpoint() const;
protected:
int primaryInEndpoint;
int primaryOutEndpoint;
};
/* This map is appropriate for the following spectrometers:
* Ventana
*/
class OOIUSBVentanaEndpointMap : public OOIUSBBidrectionalEndpointMap {
public:
OOIUSBVentanaEndpointMap();
virtual ~OOIUSBVentanaEndpointMap();
};
class OOIUSBDualBidirectionalEndpointMap : public OOIUSBBidrectionalEndpointMap {
public:
OOIUSBDualBidirectionalEndpointMap();
virtual ~OOIUSBDualBidirectionalEndpointMap();
int getSecondaryInEndpoint() const;
int getSecondaryOutEndpoint() const;
protected:
int secondaryInEndpoint;
int secondaryOutEndpoint;
};
/* This map is appropriate for the following spectrometers:
* STS, QEPro
*/
class OOIUSBSimpleDualEndpointMap : public OOIUSBDualBidirectionalEndpointMap {
public:
OOIUSBSimpleDualEndpointMap();
virtual ~OOIUSBSimpleDualEndpointMap();
};
}
#endif /* OOIUSBENDPOINTMAPS_H */

View File

@ -0,0 +1,76 @@
/***************************************************//**
* @file OOIUSBInterface.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 OOIUSBINTERFACE_H
#define OOIUSBINTERFACE_H
#include "common/buses/usb/USBInterface.h"
#include "common/protocols/ProtocolHint.h"
#include "common/buses/TransferHelper.h"
#include "common/buses/DeviceLocationProberInterface.h"
#define OCEAN_OPTICS_USB_VID 0x2457
namespace seabreeze {
class OOIUSBInterface : public USBInterface, public DeviceLocationProberInterface {
public:
OOIUSBInterface();
virtual ~OOIUSBInterface();
int getProductID();
int getVendorID();
/* Inherited from Bus */
virtual TransferHelper *getHelper(const std::vector<ProtocolHint *> &hints) const;
virtual void setLocation(const DeviceLocatorInterface &location) throw (IllegalArgumentException);
virtual bool open();
virtual void close();
/* Inherited from DeviceLocationProberInterface */
virtual std::vector<DeviceLocatorInterface *> *probeDevices();
protected:
void addHelper(ProtocolHint *hint, TransferHelper *helper);
void clearHelpers();
int vendorID;
int productID;
/* These vectors should really be in a map, but that didn't want to
* work easily. Since there will likely be about 2 entries in here,
* storing in a pair of vectors for now won't hurt anything.
*/
std::vector<ProtocolHint *> helperKeys;
std::vector<TransferHelper *> helperValues;
};
}
#endif /* OOIUSBINTERFACE_H */

View File

@ -0,0 +1,56 @@
/***************************************************//**
* @file OOIUSBProductID.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 OOIUSBPRODUCTID_H
#define OOIUSBPRODUCTID_H
#define USB2000_USB_PID 0x1002
#define HR2000_USB_PID 0x100a
#define HR4000_USB_PID 0x1012
#define HR2000PLUS_USB_PID 0x1016
#define QE65000_USB_PID 0x1018
#define USB2000PLUS_USB_PID 0x101E
#define USB4000_USB_PID 0x1022
#define NIRQUEST512_USB_PID 0x1026
#define NIRQUEST256_USB_PID 0x1028
#define MAYA2000PRO_USB_PID 0x102a
#define MAYA2000_USB_PID 0x102c
#define MAYALSL_USB_PID 0x1046
#define TORUS_USB_PID 0x1040
#define APEX_USB_PID 0x1044
#define FLAMENIR_USB_PID 0x104b
#define JAZ_USB_PID 0x2000
#define BLAZE_USB_PID 0x2001
#define STS_USB_PID 0x4000
#define QEPRO_USB_PID 0x4004
#define SPARK_USB_PID 0x4200
#define VENTANA_USB_PID 0x5000
#define GENERIC_SMARTPHONE_MODULE_PID 0x7002
#endif /* OOIUSBPRODUCTID_H */

View File

@ -0,0 +1,47 @@
/***************************************************//**
* @file OOIUSBSpectrumTransferHelper.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 OOIUSBSPECTRUMTRANSFERHELPER_H
#define OOIUSBSPECTRUMTRANSFERHELPER_H
#include "common/buses/usb/USBTransferHelper.h"
#include "vendors/OceanOptics/buses/usb/OOIUSBEndpointMaps.h"
namespace seabreeze {
class OOIUSBSpectrumTransferHelper : public USBTransferHelper {
public:
OOIUSBSpectrumTransferHelper(USB *usb,
const OOIUSBCypressEndpointMap &map);
virtual ~OOIUSBSpectrumTransferHelper();
};
}
#endif /* OOIUSBSPECTRUMTRANSFERHELPER_H */

View File

@ -0,0 +1,46 @@
/***************************************************//**
* @file OOIUSBTrivialTransferHelper.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 OOIUSBTRIVIALTRANSFERHELPER_H
#define OOIUSBTRIVIALTRANSFERHELPER_H
#include "common/buses/usb/USBTransferHelper.h"
#include "vendors/OceanOptics/buses/usb/OOIUSBEndpointMaps.h"
namespace seabreeze {
class OOIUSBTrivialTransferHelper : public USBTransferHelper {
public:
OOIUSBTrivialTransferHelper(USB *usb, const OOIUSBBidrectionalEndpointMap &map);
virtual ~OOIUSBTrivialTransferHelper();
};
}
#endif /* OOIUSBTRIVIALTRANSFERHELPER_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file QE65000USB.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 QE65000USB_H
#define QE65000USB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class QE65000USB : public OOIUSBInterface {
public:
QE65000USB();
virtual ~QE65000USB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* QE65000USB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file QEProUSB.h
* @date Jane 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 QEPROUSB_H
#define QEPROUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class QEProUSB : public OOIUSBInterface {
public:
QEProUSB();
virtual ~QEProUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* QEPROUSB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file STSUSB.h
* @date January 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 STSUSB_H
#define STSUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class STSUSB : public OOIUSBInterface {
public:
STSUSB();
virtual ~STSUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* STSUSB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file SparkUSB.h
* @date January 2015
* @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 SPARKUSB_H
#define SPARKUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class SparkUSB : public OOIUSBInterface {
public:
SparkUSB();
virtual ~SparkUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* SPARKUSB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file TorusUSB.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 TORUSUSB_H
#define TORUSUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class TorusUSB : public OOIUSBInterface {
public:
TorusUSB();
virtual ~TorusUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* TORUSUSB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file USB2000PlusUSB.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 USB2000PLUSUSB_H
#define USB2000PLUSUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class USB2000PlusUSB : public OOIUSBInterface {
public:
USB2000PlusUSB();
virtual ~USB2000PlusUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* USB2000PLUSUSB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file USB2000USB.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 USB2000USB_H
#define USB2000USB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class USB2000USB : public OOIUSBInterface {
public:
USB2000USB();
virtual ~USB2000USB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* USB2000USB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file USB4000USB.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 USB4000USB_H
#define USB4000USB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class USB4000USB : public OOIUSBInterface {
public:
USB4000USB();
virtual ~USB4000USB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* USB4000USB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file VentanaUSB.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 VENTANAUSB_H
#define VENTANAUSB_H
#include "vendors/OceanOptics/buses/usb/OOIUSBInterface.h"
namespace seabreeze {
class VentanaUSB : public OOIUSBInterface {
public:
VentanaUSB();
virtual ~VentanaUSB();
/* Inherited from OOIUSBInterface */
virtual bool open();
};
}
#endif /* STSUSB_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file Apex.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 APEX_H
#define APEX_H
#include "common/devices/Device.h"
namespace seabreeze {
class Apex : public Device {
public:
Apex();
virtual ~Apex();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* APEX_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file Blaze.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 BLAZE_H
#define BLAZE_H
#include "common/devices/Device.h"
namespace seabreeze {
class Blaze : public Device {
public:
Blaze();
virtual ~Blaze();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* BLAZE_H */

View File

@ -0,0 +1,47 @@
/***************************************************//**
* @file FlameNIR.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 FLAMENIR_H
#define FLAMENIR_H
#include "common/devices/Device.h"
namespace seabreeze {
class FlameNIR : public Device {
public:
FlameNIR();
virtual ~FlameNIR();
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif

View File

@ -0,0 +1,49 @@
/***************************************************//**
* @file HR2000.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 HR2000_H
#define HR2000_H
#include "common/devices/Device.h"
namespace seabreeze {
class HR2000 : public Device {
public:
HR2000();
virtual ~HR2000();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* HR2000_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file HR2000Plus.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 HR2000PLUS_H
#define HR2000PLUS_H
#include "common/devices/Device.h"
namespace seabreeze {
class HR2000Plus : public Device {
public:
HR2000Plus();
virtual ~HR2000Plus();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* HR2000PLUS_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file HR4000.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 HR4000_H
#define HR4000_H
#include "common/devices/Device.h"
namespace seabreeze {
class HR4000 : public Device {
public:
HR4000();
virtual ~HR4000();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* HR4000_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file Jaz.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 JAZ_H
#define JAZ_H
#include "common/devices/Device.h"
namespace seabreeze {
class Jaz : public Device {
public:
Jaz();
virtual ~Jaz();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* JAZ_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file Maya2000.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 MAYA2000_H
#define MAYA2000_H
#include "common/devices/Device.h"
namespace seabreeze {
class Maya2000 : public Device {
public:
Maya2000();
virtual ~Maya2000();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* MAYA2000_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file Maya2000Pro.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 MAYA2000PRO_H
#define MAYA2000PRO_H
#include "common/devices/Device.h"
namespace seabreeze {
class Maya2000Pro : public Device {
public:
Maya2000Pro();
virtual ~Maya2000Pro();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* MAYA2000PRO_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file MayaLSL.h
* @date 13-Jan-2015
* @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 VENDORS_OCEANOPTICS_DEVICES_MAYALSL_H
#define VENDORS_OCEANOPTICS_DEVICES_MAYALSL_H
#include "common/devices/Device.h"
namespace seabreeze {
class MayaLSL : public Device {
public:
MayaLSL();
virtual ~MayaLSL();
// Must be overridden from Device
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* VENDORS_OCEANOPTICS_DEVICES_MAYALSL_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file NIRQuest256.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 NIRQUEST256_H
#define NIRQUEST256_H
#include "common/devices/Device.h"
namespace seabreeze {
class NIRQuest256 : public Device {
public:
NIRQuest256();
virtual ~NIRQuest256();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* NIRQUEST256_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file NIRQuest512.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 NIRQUEST512_H
#define NIRQUEST512_H
#include "common/devices/Device.h"
namespace seabreeze {
class NIRQuest512 : public Device {
public:
NIRQuest512();
virtual ~NIRQuest512();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* NIRQUEST512_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file QE65000.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 QE65000_H
#define QE65000_H
#include "common/devices/Device.h"
namespace seabreeze {
class QE65000 : public Device {
public:
QE65000();
virtual ~QE65000();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* QE65000_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file QEPro.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 QEPRO_H
#define QEPRO_H
#include "common/devices/Device.h"
namespace seabreeze {
class QEPro : public Device {
public:
QEPro();
virtual ~QEPro();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* QEPRO_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file STS.h
* @date January 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 STS_H
#define STS_H
#include "common/devices/Device.h"
namespace seabreeze {
class STS : public Device {
public:
STS();
virtual ~STS();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* STS_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file Spark.h
* @date January 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 SPARK_H
#define SPARK_H
#include "common/devices/Device.h"
namespace seabreeze {
class Spark : public Device {
public:
Spark();
virtual ~Spark();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* SPARK_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file Torus.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 TORUS_H
#define TORUS_H
#include "common/devices/Device.h"
namespace seabreeze {
class Torus : public Device {
public:
Torus();
virtual ~Torus();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* TORUS_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file USB2000.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 USB2000_H
#define USB2000_H
#include "common/devices/Device.h"
namespace seabreeze {
class USB2000 : public Device {
public:
USB2000();
virtual ~USB2000();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* USB2000_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file USB2000Plus.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 USB2000PLUS_H
#define USB2000PLUS_H
#include "common/devices/Device.h"
namespace seabreeze {
class USB2000Plus : public Device {
public:
USB2000Plus();
virtual ~USB2000Plus();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* USB2000PLUS_H */

View File

@ -0,0 +1,48 @@
/***************************************************//**
* @file USB4000.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 USB4000_H
#define USB4000_H
#include "common/devices/Device.h"
namespace seabreeze {
class USB4000 : public Device {
public:
USB4000();
virtual ~USB4000();
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* USB4000_H */

View File

@ -0,0 +1,53 @@
/***************************************************//**
* @file Ventana.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 VENTANA_H
#define VENTANA_H
#include "common/devices/Device.h"
namespace seabreeze {
class Ventana : public Device {
public:
Ventana();
virtual ~Ventana();
/* Overridden from Device to allow detection of thermoelectric
* capability.
*/
virtual bool initialize(const Bus &bus);
/* Must be overridden from Device */
virtual ProtocolFamily getSupportedProtocol(FeatureFamily family, BusFamily bus);
};
}
#endif /* VENTANA_H */

View 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 */

View File

@ -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 */

View File

@ -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 */

View 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 */

View 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 */

View File

@ -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

View File

@ -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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View File

@ -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 */

View File

@ -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 */

View 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 */

View 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 */

View 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 */

View File

@ -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 */

View 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

View 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

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View File

@ -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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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

View File

@ -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

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

View 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 */

Some files were not shown because too many files have changed in this diff Show More