Jump to content
Sign in to follow this  
Corleone221

Load Com Port

Recommended Posts

Corleone221

 

Hello All,

 

How can I load  actual connect  Com Ports to combobox?

 

Thanks.

 

for example  this 3....(6,7,8)

untitled2.jpg

 

 

Edited by Corleone221

Share this post


Link to post
Share on other sites
Earthshine

so, you would like to load those three, for example into a combo box? correct? Is that the device Manager app?


My resources are limited. You must ask the right questions

 

Share this post


Link to post
Share on other sites
Corleone221

Yes, I want load all active ports.

Yes, taht's all connected PORT what I have....

Edited by Corleone221

Share this post


Link to post
Share on other sites
Earthshine

well, how does Device Manager do it? what control are they using. Use the AutoIt Info Tool to find out. I can't test. I do not have any COM ports, period. And, I don't ever want them tbh


My resources are limited. You must ask the right questions

 

Share this post


Link to post
Share on other sites
Corleone221

I want have my own GUI, there will be COMBOBOX ...is it not possible use dll to read or anything else ?

Edited by Corleone221

Share this post


Link to post
Share on other sites
Earthshine

there is a UDF someone posted on the forums here for COM port stuff.

 

the only serial ports I care about are USB

Edited by Earthshine

My resources are limited. You must ask the right questions

 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • martin
      By martin
      Although serial ports are disappearing, they can still be useful.
      Here is a COMMs UDF. It provides an easy way to use serial ports without the restrictions and problems some methods have. USB to serial is ok, binary data is ok.

      This UDF requires my comMG.dll which can be in either the script folder or the Windows folder by default, or in the path specified using the function _CommSetDllPath.

      Note the following shortcomings:

      the dll link below is 32 bit so it will not work with a 64 bit apps, but there is a 64 bit version in my post around 25th March 2018 for people to try.
      The strings and character functions are all AnsiChar.


      Functions in the UDF are

      _CommVersion
      _CommListPorts
      _CommSetPort
      _CommPortConnection
      _CommClearOutputBuffer
      _CommClearInputBuffer
      _CommGetInputcount
      _CommGetOutputcount
      _CommSendString
      _CommGetString
      _CommGetLine
      _CommReadByte
      _CommReadChar
      _CommSendByte
      _CommSendBreak; not tested!!!!!!!!!!
      _CommCloseport
      _CommSwitch
      _CommReadByteArray
      _CommSendByteArray
      _CommsetTimeouts
      _CommSetXonXoffProperties
      _CommSetRTS (NB these will not work if Hardware handshaking is selected because
      _CommSetDTR then these lines are controlled by the data being sent.)
      _CommSetDllPath
      _CommGetLineStates
      --------------------------------------------------------------------------------------------------------------------------------
      Go to Download Page For Commgv2
      Download includes the dll and udf.
      Most recent changes
      28th March 2014 - dll V2.83
      Correct error setting 6 data bits as 7.
      11th March 2014 dll V2.82
      Allow data bits of 4 to 8 instead of only 7 and 8.
      19th August 2013
      dll v2.81 removes some unwanted eroor message popups. Might not remove popups for some Windows versions.
      27th September 2012
      Correct error closing port. New version of UDF if V2.90, new dll is commg.dll V2.79. Thanks to tfabris.
      18th January 2012
      Corrected typo in UDF V 2.87, and uploaded as V2.88
      Increased max baud allowed by the dll from 200000 to 256000. New version now V2.78
      17th January 2012
      Modified thesleep addition to _CommGetLine so that reading data is not slowed down.

      14th January 2012
      Corrected _CommReadByte in UDF.
      Added sleep(20) to while loop in _CommGetLine to reduce CPU usage
      20th December 2011
      UDF version 2.86. - Changed function GetByte so it returned the error string given by the dll.
      Dll version 2.77 - removed an unwanted erro message dialogue from GetByte function. (Thanks funkey)

      4th December 2011
      New dll and example versions. Dll function SetPort corrected because it was not using the parameters passed for DTR and RTS.
      The example was setting flow control incorrectly: the settings for hardware handshaking and XON./XOFF were reversed.

      25th August 2011 corrected function _CommClosePort.

       
      Example corrected for setting parity and flow 22nd December 2013  (thanks to MichaelXMike)



      mgrefcommg CommgExample.au3
    • SAM1386
      By SAM1386
      Hello,
      I can easily find my modem comport number using the code below:-
       
      #include <FileConstants.au3> #include <MsgBoxConstants.au3> #include <WinAPIFiles.au3>    Global $key = RegRead("HKLM\HARDWARE\DEVICEMAP\SERIALCOMM","\Device\ssudmdm0000")     Local $iError = 0     If @error Then        ; The server is probably offline/port is not opened on the server.        $iError = @error         MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "Client:" & @CRLF & "Could not connect, Error code: " & $iError)         Else         MsgBox($MB_ SYSTEMMODAL, "MODEM:", $key)         EndIf  
      but the thing is I am planning to design a small tool by which it can read the modem COM port and set the COM number and send AT command to modem port using UDF CommMG.au3 created by Martin. I added some below code to martins file :-
      ;====================================================================================================================== ;CommSendStandard,a new function for sending information to a serial port. ;====================================================================================================================== Func _CommSendStandard($port,$error,$command)    _CommSetPort($port,$error,9600,8,0,1,2)  if $error <> '' Then      MsgBox(262144,'Port Error = ',$error)  EndIf  _CommSendString($command & @CR) EndFunc   ;==>_CommGetLineStates ;=============================================================================================== After adding I wrote the below code for sending AT command to modem port but its not working.
      Please check the below code and let me know for the issue.
      ;===================================================================================== #include "C:\Program Files (x86)\AutoIt3\SciTE\CommMG.au3" #include <FileConstants.au3> #include <MsgBoxConstants.au3> #include <WinAPIFiles.au3>    Global $key = RegRead("HKLM\HARDWARE\DEVICEMAP\SERIALCOMM","\Device\ssudmdm0000")     Local $iError = 0     If @error Then        ; The server is probably offline/port is not opened on the server.        $iError = @error         MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "Client:" & @CRLF & "Could not connect, Error code: " & $iError)         Else         MsgBox($MB_SYSTEMMODAL, "MODEM:", $key)         EndIf Local $port=$key Local $porterror _CommSendStandard($port,$portError,"AT+CFUN=1,1") ;================================================================================================ but If I set the port number by my own in the code (for eg :- port number 8 or any value  instead of $key) it works fine and the modem gets reset.I want to know if there is any way to get the port number to a variable $port and discarding so that my above code works fine...In that case user donot have to take care of entering the port manually everytime and the script will automatically read the port number and set itself.
       
      Please help
       
      Regards,
      SAM
       
       
    • mikkokh
      By mikkokh
      Hi.
       
      I have several different devices connected to my desktop PC with USB COM adapters.
       
      Sometimes there is some error that will cut my USB COM device communication (usualy caused by lose USB connector)... After reconnecting that USB COM adapter, by some reason, Windows will give it different COM port number.
      I know there are some devices with integrated COM port circuit and they are used by client programs that can found them and only them by some USB hardware relate details and then use their COM port to communicate with correct COM device.
      It would be better to define some known and static hardware related string from device managers USB COM adapter details to my script config file, than always redefine different COM port to it.
       
      How can I do this trick with autoit?
       
      I communicate COM devices with cfxUDF.au3 AutoIt UDF.
    • grashopper
      By grashopper
      I have written an AutoIt program that communicates with a RFXCOM transciever to control my home. This program runs 24/7 and occasionally I get the following message in a modal window:
      AutoIt Error
      Line 6102 (File "C:\homecontrol\HC.exe"):
      Error: Missing right bracket ')' in expression.
      OK button.
      My program waits for an operator input. So I have lost control and I am not able to terminate the program and start it again. Since my program has only a few hundred lines the error must be in one of the libraries. My questions are:
      What is causing this error?
      How can I trap this error?
      In which library is this error generated?
      This are my includes:
      #include 'C:\COMMGvv2\CommMG.au3'
      #include <GUIConstantsEx.au3>
      #include <Date.au3>
      #include <WindowsConstants.au3>
      #include <EditConstants.au3>
      #include <StaticConstants.au3>
      #include <file.au3>
      In the code I have already an error trap:
      $objErr = ObjEvent("AutoIt.Error","MyErrFunc")
    • joseLB
      By joseLB
      This topic is a complement of  therealhanuta´s >CommAPI - Serial and parallel communication with Windows API
      I think these routines are great, as they are simple to use, and use windows API with NO DLL´s.
      It is about tips in receiving binary data thru a serial port, including value 0 (=end of string**). I hope it can help someone..
      To know about the UDF to read/write serial port, please refer to the above link, with focus at post #3 and over
      First, what is a binary stream? As an example, a microcontroler (PIC) getting data thru ADC and sending the 2 adquired bytes straight thru serial, without any treatment.
      Now supose the message has: 1 letter(A-Z)  + 4 ADC values + 3 counters of anything (each one byte). Your message will arrive with 1 + 4 x 2 + 3 = 12 bytes (or as AU3 sees it,  a "string" with 12 "chars").
      $sResult = _CommAPI_ReceiveData($hFile) will have at $sResult a "string" with 12 "chars" ** besides the first one, all other chars have byte values. On them can exist even binary value 0. So, it´s vital that 0 be not interpreted as end of string by receiver (PC) now let´s separate the 1 + 4 + 3 = 8 fields field1= StringMid($sResult,1,1) ;this is just a characte rbetwen A-Z field2= ASC(StringMid($sResult,2,1)) ;LSB of the ADC value. First byte = LSBb, 2nd. byte = MSB field2= field2 + ASC(StringMid($sResult,3,1))*256 ;MSB of ADC => now field2 has LSB + MSB (betwen 0-65535) ;field3..5 are similar to field 2, just increase by one the start position in stringMid field6= ASC(StringMid($sResult,10,1)) ;now field6 a "number" betwen 0-255; ;field7-8 are similar to field 6, just increase by one the start position in stringMid ** - be carefull, as probably $sResult = _CommAPI_ReceiveData($hFile) will get just the chars avaiable at the moment of call, so a kind of test/loop will be necessary to get all them, something like
      $sResult="" DO      $sResult = $sResult  & _CommAPI_ReceiveData($hFile) UNTIL stringLentgth($sResult) >= 12 Jose
      ** thanks Martin into explaining about hex (0) to be interpreted as end-of-string and not xoff.
×