<%@LANGUAGE="JSCRIPT"%><% // // Generate equipment info - no refresh // // 06-Nov-06 rbd Initial edit // 08-Nov-06 rbd Add max unguided exposure interval, use real micro and degree symbols. // 17-Nov-06 rbd Use new Util.TelescopeConnected and Util.CameraConnected properties. // 01-Dec-06 rbd Oops, it's Telescope.Connected! // 08-Feb-06 rbd Oops again, Dome.CanSlew not CanSetAzimuth // 02-Apr-12 (7.0) GEM:826 - Built-in rotator control // 26-Jun-12 (7.0) GEM:552 - Guide image size, relabel (not sensor size). Fix cooler // temperature display when cooler is off. // 16-Aug-18 (8.2) GEM:1621 WikiEscape various names in a way that prevents the appearance // of the tilde on non-wikiwords. // Response.ContentType = "text/plain"; // Plain text -> wikitext var fso = new ActiveXObject("Scripting.FileSystemObject"); Response.Write("Here is a description of the instruments and equipment at " + Prefs.SiteName + "\n"); if(Telescope.Connected) { Response.Write("!!Telescope: " + Telescope.Name + "\n"); Response.Write("|Aperture|" + Util.FormatVar(Telescope.ApertureDiameter * 1000, "0") + " mm|\n"); Response.Write("|Focal Length|" + Util.FormatVar(Telescope.FocalLength * 1000, "0") + " mm (f/" + Util.FormatVar(Telescope.FocalLength / Telescope.ApertureDiameter, "0.0") + ")|\n"); } else { Response.Write("!!Telescope:\n"); Response.Write("Telescope data is not available.\n"); } if(Util.CameraConnected) { Response.Write("!!Imager: " + Camera.CameraName + "\n"); Response.Write("|Detector Size|" + Camera.CameraXSize + " by " + Camera.CameraYSize + " pixels<
>"); Response.Write(Util.FormatVar(Camera.PixelSizeX, "0.0") + "µ by " + Util.FormatVar(Camera.PixelSizeY, "0.0") + "µ pixel size|\n"); Response.Write("|Current Temp|"); if(Camera.CanSetTemperature) { if(Camera.CoolerOn && Camera.Temperature !== 20.0) { // See asystemstatus.asp for 20.0 = "off" reasoning Response.Write(Util.FormatVar(Camera.Temperature, "0") + "°C|\n"); } else { Response.Write("Cooler is off|\n"); } } else { Response.Write("N/A or no cooler|\n"); } Response.Write("|Binning|"); if(Camera.XYBinning) Response.Write("Independent X and Y binning, max X is " + Camera.MaxBinX + " and max Y is " + Camera.MaxBinY); else Response.Write("Max XY binning is " + Camera.MaxBinX); if(Camera.PowerOfTwoBinning) Response.Write(" Binning is restricted to powers of two (1, 2, 4, 8, etc.)"); Response.Write("|\n"); Response.Write("!!Field of View\n"); var psH = (Camera.PixelSizeX / Telescope.FocalLength) * 0.206; var psV = (Camera.PixelSizeY / Telescope.FocalLength) * 0.206; Response.Write("|Size|Horiz: " + Util.FormatVar((psH * Camera.CameraXSize / 60.0), "0.00") + " arcmin|\n"); Response.Write("|~|Vert: " + Util.FormatVar((psV * Camera.CameraYSize / 60.0), "0.00") + " arcmin|\n"); Response.Write("|Plate Scales|Horiz: " + Util.FormatVar(psH, "0.00") + " arcsec/pix|\n"); Response.Write("|~|Vert: " + Util.FormatVar(psV, "0.00") + " arcsec/pix|\n"); Response.Write("!!Filters\n"); if(Camera.FilterWheelName == "No Filter Wheel") { Response.Write("No filters on this imager\n"); } else { if(fso.FileExists(ACPApp + "\\FilterInfo.txt")) Response.Write("Filter focus offsets are known to the imaging system. You do not need to focus between filters.\n"); var fns = Camera.FilterNames.toArray(); Response.Write("|!Name|!Number|\n"); // Suppress wikifying without showing '~' on names that won't be wikified. for(var fn in fns) Response.Write("|" + fns[fn] + "|" + fn + "|\n"); } if(Camera.GuiderName != "No Camera") { Response.Write("!!Guide Imager: " + Camera.GuiderName + "\n"); Response.Write("|Last Image Size|" + Camera.GuiderXSize + " by " + Camera.GuiderYSize + " pixels|\n"); Response.Write("|Max unguided Exp.|" + Prefs.AutoGuiding.MaxUnguidedExposureInterval + " sec.|\n"); } } else { Response.Write("!!Imager:\n"); Response.Write("Imager data is not available.\n"); Response.Write("!!Field of View\n"); Response.Write("Field of view not available\n"); Response.Write("!!Filters\n"); Response.Write("Filter info not available\n"); // Don't even write about guider } if(Rotator.Available) { Response.Write("!!Rotator: " + Rotator.Name + "\n"); Response.Write("An imager rotator is available. You must specify equatorial position angle with all image requests. Use 0 for north-up.\n"); } if(Prefs.AutoFocus.Enabled) { Response.Write("!!Auto Focus\n"); Response.Write("Auto focus is available. You can specify either on-demand or periodic autofocus during observing.\n"); } if(Dome.Available) { if(Dome.CanSetShutter && !Dome.CanSlew) // Roof Response.Write("!!Rolloff Roof or Clamshell: " + Dome.Name + "\n"); else Response.Write("!!Dome: " + Dome.Name + "\n"); Response.Write("Controls are located on the [[System Status]] item as label hyperlinks.\n"); } fso = null; %>