Пример #1
0
    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
Пример #2
0
 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)
Пример #3
0
    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
Пример #4
0
    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)
Пример #5
0
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")
Пример #6
0
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.")
Пример #7
0
    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")
Пример #8
0
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.")