Exemplo n.º 1
0
void qhy5ii_init()
{
	qhy_core_init();

	qhy_core_getendp()->info   = 0xC2;
	qhy_core_getendp()->read   = 0xC0;
	qhy_core_getendp()->write  = 0x40;
	qhy_core_getendp()->iread  = 0x81;
	qhy_core_getendp()->iwrite = 0x01;
	qhy_core_getendp()->bulk   = 0x82;
	qhy_core_getendp()->aux    = 0;

	qhy_core_getreq()->sendregs  = 0xB5;
	qhy_core_getreq()->startexp  = 0xB3;
	qhy_core_getreq()->setdc201  = 0;
	qhy_core_getreq()->getdc201  = 0;
	qhy_core_getreq()->shutter   = 0;
	qhy_core_getreq()->wheel     = 0;
	
	qhy_core_getcampars()->vid        = VENDOR_ID;
	qhy_core_getcampars()->pid        = PRODUCT_ID;
	qhy_core_getcampars()->shortexp   = SHORTEXP;
	qhy_core_getcampars()->buftimes   = 0;
	qhy_core_getcampars()->buftimef   = 0;
	
	// Positively no tec
	imgcam_get_tecp()->istec      = 0;      // 0 = Not driveable tec or no tec 1 = Driveable tec
	imgcam_get_tecp()->tecerr     = 0;      // Error reading / setting tec; 
	imgcam_get_tecp()->tecpwr     = 0;      // Basically 0 - tecmax
	imgcam_get_tecp()->tecmax     = 0;      // 0-255
	imgcam_get_tecp()->tecauto    = 0;      // 0 = Manual, 1 = Seek target temp
	imgcam_get_tecp()->tectemp    = 0.;     // Only meaningful when tecauto = 1; 
	imgcam_get_tecp()->settemp    = 0.;     // Only meaningful when tecauto = 1; 
	
	strcpy(imgcam_get_camui()->binstr, "");
	strcpy(imgcam_get_camui()->roistr, "");
	/// Combo box values list, keep N-<desc> format. Just translate <desc>
	strcpy(imgcam_get_camui()->spdstr, C_("camio","0-Slow|1-Fast:0"));
	strcpy(imgcam_get_camui()->ampstr, "");
	strcpy(imgcam_get_camui()->modstr, "0:255:5:50");
	/// Descriptiopn for "mode" combo box
	strcpy(imgcam_get_camui()->moddsc, C_("camio","Usb bus speed"));
	strcpy(imgcam_get_camui()->snrstr, "");
	strcpy(imgcam_get_camui()->bppstr, "");
	strcpy(imgcam_get_camui()->byrstr, "-1");
	strcpy(imgcam_get_camui()->tecstr, "");
	strcpy(imgcam_get_camui()->whlstr, "");
	
	imgcam_get_expar()->bitpix  = 8;	
	imgcam_get_expar()->bytepix = 1;	
	imgcam_get_expar()->tsize   = 0;
	imgcam_get_expar()->edit    = 0;	
}
Exemplo n.º 2
0
void qhy7_init()
{
	qhy_core_init();

	qhy_core_getendp()->info   = 0xC2;
	qhy_core_getendp()->read   = 0xC0;
	qhy_core_getendp()->write  = 0x40;
	qhy_core_getendp()->iread  = 0x81;
	qhy_core_getendp()->iwrite = 0x01;
	qhy_core_getendp()->bulk   = 0x82;
	qhy_core_getendp()->aux    = 0;

	qhy_core_getreq()->sendregs  = 0xB5;
	qhy_core_getreq()->startexp  = 0xB3;
	qhy_core_getreq()->setdc201  = 0XC6;
	qhy_core_getreq()->getdc201  = 0XC5;
	qhy_core_getreq()->shutter   = 0;
	qhy_core_getreq()->wheel     = 0xC1;
	
	qhy_core_getcampars()->vid        = VENDOR_ID;
	qhy_core_getcampars()->pid        = PRODUCT_ID;
	qhy_core_getcampars()->shortexp   = SHORTEXP;
	qhy_core_getcampars()->buftimes   = 0;
	qhy_core_getcampars()->buftimef   = 0;
	
	// Positively yess tec
	imgcam_get_tecp()->istec      = 1;      // 0 = Not driveable tec or no tec 1 = Driveable tec
	imgcam_get_tecp()->tecerr     = 0;      // Error reading / setting tec; 
	imgcam_get_tecp()->tecpwr     = 5;      // Basically 0 - tecmax, value here is used for initial set on camera open 
	imgcam_get_tecp()->tecmax     = 255;    // 0-255
	imgcam_get_tecp()->tecauto    = 0;      // 0 = Manual, 1 = Seek target temp
	imgcam_get_tecp()->tectemp    = 0.;     // Only meaningful when tecauto = 1; 
	imgcam_get_tecp()->settemp    = 0.;     // Only meaningful when tecauto = 1; 
	
	strcpy(imgcam_get_camui()->binstr, "1x1|2x2|3x3|4x4:0");
	/// Capture size values list, just translate "Full" (frame)
	strcpy(imgcam_get_camui()->roistr, C_("camio","Full|512x512|256x256:0"));
	/// Combo box values list, keep N-<desc> format. Just translate <desc>
	strcpy(imgcam_get_camui()->spdstr, C_("camio","0-Slow|1-Fast:0"));
	strcpy(imgcam_get_camui()->ampstr, C_("camio","0-AmpOff|1-AmpOn|2-Auto:2"));
	strcpy(imgcam_get_camui()->modstr, "");
	strcpy(imgcam_get_camui()->moddsc, "");
	strcpy(imgcam_get_camui()->snrstr, "");
	strcpy(imgcam_get_camui()->bppstr, "2-16Bit|:0");
	strcpy(imgcam_get_camui()->byrstr, "-1");
	strcpy(imgcam_get_camui()->tecstr, "0:255:1:2");
	strcpy(imgcam_get_camui()->whlstr, C_("camio","5-Positions|6-Positions|7-Positions|8-Positions:0"));
	// Header values
	imgcam_get_camui()->pszx = 7.40;
	imgcam_get_camui()->pszy = 7.40;
	
	imgcam_get_expar()->bitpix  = 16;	
	imgcam_get_expar()->bytepix = 2;	
	imgcam_get_expar()->tsize   = 0;
	imgcam_get_expar()->edit    = 0;	
}
Exemplo n.º 3
0
char *imgcam_init_list(int all)
{
	/// Value "No cam" of the models combo
	strcpy(imgcam_get_camui()->camstr, C_("camio","None"));
	if ((imgcam_iscamera("QHY2-Old")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY2-Old");
	}

	if ((imgcam_iscamera("QHY5")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY5");
	}
	
	if ((imgcam_iscamera("QHY5II-Series")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY5II-Series");
	}

	if ((imgcam_iscamera("QHY6")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY6");
	}
	
	if ((imgcam_iscamera("QHY6-Old")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY6-Old");
	}
	
	if ((imgcam_iscamera("QHY7")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY7");
	}
	
	if ((imgcam_iscamera("QHY8-Old")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY8-Old");
	}

	if ((imgcam_iscamera("QHY8L")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY8L");
	}
	
	if ((imgcam_iscamera("QHY9")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY9");
	}

	if ((imgcam_iscamera("IC8300")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|IC8300");
	}
	
	if ((imgcam_iscamera("QHY10")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY10");
	}

	if ((imgcam_iscamera("QHY11")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY11");
	}
	if ((imgcam_iscamera("QHY12")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|QHY12");
	}
	if ((imgcam_iscamera("DSI2PRO")) || (all))
	{
		strcat(imgcam_get_camui()->camstr, "|DSI2PRO");
	}
#ifdef HAVE_SBIG
	sbig_core_reload_list();
	strcat(imgcam_get_camui()->camstr, sbig_GetCameraList()->camlist);
#endif
#ifdef HAVE_URVC
	urvc_core_reload_list();
	strcat(imgcam_get_camui()->camstr, urvc_GetCameraList()->camlist);
#endif
	strcat(imgcam_get_camui()->camstr, "|:0");
	return imgcam_get_camui()->camstr;
}
Exemplo n.º 4
0
int imgcam_connect()
{
	int retval = 1;
#if defined(HAVE_SBIG) || defined(HAVE_URVC)
	char *devName;
#endif
	
	cammsg[0] = '\0';
	if (camid > 0)
	{
		switch (camid)
		{
			case 5:
				// Trigger an initial exposure (we won't use this one)
				if ((retval = qhy_OpenCamera()) == 1)
				{
					retval = qhy5_bonjour();
				}
				break;
			case 52:
				if ((retval = qhy_opencamera()) == 1)
				{
					retval = qhy5ii_bonjour();
				}
				break;
			case 20:
			case 6:
			case 60:
			case 80:
				retval = qhy_OpenCamera();
				break;
			case 7:
			case 81:
			case 9:
			case 10:
			case 11:
			case 12:
				if ((retval = qhy_OpenCamera()) == 1)
				{
					retval = imgcam_settec(tecp.tecpwr, -1);
				}
				break;
			case 91:
				if ((retval = qhy_OpenCamera()) == 1)
				{
					// TODO send oled
					//retval = imgcam_settec(tecp.tecpwr, -1);
				}
				break;
			case 1000:
				retval = dsi2pro_OpenCamera();
				break;
#ifdef HAVE_SBIG
			case 2000:
				//Sbig camera
				devName = strrchr(cammodel,' ');		
				
				devName++;
				if ((retval = (sbig_OpenDevice(devName) == 0)) == 1)
				{
					if ((retval = (sbig_EstablishLink() == 0)) == 1)
					{
						//Set all UI related
						strcpy(imgcam_get_camui()->binstr, sbig_GetCameraDetails()->binList);
						strcpy(imgcam_get_camui()->roistr, C_("camio","Full|512x512|256x256:0"));
						strcpy(imgcam_get_camui()->spdstr, sbig_GetCameraDetails()->spdList);
						strcpy(imgcam_get_camui()->ampstr, sbig_GetCameraDetails()->ampList);
						strcpy(imgcam_get_camui()->modstr, sbig_GetCameraDetails()->modList);
						strcpy(imgcam_get_camui()->moddsc, sbig_GetCameraDetails()->modList[0] != '\0' ? C_("camio","Light/Dark mode") : "");
						strcpy(imgcam_get_camui()->bppstr, "2-16Bit|:0");
						sprintf(imgcam_get_camui()->byrstr, "%d", sbig_GetCameraDetails()->colorId);
						// Cfw
						strcpy(imgcam_get_camui()->whlstr, sbig_GetCameraDetails()->cfwList);
						// Tec
						imgcam_get_tecp()->istec      = sbig_GetCameraDetails()->camTec * 3;      // Mode see imgCamio.h
						imgcam_get_tecp()->tecerr     = 0;      // Error reading / setting tec; 
						imgcam_get_tecp()->tecpwr     = 5;      // Basically 0 - tecmax
						imgcam_get_tecp()->tecmax     = 255;      // 0-255
						imgcam_get_tecp()->tecauto    = 0;      // 0 = Manual, 1 = Seek target temp
						imgcam_get_tecp()->tectemp    = 0.;     // Only meaningful when tecauto = 1; 
						imgcam_get_tecp()->settemp    = 0.;     // Only meaningful when tecauto = 1; 
						// Shutter
						imgcam_get_camui()->shutterMode = sbig_GetCameraDetails()->camShutter;
						// Header values
						imgcam_get_camui()->pszx = sbig_GetCameraDetails()->ccdpixW;
						imgcam_get_camui()->pszy = sbig_GetCameraDetails()->ccdpixH;
						// Basic expar
						imgcam_get_expar()->bitpix  = 16;	
						imgcam_get_expar()->bytepix = 2;	
						imgcam_get_expar()->tsize   = 0;
						imgcam_get_expar()->edit    = 0;
						// Tec initial set
						if (imgcam_get_tecp()->istec)
						{
							retval = imgcam_settec(imgcam_get_tecp()->tecpwr, 2);
						}
					}
					else
					{
						sbig_CloseDevice();
					}
				}
				break;
#endif
#ifdef HAVE_URVC
			case 2100:
				//Sbig parallel camera through urvc driver
				devName = strrchr(cammodel,' ');		
				
				devName++;
				if ((retval = urvc_OpenCamera(devName)) == 1)
				{
					//Set all UI related
					strcpy(imgcam_get_camui()->binstr, urvc_GetCameraDetails()->binList);
					strcpy(imgcam_get_camui()->roistr, "");
					strcpy(imgcam_get_camui()->spdstr, urvc_GetCameraDetails()->spdList);
					strcpy(imgcam_get_camui()->ampstr, urvc_GetCameraDetails()->ampList);
					strcpy(imgcam_get_camui()->modstr, urvc_GetCameraDetails()->modList);
					strcpy(imgcam_get_camui()->moddsc, urvc_GetCameraDetails()->modList[0] != '\0' ? C_("camio","Light/Dark mode") : "");
					strcpy(imgcam_get_camui()->bppstr, "2-16Bit|:0");
					sprintf(imgcam_get_camui()->byrstr, "-1");
					// Cfw
					strcpy(imgcam_get_camui()->whlstr, urvc_GetCameraDetails()->cfwList);
					// Tec
					imgcam_get_tecp()->istec      = urvc_GetCameraDetails()->camTec * 3;      // Mode see imgCamio.h
					imgcam_get_tecp()->tecerr     = 0;      // Error reading / setting tec; 
					imgcam_get_tecp()->tecpwr     = 5;      // Basically 0 - tecmax
					imgcam_get_tecp()->tecmax     = 255;      // 0-255
					imgcam_get_tecp()->tecauto    = 0;      // 0 = Manual, 1 = Seek target temp
					imgcam_get_tecp()->tectemp    = 0.;     // Only meaningful when tecauto = 1; 
					imgcam_get_tecp()->settemp    = 0.;     // Only meaningful when tecauto = 1; 
					// Shutter
					imgcam_get_camui()->shutterMode = urvc_GetCameraDetails()->camShutter;
					// Header values
					imgcam_get_camui()->pszx = urvc_GetCameraDetails()->ccdpixW;
					imgcam_get_camui()->pszy = urvc_GetCameraDetails()->ccdpixH;
					// Basic expar
					imgcam_get_expar()->bitpix  = 16;	
					imgcam_get_expar()->bytepix = 2;	
					imgcam_get_expar()->tsize   = 0;
					imgcam_get_expar()->edit    = 0;
					// Tec initial set
					if (imgcam_get_tecp()->istec)
					{
						retval = imgcam_settec(imgcam_get_tecp()->tecpwr, 2);
					}
				}
				break;
#endif
		}
		if ((retval == 0) && (strlen(cammsg) == 0))
		{
			strcpy(cammsg, get_core_msg());
		}
		connected = retval;
	}
	return (retval);
}
Exemplo n.º 5
0
void imgcam_init()
{
	static int first_time = 1;
	qhy_core_init();
	if (!first_time)
	{
#ifdef HAVE_SBIG
		sbig_core_close();
#endif
	}
#ifdef HAVE_SBIG
	sbig_core_init(imgBasePath);
#endif
#ifdef HAVE_URVC
	urvc_core_init();
#endif

	if (databuffer[0] != NULL)
	{
		free(databuffer[0]);
		databuffer[0] = NULL;
	}
	if (databuffer[1] != NULL)
	{
		free(databuffer[1]);
		databuffer[1] = NULL;
	}
	camid = 0;
	if (first_time)
	{
		cammodel = (char*)realloc(cammodel, 64);
		cammsg = (char*)realloc(cammsg, 1024);
		first_time = 0;
	}
	cammodel[0] = '\0';	
	cammsg[0] = '\0';	
	imgcam_init_list(0);
	strcpy(imgcam_get_camui()->binstr, "");
	strcpy(imgcam_get_camui()->roistr, "");
	strcpy(imgcam_get_camui()->spdstr, "");
	strcpy(imgcam_get_camui()->modstr, ""); 
	strcpy(imgcam_get_camui()->moddsc, ""); // This is the current label for multi-purpose modstr
	strcpy(imgcam_get_camui()->ampstr, "");
	strcpy(imgcam_get_camui()->snrstr, "");
	strcpy(imgcam_get_camui()->bppstr, "");
	strcpy(imgcam_get_camui()->byrstr, "0");
	strcpy(imgcam_get_camui()->tecstr, "");
	strcpy(imgcam_get_camui()->whlstr, "");
	imgcam_get_camui()->shutterMode = 0;
	imgcam_get_camui()->pszx = 0;
	imgcam_get_camui()->pszy = 0;

	// Positively no tec
	imgcam_get_tecp()->istec      = 0;      // 0 = Not driveable tec or no tec 1 = Driveable tec
	imgcam_get_tecp()->tecerr     = 0;      // Error reading / setting tec; 
	imgcam_get_tecp()->tecpwr     = 0;      // Basically 0 - tecmax
	imgcam_get_tecp()->tecmax     = 0;      // 0-255
	imgcam_get_tecp()->tecauto    = 0;      // 0 = Manual, 1 = Seek target temp
	imgcam_get_tecp()->tectemp    = 0.;     // Only meaningful when tecauto = 1; 
	imgcam_get_tecp()->settemp    = 0.;     // Only meaningful when tecauto = 1; 
	imgcam_get_tecp()->tecedit	= 0;

	loaded = 0;
	connected = 0;
}