Ticket #163: AutoTestManager.au3

File AutoTestManager.au3, 35.4 KB (added by bowmore, on Mar 9, 2008 at 7:33:40 PM)

Script causing problem with Obsfuscator.exe

Line 
1#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
2#AutoIt3Wrapper_Icon=Boss1.ICO
3#AutoIt3Wrapper_Outfile=AutoTestManager.exe
4#AutoIt3Wrapper_Compression=4
5#AutoIt3Wrapper_Res_Comment=This tool is used to sequence multiple test jobs.
6#AutoIt3Wrapper_Res_Description=AutoIt Test Manager
7#AutoIt3Wrapper_Res_Fileversion=0.8.2990.1
8#AutoIt3Wrapper_Res_FileVersion_AutoIncrement=p
9#AutoIt3Wrapper_Res_LegalCopyright=Roy Kirby 2008
10#AutoIt3Wrapper_Res_SaveSource=y
11#AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer%
12#AutoIt3Wrapper_Res_Field=Author|Roy B Kirby
13#AutoIt3Wrapper_Res_Field=Email|roykirby@lineone.net
14#AutoIt3Wrapper_Res_Field=Product Name|Auto Test Runner
15#AutoIt3Wrapper_Res_Field=Product Version|0.8
16#AutoIt3Wrapper_Res_Field=AutoIt Version|%AutoItVer%
17#AutoIt3Wrapper_Res_Field=Compile Date|%date% %time%
18#AutoIt3Wrapper_Au3Check_Stop_OnWarning=Y
19#AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
20#AutoIt3Wrapper_Run_Before=MKDIR "%scriptdir%\Release"
21#AutoIt3Wrapper_Run_After=copy "%out%" "%scriptdir%\Release\%scriptfile%.%fileversion%.exe"
22#AutoIt3Wrapper_Run_After=copy "%in%" "%scriptdir%\Release\%scriptfile%.%fileversion%.au3"
23#AutoIt3Wrapper_Run_After=copy "%out%" "%scriptdir%\Release
24#AutoIt3Wrapper_Run_Tidy=y
25#Tidy_Parameters=/tc 0 /gd /sci 0 /sdp"'\WinMerge\WinMerge.exe' '%new%' '%old%'"
26#AutoIt3Wrapper_Run_Obfuscator=y
27#Obfuscator_Parameters=/striponly
28#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
29#AutoIt3Wrapper_Run_Debug_Mode=N
30
31;#AutoIt3Wrapper_PlugIn_Funcs=
32#cs Introduction
33 Script Name:AutoTestManager
34 Purpose:This tool is used to sequence multiple automated tesing jobs.
35 Similar to Rational Test Manager.
36#ce
37#Region ### Set Options
38Opt("WinWaitDelay", 100)
39Opt("WinTitleMatchMode", 4)
40Opt("WinDetectHiddenText", 1)
41Opt("MouseCoordMode", 2)
42Opt("MustDeclareVars", 1)
43#EndRegion ### Set Options
44#Region Declare
45Global Const $AT_ROOT_DIR = "H:\AtuoItTestControl"
46Global $g_nMsg = 0
47Global $g_fDEBUG = False
48Global $g_fRun = False
49Global $g_fAllJobsDone = False
50Global $g_fProcessing = False
51Global $g_sTaskType = ''
52Global $g_sJobControlFolder = ''
53Global $g_sStartDateTime = ''
54Global $g_sStopDateTime = ''
55Global $g_sTestRunID = ''
56Global $sTitle = StringLeft(@ScriptName, StringInStr(@ScriptName, ".") - 1)
57Global $GUI_frmMainCaption = $sTitle & " - Ver " & FileGetVersion(@ScriptFullPath)
58Global $g_aStatusBarParts[2] = [350, -1]
59Global $g_aStatusBarPartsText[2] = ["Ready", ""]
60Global $hWndStartDate = 0
61Global $hWndStopDate = 0
62Global $g_iSleep = 10
63Global $g_Computers_Status[250][5]
64Global $g_hDB = 0
65Global $g_aStatusBarParts[3] = [150, 440, -1]
66Global $g_aStatusBarPartsText[3] = ["Ready", "", "000:00:00"]
67Global $g_aComputers = 0
68Global $g_sRunStartTime = ''
69Global $g_iPercentDone = 0
70Global $g_iStatus, $g_aResult, $g_iRows, $g_iColumns
71#EndRegion Declare
72
73#Region Includes
74#include <_os_File.au3>
75#include <_os_TileUtilities.au3>
76#include <ButtonConstants.au3>
77#include <Date.au3>
78#include <SQLite.au3>
79#include <SQLite.dll.au3>
80#include <WindowsConstants.au3>
81#include <GUIConstantsEx.au3>
82#include <GuiListView.au3>
83#include <GuiStatusBar.au3>
84#include <ProgressConstants.au3>
85#EndRegion Includes
86
87#Region ### START Koda GUI section ### Form=X:\AutoIt3Data\Scripts\AutoTest\AutoTestManager\Gui_frmMain.kxf
88Global $Gui_frmMain = GUICreate($GUI_frmMainCaption, 495, 468, 451, 151)
89Global $Gui_tab = GUICtrlCreateTab(5, 5, 486, 437)
90Global $Gui_tab0 = GUICtrlCreateTabItem("Topo93 Comp")
91Global $Gui_tab0_lblJob = GUICtrlCreateLabel("Test Job", 10, 40, 100, 17)
92Global $Gui_tab0_edtTestJob = GUICtrlCreateInput("", 110, 38, 350, 21)
93Global $Gui_tab0_lblDataRootV1 = GUICtrlCreateLabel("V1 Data Root Dir", 10, 65, 100, 17)
94Global $Gui_tab0_edtDataRootV1 = GUICtrlCreateInput("", 110, 63, 350, 21)
95Global $Gui_tab0_btnBrowseV1 = GUICtrlCreateButton("...", 463, 63, 21, 21, BitOR($BS_CENTER, $BS_VCENTER, $BS_FLAT))
96Global $Gui_tab0_lblDataRootV2 = GUICtrlCreateLabel("V2 Data Root Dir", 10, 90, 100, 17)
97Global $Gui_tab0_edtDataRootV2 = GUICtrlCreateInput("", 110, 88, 350, 21)
98Global $Gui_tab0_btnBrowseV2 = GUICtrlCreateButton("...", 463, 88, 21, 21, BitOR($BS_CENTER, $BS_VCENTER, $BS_FLAT))
99Global $Gui_tab0_lblStrumapPrm = GUICtrlCreateLabel("PRM config File", 10, 115, 100, 17)
100Global $Gui_tab0_edtStrumapPrm = GUICtrlCreateInput("", 110, 113, 350, 21)
101Global $Gui_tab0_btnBrowsePrm = GUICtrlCreateButton("...", 463, 113, 21, 21, BitOR($BS_CENTER, $BS_VCENTER, $BS_FLAT))
102Global $Gui_tab0_lblStrumapVer = GUICtrlCreateLabel("Strumap Ver", 200, 140, 80, 17)
103Global $Gui_tab0_cboStrumapVer = GUICtrlCreateCombo("", 260, 138, 85, 25)
104Global $Gui_tab0_lblTopo96Ext = GUICtrlCreateLabel("Topo96 Ext", 10, 140, 100, 17)
105Global $Gui_tab0_cboTopo96Ext = GUICtrlCreateCombo("", 110, 138, 65, 25)
106Global $Gui_tab0_lblTopo93V1Ext = GUICtrlCreateLabel("Topo93 V1 Ext", 10, 165, 100, 17)
107Global $Gui_tab0_cboTopo93V1Ext = GUICtrlCreateCombo("", 110, 163, 65, 25)
108Global $Gui_tab0_lblTopo93V2Ext = GUICtrlCreateLabel("Topo93 V2 Ext", 10, 190, 100, 17)
109Global $Gui_tab0_cboTopo93V2Ext = GUICtrlCreateCombo("", 110, 188, 65, 25)
110Global $Gui_tab0_chkCreatePhseudo = GUICtrlCreateCheckbox("Create Pseudo", 370, 140, 100, 17)
111Global $Gui_tab0_chkUseGeoComp = GUICtrlCreateCheckbox("Use GeoComp", 370, 157, 100, 17)
112Global $Gui_tab0_chkSaveSbz = GUICtrlCreateCheckbox("Save SBZ Files", 370, 174, 100, 17)
113Global $Gui_tab0_chkClassifyErr = GUICtrlCreateCheckbox("Classify Errors", 370, 191, 100, 17)
114Global $Gui_tab0_btnStopPCs = GUICtrlCreateButton("Stop Selected PCs", 380, 405, 100, 30, $BS_FLAT)
115Global $Gui_tab0_btnRun = GUICtrlCreateButton("Run", 10, 405, 100, 30, $BS_FLAT)
116Global $Gui_tab0_btnClose = GUICtrlCreateButton("Close", 134, 405, 100, 30, $BS_FLAT)
117Global $Gui_tab0_MyButton3 = GUICtrlCreateButton("MyButton3", 258, 405, 100, 30, $BS_FLAT)
118Global $Gui_tab0_lsvComputers = GUICtrlCreateListView("", 10, 220, 475, 178, BitOR($GUI_SS_DEFAULT_LISTVIEW, $LVS_SORTASCENDING), BitOR($WS_EX_CLIENTEDGE, $LVS_EX_CHECKBOXES, $LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT))
119Global $Gui_tab0_hListView = ControlGetHandle($GUI_frmMainCaption, "", $Gui_tab0_lsvComputers)
120_GUICtrlListView_AddColumn($Gui_tab0_hListView, "Computers", 100)
121_GUICtrlListView_AddColumn($Gui_tab0_hListView, "Job", 100)
122_GUICtrlListView_AddColumn($Gui_tab0_hListView, "Status", 95)
123_GUICtrlListView_AddColumn($Gui_tab0_hListView, "Started", 115)
124_GUICtrlListView_AddColumn($Gui_tab0_hListView, "Time", 60)
125GUICtrlCreateTabItem("")
126Global $Gui_tab1 = GUICtrlCreateTabItem("MasterMap Comp")
127GUICtrlCreateTabItem("")
128Global $Gui_tab2 = GUICtrlCreateTabItem("ITN Validate")
129GUICtrlCreateTabItem("")
130Global $GUI_stbStatusBar = _GUICtrlStatusBar_Create($Gui_frmMain, $g_aStatusBarParts, $g_aStatusBarPartsText)
131Global $Gui_pgbProgress = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH)
132Global $g_hProgress = GUICtrlGetHandle($Gui_pgbProgress)
133_GUICtrlStatusBar_SetMinHeight($GUI_stbStatusBar, 20)
134_GUICtrlStatusBar_EmbedControl($GUI_stbStatusBar, 1, $g_hProgress)
135
136_Settings_Read()
137GUISetState(@SW_SHOW)
138#EndRegion ### START Koda GUI section ### Form=X:\AutoIt3Data\Scripts\AutoTest\AutoTestManager\Gui_frmMain.kxf
139Global $tLastChecked = TimerInit()
140Global $iLastDBCheck = TimerInit()
141While 1
142 $g_nMsg = GUIGetMsg()
143 Switch $g_nMsg
144 Case $GUI_EVENT_CLOSE
145 _Settings_Save()
146 Exit
147 Case $Gui_tab0_btnClose
148 _Settings_Save()
149 Exit
150 Case $Gui_tab0_btnRun
151 $g_fRun = False
152 If Not (_Initialise() = 1) Then ContinueLoop
153 If Not (_Database_Start() = 1) Then ContinueLoop
154 If Not (_Database_Initialise() = 1) Then ContinueLoop
155 If Not (_Computers_Clean() = 1) Then ContinueLoop
156 $g_sRunStartTime = _NowCalc()
157 $g_fRun = True
158 Case $Gui_tab0_MyButton3
159 $g_iStatus = _SQLite_GetTable2d($g_hDB, "SELECT * FROM JOB_CONTROL ORDER BY FILE_SIZE DESC;", $g_aResult, $g_iRows, $g_iColumns)
160 If $g_iStatus = $SQLITE_OK Then
161 _ArrayDisplay($g_aResult, "Results")
162 $g_iStatus = 1
163 EndIf
164 EndSwitch
165
166 If $g_fRun And TimerDiff($tLastChecked) > 2500 Then
167 $g_aComputers = _ScanFor_ComputersOnline($g_sJobControlFolder)
168 _Process_ComputersOnline($g_aComputers)
169 $g_aComputers = _ScanFor_ComputersOffline($g_sJobControlFolder)
170 _Process_ComputersOffline($g_aComputers)
171 $g_aComputers = _ScanFor_JobsAborted($g_sJobControlFolder)
172 _Process_JobsAborted($g_aComputers)
173 $g_aComputers = _ScanFor_JobsCompleted($g_sJobControlFolder)
174 _Process_JobsCompleted($g_aComputers)
175 $g_aComputers = _ScanFor_JobRequests($g_sJobControlFolder)
176 _Process_JobRequests($g_aComputers)
177 $g_aComputers = _ScanFor_JobsRunning($g_sJobControlFolder)
178 _Process_JobsRunning($g_aComputers)
179 If $g_fAllJobsDone Then
180 _Process_Results($g_sJobControlFolder, $g_Computers_Status)
181 $g_fRun = False
182 EndIf
183 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, _RuninngTime($g_sRunStartTime), 2)
184 If TimerDiff($iLastDBCheck) > 120000 Then
185 $g_iPercentDone = _PercentDone()
186 $iLastDBCheck = TimerInit()
187 EndIf
188 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Percentage Done " & $g_iPercentDone)
189 $tLastChecked = TimerInit()
190 EndIf
191WEnd
192
193
194Func _Computers_Clean()
195 Local $sFolder = $g_sJobControlFolder & "\Computers"
196 Local $asFileList[1] = [0]
197 Local $sFilePattern
198 Local $iState = 1
199 For $i = 1 To 7
200 Switch $i
201 Case 1
202 $sFilePattern = "_RunningJob.atj"
203 Case 2
204 $sFilePattern = "_CompletedJob.atj"
205 Case 3
206 $sFilePattern = "_NextJob.atj"
207 Case 4
208 $sFilePattern = "_NoMoreJobs.atj"
209 Case 6
210 $sFilePattern = "_Stop.atj"
211 Case 6
212 $sFilePattern = "_Aborted.atj"
213 Case Else
214 $sFilePattern = "_RequestJob.atj"
215 EndSwitch
216 ReDim $asFileList[1]
217 $asFileList[0] = 0
218 $asFileList = _os_FilesListInTree($sFolder, $asFileList, 0, $sFilePattern)
219 For $iFile = 1 To $asFileList[0]
220 FileDelete($asFileList[$iFile])
221 Next
222 Next
223 Return $iState
224EndFunc ;==>_Computers_Clean
225Func _Database_Initialise()
226 Local $sIniFile = $g_sJobControlFolder & "\config.ini"
227 Local $iStatus = 1
228 Local $aResult = 0
229 Local $iRows = 0
230 Local $iColumns = 0
231 Local $sTile = ''
232 Local $sSQL = ''
233;~ Local $sTable = "JOB_CONTROL"
234 Local $aRow
235 Local $iJobCount = 0
236 Local $iJobCompletedCount = 0
237 Local $iMsgBoxAnswer
238 Local $fFullRun = True
239 Local $iFileSize = 0
240 Local $sJobList[1] = [0]
241 Local $sMsg = ''
242
243 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Checking database")
244 $sSQL = "SELECT Count(FILE) FROM JOB_CONTROL"
245 _SQLite_QuerySingleRow($g_hDB, $sSQL, $aRow) ; Select single row and single field !
246 If $iStatus = $SQLITE_OK Then
247 If IsArray($aRow) Then $iJobCount = $aRow[0]
248 If $iJobCount > 0 Then
249 $sSQL = "SELECT Count(END_TIME) FROM JOB_CONTROL WHERE END_TIME = NULL"
250 _SQLite_QuerySingleRow($g_hDB, $sSQL, $aRow) ; Select single row and single field !
251 If $iStatus <> $SQLITE_OK Then
252 Return SetError(@error, 0, 0)
253 EndIf
254 If IsArray($aRow) Then $iJobCompletedCount = $aRow[0]
255 If $iJobCount > $iJobCompletedCount Then
256 $sMsg = "This Job has previously been Run and " & $iJobCompletedCount & " out of " & $iJobCount & " Tests completed." & @CRLF & "Click Yes - to complete previous run" & @CRLF & "Click No - to deltete previous run and run all tests again." & @CRLF & "Click Cancel - to exit without any changes."
257
258;~ $sMsg = "This Job has previously been Run and " _
259;~ & $iJobCompletedCount & " out of " & $iJobCount & " Tests completed." & @CRLF _
260;~ & "Click Yes - to complete previous run" & @CRLF _
261;~ & "Click No - to deltete previous run and run all tests again." & @CRLF _
262;~ & "Click Cancel - to exit without any changes."
263 #Region --- CodeWizard generated code Start ---
264 ;MsgBox features: Title=Yes, Text=Yes, Buttons=Yes, No, and Cancel, Default Button=Third, Icon=Question, Modality=System Modal, Miscellaneous=Top-most attribute
265 $iMsgBoxAnswer = MsgBox(266787, "AutoTestManager - Info", $sMsg)
266 Select
267 Case $iMsgBoxAnswer = 6 ;Yes
268 $fFullRun = False
269 Case $iMsgBoxAnswer = 7 ;No
270 $fFullRun = True
271 Case $iMsgBoxAnswer = 2 ;Cancel
272 Return 10
273 EndSelect
274 #EndRegion --- CodeWizard generated code Start ---
275 ElseIf $iJobCount > 0 Then
276 $sMsg = "This Job has previously been Run and completed" & @CRLF & "Do you want to overwrite the previous run and run the tests again?"
277 #Region --- CodeWizard generated code Start ---
278 ;MsgBox features: Title=Yes, Text=Yes, Buttons=Yes and No, Default Button=Second, Icon=Question, Modality=System Modal, Miscellaneous=Top-most attribute
279 $iMsgBoxAnswer = MsgBox(266532, "AutoTestManager - Info", "")
280 Select
281 Case $iMsgBoxAnswer = 6 ;Yes
282 $fFullRun = True
283 Case $iMsgBoxAnswer = 7 ;No
284 Return 10
285 EndSelect
286 #EndRegion --- CodeWizard generated code Start ---
287 EndIf
288 EndIf
289 EndIf
290
291 If $fFullRun Then
292 Local $sDataDir = IniRead($sIniFile, "SETTINGS", "V1CITFDataRootDir", "")
293 If $sDataDir = '' Then
294 #Region --- CodeWizard generated code Start ---
295 ;MsgBox features: Title=Yes, Text=Yes, Buttons=OK, Icon=Critical, Modality=System Modal, Miscellaneous=Top-most attribute
296 MsgBox(266256, "AutoTestManager - Error", "V1CITFDataRootDir path has not been set. ")
297 #EndRegion --- CodeWizard generated code Start ---
298 Return 10
299 EndIf
300 Local $sDataExt = IniRead($sIniFile, "SETTINGS", "V0FileExtention", "citf")
301 $sDataDir = _os_PathNormalise($sDataDir)
302 Local $sFilePattern = ''
303 If StringLeft($sDataExt, 1) <> "." Then
304 $sFilePattern = "*." & $sDataExt
305 Else
306 $sFilePattern = "*" & $sDataExt
307 EndIf
308
309 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Searching for files")
310 $sJobList = _ScanFor_JobsToDo($sDataDir, $sFilePattern)
311 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Loading database")
312
313 $sSQL = "DROP TABLE IF EXISTS JOB_CONTROL"
314 $iStatus = _SQLite_Exec($g_hDB, $sSQL)
315 $sSQL = "CREATE TABLE IF NOT EXISTS JOB_CONTROL ( FILE TEXT UNIQUE, FILE_SIZE INTEGER, TILE TEXT, COMPUTER TEXT, START_TIME TEXT, END_TIME TEXT, TIME_TAKEN TEXT, SYNTAX_CITF TEXT, SYNTAX_NTF TEXT, Q1_CREATED TEXT, SYNTAX_Q1 TEXT, SYNTAX_Q2 TEXT, NO_FEATURES INTEGER, NO_DIFF INTEGER, RESULT TEXT, ERROR TEXT )"
316
317
318;~ $sSQL = "CREATE TABLE IF NOT EXISTS JOB_CONTROL" & _
319;~ " (" & _
320;~ " FILE TEXT UNIQUE," & _
321;~ " FILE_SIZE INTEGER," & _
322;~ " TILE TEXT," & _
323;~ " COMPUTER TEXT," & _
324;~ " START_TIME TEXT," & _
325;~ " END_TIME TEXT," & _
326;~ " TIME_TAKEN TEXT," & _
327;~ " SYNTAX_CITF TEXT," & _
328;~ " SYNTAX_NTF TEXT," & _
329;~ " Q1_CREATED TEXT," & _
330;~ " SYNTAX_Q1 TEXT," & _
331;~ " SYNTAX_Q2 TEXT," & _
332;~ " NO_FEATURES INTEGER," & _
333;~ " NO_DIFF INTEGER," & _
334;~ " RESULT TEXT," & _
335;~ " ERROR TEXT )"
336 $iStatus = _SQLite_Exec($g_hDB, $sSQL)
337 If $iStatus <> $SQLITE_OK Then
338 Return SetError(@error, 0, 0)
339 EndIf
340 $sSQL = "BEGIN TRANSACTION"
341 $iStatus = _SQLite_Exec($g_hDB, $sSQL)
342 For $i = 1 To $sJobList[0]
343 $sTile = _os_otu_GetTileRefFromFileName($sJobList[$i])
344 $iFileSize = FileGetSize($sJobList[$i])
345 $sSQL = "INSERT OR REPLACE INTO JOB_CONTROL (FILE,FILE_SIZE,TILE) VALUES('" & $sJobList[$i] & "','" & $iFileSize & "','" & $sTile & "')"
346 $iStatus = _SQLite_Exec($g_hDB, $sSQL)
347 Next
348 $sSQL = "END TRANSACTION"
349 $iStatus = _SQLite_Exec($g_hDB, $sSQL)
350 $sSQL = "CREATE INDEX IF NOT EXISTS IDX_FILE_SIZE ON JOB_CONTROL ( FILE_SIZE DESC )"
351 $iStatus = _SQLite_Exec($g_hDB, $sSQL)
352 $sSQL = "CREATE INDEX IF NOT EXISTS IDX_COMPUTER ON JOB_CONTROL ( COMPUTER )"
353 $iStatus = _SQLite_Exec($g_hDB, $sSQL)
354 $sSQL = "CREATE INDEX IF NOT EXISTS IDX_END_TIME ON JOB_CONTROL ( END_TIME ASC )"
355 $iStatus = _SQLite_Exec($g_hDB, $sSQL)
356 Else
357 $sSQL = "UPDATE JOB_CONTROL SET " & _
358 " COMPUTER = NULL," & _
359 " START_TIME = NULL," & _
360 " END_TIME = NULL," & _
361 " TIME_TAKEN = NULL," & _
362 " SYNTAX_CITF = NULL," & _
363 " SYNTAX_NTF = NULL," & _
364 " Q1_CREATED = NULL," & _
365 " SYNTAX_Q1 = NULL," & _
366 " SYNTAX_Q2 = NULL," & _
367 " NO_FEATURES = NULL," & _
368 " NO_DIFF = NULL," & _
369 " RESULT = NULL," & _
370 " ERROR = NULL )" & _
371 " WHERE COMPUTER NOT NULL AND END_TIME = NULL"
372 $iStatus = _SQLite_Exec($g_hDB, $sSQL)
373 EndIf
374
375 $sSQL = "SELECT * FROM JOB_CONTROL ORDER BY FILE_SIZE DESC;"
376 $iStatus = _SQLite_GetTable2d($g_hDB, $sSQL, $aResult, $iRows, $iColumns)
377 If $iStatus = $SQLITE_OK Then
378 $iStatus = 1
379 EndIf
380 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Database ready")
381 Return $iStatus
382EndFunc ;==>_Database_Initialise
383
384Func _Database_Start()
385 Local $iStatus = 1
386 Local $sDatabase = $g_sJobControlFolder & "\AutoTestControl.db"
387
388 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Starting SQLite")
389
390 _SQLite_Startup()
391 If @error > 0 Then
392 MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!")
393 $iStatus = 0
394 EndIf
395 $g_hDB = _SQLite_Open($sDatabase)
396 If @error > 0 Then
397 MsgBox(16, "SQLite Error", "Can't Load Database!")
398 $iStatus = 0
399 EndIf
400 Return $iStatus
401EndFunc ;==>_Database_Start
402
403Func _Database_Stop()
404 _SQLite_Close($g_hDB)
405 _SQLite_Shutdown()
406EndFunc ;==>_Database_Stop
407
408Func _Initialise()
409 Local $aSettings[13][2]
410 Local $sIniFile = ''
411 Local $iStatus = 1
412
413 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Initialising")
414
415 $g_sJobControlFolder = _os_PathNormalise($AT_ROOT_DIR) & GUICtrlRead($Gui_tab0_edtTestJob)
416 $aSettings[0][0] = 12
417 $aSettings[1][0] = "createPSEUDO"
418 $aSettings[1][1] = "N"
419 If BitAND(GUICtrlRead($Gui_tab0_chkCreatePhseudo), $GUI_CHECKED) Then $aSettings[1][1] = "Y"
420 $aSettings[2][0] = "createSbz"
421 $aSettings[2][1] = "N"
422 If BitAND(GUICtrlRead($Gui_tab0_chkSaveSbz), $GUI_CHECKED) Then $aSettings[2][1] = "Y"
423 $aSettings[3][0] = "parameterfile"
424 $aSettings[3][1] = "C:\OsStrumap\CFG\PHOENIXCITF\phoenixCITF.prm"
425 If GUICtrlRead($Gui_tab0_edtStrumapPrm) <> '' Then $aSettings[3][1] = GUICtrlRead($Gui_tab0_edtStrumapPrm)
426 $aSettings[4][0] = "useGEOCOMP"
427 $aSettings[4][1] = "Y"
428 If BitAND(GUICtrlRead($Gui_tab0_chkUseGeoComp), $GUI_CHECKED) Then $aSettings[4][1] = "Y"
429 $aSettings[5][0] = "useStrumapVersion"
430 $aSettings[5][1] = "2.0.2977.0"
431 If GUICtrlRead($Gui_tab0_cboStrumapVer) <> '' Then $aSettings[5][1] = GUICtrlRead($Gui_tab0_cboStrumapVer)
432 $aSettings[6][0] = "V0FileExtention"
433 $aSettings[6][1] = "citf"
434 If GUICtrlRead($Gui_tab0_cboTopo96Ext) <> '' Then $aSettings[6][1] = GUICtrlRead($Gui_tab0_cboTopo96Ext)
435 $aSettings[7][0] = "V1CITFDataRootDir"
436 $aSettings[7][1] = ""
437 If GUICtrlRead($Gui_tab0_edtDataRootV1) <> '' Then $aSettings[7][1] = GUICtrlRead($Gui_tab0_edtDataRootV1)
438 $aSettings[8][0] = "V1FileExtention"
439 $aSettings[8][1] = "q1"
440 If GUICtrlRead($Gui_tab0_cboTopo93V1Ext) <> '' Then $aSettings[8][1] = GUICtrlRead($Gui_tab0_cboTopo93V1Ext)
441 $aSettings[9][0] = "V1ResultsRootDir"
442 $aSettings[9][1] = _os_FileGetFolder($aSettings[7][1]) & "\Result\V1"
443 $aSettings[10][0] = "V2CITFDataRootDir"
444 $aSettings[10][1] = ""
445 If GUICtrlRead($Gui_tab0_edtDataRootV2) <> '' Then $aSettings[10][1] = GUICtrlRead($Gui_tab0_edtDataRootV2)
446 $aSettings[11][0] = "V2FileExtention"
447 $aSettings[11][1] = "q2"
448 If GUICtrlRead($Gui_tab0_cboTopo93V2Ext) <> '' Then $aSettings[11][1] = GUICtrlRead($Gui_tab0_cboTopo93V2Ext)
449 $aSettings[12][0] = "V2ResultsRootDir"
450 $aSettings[12][1] = _os_FileGetFolder($aSettings[7][1]) & "\Result\V2"
451
452 $sIniFile = $g_sJobControlFolder & "\config.ini"
453 If Not DirCreate($g_sJobControlFolder) Then $iStatus = 0
454 If Not DirCreate($g_sJobControlFolder & "\Computers") Then $iStatus = 0
455 If Not DirCreate($g_sJobControlFolder & "\Logs") Then $iStatus = 0
456 If Not DirCreate($aSettings[9][1]) Then $iStatus = 0
457 If Not DirCreate($aSettings[12][1]) Then $iStatus = 0
458 If Not IniWriteSection($sIniFile, "SETTINGS", $aSettings, 1) Then $iStatus = 0
459 Return $iStatus
460EndFunc ;==>_Initialise
461
462Func _PercentDone()
463 Local $iRval, $aResult, $iRows, $iColumns
464 Local $iToDo, $iDone
465 Local $sSQLAll = "SELECT Count(*) FROM JOB_CONTROL"
466 Local $sSQLDone = "SELECT Count(*) FROM JOB_CONTROL WHERE END_TIME NOT NULL"
467 $iRval = _SQLite_GetTable2d($g_hDB, $sSQLAll, $aResult, $iRows, $iColumns)
468 If $iRval <> $SQLITE_OK Then $iToDo = 0
469 If $iRows Then
470 $iToDo = $aResult[$iRows][$iColumns - 1]
471 EndIf
472 $iRval = _SQLite_GetTable2d($g_hDB, $sSQLDone, $aResult, $iRows, $iColumns)
473 If $iRval <> $SQLITE_OK Then $iDone = 0
474 If $iRows Then
475 $iDone = $aResult[$iRows][$iColumns - 1]
476 EndIf
477 If $iToDo > 0 Then
478 Return StringFormat("%0.2f%%", (($iDone / $iToDo) * 100))
479 Else
480 Return StringFormat("%0.2f%%", 100)
481 EndIf
482EndFunc ;==>_PercentDone
483
484Func _Process_ComputersOnline(ByRef $aComputers)
485 Local $iItem = -1
486 Local $hWnd = $Gui_tab0_hListView
487 Local $sItemText = ''
488 Local $fFound = False
489 Local $iItemCount = 0
490 For $iPC = 1 To $aComputers[0]
491 $iItem = _GUICtrlListView_FindText($hWnd, $aComputers[$iPC], -1, False, True)
492 ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iItem = ' & $iItem & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
493 If $iItem < 0 Then
494 $iItem = _GUICtrlListView_AddItem($hWnd, $aComputers[$iPC])
495 _GUICtrlListView_AddSubItem($hWnd, $iItem, "", 1) ; Job / Tile
496 _GUICtrlListView_AddSubItem($hWnd, $iItem, "Unknown", 2) ; Status
497 _GUICtrlListView_AddSubItem($hWnd, $iItem, "00:00:00", 3) ; Elapsed Time
498 _GUICtrlListView_AddSubItem($hWnd, $iItem, "00:00:00", 4) ; Elapsed Time
499 EndIf
500 Next
501
502 $iItemCount = _GUICtrlListView_GetItemCount($hWnd)
503 ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iItemCount = ' & $iItemCount & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
504 $iItem = $iItemCount - 1
505 ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iItem = ' & $iItem & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
506 While $iItem >= 0
507 $sItemText = _GUICtrlListView_GetItemText($hWnd, $iItem)
508 ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $iItem = ' & $iItem & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
509 ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sItemText = ' & $sItemText & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
510 $fFound = False
511 For $i = 1 To $aComputers[0]
512 If $sItemText = $aComputers[$i] Then
513 ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sItemText = ' & $sItemText & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
514 ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $aComputers[$i] = ' & $aComputers[$i] & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
515 $fFound = True
516 ExitLoop
517 EndIf
518 Next
519 If Not $fFound Then
520 If _GUICtrlListView_DeleteItem($hWnd, $iItem) Then
521 $iItem -= 1
522 EndIf
523 EndIf
524 $iItem -= 1
525 WEnd
526
527EndFunc ;==>_Process_ComputersOnline
528
529Func _Process_ComputersOffline(ByRef $aComputers)
530 Local $iItem = -1
531 Local $hWnd = $Gui_tab0_hListView
532;~ Local $sItemText = ''
533;~ Local $fFound = False
534 For $iPC = 1 To $aComputers[0]
535 $iItem = _GUICtrlListView_FindText($hWnd, $aComputers[$iPC], -1, False, True)
536 If $iItem >= 0 Then
537 _GUICtrlListView_SetItem($hWnd, "", $iItem, 1); Job / Tile
538 _GUICtrlListView_SetItem($hWnd, "Off Line", $iItem, 2) ; Status
539 _GUICtrlListView_SetItem($hWnd, "00:00:00", $iItem, 3) ; Elapsed Time
540 _GUICtrlListView_SetItem($hWnd, "00:00:00", $iItem, 3) ; Elapsed Time
541 EndIf
542 Next
543EndFunc ;==>_Process_ComputersOffline
544
545Func _Process_JobRequests(ByRef $aComputers)
546;~ Local $sJobFile = ''
547;~ Local $aRow = 0
548 Local $sSQL = "SELECT FILE, TILE, FILE_SIZE, START_TIME FROM JOB_CONTROL WHERE START_TIME IS NULL ORDER BY FILE_SIZE DESC LIMIT "
549 Local $sSQL_REQ = ''
550 Local $sSQL_CMD = ''
551 Local $sFile = ''
552 Local $hFile = 0
553;~ Local $hQuery = 0
554 Local $aResult, $iRows, $iColumns, $iRval
555 Local $iItem = -1
556 Local $hWnd = $Gui_tab0_hListView
557;~ Local $sItemText = ''
558;~ Local $fFound = False
559
560 ;Update Display
561 For $iPC = 1 To $aComputers[0]
562 $iItem = _GUICtrlListView_FindText($hWnd, $aComputers[$iPC], -1, False, True)
563 If $iItem >= 0 Then
564 _GUICtrlListView_SetItem($hWnd, "", $iItem, 1) ; tile
565 _GUICtrlListView_SetItem($hWnd, "Job Requested", $iItem, 2) ; Status
566 _GUICtrlListView_SetItem($hWnd, "00:00:00", $iItem, 3) ; Start Time
567 _GUICtrlListView_SetItem($hWnd, "00:00:00", $iItem, 4) ; Elapsed Time
568 EndIf
569 Next
570
571 $sSQL_REQ = $sSQL & $aComputers[0] + 10 & ";"
572 $iRval = _SQLite_GetTable2d($g_hDB, $sSQL_REQ, $aResult, $iRows, $iColumns)
573;~ _ArrayDisplay($aResult)
574 For $i = 1 To $aComputers[0]
575 If $iRval = $SQLITE_OK And IsArray($aResult) Then
576 If $aResult[$i][1] <> '' Then
577 $sFile = $g_sJobControlFolder & "\Computers\" & $aComputers[$i] & "\_NextJob.atj"
578 $hFile = FileOpen($sFile, 2)
579 FileWriteLine($hFile, $aResult[$i][0])
580 FileWriteLine($hFile, $aResult[$i][1])
581 FileClose($hFile)
582 $sSQL_CMD = "UPDATE JOB_CONTROL SET COMPUTER = '" & $aComputers[$i] & "',START_TIME = '" & _NowCalc() & "' WHERE TILE = '" & $aResult[$i][1] & "';"
583 _SQLite_Exec($g_hDB, $sSQL_CMD)
584 $sFile = $g_sJobControlFolder & "\Computers\" & $aComputers[$i] & "\_RequestJob.atj"
585 FileDelete($sFile)
586 $iItem = _GUICtrlListView_FindText($hWnd, $aComputers[$i], -1, False, True)
587 If $iItem >= 0 Then
588 _GUICtrlListView_SetItem($hWnd, $aResult[$i][1], $iItem, 1) ; tile
589 _GUICtrlListView_SetItem($hWnd, "Job Allocated", $iItem, 2) ; Status
590 _GUICtrlListView_SetItem($hWnd, _NowCalc(), $iItem, 3) ; Start Time
591 _GUICtrlListView_SetItem($hWnd, "00:00:00", $iItem, 4) ; Elapsed Time
592 EndIf
593 Else
594 $sFile = $g_sJobControlFolder & "\Computers\" & $aComputers[$i] & "\_NoMoreJobs.atj"
595 _FileCreate($sFile)
596 $sFile = $g_sJobControlFolder & "\Computers\" & $aComputers[$i] & "\_RequestJob.atj"
597 FileDelete($sFile)
598 EndIf
599 Else ;No more jobs
600 $sFile = $g_sJobControlFolder & "\Computers\" & $aComputers[$i] & "\_NoMoreJobs.atj"
601 _FileCreate($sFile)
602 $sFile = $g_sJobControlFolder & "\Computers\" & $aComputers[$i] & "\_RequestJob.atj"
603 FileDelete($sFile)
604 EndIf
605 Next
606EndFunc ;==>_Process_JobRequests
607
608Func _Process_JobsAborted(ByRef $aComputers)
609 Local $iItem = -1
610 Local $hWnd = $Gui_tab0_hListView
611;~ Local $sItemText = ''
612;~ Local $fFound = False
613;~ Local $sFile = ''
614
615 For $iPC = 1 To $aComputers[0]
616 $iItem = _GUICtrlListView_FindText($hWnd, $aComputers[$iPC], -1, False, True)
617 If $iItem >= 0 Then
618 _GUICtrlListView_SetItem($hWnd, "Job Aborted", $iItem, 2) ; Status
619 _GUICtrlListView_SetItem($hWnd, "00:00:00", $iItem, 3) ; Elapsed Time
620 _GUICtrlListView_SetItem($hWnd, "00:00:00", $iItem, 4) ; Elapsed Time
621 EndIf
622 Next
623EndFunc ;==>_Process_JobsAborted
624
625Func _Process_JobsCompleted(ByRef $aComputers)
626 Local $iItem = -1
627 Local $hWnd = $Gui_tab0_hListView
628;~ Local $sItemText = ''
629;~ Local $fFound = False
630 Local $aResults
631 Local $aParts
632 Local $sSQL = "UPDATE JOB_CONTROL SET "
633 Local $sWhere = ''
634 Local $sDateTime = ''
635 Local $sFile = ''
636 Local $iStatus = 0
637
638 For $iPC = 1 To $aComputers[0]
639 $iItem = _GUICtrlListView_FindText($hWnd, $aComputers[$iPC], -1, False, True)
640 If $iItem >= 0 Then
641 $sDateTime = _GUICtrlListView_GetItemText($hWnd, $iItem, 4)
642 _GUICtrlListView_SetItem($hWnd, "Completed", $iItem, 2) ; Status
643 _GUICtrlListView_SetItem($hWnd, "00:00:00", $iItem, 3) ; Elapsed Time
644 _GUICtrlListView_SetItem($hWnd, "00:00:00", $iItem, 4) ; Elapsed Time
645 EndIf
646 $sFile = $g_sJobControlFolder & "\Computers\" & $aComputers[$iPC] & "\_CompletedJob.atj"
647 _FileReadToArray($sFile, $aResults)
648 If IsArray($aResults) Then
649 For $i = 1 To $aResults[0]
650 $aParts = StringSplit($aResults[$i], "|")
651 If IsArray($aParts) Then
652 Switch $aParts[1]
653 Case 'COMPUTER'
654 If $sWhere = '' Then
655 $sWhere = ' WHERE COMPUTER = "' & $aParts[2] & '"'
656 Else
657 $sWhere &= ' AND COMPUTER = "' & $aParts[2] & '"'
658 EndIf
659 Case 'TILE'
660 If $sWhere = '' Then
661 $sWhere = ' WHERE TILE = "' & $aParts[2] & '"'
662 Else
663 $sWhere &= ' AND TILE = "' & $aParts[2] & '"'
664 EndIf
665 Case 'SYNTAX_CITF'
666 $sSQL &= 'SYNTAX_CITF = "' & $aParts[2] & '",'
667 Case 'SYNTAX_NTF'
668 $sSQL &= 'SYNTAX_NTF = "' & $aParts[2] & '",'
669 Case 'Q1_CREATED'
670 $sSQL &= 'Q1_CREATED = "' & $aParts[2] & '",'
671 Case 'SYNTAX_Q1'
672 $sSQL &= 'SYNTAX_Q1 = "' & $aParts[2] & '",'
673 Case 'SYNTAX_Q2'
674 $sSQL &= 'SYNTAX_Q2 = "' & $aParts[2] & '",'
675 Case 'NO_FEATURES'
676 $sSQL &= 'NO_FEATURES = ' & $aParts[2] & ','
677 Case 'NO_DIFF'
678 $sSQL &= 'NO_DIFF = ' & $aParts[2] & ','
679 Case 'RESULT'
680 $sSQL &= 'RESULT = "' & $aParts[2] & '",'
681 Case 'MESSAGE'
682 $sSQL &= 'ERROR = "' & $aParts[2] & '",'
683 EndSwitch
684 EndIf
685 Next
686 $sSQL &= ' END_TIME = "' & _NowCalc() & '",'
687 $sSQL &= ' TIME_TAKEN = "' & $sDateTime & '"'
688 $sSQL &= $sWhere
689 $iStatus = _SQLite_Exec($g_hDB, $sSQL)
690 If $iStatus Then
691 ; TODO:
692 EndIf
693 FileDelete($sFile)
694 Else
695;~ 'MESSAGE = No Results were returned from test runner'
696 FileDelete($sFile)
697 EndIf
698 Next
699EndFunc ;==>_Process_JobsCompleted
700
701Func _Process_JobsRunning(ByRef $aComputers)
702 Local $iItem = -1
703 Local $hWnd = $Gui_tab0_hListView
704;~ Local $sItemText = ''
705;~ Local $fFound = False
706 Local $sDateTime = ''
707
708 For $iPC = 1 To $aComputers[0]
709 $iItem = _GUICtrlListView_FindText($hWnd, $aComputers[$iPC], -1, False, True)
710 If $iItem >= 0 Then
711 _GUICtrlListView_SetItem($hWnd, "Job Running", $iItem, 2) ; Status
712 $sDateTime = _GUICtrlListView_GetItemText($hWnd, $iItem, 3)
713 _GUICtrlListView_SetItem($hWnd, _RuninngTime($sDateTime), $iItem, 4) ; Elapsed Time
714 EndIf
715 Next
716EndFunc ;==>_Process_JobsRunning
717
718Func _Process_Results(ByRef $sJobFolder, ByRef $aComputers)
719 ;TODO:
720 If IsArray($aComputers) Then
721 Return ($sJobFolder <> '')
722 Else
723 Return -1
724 EndIf
725EndFunc ;==>_Process_Results
726
727Func _RuninngTime($sDateTime)
728 Local $iSeconds
729 Local $iH, $iM, $iS
730
731 $iSeconds = _DateDiff("s", $sDateTime, _NowCalc())
732 $iH = Int($iSeconds / 3600)
733 $iSeconds -= ($iH * 3600)
734 $iM = Int($iSeconds / 60)
735 $iSeconds -= ($iM * 60)
736 $iS = Int($iSeconds)
737 Return StringFormat("%0i:%02i:%02i", $iH, $iM, $iS)
738EndFunc ;==>_RuninngTime
739
740Func _ScanFor_ComputersOnline(ByRef $sJobFolder)
741 Local $asFileList[1] = [0]
742;~ Local $aComputer = ''
743 Local $aTemp
744
745 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Cheking for PCs")
746
747 $asFileList = _os_FoldersListInTree($sJobFolder & "\Computers", $asFileList, 0, "*")
748 For $i = 1 To $asFileList[0]
749 $aTemp = StringSplit($asFileList[$i], '\')
750 If IsArray($aTemp) Then $asFileList[$i] = $aTemp[$aTemp[0]]
751 Next
752 Return $asFileList
753EndFunc ;==>_ScanFor_ComputersOnline
754
755Func _ScanFor_ComputersOffline(ByRef $sJobFolder)
756 Local $asFileList[1] = [0]
757;~ Local $aComputer = ''
758 Local $aTemp
759
760 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Cheking for PCs")
761
762 $asFileList = _os_FilesListInTree($sJobFolder & "\Computers", $asFileList, 0, "_Offline.atj")
763 For $i = 1 To $asFileList[0]
764 $aTemp = StringSplit($asFileList[$i], '\')
765 If IsArray($aTemp) Then $asFileList[$i] = $aTemp[$aTemp[0] - 1]
766 Next
767 Return $asFileList
768EndFunc ;==>_ScanFor_ComputersOffline
769
770Func _ScanFor_JobRequests(ByRef $sJobFolder)
771 Local $asFileList[1] = [0]
772;~ Local $aComputer = ''
773 Local $aTemp
774
775 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Cheking for Job Requests")
776
777 $asFileList = _os_FilesListInTree($sJobFolder & "\Computers", $asFileList, 0, "_RequestJob.atj")
778 For $i = 1 To $asFileList[0]
779 $aTemp = StringSplit($asFileList[$i], '\')
780 If IsArray($aTemp) Then $asFileList[$i] = $aTemp[$aTemp[0] - 1]
781 Next
782 Return $asFileList
783EndFunc ;==>_ScanFor_JobRequests
784
785Func _ScanFor_JobsAborted(ByRef $sJobFolder)
786 Local $asFileList[1] = [0]
787;~ Local $aComputer = ''
788 Local $aTemp
789
790 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Cheking for Aborted Jobs")
791
792 $asFileList = _os_FilesListInTree($sJobFolder & "\Computers", $asFileList, 0, "_Aborted.atj")
793 For $i = 1 To $asFileList[0]
794 $aTemp = StringSplit($asFileList[$i], '\')
795 If IsArray($aTemp) Then $asFileList[$i] = $aTemp[$aTemp[0] - 1]
796 Next
797 Return $asFileList
798EndFunc ;==>_ScanFor_JobsAborted
799
800Func _ScanFor_JobsCompleted(ByRef $sJobFolder)
801 Local $asFileList[1] = [0]
802;~ Local $aComputer = ''
803 Local $aTemp
804
805 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Cheking for Completed Jobs")
806
807 $asFileList = _os_FilesListInTree($sJobFolder & "\Computers", $asFileList, 0, "_CompletedJob.atj")
808;~ _ArrayDisplay($asFileList,"JobsCompleted")
809 For $i = 1 To $asFileList[0]
810 $aTemp = StringSplit($asFileList[$i], '\')
811 If IsArray($aTemp) Then $asFileList[$i] = $aTemp[$aTemp[0] - 1]
812 Next
813 Return $asFileList
814EndFunc ;==>_ScanFor_JobsCompleted
815
816Func _ScanFor_JobsRunning(ByRef $sJobFolder)
817 Local $asFileList[1] = [0]
818;~ Local $aComputer = ''
819 Local $aTemp
820
821 _GUICtrlStatusBar_SetText($GUI_stbStatusBar, "Cheking for Running Jobs")
822
823 $asFileList = _os_FilesListInTree($sJobFolder & "\Computers", $asFileList, 0, "_RunningJob.atj")
824 For $i = 1 To $asFileList[0]
825 $aTemp = StringSplit($asFileList[$i], '\')
826 If IsArray($aTemp) Then $asFileList[$i] = $aTemp[$aTemp[0] - 1]
827 Next
828 Return $asFileList
829EndFunc ;==>_ScanFor_JobsRunning
830
831Func _ScanFor_JobsToDo($sJobFolder_In, $sFilePattern_In)
832 Local $asFileList[1] = [0]
833
834 $asFileList = _os_FilesListInTree($sJobFolder_In, $asFileList, 0, $sFilePattern_In)
835
836 Return $asFileList
837EndFunc ;==>_ScanFor_JobsToDo
838
839Func _Settings_Read()
840 Local $sValue = ''
841 GUICtrlSetData($Gui_tab0_edtTestJob, IniRead(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "TestJob", ""))
842 GUICtrlSetData($Gui_tab0_edtDataRootV1, IniRead(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "DataRootV1", ""))
843 GUICtrlSetData($Gui_tab0_edtDataRootV2, IniRead(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "DataRootV2", ""))
844 GUICtrlSetData($Gui_tab0_edtStrumapPrm, IniRead(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "StrumapPrm", ""))
845 $sValue = IniRead(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "Topo96Ext", "")
846 GUICtrlSetData($Gui_tab0_cboTopo96Ext, "citf|ctf", $sValue)
847 $sValue = IniRead(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "Topo93V1Ext", "")
848 GUICtrlSetData($Gui_tab0_cboTopo93V1Ext, "q1|v1", $sValue)
849 $sValue = IniRead(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "Topo93V2Ext", "")
850 GUICtrlSetData($Gui_tab0_cboTopo93V2Ext, "q2|v2", $sValue)
851 $sValue = IniRead(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "StrumapVer", "")
852 GUICtrlSetData($Gui_tab0_cboStrumapVer, "2.0.2981.1", $sValue)
853EndFunc ;==>_Settings_Read
854
855Func _Settings_Save()
856 IniWrite(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "TestJob", GUICtrlRead($Gui_tab0_edtTestJob))
857 IniWrite(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "DataRootV1", GUICtrlRead($Gui_tab0_edtDataRootV1))
858 IniWrite(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "DataRootV2", GUICtrlRead($Gui_tab0_edtDataRootV2))
859 IniWrite(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "StrumapPrm", GUICtrlRead($Gui_tab0_edtStrumapPrm))
860 IniWrite(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "Topo96Ext", GUICtrlRead($Gui_tab0_cboTopo96Ext))
861 IniWrite(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "Topo93V1Ext", GUICtrlRead($Gui_tab0_cboTopo93V1Ext))
862 IniWrite(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "Topo93V2Ext", GUICtrlRead($Gui_tab0_cboTopo93V2Ext))
863 IniWrite(@ScriptDir & "\" & $sTitle & ".ini", "LAST_JOB", "StrumapVer", GUICtrlRead($Gui_tab0_cboStrumapVer))
864EndFunc ;==>_Settings_Save
865
866Func _Status_Update($hWnd, ByRef $aComputers)
867 If $hWnd > 0 Then Return 1
868 If Not IsArray($aComputers) Then Return 1
869EndFunc ;==>_Status_Update