jstring Java_opencl_executor_Executor_getDeviceName(JNIEnv * env, jclass) { auto name = getDeviceName(); return env->NewStringUTF(name.c_str()); }
bool IEQPro::initProperties() { INDI::Telescope::initProperties(); /* Firmware */ IUFillText(&FirmwareT[FW_MODEL], "Model", "", 0); IUFillText(&FirmwareT[FW_BOARD], "Board", "", 0); IUFillText(&FirmwareT[FW_CONTROLLER], "Controller", "", 0); IUFillText(&FirmwareT[FW_RA], "RA", "", 0); IUFillText(&FirmwareT[FW_DEC], "DEC", "", 0); IUFillTextVector(&FirmwareTP, FirmwareT, 5, getDeviceName(), "Firmware Info", "", MOUNTINFO_TAB, IP_RO, 0, IPS_IDLE); /* Tracking Mode */ IUFillSwitch(&TrackModeS[TRACK_SIDEREAL], "TRACK_SIDEREAL", "Sidereal", ISS_ON); IUFillSwitch(&TrackModeS[TRACK_SOLAR], "TRACK_SOLAR", "Solar", ISS_OFF); IUFillSwitch(&TrackModeS[TRACK_LUNAR], "TRACK_LUNAR", "Lunar", ISS_OFF); IUFillSwitch(&TrackModeS[TRACK_CUSTOM], "TRACK_CUSTOM", "Custom", ISS_OFF); IUFillSwitchVector(&TrackModeSP, TrackModeS, 4, getDeviceName(), "TELESCOPE_TRACK_MODE", "Track Mode", MAIN_CONTROL_TAB, IP_RW, ISR_1OFMANY, 0, IPS_IDLE); /* Custom Tracking Rate */ IUFillNumber(&CustomTrackRateN[0],"TRACK_RATE_CUSTOM","Rate","%g",-0.0100, 0.0100, 0.005, 0); IUFillNumberVector(&CustomTrackRateNP, CustomTrackRateN,1,getDeviceName(),"TELESCOPE_TRACK_RATE","Track Rates",MOTION_TAB,IP_RW,60,IPS_IDLE); /* GPS Status */ IUFillSwitch(&GPSStatusS[GPS_OFF], "Off", "", ISS_ON); IUFillSwitch(&GPSStatusS[GPS_ON], "On", "", ISS_OFF); IUFillSwitch(&GPSStatusS[GPS_DATA_OK], "Data OK", "", ISS_OFF); IUFillSwitchVector(&GPSStatusSP, GPSStatusS, 3, getDeviceName(), "GPS_STATUS", "GPS", MOUNTINFO_TAB, IP_RO, ISR_1OFMANY, 0, IPS_IDLE); /* Time Source */ IUFillSwitch(&TimeSourceS[TS_RS232], "RS232", "", ISS_ON); IUFillSwitch(&TimeSourceS[TS_CONTROLLER], "Controller", "", ISS_OFF); IUFillSwitch(&TimeSourceS[TS_GPS], "GPS", "", ISS_OFF); IUFillSwitchVector(&TimeSourceSP, TimeSourceS, 3, getDeviceName(), "TIME_SOURCE", "Time Source", MOUNTINFO_TAB, IP_RO, ISR_1OFMANY, 0, IPS_IDLE); /* Hemisphere */ IUFillSwitch(&HemisphereS[HEMI_SOUTH], "South", "", ISS_OFF); IUFillSwitch(&HemisphereS[HEMI_NORTH], "North", "", ISS_ON); IUFillSwitchVector(&HemisphereSP, HemisphereS, 2, getDeviceName(), "HEMISPHERE", "Hemisphere", MOUNTINFO_TAB, IP_RO, ISR_1OFMANY, 0, IPS_IDLE); /* Home */ IUFillSwitch(&HomeS[IEQ_FIND_HOME], "FindHome", "Find Home", ISS_OFF); IUFillSwitch(&HomeS[IEQ_SET_HOME], "SetCurrentAsHome", "Set current as Home", ISS_OFF); IUFillSwitch(&HomeS[IEQ_GOTO_HOME], "GoToHome", "Go to Home", ISS_OFF); IUFillSwitchVector(&HomeSP, HomeS, 3, getDeviceName(), "HOME", "Home", MAIN_CONTROL_TAB, IP_RW, ISR_ATMOST1, 0, IPS_IDLE); /* How fast do we guide compared to sidereal rate */ IUFillNumber(&GuideRateN[0], "GUIDE_RATE", "x Sidereal", "%g", 0.1, 0.9, 0.1, 0.5); IUFillNumberVector(&GuideRateNP, GuideRateN, 1, getDeviceName(), "GUIDE_RATE", "Guiding Rate", MOTION_TAB, IP_RW, 0, IPS_IDLE); TrackState=SCOPE_IDLE; initGuiderProperties(getDeviceName(), MOTION_TAB); setDriverInterface(getDriverInterface() | GUIDER_INTERFACE); SetParkDataType(PARK_RA_DEC); addAuxControls(); return true; }
bool ATIKCCD::ISNewSwitch(const char *dev, const char *name, ISState *states, char *names[], int n) { if (dev != nullptr && !strcmp(dev, getDeviceName())) { // Gain/Offset Presets if (!strcmp(name, ControlPresetsSP.name)) { int prevIndex = IUFindOnSwitchIndex(&ControlPresetsSP); IUUpdateSwitch(&ControlPresetsSP, states, names, n); int targetIndex = IUFindOnSwitchIndex(&ControlPresetsSP); uint16_t value = static_cast<uint16_t>(targetIndex + 2); uint8_t *data = reinterpret_cast<uint8_t*>(&value); int rc = ArtemisCameraSpecificOptionSetData(hCam, ID_AtikHorizonGOPresetMode, data, 2); if (rc != ARTEMIS_OK) { ControlPresetsSP.s = IPS_ALERT; IUResetSwitch(&ControlPresetsSP); ControlPresetsS[prevIndex].s = ISS_ON; } else ControlPresetsSP.s = IPS_OK; IDSetSwitch(&ControlPresetsSP, nullptr); return true; } // Cooler controler if (!strcmp(name, CoolerSP.name)) { if (IUUpdateSwitch(&CoolerSP, states, names, n) < 0) { CoolerSP.s = IPS_ALERT; IDSetSwitch(&CoolerSP, nullptr); return true; } bool enabled = (CoolerS[COOLER_ON].s == ISS_ON); // If user turns on cooler, but the requested temperature is higher than current temperature // then we set temperature to zero degrees. If that was still higher than current temperature // we return an error if (enabled && TemperatureRequest > TemperatureN[0].value) { TemperatureRequest = 0; // If current temperature is still lower than zero, then we shouldn't risk // setting temperature to any arbitrary value. Instead, we report an error and ask // user to explicitly set the requested temperature. if (TemperatureRequest > TemperatureN[0].value) { CoolerS[COOLER_ON].s = ISS_OFF; CoolerS[COOLER_OFF].s = ISS_OFF; CoolerSP.s = IPS_ALERT; LOGF_WARN("Cannot manually activate cooler since current temperature is %.2f. To activate cooler, request a lower temperature.", TemperatureN[0].value); IDSetSwitch(&CoolerSP, nullptr); return true; } SetTemperature(0); return true; } return activateCooler(enabled); } } return INDI::CCD::ISNewSwitch(dev, name, states, names, n); }