We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

MsComm Question

jtjcomp
jtjcomp asked
on
Medium Priority
569 Views
Last Modified: 2008-03-17
I'm trying to use Mscomm control in visual basic and the
problem that i am having is that the modem is not
"letting go" after i place a call.  the code is simple
i use
mscomm1.commport = 2
mscomm1.settings = "9600,n,8,1"
mscomm1.portopen = true
mscomm1.output = "ATDT 5551212" & vbcr
mscomm1.portopen = false

...
This works fine for the first call however when i try to
make another call "even after shutting down the program"
it just runs through the code and does not dial.  
So i go into my terminal program "Telemate" and when i start
that program i can see strings of garbage coming from my modem
until the program initializes it.

So i'm missing a command let me know if anyone knows which one
it is.
Comment
Watch Question

Commented:
Unlock this solution with a free trial preview.
(No credit card required)
Get Preview

Author

Commented:
I have tried that and it did not work, however i did not wait to close the port. but since i issued the hang up command shouldn't it have hung up regardless of the port status.
thanks in advance..

Commented:
jtjcomp,
This is some woring code.
You can see if it works for you. You need to pass the number to the routine.
Regards
Dalin

Private Sub Dial(Number$)
    Dim DialString$, FromModem$
    Dim StopString As String
    Dim Delay As Double

    '--- AT is the Hayes compatible ATTENTION command an is required to send commands to the modem.
    '--- DT means "Dial Tone" - The Dial command, using touch tones as opposed to pulse (DP = Dial Pulse)
    '--- PhoneNumbers$(Index) is the phone number of the person you're dialing
    '--- A semicolon tells the modem to return to command mode after dialing (important)
    '--- A Carriage return, Chr$(13), is required when sending commands to the modem.
    DialString$ = "ATX4&D2DT" + Number$ + ";" + Chr$(13)
    StopString = "ATH0" + Chr$(13)
    '-- Comm port settings
    Comm1.Settings = "300,N,8,1"
   
    '-- Open the comm port
    On Error Resume Next
    Comm1.PortOpen = True
    If Err Then
       MsgBox "COM1: not available. Change the CommPort property to another port."
       Exit Sub
    End If
   
    '-- Flush the input buffer
    Comm1.InBufferCount = 0
   
    '-- Dial the number
    Comm1.Output = DialString$
   
    '-- Wait for "OK" to come back from the modem
    Do
       DoEvents
       '-- If there is data in the buffer, then read it.
       If Comm1.InBufferCount Then
          FromModem$ = FromModem$ + Comm1.Input
          '-- Check for "OK"
          If InStr(FromModem$, "OK") Then
             '-- Notify the user to pick up the phone
             FromModem = ""
             Beep
             MsgBox "Please pick up the phone and either press Enter, or click OK"
             Exit Do
          ElseIf InStr(FromModem$, "NO DIAL TONE") Or InStr(FromModem$, "NO DIALTONE") Then
             FromModem = ""
             Beep
             MsgBox "Dialtone not detected.  Please check the telephone connection."
             CancelFlag = True
             Exit Do
          End If
       End If
       
       '-- Was Cancel pressed?
       If CancelFlag Then
          CancelFlag = False
          Exit Do
       End If
    Loop

    '-- Disconnect the modem
    Comm1.Output = StopString
   
    '-- Close the port
    Delay = Timer
    While Delay + 1 > Timer
        DoEvents
       '-- If there is data in the buffer, then read it.
       If Comm1.InBufferCount Then
          FromModem$ = FromModem$ + Comm1.Input
       End If
    Wend
    Comm1.DTREnable = False    'belts and suspenders
    Delay = Timer              'disconnect.  If StopString
    While Delay + 1 > Timer    'worked, this isn't needed.
        DoEvents
    Wend
    Comm1.DTREnable = True
    Comm1.PortOpen = False
End Sub
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a free trial preview!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.