/////////////////////////////////////////////////////////////
//
// ApnCamTable.h:  Camera models and description strings.
//
// Copyright (c) 2003-2007 Apogee Instruments, Inc.
//
/////////////////////////////////////////////////////////////


#ifndef __APN_CAM_TABLE_H__
#define __APN_CAM_TABLE_H__


// Used to derive camera platform type from camera ID
#define APN_SIG_CAMERA_ID_ASCENT		0x0100

#define APN_MASK_CAMERA_ID_ALTA			0x007F
#define APN_MASK_CAMERA_ID_ASCENT		0x01FF


//////////////////////////////////////////////////////////
// Alta Camera Models
//////////////////////////////////////////////////////////

#define APN_ALTA_KAF0401E_CAM_ID	0
#define APN_ALTA_KAF0401E_CAM_SZ	"1"
	
#define APN_ALTA_KAF1602E_CAM_ID	1
#define APN_ALTA_KAF1602E_CAM_SZ	"2"

#define APN_ALTA_KAF0261E_CAM_ID	2
#define APN_ALTA_KAF0261E_CAM_SZ	"260"

#define APN_ALTA_KAF1301E_CAM_ID	3
#define APN_ALTA_KAF1301E_CAM_SZ	"13"

#define APN_ALTA_KAF1001E_CAM_ID	5
#define APN_ALTA_KAF1001E_CAM_SZ	"6"

#define APN_ALTA_KAF1001ENS_CAM_ID	30
#define APN_ALTA_KAF1001ENS_CAM_SZ	"6NS"

#define APN_ALTA_KAF10011105_CAM_ID	31
#define APN_ALTA_KAF10011105_CAM_SZ	"6-1105"

#define APN_ALTA_KAF3200E_CAM_ID	6
#define APN_ALTA_KAF3200E_CAM_SZ	"32"

#define APN_ALTA_KAF6303E_CAM_ID	8
#define APN_ALTA_KAF6303E_CAM_SZ	"9"

#define APN_ALTA_KAF16801E_CAM_ID	9
#define APN_ALTA_KAF16801E_CAM_SZ	"16"

#define	APN_ALTA_KAF09000_CAM_ID	4
#define	APN_ALTA_KAF09000_CAM_SZ	"9000"

#define APN_ALTA_KAF09000X_CAM_ID	39
#define APN_ALTA_KAF09000X_CAM_SZ	"9000X"

#define APN_ALTA_KAF0401EB_CAM_ID	32
#define APN_ALTA_KAF0401EB_CAM_SZ	"1"
	
#define APN_ALTA_KAF1602EB_CAM_ID	33
#define APN_ALTA_KAF1602EB_CAM_SZ	"2"

#define APN_ALTA_KAF0261EB_CAM_ID	34
#define APN_ALTA_KAF0261EB_CAM_SZ	"260"

#define APN_ALTA_KAF1301EB_CAM_ID	35
#define APN_ALTA_KAF1301EB_CAM_SZ	"13"

#define APN_ALTA_KAF1001EB_CAM_ID	36
#define APN_ALTA_KAF1001EB_CAM_SZ	"6"

#define APN_ALTA_KAF6303EB_CAM_ID	37
#define APN_ALTA_KAF6303EB_CAM_SZ	"9"

#define APN_ALTA_KAF16803_CAM_ID	38
#define APN_ALTA_KAF16803_CAM_SZ	"16M"

#define APN_ALTA_KAF3200EB_CAM_ID	7
#define APN_ALTA_KAF3200EB_CAM_SZ	"32"



#define	APN_ALTA_TH7899_CAM_ID		14
#define	APN_ALTA_TH7899_CAM_SZ		"10"

#define APN_ALTA_S101401107_CAM_ID	40
#define APN_ALTA_S101401107_CAM_SZ	"1107"

#define APN_ALTA_S101401109_CAM_ID	41
#define APN_ALTA_S101401109_CAM_SZ	"1109"



#define APN_ALTA_CCD4710_CAM_ID		10
#define APN_ALTA_CCD4710_CAM_SZ		"47"

#define APN_ALTA_CCD4710ALT_CAM_ID	12
#define APN_ALTA_CCD4710ALT_CAM_SZ	"47"

#define	APN_ALTA_CCD4240_CAM_ID		16
#define	APN_ALTA_CCD4240_CAM_SZ		"42"

#define	APN_ALTA_CCD5710_CAM_ID		18
#define	APN_ALTA_CCD5710_CAM_SZ		"57"

#define	APN_ALTA_CCD3011_CAM_ID		20
#define	APN_ALTA_CCD3011_CAM_SZ		"30"

#define APN_ALTA_CCD5520_CAM_ID		22
#define APN_ALTA_CCD5520_CAM_SZ		"55"

#define APN_ALTA_CCD4720_CAM_ID		24
#define APN_ALTA_CCD4720_CAM_SZ		"4720"

#define APN_ALTA_CCD7700_CAM_ID		26
#define APN_ALTA_CCD7700_CAM_SZ		"77"



#define APN_ALTA_CCD4710B_CAM_ID	11
#define APN_ALTA_CCD4710B_CAM_SZ	"47"

#define	APN_ALTA_CCD4240B_CAM_ID	13
#define	APN_ALTA_CCD4240B_CAM_SZ	"42"

#define	APN_ALTA_CCD5710B_CAM_ID	15
#define	APN_ALTA_CCD5710B_CAM_SZ	"57"

#define	APN_ALTA_CCD3011B_CAM_ID	17
#define	APN_ALTA_CCD3011B_CAM_SZ	"30"

#define APN_ALTA_CCD5520B_CAM_ID	19
#define APN_ALTA_CCD5520B_CAM_SZ	"55"

#define APN_ALTA_CCD4720B_CAM_ID	21
#define APN_ALTA_CCD4720B_CAM_SZ	"4720"

#define APN_ALTA_CCD7700B_CAM_ID	23
#define APN_ALTA_CCD7700B_CAM_SZ	"77"



#define APN_ALTA_KAI2001ML_CAM_ID	65
#define APN_ALTA_KAI2001ML_CAM_SZ	"2001ML"

#define	APN_ALTA_KAI2020ML_CAM_ID	64
#define	APN_ALTA_KAI2020ML_CAM_SZ	"2020ML"

#define APN_ALTA_KAI4020ML_CAM_ID	66
#define APN_ALTA_KAI4020ML_CAM_SZ	"4020ML"

#define	APN_ALTA_KAI11000ML_CAM_ID	67
#define	APN_ALTA_KAI11000ML_CAM_SZ	"11000ML"

#define	APN_ALTA_KAI2020CL_CAM_ID	68
#define	APN_ALTA_KAI2020CL_CAM_SZ	"2020CL"

#define APN_ALTA_KAI2001CL_CAM_ID	71
#define APN_ALTA_KAI2001CL_CAM_SZ	"2001CL"

#define APN_ALTA_KAI4020CL_CAM_ID	69
#define APN_ALTA_KAI4020CL_CAM_SZ	"4020CL"

#define APN_ALTA_KAI11000CL_CAM_ID	70
#define APN_ALTA_KAI11000CL_CAM_SZ	"11000CL"



#define APN_ALTA_KAI2020MLB_CAM_ID	72
#define APN_ALTA_KAI2020MLB_CAM_SZ	"2020ML"

#define APN_ALTA_KAI4020MLB_CAM_ID	73
#define APN_ALTA_KAI4020MLB_CAM_SZ	"4020ML"

#define	APN_ALTA_KAI2020CLB_CAM_ID	74
#define	APN_ALTA_KAI2020CLB_CAM_SZ	"2020CL"

#define APN_ALTA_KAI4020CLB_CAM_ID	75
#define APN_ALTA_KAI4020CLB_CAM_SZ	"4020CL"



//////////////////////////////////////////////////////////
// Ascent Camera Models
//////////////////////////////////////////////////////////

#define APN_ASCENT_KAF0402E_CAM_ID	256
#define APN_ASCENT_KAF0402E_CAM_SZ	"1"

#define APN_ASCENT_KAF0402E2_CAM_ID	257
#define APN_ASCENT_KAF0402E2_CAM_SZ	"2"
#define APN_ASCENT_KAF0402E3_CAM_ID	258
#define APN_ASCENT_KAF0402E3_CAM_SZ	"3"
#define APN_ASCENT_KAF0402E4_CAM_ID	259
#define APN_ASCENT_KAF0402E4_CAM_SZ	"4"

#define APN_ASCENT_KAI340_CAM_ID	323
#define APN_ASCENT_KAI340_CAM_SZ	"340"
 
#define APN_ASCENT_KAI2000_CAM_ID	322
#define APN_ASCENT_KAI2000_CAM_SZ	"2000"

#define APN_ASCENT_KAI4000_CAM_ID	321
#define APN_ASCENT_KAI4000_CAM_SZ	"4000"

#define APN_ASCENT_KAI16000_CAM_ID	320
#define APN_ASCENT_KAI16000_CAM_SZ	"16000"




// Helper function prototype

void ApnCamModelLookup( unsigned short CamId, int FwRev, unsigned short Interface, char *szCamModel );

bool ApnCamModelIsAlta( unsigned short CamId, int FwRev );
bool ApnCamModelIsAscent( unsigned short CamId, int FwRev );


#endif
