luisr320 Posted March 25, 2015 Share Posted March 25, 2015 (edited) Hi. This is my first post. I'm using AutoIT to automate a Python script that will wirelessly program sensor nodes that its users will need reprograming by opening several windows asking for the required parameters and then constructing a Python command line with all those parameters and executing it. This all works very well. When running the AutoIT script, a window pops up and asks for a node number, then the hex file the Python script will upload and the com port of the gateway trough which it will be uploaded it into the node. To select the com port I use this function, that is also working very well: Func comPort() Local $idCombo ; Create GUI GUICreate("Click on a COM Port", 250, 150) $idCombo = GUICtrlCreateCombo("", 2, 2, 250, 150,$WS_TABSTOP) GUISetState(@SW_SHOW) For $i = 1 To 100 Local $sVar = RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM", RegEnumVal("HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM", $i)) If $sVar = "" Then ExitLoop _GUICtrlComboBox_InsertString($idCombo,$sVar,-1) Next Global $idMsg, $comPort ; Loop until the user exits. Do $idMsg = GUIGetMsg() If $idMsg = $GUI_EVENT_CLOSE Then ExitLoop ElseIf $idMsg = $idCombo Then $comPort = GUICtrlRead($idCombo, 1) ; return the text of the menu item EndIf Until $idMsg = $GUI_EVENT_PRIMARYUP ; Until the mouse butten is released after a click GUIDelete() If $comPort = "" Then MsgBox($MB_SYSTEMMODAL, "ERROR!", "COM Port not selected!" & @CRLF & "Script Stopped...") Exit EndIf EndFunc ;Func comPort() This will look into the Registry for any available com ports and allow the user to choose the right one by just clicking on his choice. This is required because everytime the gateway is plugged in, the com port may change. But to ask for the node number I wanted to do something more besides asking for a destination node number. I want the user to look at a list of available nodes numbers and their respective description to avoid choosing the wrong node. For that each user would have to create a setup.txt file with some CSV data, like "node number,node function" in each row. But I just can't figure out how to load the CSV data into a table, displaying it and allow the user to just point and click a selection. I can dispaly a table but then the user have to click on one of three buttons on the bottom that show up to copy data into the clipboard and that won't work. Can anyone please help me create a function that will: - Open some sort of combobox or table display - Read data from a setup.txt file in a CSV format (x, y) per each row - Assign each line of the CSV file to a row in the opened table - Name the Column headers of the table - Allow the user to click a row - Assign the first item of the row (the x) to a global variable to be used later in the script. - Close that window immediately after the user clicked the row Thank you. Edited March 26, 2015 by luisr320 Link to comment Share on other sites More sharing options...
luisr320 Posted March 26, 2015 Author Share Posted March 26, 2015 Humm... maybe I'm posting this in the wrong Forum? Link to comment Share on other sites More sharing options...
luisr320 Posted March 26, 2015 Author Share Posted March 26, 2015 Hi. I tried to post this on the General Forum but got no answers. So I'm reposting here just in case some of the Gurus here may know how to do this. I'm using AutoIT to automate a Python script that will wirelessly program sensor nodes that its users will need reprograming by opening several windows asking for the required parameters and then constructing a Python command line with all those parameters and executing it. This all works very well. When running the AutoIT script, a window pops up and asks for a node number, then the hex file the Python script will upload and the com port of the gateway trough which it will be uploaded it into the node. To select the com port I use this function, that is also working very well: Func comPort() Local $idCombo ; Create GUI GUICreate("Click on a COM Port", 250, 150) $idCombo = GUICtrlCreateCombo("", 2, 2, 250, 150,$WS_TABSTOP) GUISetState(@SW_SHOW) For $i = 1 To 100 Local $sVar = RegRead("HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM", RegEnumVal("HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM", $i)) If $sVar = "" Then ExitLoop _GUICtrlComboBox_InsertString($idCombo,$sVar,-1) Next Global $idMsg, $comPort ; Loop until the user exits. Do $idMsg = GUIGetMsg() If $idMsg = $GUI_EVENT_CLOSE Then ExitLoop ElseIf $idMsg = $idCombo Then $comPort = GUICtrlRead($idCombo, 1) ; return the text of the menu item EndIf Until $idMsg = $GUI_EVENT_PRIMARYUP ; Until the mouse butten is released after a click GUIDelete() If $comPort = "" Then MsgBox($MB_SYSTEMMODAL, "ERROR!", "COM Port not selected!" & @CRLF & "Script Stopped...") Exit EndIf EndFunc ;Func comPort() This will look into the Registry for any available com ports and allow the user to choose the right one by just clicking on his choice. This is required because everytime the gateway is plugged in, the com port may change. But to ask for the node number I wanted to do something more besides asking for a destination node number. I want the user to look at a list of available nodes numbers and their respective description to avoid choosing the wrong node. For that each user would have to create a setup.txt file with some CSV data, like "node number,node function" in each row. But I just can't figure out how to load the CSV data into a table, displaying it and allow the user to just point and click a selection. I can dispaly a table but then the user have to click on one of three buttons on the bottom that show up to copy data into the clipboard and that won't work. Can anyone please help me create a function that will: - Open some sort of combobox or table display - Read data from a setup.txt file in a CSV format (x, y) per each row - Assign each line of the CSV file to a row in the opened table - Name the Column headers of the table - Allow the user to click a row - Assign the first item of the row (the x) to a global variable to be used later in the script. - Close that window immediately after the user clicked the row Thank you. Link to comment Share on other sites More sharing options...
water Posted March 26, 2015 Share Posted March 26, 2015 No, the forum is just fine. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
water Posted March 27, 2015 Share Posted March 27, 2015 Please be patient. Your first post in the GH&S forum is just 2 days old. Wait until someone finds the time to provide an answer. But there is no guarantee that you will get replies because we are all just volunteers. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted March 27, 2015 Moderators Share Posted March 27, 2015 luisr320,Please stick to just the one thread in future - merged. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now