Olen tekemässä VB:llä (VB 6.5) ohjelmaa jolla otetaan telnet yhteys laiteeseen johon annetaan komentoja ,nyt kun olen saanut yhteyden niin ongelmana on seuraavaa:
-ohjelman komennot menevät telnet linjalla vasta sitten kun ohjelma on sammutettu
Tässä mallia ohjelmasta missä yhteys ja annetaan komento :
Public Sub CommandButton1_Click()
On Error GoTo ErrorHandler
Const NEVER_TIME_OUT = 1
Dim BS As String ' Chr(rcBS) = Chr(8) = Control-H
Dim CR As String ' Chr(rcCR) = Chr(13) = Control-M
Dim ESC As String ' Chr(rcESC) = Chr(27) = Control-[
BS = Chr(Reflection2.ControlCodes.rcBS)
CR = Chr(Reflection2.ControlCodes.rcCR)
ESC = Chr(Reflection2.ControlCodes.rcESC)
With Session
Transmit "XDDF" & CR ' annetaan komento
.StatusBar = "Waiting for Prompt:
-ohjelman komennot menevät telnet linjalla vasta sitten kun ohjelma on sammutettu
Tässä mallia ohjelmasta missä yhteys ja annetaan komento :
Public Sub CommandButton1_Click()
On Error GoTo ErrorHandler
Const NEVER_TIME_OUT = 1
Dim BS As String ' Chr(rcBS) = Chr(8) = Control-H
Dim CR As String ' Chr(rcCR) = Chr(13) = Control-M
Dim ESC As String ' Chr(rcESC) = Chr(27) = Control-[
BS = Chr(Reflection2.ControlCodes.rcBS)
CR = Chr(Reflection2.ControlCodes.rcCR)
ESC = Chr(Reflection2.ControlCodes.rcESC)
With Session
Transmit "XDDF" & CR ' annetaan komento
.StatusBar = "Waiting for Prompt:
Vastaukset 3
Vanhimmat
niin kuulostaa hieman siltä, että merkkejä ei koskaan flushata puskurista ulos.
Tuolla näyttäis olevan malliesimerkki VB ja telnet
http://www.jscape.com/articles/telnet_using_vb.html
Moi! sainkin yhteyden toimimaan mutta edelleen minulla on sama ongelma etten saa komennon jälkeistä dataa tallennettua muuttujaan. Olisi tarkoistus että ohjelma antaa komennon ja vaste luetaan tallennetaan muuttujaan jota voidaa käyttää hyväksi ohjelman muussa osassa.
Tässä nyt ohjelma pätkää , tässä vaiheessa on yhteys jo olemassa ja komento lähettetään koneelle:
P
rivate Sub CommandButton1_Click()
UserForm1.Hide
yhteys
UserForm1.Show
End Sub
Public Sub yhteys()
Const NEVER_TIME_OUT = 0
Dim BS As String ' Chr(rcBS) = Chr(8) = Control-H
Dim CR As String ' Chr(rcCR) = Chr(13) = Control-M
BS = Chr(Reflection2.ControlCodes.rcBS)
CR = Chr(Reflection2.ControlCodes.rcCR)
With session
Transmit "XDS;" & CR
' TÄSSÄ VAIHEESSA PITÄISI TULEVAA DATAA LUKUE JA TALLENTAA MUUTTUJAAN
.StatusBar = "Waiting for Prompt: $"
.WaitForString BS & " ", NEVER_TIME_OUT, rcAllowKeystrokes
.StatusBar = ""
End With
End Sub
Kun tajusin katsoa Reflectionin puolelta asiaa niin ongelmaan löytyikin ratkaisu , nyt ohjelma toimii ja se lukee laitteen antaman vasteen:
Public Sub CommandButton1_Click()
UserForm1.hide
yhteys
UserForm1.Show
End Sub
Public Sub yhteys()
Const NEVER_TIME_OUT = 0
Dim BS As String
Dim CR As String
BS = Chr(Reflection2.ControlCodes.rcBS)
CR = Chr(Reflection2.ControlCodes.rcCR)
With Session
Transmit "XDS;" & CR
Dim instance As Reflection2.Session
Dim returnValue() As String
.WaitForString "PHYS"
returnValue2 = .ReadLine
.StatusBar = ""
MsgBox (returnValue2)
End With
End Sub