void InterruptGenerator::addInterrupt(unsigned short int interrupt) { // Add new interrupt to pending interrupts ComponentRegistry::instance().pendingInterrupts().valueRef().setBit(interrupt); sendInterrupt(); }
void setDC201FromInterrupt(qhyccd_device_handle *handle,unsigned char PWM,unsigned char FAN) { unsigned char Buffer[3]; Buffer[0]=0x01; if (PWM==0) { Buffer[2]=Buffer[2] &~ 0x80; Buffer[1]=0; } else { Buffer[1]=PWM; Buffer[2]=Buffer[2] | 0x80; } if (FAN==0) { Buffer[2]=Buffer[2] &~ 0x01; } else { Buffer[2]=Buffer[2] | 0x01; } sendInterrupt(handle,3, Buffer); }
void GuideControl(unsigned char Direction,long PulseTime) { unsigned char Buffer[4]; unsigned short value = 0; unsigned short index = 0; if(qhyusb->QCam.CAMERA == DEVICETYPE_QHY5II || qhyusb->QCam.CAMERA == DEVICETYPE_QHY5LII) { switch(Direction) { case 0: { index = 0x80; value = 0x01; break; } case 1: { index = 0x40; value = 0x02; break; } case 2: { index = 0x20; value = 0x02; break; } case 3: { index = 0x10; value = 0x01; break; } } qhyusb->qhyccd_vTXD_Ex(qhyusb->QCam.ccd_handle,0xc0,value,index,Buffer,2); // pulseTime unit is 1ms usleep(PulseTime*1000); qhyusb->qhyccd_vTXD_Ex(qhyusb->QCam.ccd_handle,0xc0,value,0x0,Buffer,2); } else if(qhyusb->QCam.CAMERA == DEVICETYPE_QHY6) { switch(Direction) { case 0: { index = 0x02; break; } case 1: { index = 0x04; break; } case 2: { index = 0x01; break; } case 3: { index = 0x08; break; } } Buffer[0] = 0x09; Buffer[1] = index; Buffer[2] = qhyusb->MSB(PulseTime); Buffer[3] = qhyusb->LSB(PulseTime); sendInterrupt(qhyusb->QCam.ccd_handle,4,Buffer); usleep(PulseTime*1000); } }