sdk2

package
v0.0.0-...-efe4ef5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 26, 2023 License: BSD-3-Clause Imports: 12 Imported by: 0

Documentation

Overview

Package sdk2 exposes control of Andor cameras in Go via their SDK, v2

This package provides much of the total C/C++ API for working with Andor cameras but it is not totally exhaustive. It was created to enable use of the NEO sCMOS and iXon EMCCD cameras at JPL in a scientific / instruments context, and thus does not fully support any of the onboard processing features, except the Set functions used to disable them. We do not support multiple cameras on one PC. We do not in this package provide any recipes; this is purely a driver interface that has some gussied up in and output types. We mostly duplicate the API from the C/C++ shared library, with the exception of a few grammatical cleanups.

Users are encouraged to write packages that build on this driver to build more complex functionality. An example of this is in the same repository, cmd/andorhttp2, which wraps the camera in an HTTP server.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrBadEnumIndex is generated when an unknown enum index is used
	ErrBadEnumIndex = errors.New("index not found in enum")

	// AcquisitionMode maps names to the values used by the SDK
	AcquisitionMode = Enum{
		"SingleScan":    1,
		"Accumulate":    2,
		"Kinetic":       3,
		"FastKinetic":   4,
		"RunUntilAbort": 5,
	}

	// ReadoutMode maps names to the values used by the SDK
	ReadoutMode = Enum{
		"FullVerticalBinning": 0,
		"MultiTrack":          1,
		"RandomTrack":         2,
		"SingleTrack":         3,
		"Image":               4,
	}

	// TriggerMode maps names to the values used by the SDK
	TriggerMode = Enum{
		"Internal":                 0,
		"External":                 1,
		"ExternalStart":            6,
		"External Exposure (Bulb)": 7,
		"External FVB EM":          9,
		"Software":                 10,
	}

	// FilterMode maps names to the values used by the SDK
	FilterMode = Enum{
		"No Filter":           0,
		"Median":              1,
		"Level Above":         2,
		"Interquartile Range": 3,
		"Noise Threshold":     4,
	}

	// ShutterMode maps names to the values used by the SDK
	ShutterMode = Enum{
		"Auto":  0,
		"Open":  1,
		"Close": 2,
	}

	// VerticalClockVoltage maps names to the values used by the SDK
	VerticalClockVoltage = Enum{
		"Normal": 0,
		"+1":     1,
		"+2":     2,
		"+3":     3,
		"+4":     4,
	}

	// EMGainMode maps names ot the values used by the SDK
	EMGainMode = Enum{
		"Default":  0,
		"Extended": 1,
		"Linear":   2,
		"Real":     3,
	}

	//ErrCodes is a map of error codes to their string values
	ErrCodes = map[DRVError]string{
		20001: "DRV_ERROR_CODES",
		20002: "DRV_SUCCESS",
		20003: "DRV_VXD_NOT_INSTALLED",
		20004: "DRV_ERROR_SCAN",
		20005: "DRV_ERROR_CHECKSUM",
		20006: "DRV_ERROR_FILELOAD",
		20007: "DRV_UNKNOWN_FUNCTION",
		20008: "DRV_ERROR_VXD_INIT",
		20009: "DRV_ERROR_ADDRESS",
		20010: "DRV_ERROR_PAGE_LOCK",
		20011: "DRV_ERROR_PAGE_UNLOCK",
		20012: "DRV_ERROR_BOARDTEST",
		20013: "DRV_ERROR_ACK",
		20014: "DRV_ERROR_UP_FIFO",
		20015: "DRV_ERROR_PATTERN",

		20017: "DRV_ACQUISITION_ERRORS",
		20018: "DRV_ACQ_BUFFER",
		20019: "DRV_ACQ_DOWNFIFO_FULL",
		20020: "DRV_PROC_UNKNOWN_INSTRUCTION",
		20021: "DRV_ILLEGAL_OP_CODE",
		20022: "DRV_KINETIC_TIME_NOT_MET",
		20023: "DRV_ACCUM_TIME_NOT_MET",
		20024: "DRV_NO_NEW_DATA",

		20026: "DRV_SPOOLERROR",

		20033: "DRV_TEMPERATURE_CODES",
		20034: "DRV_TEMPERATURE_OFF",
		20035: "DRV_TEMPERATURE_NOT_STABILIZED",
		20036: "DRV_TEMPERATURE_STABILIZED",
		20037: "DRV_TEMPERATURE_NOT_REACHED",
		20038: "DRV_TEMPERATURE_OUT_RANGE",
		20039: "DRV_TEMPERATURE_NOT_SUPPORTED",
		20040: "DRV_TEMPERATURE_DRIFT",

		20049: "DRV_GENERAL_ERRORS",
		20050: "DRV_INVALID_AUX",
		20051: "DRV_COF_NOTLOADED",
		20052: "DRV_FPGAPROG",
		20053: "DRV_FLEXERROR",
		20054: "DRV_GPIBERROR",

		20064: "DRV_DATATYPE",
		20065: "DRV_DRIVER_ERRORS",
		20066: "DRV_P1INVALID",
		20067: "DRV_P2INVALID",
		20068: "DRV_P3INVALID",
		20069: "DRV_P4INVALID",
		20070: "DRV_INIERROR",
		20071: "DRV_COFERROR",
		20072: "DRV_ACQUIRING",
		20073: "DRV_IDLE",
		20074: "DRV_TEMPCYCLE",
		20075: "DRV_NOT_INITIALIZED",
		20076: "DRV_P5INVALID",
		20077: "DRV_P6INVALID",
		20078: "DRV_INVALID_MODE",
		20079: "DRV_INVALID_FILTER",
		20080: "DRV_I2CERRORS",
		20081: "DRV_DRV_I2CDEVNOTFOUND",
		20082: "DRV_I2CTIMEOUT",
		20083: "DRV_P7INVALID",

		20089: "DRV_USBERROR",
		20090: "DRV_IOCERROR",
		20091: "DRV_NOT_SUPPORTED",

		20093: "DRV_USB_INTERRUPT_ENDPOINT_ERROR",
		20094: "DRV_RANDOM_TRACK_ERROR",
		20095: "DRV_INVALID_TRIGGER_MODE",
		20096: "DRV_LOAD_FIRMWARE_ERROR",
		20097: "DRV_DIVIDE_BY_ZERO_ERROR",
		20098: "DRV_INVALID_RINGEXPOSURES",
		20099: "DRV_BINNING_ERROR",

		20990: "DRV_ERROR_NOCAMERA",
		20991: "DRV_NOT_SUPPORTED",
		20992: "DRV_NOT_AVAILABLE",

		20115: "DRV_ERROR_MAP",
		20116: "DRV_ERROR_UNMAP",
		20117: "DRV_ERROR_MDL",
		20118: "DRV_ERROR_UNMDL",
		20119: "DRV_ERROR_BUFFSIZE",

		20121: "DRV_ERROR_NOHANDLE",

		20130: "DRV_GATING_NOT_AVAILABLE",
		20131: "DRV_FPGA_VOLTAGE_ERROR",
		20100: "DRV_INVALID_AMPLIFIER",
	}

	// BeneignErrorCodes is sequence of error codes which mean
	// the status is normal
	BeneignErrorCodes = []uint{
		20002,
		20073,
	}
)

Functions

func BeneignThermal

func BeneignThermal(err error) bool

BeneignThermal returns true if the status code is a beneign thermal one

func Error

func Error(code uint) error

Error returns nil if the error code is beneign, otherwise returns an object which prints the error code and string value

func Initialize

func Initialize(iniPath string) error

Initialize initializes the camera connection with the driver library

Types

type AcquisitionTimings

type AcquisitionTimings struct {
	// Exposure is the exposure time in seconds
	Exposure float64

	// Accumulation is the charge accumulation cycle time in seconds
	Accumulation float64

	// Kinetic is the kinetic cycle time in seconds
	Kinetic float64
}

AcquisitionTimings holds various acquisition timing parameters

type Camera

type Camera struct {
	// contains filtered or unexported fields
}

Camera represents an Andor camera

func (*Camera) AbortAcquisition

func (c *Camera) AbortAcquisition() error

AbortAcquisition aborts the current acquisition if one is active

func (*Camera) Burst

func (c *Camera) Burst(frames int, fps float64, ch chan<- image.Image) error

Burst takes a chunk of pictures and sends htem on a channel

func (*Camera) CollectHeaderMetadata

func (c *Camera) CollectHeaderMetadata() []fitsio.Card

CollectHeaderMetadata satisfies generichttp/camera and makes a stack of FITS cards

func (*Camera) Configure

func (c *Camera) Configure(settings map[string]interface{}) error

Configure sets many values for the camera at once

func (*Camera) GetADChannel

func (c *Camera) GetADChannel() (int, error)

GetADChannel returns the currently selected AD channel

func (*Camera) GetADChannelRange

func (c *Camera) GetADChannelRange() (int, int, error)

GetADChannelRange returns the currently selected AD channel

func (*Camera) GetAOI

func (c *Camera) GetAOI() (camera.AOI, error)

GetAOI returns the current AOI in use by the camera

func (*Camera) GetAcquiredData

func (c *Camera) GetAcquiredData() ([]int32, error)

GetAcquiredData gets the acquired data / frame

func (*Camera) GetAcquisitionMode

func (c *Camera) GetAcquisitionMode() (string, error)

func (*Camera) GetAcquisitionTimings

func (c *Camera) GetAcquisitionTimings() (AcquisitionTimings, error)

GetAcquisitionTimings gets the acquisition timings

func (*Camera) GetBaselineClamp

func (c *Camera) GetBaselineClamp() (bool, error)

GetBaselineClamp returns the EM advanced

func (*Camera) GetBinning

func (c *Camera) GetBinning() (camera.Binning, error)

GetBinning returns the current binning used by the camera

func (*Camera) GetBitDepth

func (c *Camera) GetBitDepth(ch uint) (uint, error)

GetBitDepth gets the number of bits of dynamic range for a given AD channel

func (*Camera) GetCooling

func (c *Camera) GetCooling() (bool, error)

GetCooling gets if the cooler is currently engaged

func (*Camera) GetDetector

func (c *Camera) GetDetector() (int, int, error)

GetDetector gets the detector

func (*Camera) GetEMAdvanced

func (c *Camera) GetEMAdvanced() (bool, error)

GetEMAdvanced returns the EM advanced

func (*Camera) GetEMGain

func (c *Camera) GetEMGain() (int, error)

GetEMGain gets the current EMCCD gain

func (*Camera) GetEMGainMode

func (c *Camera) GetEMGainMode() (string, error)

GetEMGainMode returns the current EM gain mode

func (*Camera) GetEMGainRange

func (c *Camera) GetEMGainRange() (int, int, error)

GetEMGainRange gets the min and max EMCCD gain settings for the current gain mode and temperature of the sensor

func (*Camera) GetExposureTime

func (c *Camera) GetExposureTime() (time.Duration, error)

GetExposureTime returns the current exposure time

func (*Camera) GetFan

func (c *Camera) GetFan() (bool, error)

GetFan returns if the fan is turned on or not, as commanded the SDK may override and make the return not a true mimic of reality even if the value is false. A true value should always mimic reality.

func (*Camera) GetFastestRecommendedVSSpeed

func (c *Camera) GetFastestRecommendedVSSpeed() (int, float64, error)

GetFastestRecommendedVSSpeed gets the fastest vertical shift register speed that does not require changing the vertical clock voltage. It returns the fastest vertical clock speed's intcode and the actual speed in microseconds

func (*Camera) GetFeature

func (c *Camera) GetFeature(feature string) (interface{}, error)

func (*Camera) GetFeatureIdx

func (c *Camera) GetFeatureIdx(index int, feature string) (interface{}, error)

func (*Camera) GetFeatureInfo

func (c *Camera) GetFeatureInfo(feature string) (map[string]interface{}, error)

GetFeatureInfo For numerical features, it returns the min and max values. For enum features, it returns the possible strings that can be used

func (*Camera) GetFilterMode

func (c *Camera) GetFilterMode() (string, error)

GetFilterMode returns the current filter mode

func (*Camera) GetFrame

func (c *Camera) GetFrame() (image.Image, error)

GetFrame returns a frame from the camera

func (*Camera) GetFrameSize

func (c *Camera) GetFrameSize() (int, int, error)

GetFrameSize gets the W, H of a frame as recorded in the strided buffer

func (*Camera) GetFrameTransferMode

func (c *Camera) GetFrameTransferMode() (bool, error)

GetFrameTransferMode returns true if the camera is in frame transfer mode

func (*Camera) GetHSSpeed

func (c *Camera) GetHSSpeed(idx int) (float64, error)

GetHSSpeed gets the horizontal shift speed in Megahertz idx is the enum index

ADC channel obtain from the last set Output amplifier type; 0 => EM gain; 1 => conventional, obtained from last

func (*Camera) GetHSSpeedOption

func (c *Camera) GetHSSpeedOption(adcCh, outputAmpType, idx int) (float64, error)

GetHSSpeedOption gets the horizontal shift speed in Megahertz adcCh is an ADC channel outputAmpType is the output amplifier type; 0 => EM gain; 1 => conventional idx is the enum index

func (*Camera) GetHardwareVersion

func (c *Camera) GetHardwareVersion() (HardwareVersion, error)

GetHardwareVersion gets the hardware version string from the camera

func (*Camera) GetMaximumBinning

func (c *Camera) GetMaximumBinning(rm string, horizontal bool) (int, error)

GetMaximumBinning returns the maximum binning factor usable. if horizontal is true, the returned value is for the horizontal dimension. if horizontal is false, the returned value is for the vertical dimension.

func (*Camera) GetMaximumExposure

func (c *Camera) GetMaximumExposure() (float64, error)

GetMaximumExposure gets the maximum exposure time supported in the current configuration in seconds

func (*Camera) GetNumberADChannels

func (c *Camera) GetNumberADChannels() (int, error)

GetNumberADChannels returns the number of discrete A/D channels available

func (*Camera) GetNumberHSSpeeds

func (c *Camera) GetNumberHSSpeeds(ch int) (int, error)

GetNumberHSSpeeds gets the number of horizontal shift register speeds available

func (*Camera) GetNumberPreAmpGains

func (c *Camera) GetNumberPreAmpGains() (int, error)

GetNumberPreAmpGains returns the number of preamplifier gain settings available

func (*Camera) GetNumberVSSpeeds

func (c *Camera) GetNumberVSSpeeds() (int, error)

GetNumberVSSpeeds gets the number of vertical shift register speeds available

func (*Camera) GetPreAmpGain

func (c *Camera) GetPreAmpGain(idx int) (float64, error)

GetPreAmpGain returns the preamp gain (multiplier) associated with a given index

func (*Camera) GetPreAmpGainText

func (c *Camera) GetPreAmpGainText(idx int) (string, error)

GetPreAmpGainText returns a text description of a given preamp gain

func (*Camera) GetPreAmpOptions

func (c *Camera) GetPreAmpOptions() (map[string]interface{}, error)

GetPreAmpOptions

func (*Camera) GetReadoutMode

func (c *Camera) GetReadoutMode() (string, error)

GetReadoutMode returns the current read mode

func (*Camera) GetSerialNumber

func (c *Camera) GetSerialNumber() (int, error)

GetSerialNumber returns the serial number as an integer

func (*Camera) GetShutter

func (c *Camera) GetShutter() (bool, error)

GetShutter returns true if the shutter is currently open

func (*Camera) GetShutterAuto

func (c *Camera) GetShutterAuto() (bool, error)

GetShutterAuto retrieves if the shutter is in automatic (camera managed) or manual (user managed) mode.

func (*Camera) GetShutterSpeed

func (c *Camera) GetShutterSpeed() (time.Duration, error)

GetShutterSpeed retrieves if the shutter is in automatic (camera managed) or manual (user managed) mode.

func (*Camera) GetSoftwareVersion

func (c *Camera) GetSoftwareVersion() (SoftwareVersion, error)

GetSoftwareVersion gets the software version from the caemra

func (*Camera) GetStatus

func (c *Camera) GetStatus() (Status, error)

GetStatus gets the status while the camera is acquiring data

func (*Camera) GetTemperature

func (c *Camera) GetTemperature() (float64, error)

GetTemperature gets the current temperature in degrees celcius. The real type is int, but we use float for SD3 compatibility

func (*Camera) GetTemperatureRange

func (c *Camera) GetTemperatureRange() (int, int, error)

GetTemperatureRange gets the valid range of temperatures in which the detector can be cooled returns (min, max, error)

func (*Camera) GetTemperatureSetpoint

func (c *Camera) GetTemperatureSetpoint() (string, error)

GetTemperatureSetpoint returns the setpoint of the camera's TEC

func (*Camera) GetTemperatureSetpointInfo

func (c *Camera) GetTemperatureSetpointInfo() (map[string]interface{}, error)

GetTemperatureSetpointInfo Return possible options for temp setpoint

func (*Camera) GetTemperatureSetpoints

func (c *Camera) GetTemperatureSetpoints() ([]string, error)

GetTemperatureSetpoints returns an array of the MIN and MAX temperatures. Any integer intermediate is valid

func (*Camera) GetTemperatureStatus

func (c *Camera) GetTemperatureStatus() (string, error)

GetTemperatureStatus queries the status of the cooling system. it is not implemented in the SDK but is required to satisfy the thermalcontroller interface

func (*Camera) GetTriggerMode

func (c *Camera) GetTriggerMode() (string, error)

GetTriggerMode returns the current trigger mode

func (*Camera) GetVSAmplitude

func (c *Camera) GetVSAmplitude() (string, error)

func (*Camera) GetVSAmplitudeIndex

func (c *Camera) GetVSAmplitudeIndex() (int, error)

func (*Camera) GetVSSpeed

func (c *Camera) GetVSSpeed(idx int) (float64, error)

GetVSSpeed gets the vertical shift register speed in microseconds

func (*Camera) GetVSSpeedOption

func (c *Camera) GetVSSpeedOption(idx int) (float64, error)

GetVSSpeedOption gets the vertical shift register speed in microseconds

func (*Camera) GetVSSpeedRange

func (c *Camera) GetVSSpeedRange() (float64, float64, error)

GetVSSpeedRange gets the vertical shift register speed in microseconds

func (*Camera) SetADChannel

func (c *Camera) SetADChannel(ch int) error

SetADChannel sets the AD channel to use until it is changed again or the camera is powered off

func (*Camera) SetAOI

func (c *Camera) SetAOI(a camera.AOI) error

SetAOI sets the AoI used by the camera

func (*Camera) SetAccumulationCycleTime

func (c *Camera) SetAccumulationCycleTime(t float64) error

SetAccumulationCycleTime sets the accumulation cycle time of the camera in seconds

func (*Camera) SetAcquisitionMode

func (c *Camera) SetAcquisitionMode(am string) error

SetAcquisitionMode sets the acquisition mode of the camera

func (*Camera) SetBaselineClamp

func (c *Camera) SetBaselineClamp(b bool) error

SetBaselineClamp toggles the baseline clamp feature of the camera on (true) or off (false)

func (*Camera) SetBinning

func (c *Camera) SetBinning(b camera.Binning) error

SetBinning sets the binning used by the camera

func (*Camera) SetCooling

func (c *Camera) SetCooling(b bool) error

SetCooling toggles the cooler on (true) or off (false) NOTE:

  1. When the temperature control is switched off, the temperature of the sensor is gradually raised to 0C to ensure no thermal stresses are set up in the sensor. Classic & ICCD only.
  2. When closing down the program via ShutDown, you must ensure that the temperature of the detector is above -20C, otherwise calling ShutDown while the detector is still cooled will cause the temperature to rise faster than certified.

func (*Camera) SetEMAdvanced

func (c *Camera) SetEMAdvanced(b bool) error

SetEMAdvanced allows setting of the EM gain setting to values higher than 300x. Using this setting with more than 10s of photons per pixel per readout will lead to advanced ageing of the sensor.

func (*Camera) SetEMGain

func (c *Camera) SetEMGain(fctr int) error

SetEMGain sets the EMCCD gain. The precise behavior depends on the current gain mode, see SetEMGainMode, GetEMGainMode

func (*Camera) SetEMGainMode

func (c *Camera) SetEMGainMode(gm string) error

SetEMGainMode sets the current EMCCD gain mode

func (*Camera) SetExposureTime

func (c *Camera) SetExposureTime(t time.Duration) error

SetExposureTime sets the exposure time of the camera in seconds

func (*Camera) SetFan

func (c *Camera) SetFan(on bool) error

SetFan allows the fan to be turned on or off. this is not a 1:1 mimic of SDk2, since it is binary on (HIGH) or off (OFF)

func (*Camera) SetFeature

func (c *Camera) SetFeature(feature string, v interface{}) error

func (*Camera) SetFilterMode

func (c *Camera) SetFilterMode(fm string) error

SetFilterMode sets the filtering mode of the camera

func (*Camera) SetFrameTransferMode

func (c *Camera) SetFrameTransferMode(useFrameTransfer bool) error

SetFrameTransferMode puts the camera into frame transfer mode when the argument is true

func (*Camera) SetHSSpeed

func (c *Camera) SetHSSpeed(idx int) error

SetHSSpeed sets the horizontal shift speed idx is the enum index NOTE: The output amplitude type is the obtained from the last set

func (*Camera) SetHSSpeedIndex

func (c *Camera) SetHSSpeedIndex(outputAmpType, idx int) error

SetHSSpeedIndex sets the horizontal shift speed outputAmpType is the output amplifier type; 0 => EM gain; 1 => conventional idx is the enum index

func (*Camera) SetImage

func (c *Camera) SetImage(hbin, vbin, hstart, hend, vstart, vend int) error

SetImage wraps the SDK exactly and controls AoI and binning

func (*Camera) SetKineticCycleTime

func (c *Camera) SetKineticCycleTime(t float64) error

SetKineticCycleTime sets the kinetic cycle time

func (*Camera) SetNumberAccumulations

func (c *Camera) SetNumberAccumulations(i uint) error

SetNumberAccumulations sets the number of accumulaions

func (*Camera) SetNumberKinetics

func (c *Camera) SetNumberKinetics(i uint) error

SetNumberKinetics sets the number of kinetics

func (*Camera) SetPreAmpGain

func (c *Camera) SetPreAmpGain(idx int) error

SetPreAmpGain sets the preamp gain for the given AD channel to the specified index

func (*Camera) SetReadoutMode

func (c *Camera) SetReadoutMode(rm string) error

SetReadoutMode sets the readout mode of the camera. We rename this from SetReadMode in the actual driver

func (*Camera) SetShutter

func (c *Camera) SetShutter(b bool) error

SetShutter opens the shutter (true) or closes it (false)

func (*Camera) SetShutterAuto

func (c *Camera) SetShutterAuto(b bool) error

SetShutterAuto puts the camera into or out of automatic shutering mode, in which the camera itself controls the signaling and timing of the shutter.

b=false will put the shutter into a manual configuration mode and close it.

func (*Camera) SetShutterSpeed

func (c *Camera) SetShutterSpeed(t time.Duration) error

SetShutterSpeed sets the shutter opening AND closing time for the camera

func (*Camera) SetTemperatureSetpoint

func (c *Camera) SetTemperatureSetpoint(t string) error

SetTemperatureSetpoint assigns a setpoint to the camera's TEC

func (*Camera) SetTriggerMode

func (c *Camera) SetTriggerMode(tm string) error

SetTriggerMode sets the trigger mode of the camera

func (*Camera) SetVSAmplitude

func (c *Camera) SetVSAmplitude(v string) error

SetVSAmplitude configures the vertical shift amplitude based on a human legible string

func (*Camera) SetVSAmplitudeIndex

func (c *Camera) SetVSAmplitudeIndex(idx int) error

SetVSAmplitudeIndex sets the VS Amplitude by index

func (*Camera) SetVSSpeed

func (c *Camera) SetVSSpeed(idx int) error

SetVSSpeed sets the vertical shift register speed

func (*Camera) ShutDown

func (c *Camera) ShutDown()

ShutDown shuts down the camera this doesn't mimic the SDK 1:1, but the error can only be DRV_SUCCESS so we spare the user dealing with errors

func (*Camera) StartAcquisition

func (c *Camera) StartAcquisition() error

StartAcquisition starts the camera acquiring charge for an image

func (*Camera) WaitForAcquisition

func (c *Camera) WaitForAcquisition(t time.Duration) error

WaitForAcquisition sleeps while waiting for the acquisition completed signal from the SDK

type DRVError

type DRVError uint

DRVError represents a driver error and has nice formatting

func (DRVError) Error

func (e DRVError) Error() string

type Enum

type Enum map[string]int

Enum behaves a bit like a C enum

type ErrFeatureNotFound

type ErrFeatureNotFound struct {
	// Feature is the specific feature not found
	Feature string
}

ErrFeatureNotFound is generated when a feature is looked up in the Features map but does not exist there

func (ErrFeatureNotFound) Error

func (e ErrFeatureNotFound) Error() string

Error satisfies the error interface

type ErrParameterNotSet

type ErrParameterNotSet struct {
	Parameter string
}

func (ErrParameterNotSet) Error

func (e ErrParameterNotSet) Error() string

type HardwareVersion

type HardwareVersion struct {
	// PCB version
	PCB uint

	// Decode Flex 10K file version
	Decode uint

	// CameraFirmwareVersion Version # of camera firmware
	CameraFirmwareVersion uint

	// CameraFirmwareBuild
	CameraFirmwareBuild uint
	// contains filtered or unexported fields
}

HardwareVersion is a struct holding hardware versions

type SoftwareVersion

type SoftwareVersion struct {
	// EPROM version
	EPROM uint

	// COF version
	COF uint

	// DriverRevision
	DriverRevision uint

	// DriverVersion
	DriverVersion uint

	// DLLRevision
	DLLRevision uint

	// DLLVersion
	DLLVersion uint
}

SoftwareVersion is a struct holding software versions

type Status

type Status uint

Status is a camera status. They are also error codes

const (
	// WRAPVER is the wrapper version around andor SDK v2
	WRAPVER = 6

	// StatusIdle is IDLE waiting on instructions
	StatusIdle Status = 20073

	// StatusTempCycle executing temperature cycle
	StatusTempCycle Status = 20074

	// StatusAcquiring Acquisition in progress
	StatusAcquiring Status = 20072

	// StatusAccumTimeNotMet unable to meet accumulate cycle time
	StatusAccumTimeNotMet Status = 20023

	// StatusKineticTimeNotMet unable to meet kinetic cycle time
	StatusKineticTimeNotMet Status = 20022

	// StatusDriverError unable to communicate with card
	StatusDriverError Status = 20013

	// StatusAcqBufferOverflow buffer overflow at ISA slot
	StatusAcqBufferOverflow Status = 20018

	// StatusSpoolError buffer overflow at spool buffer
	StatusSpoolError Status = 20026
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL