void qhy10_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; imgcam_get_camui()->hasgain = 1; imgcam_get_camui()->hasoffset = 1; strcpy(imgcam_get_camui()->binstr, "1x1|2x2|4x4:0"); /// Capture size values list, just translate "Full" (frame) strcpy(imgcam_get_camui()->roistr, C_("camio","Full|512x512|256x256|128x128: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, ""); // Header values imgcam_get_camui()->pszx = 6.05; imgcam_get_camui()->pszy = 6.05; imgcam_get_expar()->bitpix = 16; imgcam_get_expar()->bytepix = 2; imgcam_get_expar()->tsize = 0; imgcam_get_expar()->edit = 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; }
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); }