Atik SDK
Atik SDK for Atik devices
AtikCameras.h
Go to the documentation of this file.
1 #pragma once
2 
5 
6 #ifdef _WIN32
7 #include <comdef.h>
8 #else
9 #include <stddef.h>
11 typedef int BOOL;
13 typedef void * HINSTANCE;
14 #endif
15 
16 #ifdef __cplusplus
17 extern "C" {
18 #else
19 #include <stdbool.h>
20 #endif
21 
24  {
42  };
43 
46  {
53  };
54 
57  {
64  };
65 
68  {
69  CAMERA_ERROR = -1,
70  CAMERA_IDLE = 0,
71  CAMERA_WAITING,
72  CAMERA_EXPOSING,
73  CAMERA_READING,
74  CAMERA_DOWNLOADING,
75  CAMERA_FLUSHING,
76  };
77 
78  // @see ArtemisCameraConnectionState
79  enum ARTEMISCONNECTIONSTATE
80  {
81  CAMERA_CONNECTING = 1,
82  CAMERA_CONNECTED = 2,
83  CAMERA_CONNECT_FAILED = 3,
84  CAMERA_SUSPENDED = 4,
85  CAMERA_CONNECT_UNKNOWN = 5
86  };
87 
91  {
96  };
97 
101  {
106  };
107 
111  {
136  };
137 
141  {
158  };
159 
164  {
165  ARTEMIS_EFW1 = 1,
166  ARTEMIS_EFW2 = 2
167  };
168 
172  {
173  ID_GOPresetMode = 1,
174  ID_GOPresetLow = 2,
175  ID_GOPresetMed = 3,
176  ID_GOPresetHigh = 4,
177  ID_GOCustomGain = 5,
178  ID_GOCustomOffset = 6,
179  ID_EvenIllumination = 12,
180  ID_PadData = 13,
181  ID_ExposureSpeed = 14,
182  ID_BitSendMode = 15,
183  ID_FX3Version = 200,
184  ID_FPGAVersion = 201,
185  };
186 
190  {
192  int Protocol;
194  int nPixelsX;
196  int nPixelsY;
203  int ccdflags;
208  char Description[40];
210  char Manufacturer[40];
211  };
212 
215  typedef void * ArtemisHandle;
216 
219  static HINSTANCE hArtemisDLL = NULL;
220 
222  //
223  // Interface functions for Atik Cameras Camera Library
224  //
225 
226 
229  #define artfn extern
230 
231  // ------------------- DLL --------------------------
232 
235  artfn int ArtemisAPIVersion();
236 
239  artfn int ArtemisDLLVersion();
240 
244 
248  artfn void ArtemisAllowDebugToConsole(bool value);
249 
254  artfn void ArtemisSetDebugCallback(void(*callback)(const char *message));
255 
262  artfn void ArtemisSetDebugCallbackContext(void * context, void(*callback)(void * context, const char *message));
263 
266  artfn void ArtemisSetFirmwareDir(const char * firmwareDir);
267 
271  artfn void ArtemisSetAtikAir(const char * host, int port);
272 
275  artfn void ArtemisShutdown();
276 
277  // ------------------- Device --------------------------
278 
283 
288  artfn BOOL ArtemisDeviceIsPresent(int iDevice);
289 
293  artfn BOOL ArtemisDevicePresent( int iDevice);
294 
298  artfn BOOL ArtemisDeviceInUse( int iDevice);
299 
304  artfn BOOL ArtemisDeviceName( int iDevice, char *pName);
305 
310  artfn BOOL ArtemisDeviceSerial( int iDevice, char *pSerial);
311 
315  artfn BOOL ArtemisDeviceIsCamera( int iDevice);
316 
321 
325  artfn BOOL ArtemisDeviceHasGuidePort( int iDevice);
326 
332  artfn ArtemisHandle ArtemisConnect( int iDevice);
333 
338 
344 
349 
350 
351  // ------------------- Camera Info -----------------------------------
352 
358  artfn int ArtemisCameraSerial(ArtemisHandle handle, int* flags, int* serial);
359 
369  artfn int ArtemisColourProperties(ArtemisHandle handle, ARTEMISCOLOURTYPE *colourType, int *normalOffsetX, int *normalOffsetY, int *previewOffsetX, int *previewOffsetY);
370 
376  artfn int ArtemisProperties( ArtemisHandle handle, struct ARTEMISPROPERTIES *pProp);
377 
383  artfn int ArtemisCameraConnectionState(ArtemisHandle handle, ARTEMISCONNECTIONSTATE * state);
384 
385  // ------------------- Exposure Settings -----------------------------------
386 
394  artfn int ArtemisBin( ArtemisHandle handle, int x, int y);
395 
402  artfn int ArtemisGetBin( ArtemisHandle handle, int *x, int *y);
403 
410  artfn int ArtemisGetMaxBin( ArtemisHandle handle, int *x, int *y);
411 
420  artfn int ArtemisGetSubframe( ArtemisHandle handle, int *x, int *y, int *w, int *h);
421 
431  artfn int ArtemisSubframe( ArtemisHandle handle, int x, int y, int w, int h);
432 
439  artfn int ArtemisSubframePos( ArtemisHandle handle, int x, int y);
440 
447  artfn int ArtemisSubframeSize( ArtemisHandle handle, int w, int h);
448 
454  artfn int ArtemisSetSubSample( ArtemisHandle handle, bool bSub);
455 
460 
465 
472  artfn int ArtemisSetContinuousExposingMode( ArtemisHandle handle, bool bEnable);
473 
478 
484  artfn int ArtemisSetDarkMode( ArtemisHandle handle, bool bEnable);
485 
493  artfn int ArtemisSetPreview( ArtemisHandle handle, bool bPrev);
494 
500  artfn int ArtemisAutoAdjustBlackLevel( ArtemisHandle handle, bool bEnable);
501 
508  artfn int ArtemisPrechargeMode( ArtemisHandle handle, int mode);
509 
516  artfn int ArtemisEightBitMode( ArtemisHandle handle, bool eightbit);
517 
523  artfn int ArtemisGetEightBitMode( ArtemisHandle handle, bool *eightbit);
524 
530 
535 
541  artfn int ArtemisSetOverlappedExposureTime( ArtemisHandle handle, float fSeconds);
542 
548  artfn int ArtemisTriggeredExposure( ArtemisHandle handle, bool bAwaitTrigger);
549 
555 
561  artfn int ArtemisSetProcessing( ArtemisHandle handle, int options);
562 
563 
564  // ------------------- Exposures -----------------------------------
565 
571  artfn int ArtemisStartExposure( ArtemisHandle handle, float seconds);
572 
578  artfn int ArtemisStartExposureMS( ArtemisHandle handle, int ms);
579 
586 
593 
601 
607 
614 
620 
631  artfn int ArtemisGetImageData( ArtemisHandle handle, int *x, int *y, int *w, int *h, int *binx, int *biny);
632 
638  artfn void* ArtemisImageBuffer( ArtemisHandle handle);
639 
644 
652 
658 
663  artfn int ArtemisClearVReg( ArtemisHandle handle);
664 
669 
675 
680  artfn BOOL ArtemisSetFastCallback( ArtemisHandle handle, void(*callback)(ArtemisHandle handle, int x, int y, int w, int h, int binx, int biny, void * imageBuffer));
681 
682  // ------------------- Amplifier -----------------------------------
683 
690  artfn int ArtemisAmplifier( ArtemisHandle handle, bool bOn);
691 
696 
703  artfn int ArtemisSetAmplifierSwitched(ArtemisHandle handle, bool bSwitched);
704 
705  // ------------ Camera Specific Options -------------
706 
711  artfn bool ArtemisHasCameraSpecificOption( ArtemisHandle handle, unsigned short id);
712 
721  artfn int ArtemisCameraSpecificOptionGetData(ArtemisHandle handle, unsigned short id, unsigned char * data, int dataLength, int * actualLength);
722 
730  artfn int ArtemisCameraSpecificOptionSetData(ArtemisHandle handle, unsigned short id, unsigned char * data, int dataLength);
731 
732  // ------------------- Column Repair ----------------------------------
733 
740  artfn int ArtemisSetColumnRepairColumns( ArtemisHandle handle, int nColumn, unsigned short * columns);
741 
748  artfn int ArtemisGetColumnRepairColumns( ArtemisHandle handle, int * nColumn, unsigned short * columns);
749 
755 
761  artfn int ArtemisSetColumnRepairFixColumns( ArtemisHandle handle, bool value);
762 
768  artfn int ArtemisGetColumnRepairFixColumns( ArtemisHandle handle, bool * value);
769 
775  artfn int ArtemisGetColumnRepairCanFixColumns( ArtemisHandle handle, bool * value);
776 
777  // ---------------- EEPROM -------------------------
778 
785  artfn int ArtemisCanInteractWithEEPROM(ArtemisHandle handle, bool * canInteract);
786 
796  artfn int ArtemisWriteToEEPROM( ArtemisHandle handle, char * password, int address, int length, const unsigned char * data);
797 
807  artfn int ArtemisReadFromEEPROM( ArtemisHandle handle, char * password, int address, int length, unsigned char * data);
808 
809 
810  // ------------------- Filter Wheel -----------------------------------
811 
820  artfn int ArtemisFilterWheelInfo(ArtemisHandle handle, int *numFilters, int *moving, int *currentPos, int *targetPos);
821 
827  artfn int ArtemisFilterWheelMove(ArtemisHandle handle, int targetPos);
828 
833 
841  artfn int ArtemisEFWGetDeviceDetails(int i, ARTEMISEFWTYPE * type, char * serialNumber);
842 
847 
853 
858 
865  artfn int ArtemisEFWGetDetails( ArtemisHandle handle, ARTEMISEFWTYPE * type, char * serialNumber);
866 
871  artfn int ArtemisEFWNmrPosition(ArtemisHandle handle, int * nPosition);
872 
877  artfn int ArtemisEFWSetPosition(ArtemisHandle handle, int iPosition);
878 
884  artfn int ArtemisEFWGetPosition(ArtemisHandle handle, int * iPosition, bool * isMoving);
885 
886  // ------------------- Firmware ----------------------------------------
887 
893 
901  artfn int ArtemisUploadFirmware( ArtemisHandle handle, char * fileName, char * password);
902 
903  // ------------------- Gain ----------------------------------
904 
913  artfn int ArtemisGetGain(ArtemisHandle handle, bool isPreview, int *gain, int *offset);
914 
923  artfn int ArtemisSetGain(ArtemisHandle handle, bool isPreview, int gain, int offset);
924 
925  // ------------------- GPIO -----------------------------------
926 
933  artfn int ArtemisGetGpioInformation(ArtemisHandle handle, int* lineCount, int* lineValues);
934 
940  artfn int ArtemisSetGpioDirection( ArtemisHandle handle, int directionMask);
941 
947  artfn int ArtemisSetGpioValues( ArtemisHandle handle, int lineValues);
948 
949  // ------------------- Guiding -----------------------------------
950 
956  artfn int ArtemisGuide( ArtemisHandle handle, int axis);
957 
963  artfn int ArtemisGuidePort( ArtemisHandle handle, int nibble);
964 
971  artfn int ArtemisPulseGuide( ArtemisHandle handle, int axis, int milli);
972 
978 
984  artfn int ArtemisStopGuidingBeforeDownload(ArtemisHandle handle, bool bEnable);
985 
986  // ------------------- Hot Pixel ------------------------------
987 
988  enum HotPixelSensitivity { HPS_HIGH, HPS_MEDIUM, HPS_LOW };
989 
995  artfn int ArtemisAutoHotPixelRemoval(ArtemisHandle handle, bool on);
996 
1008  artfn int ArtemisAdvancedHotPixelRemoval(ArtemisHandle handle, bool on, bool darkFrame, bool checkForAdjacentHotPixels, HotPixelSensitivity hps);
1009 
1010  // ------------------- Lens -----------------------------------
1011 
1017  artfn int ArtemisGetLensAperture(ArtemisHandle handle, int* aperture);
1018 
1024  artfn int ArtemisGetLensFocus( ArtemisHandle handle, int* focus);
1025 
1034  artfn int ArtemisGetLensLimits( ArtemisHandle handle, int* apertureMin, int* apertureMax, int* focusMin, int* focusMax);
1035 
1042 
1048  artfn int ArtemisSetLensAperture(ArtemisHandle handle, int aperture);
1049 
1055  artfn int ArtemisSetLensFocus( ArtemisHandle handle, int focus);
1056 
1057  // ------------------- Shutter ----------------------------------
1058 
1064  artfn int ArtemisCanControlShutter( ArtemisHandle handle, bool * canControl);
1065 
1071  artfn int ArtemisOpenShutter( ArtemisHandle handle);
1072 
1079 
1085  artfn int ArtemisCanSetShutterSpeed(ArtemisHandle handle, bool *canSetShutterSpeed);
1086 
1092  artfn int ArtemisGetShutterSpeed( ArtemisHandle handle, int *speed);
1093 
1099  artfn int ArtemisSetShutterSpeed( ArtemisHandle handle, int speed);
1100 
1101  // ------------------- Temperature -----------------------------------
1102 
1110  artfn int ArtemisTemperatureSensorInfo(ArtemisHandle handle, int sensor, int* temperature);
1111 
1118  artfn int ArtemisSetCooling( ArtemisHandle handle, int setpoint);
1119 
1126  artfn int ArtemisSetCoolingPower( ArtemisHandle handle, int power);
1127 
1137  artfn int ArtemisCoolingInfo( ArtemisHandle handle, int* flags, int* level, int* minlvl, int* maxlvl, int* setpoint);
1138 
1145 
1151  artfn int ArtemisGetWindowHeaterPower( ArtemisHandle handle, int* windowHeaterPower);
1152 
1158  artfn int ArtemisSetWindowHeaterPower( ArtemisHandle handle, int windowHeaterPower);
1159 
1166  artfn bool ArtemisLoadDLL(const char * fileName);
1167 
1172  artfn void ArtemisUnLoadDLL();
1173 
1174  #undef artfn
1175 
1176 #ifdef __cplusplus
1177 }
1178 #endif
1179 
artfn BOOL ArtemisDeviceInUse(int iDevice)
Checks if the device has already been connected to.
Definition: AtikCameras.cpp:275
artfn int ArtemisPrechargeMode(ArtemisHandle handle, int mode)
Sets the precharge mode of the camera. Precharge applies an in-camera offset, mainly for astronomy us...
Definition: AtikCameras.cpp:630
int BOOL
Typedef for non windows builds.
Definition: AtikCameras.h:11
artfn int ArtemisCloseShutter(ArtemisHandle handle)
Closes the shutter on the device. Please call ArtemisCanControlShutter() to see if the shutter can be...
Definition: AtikCameras.cpp:1549
artfn int ArtemisReadFromEEPROM(ArtemisHandle handle, char *password, int address, int length, unsigned char *data)
Reads a value from the EEPROM. This API is for internal use.
Definition: AtikCameras.cpp:1122
artfn int ArtemisAutoAdjustBlackLevel(ArtemisHandle handle, bool bEnable)
Sets whether black auto-adjustment is enabled.
Definition: AtikCameras.cpp:618
artfn BOOL ArtemisGetContinuousExposingMode(ArtemisHandle handle)
Retrieves whether continuous exposing is enabled for the device.
Definition: AtikCameras.cpp:558
artfn BOOL ArtemisOverlappedExposureValid(ArtemisHandle handle)
Returns whether the overlapped exposure is still valid.
Definition: AtikCameras.cpp:678
artfn int ArtemisAutoHotPixelRemoval(ArtemisHandle handle, bool on)
A software based hot pixel remover with some pre defined parameters. darkFrame = false,...
Definition: AtikCameras.cpp:1424
artfn BOOL ArtemisDeviceHasFilterWheel(int iDevice)
Return whether the device at the specified index has a filter wheel device.
Definition: AtikCameras.cpp:324
artfn int ArtemisGetColumnRepairCanFixColumns(ArtemisHandle handle, bool *value)
Retrieves whether column repair can be enabled.
Definition: AtikCameras.cpp:1084
artfn BOOL ArtemisDevicePresent(int iDevice)
checks if the device at the index is connected.
Definition: AtikCameras.cpp:263
artfn void ArtemisSetAtikAir(const char *host, int port)
Connect to an AtikAir instance.
Definition: AtikCameras.cpp:213
artfn BOOL ArtemisGetAmplifierSwitched(ArtemisHandle handle)
Returns whether the amplifier is enabled.
Definition: AtikCameras.cpp:960
artfn int ArtemisWriteToEEPROM(ArtemisHandle handle, char *password, int address, int length, const unsigned char *data)
Writes a value to the EEPROM. This API is for internal use.
Definition: AtikCameras.cpp:1110
artfn int ArtemisEFWNmrPosition(ArtemisHandle handle, int *nPosition)
Gets the number of filters inside the filter wheel.
Definition: AtikCameras.cpp:1233
artfn BOOL ArtemisDisconnect(ArtemisHandle handle)
Disconnects from the device with that handle and invalidates the handle.
Definition: AtikCameras.cpp:373
artfn bool ArtemisEFWIsConnected(ArtemisHandle handle)
Retrieves whether the handle for the filter wheel is valid.
Definition: AtikCameras.cpp:1197
artfn int ArtemisSetWindowHeaterPower(ArtemisHandle handle, int windowHeaterPower)
Sets the window heater power.
Definition: AtikCameras.cpp:1671
artfn int ArtemisStartOverlappedExposure(ArtemisHandle handle)
Begin an overlapped exposure.
Definition: AtikCameras.cpp:666
artfn int ArtemisPulseGuide(ArtemisHandle handle, int axis, int milli)
Definition: AtikCameras.cpp:1385
artfn BOOL ArtemisEFWIsPresent(int i)
Checks whether a filter wheel is present at the index.
Definition: AtikCameras.cpp:1161
artfn int ArtemisGetLensLimits(ArtemisHandle handle, int *apertureMin, int *apertureMax, int *focusMin, int *focusMax)
Returns the lens numerical limits for the device.
Definition: AtikCameras.cpp:1475
static HINSTANCE hArtemisDLL
DLL handle set by ArtemisLoadDLL(). This is irrelevant if you are linking at compile time.
Definition: AtikCameras.h:219
artfn int ArtemisSetCoolingPower(ArtemisHandle handle, int power)
Sets the cooling power of the cooler directly. This will override ArtemisSetCooling().
Definition: AtikCameras.cpp:1623
artfn int ArtemisClearColumnRepairColumns(ArtemisHandle handle)
Remove all column repair processing set previously.
Definition: AtikCameras.cpp:1048
artfn int ArtemisAmplifier(ArtemisHandle handle, bool bOn)
Enable/disable the device's amplifier. This function is equivalent to ArtemisSetAmplifierSwitched().
Definition: AtikCameras.cpp:948
artfn int ArtemisTriggeredExposure(ArtemisHandle handle, bool bAwaitTrigger)
Sets whether the device will await a triggered exposure.
Definition: AtikCameras.cpp:702
artfn float ArtemisLastExposureDuration(ArtemisHandle handle)
Returns the duration of the last exposure as floating point number of seconds.
Definition: AtikCameras.cpp:861
artfn int ArtemisSetColumnRepairFixColumns(ArtemisHandle handle, bool value)
Sets whether column repair is enabled.
Definition: AtikCameras.cpp:1060
artfn void ArtemisAllowDebugToConsole(bool value)
Allows debug output to be output to standard error.
Definition: AtikCameras.cpp:165
artfn int ArtemisFilterWheelMove(ArtemisHandle handle, int targetPos)
Move the filter wheel to the desired location.
Definition: AtikCameras.cpp:1149
artfn int ArtemisSetGpioValues(ArtemisHandle handle, int lineValues)
Definition: AtikCameras.cpp:1347
artfn void ArtemisSetDebugCallbackContext(void *context, void(*callback)(void *context, const char *message))
Same as ArtemisSetDebugCallback(), but allows to pass an additional void pointer. This can be used to...
Definition: AtikCameras.cpp:189
artfn int ArtemisOpenShutter(ArtemisHandle handle)
Opens the shutter on the device. Please call ArtemisCanControlShutter() to see if the shutter can be ...
Definition: AtikCameras.cpp:1537
artfn int ArtemisSetPreview(ArtemisHandle handle, bool bPrev)
Sets whether preview mode is enabled for the device. If preview mode is enabled, the sensor is not cl...
Definition: AtikCameras.cpp:606
artfn int ArtemisSetOverlappedExposureTime(ArtemisHandle handle, float fSeconds)
Set the overlapped exposure time.
Definition: AtikCameras.cpp:690
artfn int ArtemisFilterWheelInfo(ArtemisHandle handle, int *numFilters, int *moving, int *currentPos, int *targetPos)
Retrieve the state of the filter wheel.
Definition: AtikCameras.cpp:1137
artfn void * ArtemisImageBuffer(ArtemisHandle handle)
Returns a pointer to the internal image buffer which contains the latest captured image....
Definition: AtikCameras.cpp:849
artfn int ArtemisSetShutterSpeed(ArtemisHandle handle, int speed)
Sets the shutter speed.
Definition: AtikCameras.cpp:1585
artfn int ArtemisInitializeLens(ArtemisHandle handle)
Initialise lens controls. If not called, lens control methods will return ARTEMIS_NOT_INITIALIZED.
Definition: AtikCameras.cpp:1487
artfn void ArtemisShutdown()
Deallocates all internal DLL structures. The SDK functions may not be called after calling this funct...
Definition: AtikCameras.cpp:225
artfn char * ArtemisLastStartTime(ArtemisHandle handle)
Returns a pointer to the formatted last exposure start time. The buffer is internal to the SDK and is...
Definition: AtikCameras.cpp:873
artfn int ArtemisStopGuidingBeforeDownload(ArtemisHandle handle, bool bEnable)
Definition: AtikCameras.cpp:1409
artfn int ArtemisClearVReg(ArtemisHandle handle)
This API is for internal use.
Definition: AtikCameras.cpp:897
artfn int ArtemisCameraState(ArtemisHandle handle)
Returns the device's state as an ARTEMISCAMERASTATE enumeration.
Definition: AtikCameras.cpp:801
artfn int ArtemisGetMaxBin(ArtemisHandle handle, int *x, int *y)
Retrieves the maximum binning supported by the device.
Definition: AtikCameras.cpp:474
artfn int ArtemisCameraConnectionState(ArtemisHandle handle, ARTEMISCONNECTIONSTATE *state)
Retrieves the camera connection state.
Definition: AtikCameras.cpp:436
artfn int ArtemisSetContinuousExposingMode(ArtemisHandle handle, bool bEnable)
Set whether continuous exposing mode is enabled. This only has an effect on supported devices.
Definition: AtikCameras.cpp:570
artfn void ArtemisSetFirmwareDir(const char *firmwareDir)
Internal function used during flashing.
Definition: AtikCameras.cpp:201
void * ArtemisHandle
Definition: AtikCameras.h:215
ARTEMISCAMERASTATE
Definition: AtikCameras.h:68
artfn int ArtemisSetGain(ArtemisHandle handle, bool isPreview, int gain, int offset)
Set the gain and offset for the device Note that Horizon/ACIS cameras need to use ArtemisCameraSpecif...
Definition: AtikCameras.cpp:1309
artfn int ArtemisCanInteractWithEEPROM(ArtemisHandle handle, bool *canInteract)
Retrieves whether the EEPROM can be interacted with. This API is for internal use.
Definition: AtikCameras.cpp:1098
artfn int ArtemisStartExposure(ArtemisHandle handle, float seconds)
Begin an exposure for the device, specifying a duration as floating point seconds.
Definition: AtikCameras.cpp:741
artfn int ArtemisColourProperties(ArtemisHandle handle, ARTEMISCOLOURTYPE *colourType, int *normalOffsetX, int *normalOffsetY, int *previewOffsetX, int *previewOffsetY)
Retrieves the colour properties of the the connected device.
Definition: AtikCameras.cpp:412
artfn int ArtemisLastStartTimeMilliseconds(ArtemisHandle handle)
Returns the last exposure start time millisecond component.
Definition: AtikCameras.cpp:885
artfn BOOL ArtemisContinuousExposingModeSupported(ArtemisHandle handle)
Retrieves whether continuous exposing is supported by the device.
Definition: AtikCameras.cpp:546
artfn BOOL ArtemisIsLocalConnection()
Gets whether the connection to the camera is local.
Definition: AtikCameras.cpp:153
artfn int ArtemisSetDarkMode(ArtemisHandle handle, bool bEnable)
Sets whether dark mode is enabled for the device.
Definition: AtikCameras.cpp:594
ARTEMISPROPERTIESCCDFLAGS
Index into the ccdflags value of ARTEMISPROPERTIES.
Definition: AtikCameras.h:101
@ ARTEMIS_PROPERTIES_CCDFLAGS_DUMMY
Enum padding to 4 bytes. Not used.
Definition: AtikCameras.h:105
@ ARTEMIS_PROPERTIES_CCDFLAGS_INTERLACED
CCD is interlaced type.
Definition: AtikCameras.h:103
artfn int ArtemisGetColumnRepairColumns(ArtemisHandle handle, int *nColumn, unsigned short *columns)
Get the columns on which column repair post processing is performed.
Definition: AtikCameras.cpp:1036
artfn int ArtemisGetColumnRepairFixColumns(ArtemisHandle handle, bool *value)
Retrieves whether column repair is enabled or not.
Definition: AtikCameras.cpp:1072
artfn int ArtemisSetLensFocus(ArtemisHandle handle, int focus)
Sets the lens focus.
Definition: AtikCameras.cpp:1511
artfn int ArtemisGetGain(ArtemisHandle handle, bool isPreview, int *gain, int *offset)
Get the currently set gain and offset for the device. Note that Horizon/ACIS cameras need to use Arte...
Definition: AtikCameras.cpp:1297
CameraSpecificOptionsIDs
ID's for the camera specific options.
Definition: AtikCameras.h:172
ARTEMISCOOLINGINFO
Index into ArtemisCoolingInfo() Flags.
Definition: AtikCameras.h:141
@ ARTEMIS_COOLING_INFO_HASCOOLING
Camera can be cooled. 0= No cooling ability 1= Has cooling.
Definition: AtikCameras.h:143
@ ARTEMIS_COOLING_INFO_COOLINGON
Currently cooling. 0= Cooling off 1= Cooling on.
Definition: AtikCameras.h:155
@ ARTEMIS_COOLING_INFO_CONTROLLABLE
Cooling is always on or can be controlled. 0= Always on 1= Controllable.
Definition: AtikCameras.h:145
@ ARTEMIS_COOLING_INFO_POWERLEVELCONTROL
Cooling can be set via ArtemisSetCoolingPower()
Definition: AtikCameras.h:149
@ ARTEMIS_COOLING_INFO_WARMINGUP
Currently warming up. 0= Normal control 1= Warming Up.
Definition: AtikCameras.h:153
@ ARTEMIS_COOLING_INFO_ONOFFCOOLINGCONTROL
Cooling can be switched On/Off. 0= On/Off control not available 1= On/Off control available.
Definition: AtikCameras.h:147
@ ARTEMIS_COOLING_INFO_SETPOINTCONTROLON
Currently under setpoint control 0= No set point control 1= Set point control.
Definition: AtikCameras.h:157
@ ARTEMIS_COOLING_INFO_SETPOINTCONTROL
Cooling can be set via ArtemisSetCooling()
Definition: AtikCameras.h:151
artfn int ArtemisSubframe(ArtemisHandle handle, int x, int y, int w, int h)
Set the device's subframe position and size. This is equivalent to calling ArtemisSubframePos() follo...
Definition: AtikCameras.cpp:498
artfn int ArtemisRefreshDevicesCount()
Updates the available device count.
Definition: AtikCameras.cpp:385
#define artfn
Function declaration linkage is implicitly extern This definition and further usage has been left in ...
Definition: AtikCameras.h:229
artfn int ArtemisGetLensFocus(ArtemisHandle handle, int *focus)
Gets the current lens focus value.
Definition: AtikCameras.cpp:1463
ARTEMISPRECHARGEMODE
Definition: AtikCameras.h:57
@ PRECHARGE_NONE
Precharge ignored.
Definition: AtikCameras.h:59
@ PRECHARGE_ICPS
In-camera precharge subtraction.
Definition: AtikCameras.h:61
@ PRECHARGE_FULL
Precharge sent with image data.
Definition: AtikCameras.h:63
artfn BOOL ArtemisIsConnected(ArtemisHandle handle)
Returns whether the handle is currently connected to a camera.
Definition: AtikCameras.cpp:361
ARTEMISPROCESSING
Definition: AtikCameras.h:91
@ ARTEMIS_PROCESS_LINEARISE
compensate for JFET nonlinearity
Definition: AtikCameras.h:93
@ ARTEMIS_PROCESS_VBE
adjust for 'Venetian Blind effect'
Definition: AtikCameras.h:95
artfn BOOL ArtemisDeviceSerial(int iDevice, char *pSerial)
Retrieves the device's serial number.
Definition: AtikCameras.cpp:300
artfn int ArtemisSetAmplifierSwitched(ArtemisHandle handle, bool bSwitched)
Enable/disable the device's amplifier. This function is equivalent to ArtemisAmplifier().
Definition: AtikCameras.cpp:972
artfn int ArtemisCameraSpecificOptionSetData(ArtemisHandle handle, unsigned short id, unsigned char *data, int dataLength)
Used to set the specified option's value. Please check that the current camera has this option using ...
Definition: AtikCameras.cpp:1010
artfn int ArtemisSetGpioDirection(ArtemisHandle handle, int directionMask)
Definition: AtikCameras.cpp:1335
artfn int ArtemisEFWGetDetails(ArtemisHandle handle, ARTEMISEFWTYPE *type, char *serialNumber)
Get information on the connected filter wheel device. This is the same as ArtemisEFWGetDeviceDetails(...
Definition: AtikCameras.cpp:1221
artfn int ArtemisGetEightBitMode(ArtemisHandle handle, bool *eightbit)
Retrieves whether 8-bit mode is enabled on the device.
Definition: AtikCameras.cpp:654
artfn int ArtemisEightBitMode(ArtemisHandle handle, bool eightbit)
Sets whether 8-bit mode is enabled on the device. This affects the size of the returned image buffer,...
Definition: AtikCameras.cpp:642
artfn int ArtemisDLLVersion()
Get DLL version. This may be the same as the API version.
Definition: AtikCameras.cpp:141
artfn int ArtemisSetLensAperture(ArtemisHandle handle, int aperture)
Sets the lens aperture.
Definition: AtikCameras.cpp:1499
artfn void ArtemisSetDebugCallback(void(*callback)(const char *message))
Provide a pointer to a function, which will be invoked when debug output is produced....
Definition: AtikCameras.cpp:177
artfn int ArtemisProperties(ArtemisHandle handle, struct ARTEMISPROPERTIES *pProp)
Definition: AtikCameras.cpp:424
artfn int ArtemisGetSubframe(ArtemisHandle handle, int *x, int *y, int *w, int *h)
Retrieves the current subframing setting for the device.
Definition: AtikCameras.cpp:486
artfn int ArtemisCameraSpecificOptionGetData(ArtemisHandle handle, unsigned short id, unsigned char *data, int dataLength, int *actualLength)
Used to get the specified option's current value. Please check that the current camera has this optio...
Definition: AtikCameras.cpp:998
ARTEMISEFWTYPE
Filter wheel type.
Definition: AtikCameras.h:164
artfn bool ArtemisHasCameraSpecificOption(ArtemisHandle handle, unsigned short id)
Returns whether the specified option is available.
Definition: AtikCameras.cpp:986
artfn int ArtemisGetBin(ArtemisHandle handle, int *x, int *y)
Gets the binning for the device.
Definition: AtikCameras.cpp:462
artfn int ArtemisTemperatureSensorInfo(ArtemisHandle handle, int sensor, int *temperature)
Gets temperature of the device for the specific sensor index, in hundreds of degrees centigrade....
Definition: AtikCameras.cpp:1599
artfn int ArtemisDeviceCount()
Returns the number of connected and recognised devices. The count does not include misconfigured devi...
Definition: AtikCameras.cpp:239
artfn int ArtemisAPIVersion()
Get API version. This may be the same as the DLL version.
Definition: AtikCameras.cpp:129
artfn int ArtemisDownloadPercent(ArtemisHandle handle)
Returns the download progress in percent.
Definition: AtikCameras.cpp:825
artfn BOOL ArtemisDeviceHasGuidePort(int iDevice)
Return whether the device at the specified index has a guide port.
Definition: AtikCameras.cpp:336
artfn int ArtemisUploadFirmware(ArtemisHandle handle, char *fileName, char *password)
Upload a new firmware on the device. This API is for internal use.
Definition: AtikCameras.cpp:1283
artfn int ArtemisSetColumnRepairColumns(ArtemisHandle handle, int nColumn, unsigned short *columns)
Set the columns on which column repair post processing is performed.
Definition: AtikCameras.cpp:1024
artfn BOOL ArtemisDeviceName(int iDevice, char *pName)
Retrieves the device's printable name.
Definition: AtikCameras.cpp:288
artfn ArtemisHandle ArtemisEFWConnect(int i)
Connect to a filter wheel device at the specified index.
Definition: AtikCameras.cpp:1185
artfn BOOL ArtemisSetFastCallback(ArtemisHandle handle, void(*callback)(ArtemisHandle handle, int x, int y, int w, int h, int binx, int biny, void *imageBuffer))
Set the callback that will be invoked when a fast mode exposure is completed.
Definition: AtikCameras.cpp:934
artfn int ArtemisCameraSerial(ArtemisHandle handle, int *flags, int *serial)
Retrieves the serial number of the connected device.
Definition: AtikCameras.cpp:400
artfn int ArtemisAbortExposure(ArtemisHandle handle)
Stop the current exposure for the device. This is analogous to ArtemisStopExposure().
Definition: AtikCameras.cpp:765
artfn void ArtemisUnLoadDLL()
Unloads the Atik DLL and frees the internal DLL handle. This method is only needed if the DLL is link...
Definition: AtikCameras.cpp:1706
artfn BOOL ArtemisHasFastMode(ArtemisHandle handle)
Gets whether the device supports fast mode.
Definition: AtikCameras.cpp:910
artfn int ArtemisGuidePort(ArtemisHandle handle, int nibble)
Definition: AtikCameras.cpp:1373
artfn int ArtemisGetShutterSpeed(ArtemisHandle handle, int *speed)
Gets the shutter speed.
Definition: AtikCameras.cpp:1573
artfn int ArtemisStopExposure(ArtemisHandle handle)
Stop the current exposure for the device. This is analogous to ArtemisAbortExposure().
Definition: AtikCameras.cpp:777
artfn int ArtemisGetLensAperture(ArtemisHandle handle, int *aperture)
Gets the current lens aperture value.
Definition: AtikCameras.cpp:1451
artfn int ArtemisEFWSetPosition(ArtemisHandle handle, int iPosition)
Sets the device's filter wheel position.
Definition: AtikCameras.cpp:1245
artfn int ArtemisCoolerWarmUp(ArtemisHandle handle)
Disables active cooling for the device. On some devices, this will perform a slow ramp down of the co...
Definition: AtikCameras.cpp:1647
artfn bool ArtemisLoadDLL(const char *fileName)
Dynamically loads the Atik implementation DLL. This method is only needed if the DLL is linked dynami...
Definition: AtikCameras.cpp:1686
ARTEMISERROR
Main error enum for methods with "int" as return type.
Definition: AtikCameras.h:24
@ ARTEMIS_NOT_INITIALIZED
Camera Not init.
Definition: AtikCameras.h:39
@ ARTEMIS_NOT_CONNECTED
Camera is not connected.
Definition: AtikCameras.h:31
@ ARTEMIS_INVALID_PARAMETER
Definition: AtikCameras.h:29
@ ARTEMIS_NOT_IMPLEMENTED
Not impl.
Definition: AtikCameras.h:33
@ ARTEMIS_OPERATION_FAILED
Failed.
Definition: AtikCameras.h:41
@ ARTEMIS_NO_RESPONSE
No response.
Definition: AtikCameras.h:35
@ ARTEMIS_OK
Operation successful.
Definition: AtikCameras.h:26
@ ARTEMIS_INVALID_FUNCTION
Invalid function.
Definition: AtikCameras.h:37
artfn int ArtemisGetGpioInformation(ArtemisHandle handle, int *lineCount, int *lineValues)
Definition: AtikCameras.cpp:1323
artfn int ArtemisBin(ArtemisHandle handle, int x, int y)
Sets the binning for the device. This will cause the resolution of the captured image to change accor...
Definition: AtikCameras.cpp:450
artfn int ArtemisEFWDisconnect(ArtemisHandle handle)
Disconnect from the filter wheel handle.
Definition: AtikCameras.cpp:1209
artfn BOOL ArtemisImageReady(ArtemisHandle handle)
Returns whether the image has been fully downloaded and is ready to access. This method can be polled...
Definition: AtikCameras.cpp:789
artfn BOOL ArtemisGetDarkMode(ArtemisHandle handle)
Retrieves whether dark mode is enabled for the device.
Definition: AtikCameras.cpp:582
artfn int ArtemisSetSubSample(ArtemisHandle handle, bool bSub)
Set whether subsampling mode is enabled on the device.
Definition: AtikCameras.cpp:534
artfn BOOL ArtemisStartFastExposure(ArtemisHandle handle, int ms)
Begins a fast mode exposure.
Definition: AtikCameras.cpp:922
artfn int ArtemisAdvancedHotPixelRemoval(ArtemisHandle handle, bool on, bool darkFrame, bool checkForAdjacentHotPixels, HotPixelSensitivity hps)
A software based hot pixel remover with several parameters. If dakFrame is true this function will bl...
Definition: AtikCameras.cpp:1437
artfn int ArtemisCoolingInfo(ArtemisHandle handle, int *flags, int *level, int *minlvl, int *maxlvl, int *setpoint)
Retrieves information about the cooling settings for the device.
Definition: AtikCameras.cpp:1635
artfn int ArtemisEFWGetPosition(ArtemisHandle handle, int *iPosition, bool *isMoving)
Gets the device's filter wheel position.
Definition: AtikCameras.cpp:1257
artfn int ArtemisGetProcessing(ArtemisHandle handle)
Return which post processing flags are enabled for the device.
Definition: AtikCameras.cpp:714
artfn BOOL ArtemisDeviceIsCamera(int iDevice)
Return whether the device at the specified index is a camera (and not E.G. a filter wheel device).
Definition: AtikCameras.cpp:312
artfn int ArtemisGetImageData(ArtemisHandle handle, int *x, int *y, int *w, int *h, int *binx, int *biny)
Provides information about the latest acquired image.
Definition: AtikCameras.cpp:837
void * HINSTANCE
Typedef for non windows builds.
Definition: AtikCameras.h:13
artfn int ArtemisGetWindowHeaterPower(ArtemisHandle handle, int *windowHeaterPower)
Gets the window heater power.
Definition: AtikCameras.cpp:1659
ARTEMISPROPERTIESCAMERAFLAGS
Definition: AtikCameras.h:111
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_HAS_GPIO
Camera has GPIO capability.
Definition: AtikCameras.h:125
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_FIFO
Camera has readout FIFO fitted.
Definition: AtikCameras.h:113
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_HAS_OVERLAP_MODE
Camera can overlap.
Definition: AtikCameras.h:131
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_HAS_SHUTTER
Camera has a mechanical shutter.
Definition: AtikCameras.h:121
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_PREVIEW
Camera can return preview data.
Definition: AtikCameras.h:117
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_DUMMY
Enum padding to 4 bytes. Not used.
Definition: AtikCameras.h:135
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_HAS_WINDOW_HEATER
Camera has a window heater.
Definition: AtikCameras.h:127
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_EXT_TRIGGER
Camera has external trigger capabilities.
Definition: AtikCameras.h:115
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_SUBSAMPLE
Camera can return subsampled data.
Definition: AtikCameras.h:119
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_HAS_FILTERWHEEL
Camera has internal filterwheel.
Definition: AtikCameras.h:133
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_HAS_EIGHT_BIT_MODE
Camera can download 8-bit images.
Definition: AtikCameras.h:129
@ ARTEMIS_PROPERTIES_CAMERAFLAGS_HAS_GUIDE_PORT
Camera has a guide port.
Definition: AtikCameras.h:123
artfn int ArtemisCanControlShutter(ArtemisHandle handle, bool *canControl)
Checks whether the shutter can be opened and closed on the device.
Definition: AtikCameras.cpp:1525
artfn BOOL ArtemisDeviceIsPresent(int iDevice)
Duplicate of ArtemisDevicePresent().
Definition: AtikCameras.cpp:251
artfn int ArtemisSubframePos(ArtemisHandle handle, int x, int y)
Sets the device's subframe position.
Definition: AtikCameras.cpp:510
artfn int ArtemisStartExposureMS(ArtemisHandle handle, int ms)
Begin an exposure for the device, specifying a duration as milliseconds.
Definition: AtikCameras.cpp:753
ARTEMISCOLOURTYPE
Camera colour properties.
Definition: AtikCameras.h:46
@ ARTEMIS_COLOUR_UNKNOWN
Either the device is not a camera or the colour cannot be determined.
Definition: AtikCameras.h:48
@ ARTEMIS_COLOUR_RGGB
Device sensor is colour (RGGB)
Definition: AtikCameras.h:52
@ ARTEMIS_COLOUR_NONE
Device sensor is monochrome.
Definition: AtikCameras.h:50
artfn bool ArtemisCanUploadFirmware(ArtemisHandle handle)
Returns whether firmware can be uploaded to the device. This API is for internal use.
Definition: AtikCameras.cpp:1271
artfn ArtemisHandle ArtemisConnect(int iDevice)
Definition: AtikCameras.cpp:349
artfn int ArtemisEFWGetDeviceDetails(int i, ARTEMISEFWTYPE *type, char *serialNumber)
Get information on the filter wheel device at the specified index. This is the same as ArtemisEFWGetD...
Definition: AtikCameras.cpp:1173
artfn int ArtemisSubframeSize(ArtemisHandle handle, int w, int h)
Sets the device's subframe width and height.
Definition: AtikCameras.cpp:522
artfn float ArtemisExposureTimeRemaining(ArtemisHandle handle)
Returns how much time is left in the exposure as a floating point number. Note this does not include ...
Definition: AtikCameras.cpp:813
artfn int ArtemisSetProcessing(ArtemisHandle handle, int options)
Sets which post processing effects are enabled for the device.
Definition: AtikCameras.cpp:726
artfn int ArtemisStopGuiding(ArtemisHandle handle)
Definition: AtikCameras.cpp:1397
artfn int ArtemisGuide(ArtemisHandle handle, int axis)
Definition: AtikCameras.cpp:1361
artfn int ArtemisSetCooling(ArtemisHandle handle, int setpoint)
Sets the cooling target temperature of the device. This will override ArtemisSetCoolingPower().
Definition: AtikCameras.cpp:1611
artfn int ArtemisCanSetShutterSpeed(ArtemisHandle handle, bool *canSetShutterSpeed)
Checks whether the shutter speed can be set on the device.
Definition: AtikCameras.cpp:1561
Definition: AtikCameras.h:190
int nPixelsX
X resolution.
Definition: AtikCameras.h:194
int ccdflags
Definition: AtikCameras.h:203
int Protocol
Firmware version.
Definition: AtikCameras.h:192
float PixelMicronsX
Physical size of each pixel in microns, horizontally.
Definition: AtikCameras.h:198
int nPixelsY
Y resolution.
Definition: AtikCameras.h:196
float PixelMicronsY
Physical size of each pixel in microns, vertically.
Definition: AtikCameras.h:200
int cameraflags
Definition: AtikCameras.h:206
char Manufacturer[40]
Manufacturer of device.
Definition: AtikCameras.h:210
char Description[40]
Model of the device.
Definition: AtikCameras.h:208