Dim abortFlag Dim cam, app, temp, position, string, filtertext Dim filesys, outputfile Dim ans Dim ExposureTime Dim OutputPath Dim theHour Dim theDay Dim theMonth Dim theMinute ' =========== ' ALERT ENTRY ' =========== ' Sub alert() abortFlag = True Console.PrintLine "Abort flag raised!" End Sub 'alert ' =========== ' ALERT ENTRY ' =========== ' Sub verifyAbort() if abortFlag Then ans = Console.AskYesNo("Do you want to abort?") if ans Then Console.PrintLine "Abort confirmed." if outputfile Then outputfile.close End If if cam Then cam.LinkEnabled = False End If if app Then app.FocuserConnected = False End If if focuser Then focuser.Link = False End If Util.AbortScript() Else Console.PrintLine "Abort rejected. Continuing..." End If End If End Sub 'verifyAbort '------------------------------------------------------------------------------ ' ' ================ ' MAIN ENTRY POINT ' ================ ' Sub main() abortFlag = False Set filesys = CreateObject("Scripting.FileSystemObject") 'Prepend leading zeros... theMonth = Month(now) if Month(Now) < 10 Then theMonth = "0" & Month(Now) theDay = Day(now) if Day(Now) < 10 Then theDay = "0" & Day(Now) theHour = Hour(Now) if Hour(Now) < 10 Then theHour = "0" & Hour(Now) theMinute = Minute(now) if Minute(Now) < 10 Then theMinute = "0" & Minute(Now) OutputPath = "C:\_GetFocuserData\" & "Focus" & "-" & Year(Now) & "-" & theMonth _ & "-" & theDay & "-" & theHour & theMinute & ".txt" Set outputfile= filesys.CreateTextFile(OutputPath, True) outputfile.WriteLine "Starting Focus Data Collection" & " " & now Console.printLine "Starting Focus Data Collection" & " " & now Console.printLine "Output File: " & OutputPath Console.printLine "" 'Quit 'Cause abort so tracking will stop... 'Start Camera Set cam = CreateObject("MaxIm.CCDCamera") cam.LinkEnabled = True 'Check camera connection If Not cam.LinkEnabled Then Console.printLine "Failed to start camera." Util.AbortScript() End If Set app = CreateObject("Maxim.Application") Set focuser = CreateObject("ASCOM.OptecTCF_S.Focuser") 'START AUTOFOCUS OPERATIONS For i = 1 To 10 For j = 0 To 4 Util.Yield() verifyAbort 'order: Red, Green, Blue, H-Alpha, Lum - Zero-based cam.Filter = j ExposureTime = 2 'seconds 'Set the basic exposure time for Luminance If j = 0 Then filtertext = "Red FilterData: " ExposureTime = 2*ExposureTime End If If j = 1 Then filtertext = "Green FilterData: " ExposureTime = 2*ExposureTime End If If j = 2 Then filtertext = "Blue FilterData: " ExposureTime = 2*ExposureTime End If If j = 3 Then filtertext = "H-Alpha FilterData: " ExposureTime = 4*ExposureTime End If If j = 4 Then filtertext = "Lum FilterData: " End If 'Connect to focuser via Maxim DL app.FocuserConnected = TRUE For k = 1 To 60 Util.Yield() verifyAbort If Not app.FocuserConnected Then Util.WaitForMilliseconds(1000) End If Next 'k loop 'Check focuser connection If Not app.FocuserConnected Then Console.printLine "Failed to start Focuser via Maxim DL." Util.AbortScript() End If 'Start Autofocus operation - ExposureTime seconds exposure time app.Autofocus(ExposureTime) 'Wait until focus completes Do While app.AutofocusStatus < 0 Util.Yield() verifyAbort Loop If app.AutofocusStatus = 0 then outputfile.WriteLine filtertext &" - Focus failed..." End If 'If app.AutofocusStatus = 1 then 'outputfile.WriteLine "Focus succeeded" app.FocuserConnected = FALSE Util.Yield() verifyAbort 'Start focuser via ASCOM focuser.Link = TRUE For k = 1 To 60 Util.Yield() verifyAbort If Not focuser.Link Then Util.WaitForMilliseconds(1000) End If Next 'k loop 'Check focuser connection If Not focuser.Link Then Console.printLine "Failed to start Focuser via ASCOM." Util.AbortScript() End If temp = focuser.Temperature Position = focuser.Position focuser.Link = FALSE 'focuser.Close outputfile.WriteLine filtertext & temp & " " & Position & " " & now Console.printLine filtertext & temp & " " & Position & " " & now 'End If Next 'j loop Next 'i loop outputfile.Close Quit 'Cause abort so tracking will stop... End Sub 'Main