CCD library contains CCD.dll, CCD.lib, CCD.h
The Source code of this is CCD.c and CCD.h.
Structure
typedef struct CCDInformation{
...
}CCDInfo;
- long camera: Atmcd32.h 의 GetCameraHandle 로 얻은 값
- int status
- int HBin: 파장 방향 비닝 값
- int VBin: 슬릿 방향 비닝 값
- int ScanNum: 스캔하는 총 스탭 수 (frame number)
- int FlatNum: 플랫이미지를 관측할 총 횟수 (초기 설정값: 100)
- int Gain: EM gain 값 (0-255)
- int PGain: preampgain 값 (0-2)
- int Trigger: 내부 또는 외부 트리거 사용 유무 (0: Internal, 1: External)
- int AcqMode: Acqusition mode. (1: Single (Step), 0: Video(Focous), 6: Frame Transfer, 5:Scan stop, 8: Single (continous))
- int ReadMode: 어떻게 찍을지 설정 ex. image, track, line (4: Imaging mode, 1: Full Vertical Binning). 4 만 유효하다.
- int ShutterMode: shutter mode (0: Fully Auto, 1: Permanently Open, 2: Permanently Closed)
- int FanSpeed: Fan Speed (0: High, 1: low, 2: off)
- int nx: 비닝 까지 한 후 계산 결과 얻은 파장 방향 픽셀 값 //nwidth, nhdim
- int ny: 비닝 까지 한 후 계산 결과 얻은 슬릿 방향 픽셀 값 //nheight, nydim
- int CCD_XPix: CCD 가 가질 수 있는 비닝 전 파장 방향 총 픽셀 값
- int CCD_YPix: CCD 가 가질 수 있는 비닝 전 슬릿 방향 총 픽셀 값
- int Temperature: CCD 온도 값
- int FISSMode: i.e. scan mode - 0:spectrograph, 1:imaging mode, -1:None
- int wvIndex: grating_focous.h 에 있는 WvSet 에서 선택할 설정 값의 index
- int TelXpos: 관측 중인 X 축 위치 값 (arcsec)
- int TelYpos: 관측 중인 Y 축 위치 값 (arcsec)
- int gStep: Grating step count
- float gWv: Grating wavelength
- float gAngle: Grating angle
- float exptime: 노출시간
- float elapseTime: 관측 완료까지 걸린 시간
- float stepTime: 1 스텝 스캔하는데 걸린 시간
- float stepSize: 1 스텝의 실제 스캔 사이즈, 스캐너에 지령을 줄 때는 이 값의 절반을 사용하여야 한다. // real_scan_size
- float scanSpeed: 1 스텝 스캔하는 속도 //scan_speed
- float scanDist: 스캔하여 움직이는 거리 //scan_stroke
- char FilePath[256]: fits 파일이 저장될 파일 위치
- char CCDPath[256]: CCD 컨트롤하는 작업 디렉토리 (output)
- char camID[2]: 카메라 A 인지 B 인지를 표시하는 인자.
- char ccdName[32]: CCD 모델명
- char stTime[64]: 관측 시작 시간
- char edTime[64]: 관측 종료 시간
- char Target[64]: Target 명
- char Observer[32]: 관측자 이름
- unsigned short* RawData: 관측된 결과가 저장되는 포인터
- unsigned short* BiasDark: 관측된 BiasDark 가 저장될 포인터
- float* FlatCube: 관측된 Flat 을 저장할 포인터
int OpenCamera(CCDInfo* CCD)
Power on and initialize the camera. 여기서 카메라가 가질 수 있는 총 픽셀수를 얻는다.
Parameters
- CCDInfo CCD: ccdinfo 구조체 포인터.
Return
- int: 성공 또는 에러 여부 (1: 성공, -1: 초기화 오류, -2: 카메라 정보 받아오기 실패, -99: 컴퓨터 타이머(diff_time 계산시 필요) 세팅 오류)
int CloseCamera(CCDInfo* CCD)
관측 데이터 메모리를 반환하고 카메라를 초기 설정으로 되돌린 후 종료한다.
Parameters
- CCDInfo CCD: ccdinfo 구조체 포인터.
Return
- int: 성공 또는 에러 여부 (1: 성공, -6: status 오류, -7: 셔터 오류, -8: 팬 종료 오류, -9: 카메라 종료 오류)
int GetCameraInfo(char* array)
Get camera information.
Parameter
- char* array: 카메라 정보를 출력 받을 문자열.
Return
- int: 성공 또는 에러 여부 (1:성공, -2: 카메라 정보 받아오기 오류, -3: ANDOR capabilities 정보 받아오기 오류, -4: HeadModel 정보 받아오기 오류, -5: AD 채널 수 받아오기 오류)
int SetCameraParam(CCDInfo* CCD, char* statOut)
binning, 촬영 모드 메모리 초기 할당 등 카메라를 세팅한다.
Parameter
- CCDInfo CCD: ccdinfo 구조체 포인터.
- char* StatOut: 설정한 노출 시간과 실제로 설정된 노출시간을 저장한 문자열. (Output)
Return
- int: 성공 유무 (1: 성공, -7: 셔터 오류, -8: fan 오류, -10: 메모리 할당 오류, -11: 관측 모드 (acqusition) 오류, -12: 프레임 수 오류, -13: readmode 오류, -14: preampgain 오류, -15: gain 오류, -16: 트리거 오류, -17: 노출시간 오류)
int TakeImage(void)
촬영 시작
Return
- int: 성공 유무 (1: 성공, -18: 관측 에러)
int SaveFits(CCDInfo CCD, double* diff_time)
Parameter
- CCDInfo CCD: ccdinfo 구조체.
- double* diff_time: fits 파일 저장하는 데 걸리는 시간을 문자열로 가지고 온다. (Output)
Return
int DataDump(CCDInfo* CCD, int i)
관측된 데이터를 컴퓨터 메모리로 반환한다.
Parameter:
- CCDInfo CCD: ccdinfo 구조체 포인터.
- int i: i 번째 프레임
int TakeBiasDark(CCDInfo* CCD)
BiasDark 이미지를 100 장 촬영하고 합쳐서 master BiasDark 를 만든다.
반드시 SetCameraParam 을 먼저 수행해야한다.
Parameter
- CCDInfo CCD: ccdinfo 구조체 포인터.
Return
- int: 성공유무 (1: 성공, -18: 관측 오류, -6: 상태 오류)
int TakeImage_FTmode(CCDInfo* CCD)
Frame Transfer 모드로 이미지를 관측한다.
Parameter
- CCDInfo CCD: ccdinfo 구조체 포인터.
Return
- int: 성공유무 (1: 성공, -18: 관측 오류, -6: 상태 오류)
void marktime(char* timestring, LARGE_INTEGER* gTime)
Parameter
- char* timestring: 현재 시간을 밀리초 단위 까지 가지고 isot 형식으로 문자열을 가지고 온다. (ex. 2019-12-18T19:26:30.375)
- LARGE_INTEGER* gTime: 추후에 elapsetime 을 계산하기 위해 시스템 시간을 고분해능으로 가지고 나온다.
float time_difference()
입력된 두 시간 사이의 차이를 계산한다.
Parameters
- LARGE_INTEGER* gStart: 시작 시간
- LARGE_INTEGER* gEnd: 종료 시간
Return
- float timediff: 종료 시간과 시작 시간의 시간차이
int SaveBiasDark(CCDInfo CCD, double* diff_time)
관측된 BiasDark 이미지를 fits 파일로 저장한다.
Parameters
- CCDInfo CCD: ccdinfo 구조체.
- double* diff_time: fits 파일 저장하는 데 걸리는 시간을 문자열로 가지고 온다. (Output)
Return
int SaveFlatFits(CCDInfo CCD, int number, double* diff_time)
관측된 Flat 이미지를 fits 파일로 저장한다.
Parameters
- CCDInfo CCD: ccdinfo 구조체.
- int number: grating 바꾸는 횟수 (초기값: 7)
- double* diff_time: fits 파일 저장하는 데 걸리는 시간을 문자열로 가지고 온다. (Output)
int TempSet(CCDInfo CCD, int OnOff, int Temp)
Turn on or Turn of the CCD cooler.
Parameter
- CCDInfo CCD: ccdinfo 구조체.
- int Onoff: Turn on/off the CCD. (1 is true)
- int Temp: Set the cooling temperature of the CCD in degree.
Output
- int: 성공 유무 (1: 성공, 2: 에러)