def Install_CQI(self): autoit.auto_it_set_option("MouseClickDelay", 1000) autoit.run( "D:\CareFusion\CQI 4.3\Release\Guardrails CQI - Setup-4.3.exe") window_name = "[Class:MsiDialogCloseClass]" autoit.win_wait_active(window_name, 30) autoit.control_wait_visible(window_name, "[ID:2271]", 30) autoit.control_click_wait(window_name, "[ID:2271]", 20) # Welcome screen - Next autoit.control_click_wait(window_name, "[ID:2172]", 20) # License screen - Accept Rad Button autoit.control_wait_enabled( window_name, "[ID:2271]", 30) # Wait till Next Button is enabled after accepting autoit.control_click(window_name, "[ID:2271]") # License screen - Next autoit.control_wait_enabled(window_name, "[ID:2271]", 30) # Language screen - Next autoit.control_wait_visible(window_name, "[ID:2271]", 30) autoit.control_click(window_name, "[ID:2271]") # Language screen - Next autoit.control_wait_visible(window_name, "[ID:2271]", 30) # SetupType screen - Next autoit.control_custom_sleep( 2000) # Sometimes the event is missed. Needs a delay first. autoit.control_click_wait(window_name, "[ID:2271]", 10) # SetupType screen - Next
def install_jenkins(self): autoit.auto_it_set_option("MouseClickDelay", 1000) autoit.run( "msiexec /package D:\Automation\Projects\WhiteRide\Repo\jenkins.msi" ) autoit.win_wait_active("Jenkins 1.651.2 Setup", 30) autoit.control_click_wait("Jenkins 1.651.2 Setup", "[ID:995]", 10) autoit.control_click_wait("Jenkins 1.651.2 Setup", "[ID:1100]", 10) autoit.control_click_wait("Jenkins 1.651.2 Setup", "[ID:1071]", 60) autoit.control_click_wait("Jenkins 1.651.2 Setup", "[ID:968]", 20) autoit.control_click_wait("Jenkins 1.651.2 Setup", "[ID:971]", 120)
def install_ast(): autoit.auto_it_set_option("MouseClickDelay", 1000) autoit.run("D:\Automation\Projects\WhiteRide\Repo\setup.exe") window_name = "CareFusion - Alaris System Tracking Application Configuration v3.0" autoit.win_wait_active(window_name, 30) autoit.control_wait_visible(window_name, "[ID:2495]", "IsVisible", 30) autoit.control_click_wait(window_name, "[ID:2495]", 20) # Welcome screen - Next window_name = "CareFusion - Alaris System Tracking Application Configuration v3.0 - InstallShield Wizard" autoit.win_wait_active(window_name, 30) autoit.control_click( window_name, "[ID:2602]") # Database - Select existing instance autoit.control_custom_sleep( 2000) # Sometimes the event is missed. Needs a delay first. autoit.control_click_wait(window_name, "[ID:2495]", 20) # Database - Next window_name = "CareFusion - Alaris System Tracking Application Configuration v3.0" autoit.win_wait_active(window_name, 30) autoit.control_wait_visible( window_name, "[ID:1685]", 20) # Wait till a control on the next screen is visible autoit.control_click_wait(window_name, "[ID:2495]", 20) # Database Location - Next autoit.control_wait_visible(window_name, "[ID:2524]", 10) # Wait till Install button is visible autoit.control_click(window_name, "[ID:2524]") # Ready screen - Install autoit.control_wait_visible(window_name, "[ID:2549]", 180) # Wait till Finish button is visible autoit.control_click(window_name, "[ID:2549]") # Final screen - Finish
def __init__(self, working_dir, filename, gui_title, *args): wx.Panel.__init__(self, *args) self._work_dir = working_dir self._filename = filename self._gui_title = gui_title subpanel = wx.Panel(self) sp_sizer = wx.BoxSizer() wx.InitAllImageHandlers() self._img = wx.Image(720, 480, True).ConvertToBitmap() self._display = wx.StaticBitmap(self, -1, self._img, wx.DefaultPosition, wx.Size(720, 480)) self._display.SetBitmap(self._img) sp_sizer.Add(self._display, 0, wx.ALL, 10) subpanel.SetSizer(sp_sizer) overall_sizer = wx.BoxSizer(wx.HORIZONTAL) overall_sizer.Add(subpanel) self.SetSizer(overall_sizer) self.SetSize(720, 480) autoit.auto_it_set_option("WinTitleMatchMode", 2)
import sys import autoit autoit.auto_it_set_option("WinTitleMatchMode", 2) autoit.auto_it_set_option("WinTextMatchMode", 1) appName = sys.argv[1].title() try: appHandle = autoit.win_get_handle(appName) autoit.win_close_by_handle(appHandle) except: print("Application could not be found.\n")
def main(): user_dir = get_users_main_directory() check_lp_power_data_folder_exists(user_dir) check_database_file_exists(user_dir) trial = {} trial = prompt_setup(trial, user_dir) # stopgap for pre-class variables walk_speed = trial["Speed [MPH]"] walk_style = trial["Walk Style [Normal/LP]"] pack_number = trial["Pack Number [XXX]"] # MAKE FOLDERS FOR TRIAL BASED ON PREVIOUSLY-ENTERED INPUTS make_pack_folder(pack_number, walk_speed, walk_style, user_dir) print('.....') print("..........Launching.....") # SET UP BASIC AUTO-IT SETTINGS TO USE WINDOW-RELATIVE COORDINATES autoit.auto_it_set_option('MouseCoordMode', 0) autoit.auto_it_set_option('SendKeyDelay', 10) # OPEN PICOSCOPE USING OUR DEFAULT WINDOW LAYOUT WITH TWO PANELS AND POWER UP TOP default_pico = os.path.join(user_dir, "electrical_power.psdata") click_on_file(default_pico) # PREPARE TO RUN THE RECORD DATA MACRO autoit.win_wait('PicoScope 6 - [electrical_power.psdata]') autoit.win_activate('PicoScope 6 - [electrical_power.psdata]') time.sleep(0.5) autoit.send('{ALT}{TAB}{TAB}{TAB}{TAB}{ENTER}{END}{UP}{ENTER}') autoit.win_wait('Macro Recorder') autoit.control_click('Macro Recorder', "[Name:_buttonImport]") time.sleep(1) macro_text = os.path.abspath(os.path.join(user_dir, "record_20sec.psmacro")) autoit.clip_put(macro_text) autoit.win_wait("Open") autoit.send('^V', 0) autoit.send('{ENTER}') msgbox("Ready to go?") # RUN THE MACRO autoit.win_activate('Macro Recorder') autoit.win_wait('Macro Recorder') autoit.control_click('Macro Recorder', "[Name:_buttonExecute]") time.sleep(22) autoit.win_activate('Macro Recorder') autoit.send('{ESCAPE}') # BEGIN SAVING THE DATA i = datetime.now() save_text = os.path.abspath( os.path.join( user_dir, 'LP Power Data', "{}".format("LP-{0}".format(pack_number)), "{0}MPH-{1} Walk".format(walk_speed, walk_style), "{0}MPH-{1} Walk_".format(walk_speed, walk_style) + i.strftime('%Y-%m-%d %Hh%Mm%Ss') + ".psdata")) autoit.clip_put(save_text) # SAVE ALL CAPTURED WAVEFORMS IN PICO FORMAT autoit.win_activate('PicoScope 6') autoit.win_wait("PicoScope 6") autoit.send('{ALT}{f}{a}') time.sleep(.5) autoit.win_wait("Save As") autoit.control_send('Save As', "[Class:Edit;INSTANCE:1]", '^V', 0) autoit.send('{ENTER}') # BEGIN SAVE SEQUENCE FOR CSV FORMAT autoit.win_activate('PicoScope 6') autoit.win_wait("PicoScope 6") autoit.mouse_click("primary", 433, 67, 2, 1) # MUST CLICK ON SECTION OF WINDOW CONTAINING POWER TRACE OR ALL AVERAGES CALCULATED WILL BE MESSED UP autoit.win_activate('PicoScope 6') autoit.win_wait("PicoScope 6") autoit.mouse_click("primary", 230, 260, 1, 0) # autoit.control_click('PicoScope 6', "[CLASS:WindowsForms10.Window.8.app.0.1114f81_r13_ad1; INSTANCE:55]") autoit.send('{ALT}{f}{a}') time.sleep(.5) autoit.win_wait("Save As") autoit.control_send('Save As', "[Class:Edit;INSTANCE:1]", '^V', 0) # SAVE ALL CAPTURED 5SEC INTERVALS autoit.control_click('Save As', "[CLASS:ComboBox;INSTANCE:3]") autoit.send("{HOME}{DOWN}{DOWN}{ENTER}") # autoit.control_click("Save As", "[NAME:_currentBufferRadio]") time.sleep(0.5) autoit.send('{ENTER}') time.sleep(4.5) autoit.process_close('PicoScope.exe') # BOTH SAVE OPERATIONS NOW COMPLETE. THERE IS A CSV FOR EACH 5SEC INTERVAL IN A NEW SUBDIRECTORY OF THIS TRIAL. print("") print("Sit tight, I'm still doing some thinking....") # UPDATE ALL CSV FILES TO BE XLSX AND CALCULATE THEIR 5SEC AVERAGES run_avgs = recursively_repair_all_csv_files(save_text, user_dir, walk_speed) # ADD ALL INFORMATION COLLECTED TO THE EXPERIMENTS SPREADSHEET patch_experiments_database(trial, run_avgs, user_dir) print("") # WRITE THE METADATA SETTINGS TO A FILE FOR FUTURE RECORD with open('{}'.format(save_text.replace(".psdata", ".LPmeta")), 'w') as outfile: json.dump(trial, outfile, indent=4, separators=(',', ': ')) print("") print( "LP Metadata file successfully saved for the future with all info the state of the pack as you have just tested it." ) print("") # print_average_power(dest_filename) print(".................................. Testing Complete.")
def __init__(self, newVerbose): self.verbose = newVerbose config = ConfigParser() config.read('Jarmis.ini') if self.verbose: print("Initializing Chatbot...") self.aimlBot = aiml.Kernel() self.name = config['AIML']['Personality'] try: config.read('brain//' + self.name + '.personality') for key in config['AIMLBot Settings']: self.aimlBot.set_bot_predicate(key, config['AIMLBot Settings'][key]) except: print('Failed to load brain//' + self.name + '.personality') if os.path.isfile("brain//" + self.name + ".brain"): if self.verbose: print("Loading " + self.name + " Brain...") self.aimlBot.load_brain("brain//" + self.name + ".brain") if self.verbose: print(self.name + ".brain loaded!") else: if self.verbose: print("Failed to find " + self.name + ".brain!") print("Loading aiml files...") self.aimlBot.learn("aiml\\std-startup.xml") self.aimlBot.respond("LOAD AIML B") self.aimlBot.save_brain("brain//" + self.name + ".brain") if self.verbose: print("AIML Files loaded!") print("New " + self.name + " Brain generated!") if os.path.isfile("brain//" + self.name + ".memory"): if self.verbose: print("Loading " + self.name + " Memory...") sessionFile = open("brain//" + self.name + ".memory", "rb") aimlSession = marshal.load(sessionFile) sessionFile.close() for pred,value in aimlSession.items(): self.aimlBot.set_predicate(pred, value, "Jarmis") if self.verbose: print(self.name + " Memory Loaded!") else: print(self.name + ".memory not found!") if self.verbose: print("Chatbot Initialized!\n") print("Initializing Text-To-Speech...") self.tts = myTTS() try: self.tts.changeVoice(config['TTS']['Voice']) except: print('Using default windows text to speech voice.') if self.verbose: print("Text-to-Speech Initialized!\n") print("Configuring AutoIt...") autoit.auto_it_set_option("WinTitleMatchMode", 2) autoit.auto_it_set_option("WinTextMatchMode", 1) if self.verbose: print("Autoit Configured!\n") print("Scanning for automation scripts...") self.scripts = self.scanScripts() if self.verbose: print("Scripts Scanned!\n")
def main(): user_dir = get_users_main_directory() check_lp_power_data_folder_exists(user_dir) check_database_file_exists(user_dir) trial = {} trial = prompt_setup(trial, user_dir) # stopgap for pre-class variables walk_speed = trial["Speed [MPH]"] walk_style = trial["Walk Style [Normal/LP]"] pack_number = trial["Pack Number [XXX]"] # MAKE FOLDERS FOR TRIAL BASED ON PREVIOUSLY-ENTERED INPUTS make_pack_folder(pack_number, walk_speed, walk_style, user_dir) print('.....') print("..........Launching.....") # SET UP BASIC AUTO-IT SETTINGS TO USE WINDOW-RELATIVE COORDINATES autoit.auto_it_set_option('MouseCoordMode', 0) autoit.auto_it_set_option('SendKeyDelay', 10) # OPEN PICOSCOPE USING OUR DEFAULT WINDOW LAYOUT WITH TWO PANELS AND POWER UP TOP default_pico = os.path.join(user_dir, "electrical_power.psdata") click_on_file(default_pico) # PREPARE TO RUN THE RECORD DATA MACRO autoit.win_wait('PicoScope 6 - [electrical_power.psdata]') autoit.win_activate('PicoScope 6 - [electrical_power.psdata]') time.sleep(0.5) autoit.send('{ALT}{TAB}{TAB}{TAB}{TAB}{ENTER}{END}{UP}{ENTER}') autoit.win_wait('Macro Recorder') autoit.control_click('Macro Recorder', "[Name:_buttonImport]") time.sleep(1) macro_text = os.path.abspath(os.path.join(user_dir, "record_20sec.psmacro")) autoit.clip_put(macro_text) autoit.win_wait("Open") autoit.send('^V', 0) autoit.send('{ENTER}') msgbox("Ready to go?") # RUN THE MACRO autoit.win_activate('Macro Recorder') autoit.win_wait('Macro Recorder') autoit.control_click('Macro Recorder', "[Name:_buttonExecute]") time.sleep(22) autoit.win_activate('Macro Recorder') autoit.send('{ESCAPE}') # BEGIN SAVING THE DATA i = datetime.now() save_text = os.path.abspath(os.path.join(user_dir, 'LP Power Data', "{}".format("LP-{0}".format(pack_number)), "{0}MPH-{1} Walk".format(walk_speed, walk_style), "{0}MPH-{1} Walk_".format(walk_speed, walk_style) + i.strftime('%Y-%m-%d %Hh%Mm%Ss')+ ".psdata")) autoit.clip_put(save_text) # SAVE ALL CAPTURED WAVEFORMS IN PICO FORMAT autoit.win_activate('PicoScope 6') autoit.win_wait("PicoScope 6") autoit.send('{ALT}{f}{a}') time.sleep(.5) autoit.win_wait("Save As") autoit.control_send('Save As', "[Class:Edit;INSTANCE:1]", '^V', 0) autoit.send('{ENTER}') # BEGIN SAVE SEQUENCE FOR CSV FORMAT autoit.win_activate('PicoScope 6') autoit.win_wait("PicoScope 6") autoit.mouse_click("primary", 433, 67, 2, 1) # MUST CLICK ON SECTION OF WINDOW CONTAINING POWER TRACE OR ALL AVERAGES CALCULATED WILL BE MESSED UP autoit.win_activate('PicoScope 6') autoit.win_wait("PicoScope 6") autoit.mouse_click("primary", 230, 260, 1, 0) # autoit.control_click('PicoScope 6', "[CLASS:WindowsForms10.Window.8.app.0.1114f81_r13_ad1; INSTANCE:55]") autoit.send('{ALT}{f}{a}') time.sleep(.5) autoit.win_wait("Save As") autoit.control_send('Save As', "[Class:Edit;INSTANCE:1]", '^V', 0) # SAVE ALL CAPTURED 5SEC INTERVALS autoit.control_click('Save As', "[CLASS:ComboBox;INSTANCE:3]") autoit.send("{HOME}{DOWN}{DOWN}{ENTER}") # autoit.control_click("Save As", "[NAME:_currentBufferRadio]") time.sleep(0.5) autoit.send('{ENTER}') time.sleep(4.5) autoit.process_close('PicoScope.exe') # BOTH SAVE OPERATIONS NOW COMPLETE. THERE IS A CSV FOR EACH 5SEC INTERVAL IN A NEW SUBDIRECTORY OF THIS TRIAL. print("") print("Sit tight, I'm still doing some thinking....") # UPDATE ALL CSV FILES TO BE XLSX AND CALCULATE THEIR 5SEC AVERAGES run_avgs = recursively_repair_all_csv_files(save_text, user_dir, walk_speed) # ADD ALL INFORMATION COLLECTED TO THE EXPERIMENTS SPREADSHEET patch_experiments_database(trial, run_avgs, user_dir) print("") # WRITE THE METADATA SETTINGS TO A FILE FOR FUTURE RECORD with open('{}'.format(save_text.replace(".psdata", ".LPmeta")), 'w') as outfile: json.dump(trial, outfile, indent=4, separators=(',', ': ')) print("") print("LP Metadata file successfully saved for the future with all info the state of the pack as you have just tested it.") print("") # print_average_power(dest_filename) print(".................................. Testing Complete.")