Bonjour,
il y a qq années, je récupérais des données via une liaison série en basic.
20 OPEN "COM1:1200,N,7,2,RS,CS,DS,CD" FOR RANDOM AS #1
30 PRINT #1, "D" : REM envoi d'un caractère au multimètre
40 in$ = INPUT$(14, #1) : REM longueur de chaîne renvoyée 14 caractères
50 PRINT TIME$, in$ : REM affichage du temps et de la chaîne lue
Je récupère des données en clair, sauvegardées dans un fichier .TXT, c'est
en fait un multimètre numérique.
Je me remets à la programmation, j'ai installé VB2005 express beta 2 avec le
framework.net 2.0.
Je n'arrive pas à reproduire la même manip simplement en VB.
Je trouve bien les ports comms avec ce qui suit: (exemples MSDN)
mëme les ports USB - série sont reconnus.
For Each sp As String In My.Computer.Ports.SerialPortNames
ListBox1.Items.Add(sp)
Next
J'ai essayé readstring : le prog se bloque sur la ligne "incoming =
com1.ReadString()"
J'ai essayé readChar : le prog se bloque sur la ligne "incoming =
com1.ReadChar()" au second passage de la boucle.
Le openserialport n'accepte pas plus de 4 données, je ne peux pas passer les
infos RTS CTS DSR et DCD.
Le serialport est visiblement une des nouveautées du framework 2.0, et je ne
trouve pas d'infos me sortant de cette impasse ...
(exemples modifiés de MSDN également)
Dim returnStr As String = ""
Dim incoming As String
Using com1 As IO.Ports.SerialPort = _
My.Computer.Ports.OpenSerialPort("COM1", 1200,
IO.Ports.Parity.None, 7, IO.Ports.StopBits.Two)
Dim i = 0
Do While i <> 2
i = i + 1
'com1.WriteLine("D") 'l envoi du caractère D provoque l
emission des données mesurées par l'appateil
incoming = com1.ReadChar()
If incoming Is Nothing Then
Exit Do
Else
returnStr &= incoming & vbCrLf
ListBox1.Items.Add(incoming)
End If
Loop
End Using
ListBox1.Items.Add(returnStr)
Si qqun a une idée ou une piste pour un exemple, je prends !!!
PS: premier post sur dotnet au lieu de donet.vb, sry ...
Bertrand
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Bertrand CHARLOTTIN
Je précise quand même que je dialogue avec d'autres périphériques, par ex GPS. Pour celà: serialport va très bien comme indiqué sur MSDN. mais le petit multimètre d'il y a 10 ans à 100 balles, pas moyen de lui adresser la parole.
quand j'envoie une demande d'émission de donnée ("D"), la relecture du buffet TX est à 0. - soit erreur de codage sur l'émission de la donnée - soit la donnée est bien partie. le buffer RX reste désespérément à 0, d'ou le plantage dans la tentative de lecture sans gerer d'exeptions.
une idée ?
"Bertrand CHARLOTTIN" a écrit dans le message de news: 43512b70$0$17236$
Bonjour, il y a qq années, je récupérais des données via une liaison série en basic.
20 OPEN "COM1:1200,N,7,2,RS,CS,DS,CD" FOR RANDOM AS #1 30 PRINT #1, "D" : REM envoi d'un caractère au multimètre 40 in$ = INPUT$(14, #1) : REM longueur de chaîne renvoyée 14 caractères 50 PRINT TIME$, in$ : REM affichage du temps et de la chaîne lue Je récupère des données en clair, sauvegardées dans un fichier .TXT, c'est en fait un multimètre numérique.
Je me remets à la programmation, j'ai installé VB2005 express beta 2 avec le framework.net 2.0. Je n'arrive pas à reproduire la même manip simplement en VB. Je trouve bien les ports comms avec ce qui suit: (exemples MSDN) mëme les ports USB - série sont reconnus.
For Each sp As String In My.Computer.Ports.SerialPortNames ListBox1.Items.Add(sp) Next
J'ai essayé readstring : le prog se bloque sur la ligne "incoming > com1.ReadString()" J'ai essayé readChar : le prog se bloque sur la ligne "incoming > com1.ReadChar()" au second passage de la boucle. Le openserialport n'accepte pas plus de 4 données, je ne peux pas passer les infos RTS CTS DSR et DCD.
Le serialport est visiblement une des nouveautées du framework 2.0, et je ne trouve pas d'infos me sortant de cette impasse ...
(exemples modifiés de MSDN également) Dim returnStr As String = "" Dim incoming As String
Using com1 As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort("COM1", 1200, IO.Ports.Parity.None, 7, IO.Ports.StopBits.Two) Dim i = 0 Do While i <> 2 i = i + 1 'com1.WriteLine("D") 'l envoi du caractère D provoque l emission des données mesurées par l'appateil incoming = com1.ReadChar() If incoming Is Nothing Then Exit Do Else returnStr &= incoming & vbCrLf ListBox1.Items.Add(incoming) End If Loop End Using
ListBox1.Items.Add(returnStr)
Si qqun a une idée ou une piste pour un exemple, je prends !!! PS: premier post sur dotnet au lieu de donet.vb, sry ... Bertrand
Je précise quand même que je dialogue avec d'autres périphériques, par ex
GPS.
Pour celà: serialport va très bien comme indiqué sur MSDN.
mais le petit multimètre d'il y a 10 ans à 100 balles, pas moyen de lui
adresser la parole.
quand j'envoie une demande d'émission de donnée ("D"), la relecture du
buffet TX est à 0.
- soit erreur de codage sur l'émission de la donnée - soit la donnée est
bien partie.
le buffer RX reste désespérément à 0, d'ou le plantage dans la tentative de
lecture sans gerer d'exeptions.
une idée ?
"Bertrand CHARLOTTIN" <nospam@wanadoo.fr> a écrit dans le message de news:
43512b70$0$17236$8fcfb975@news.wanadoo.fr...
Bonjour,
il y a qq années, je récupérais des données via une liaison série en
basic.
20 OPEN "COM1:1200,N,7,2,RS,CS,DS,CD" FOR RANDOM AS #1
30 PRINT #1, "D" : REM envoi d'un caractère au multimètre
40 in$ = INPUT$(14, #1) : REM longueur de chaîne renvoyée 14 caractères
50 PRINT TIME$, in$ : REM affichage du temps et de la chaîne lue
Je récupère des données en clair, sauvegardées dans un fichier .TXT, c'est
en fait un multimètre numérique.
Je me remets à la programmation, j'ai installé VB2005 express beta 2 avec
le
framework.net 2.0.
Je n'arrive pas à reproduire la même manip simplement en VB.
Je trouve bien les ports comms avec ce qui suit: (exemples MSDN)
mëme les ports USB - série sont reconnus.
For Each sp As String In My.Computer.Ports.SerialPortNames
ListBox1.Items.Add(sp)
Next
J'ai essayé readstring : le prog se bloque sur la ligne "incoming > com1.ReadString()"
J'ai essayé readChar : le prog se bloque sur la ligne "incoming > com1.ReadChar()" au second passage de la boucle.
Le openserialport n'accepte pas plus de 4 données, je ne peux pas passer
les
infos RTS CTS DSR et DCD.
Le serialport est visiblement une des nouveautées du framework 2.0, et je
ne
trouve pas d'infos me sortant de cette impasse ...
(exemples modifiés de MSDN également)
Dim returnStr As String = ""
Dim incoming As String
Using com1 As IO.Ports.SerialPort = _
My.Computer.Ports.OpenSerialPort("COM1", 1200,
IO.Ports.Parity.None, 7, IO.Ports.StopBits.Two)
Dim i = 0
Do While i <> 2
i = i + 1
'com1.WriteLine("D") 'l envoi du caractère D provoque l
emission des données mesurées par l'appateil
incoming = com1.ReadChar()
If incoming Is Nothing Then
Exit Do
Else
returnStr &= incoming & vbCrLf
ListBox1.Items.Add(incoming)
End If
Loop
End Using
ListBox1.Items.Add(returnStr)
Si qqun a une idée ou une piste pour un exemple, je prends !!!
PS: premier post sur dotnet au lieu de donet.vb, sry ...
Bertrand
Je précise quand même que je dialogue avec d'autres périphériques, par ex GPS. Pour celà: serialport va très bien comme indiqué sur MSDN. mais le petit multimètre d'il y a 10 ans à 100 balles, pas moyen de lui adresser la parole.
quand j'envoie une demande d'émission de donnée ("D"), la relecture du buffet TX est à 0. - soit erreur de codage sur l'émission de la donnée - soit la donnée est bien partie. le buffer RX reste désespérément à 0, d'ou le plantage dans la tentative de lecture sans gerer d'exeptions.
une idée ?
"Bertrand CHARLOTTIN" a écrit dans le message de news: 43512b70$0$17236$
Bonjour, il y a qq années, je récupérais des données via une liaison série en basic.
20 OPEN "COM1:1200,N,7,2,RS,CS,DS,CD" FOR RANDOM AS #1 30 PRINT #1, "D" : REM envoi d'un caractère au multimètre 40 in$ = INPUT$(14, #1) : REM longueur de chaîne renvoyée 14 caractères 50 PRINT TIME$, in$ : REM affichage du temps et de la chaîne lue Je récupère des données en clair, sauvegardées dans un fichier .TXT, c'est en fait un multimètre numérique.
Je me remets à la programmation, j'ai installé VB2005 express beta 2 avec le framework.net 2.0. Je n'arrive pas à reproduire la même manip simplement en VB. Je trouve bien les ports comms avec ce qui suit: (exemples MSDN) mëme les ports USB - série sont reconnus.
For Each sp As String In My.Computer.Ports.SerialPortNames ListBox1.Items.Add(sp) Next
J'ai essayé readstring : le prog se bloque sur la ligne "incoming > com1.ReadString()" J'ai essayé readChar : le prog se bloque sur la ligne "incoming > com1.ReadChar()" au second passage de la boucle. Le openserialport n'accepte pas plus de 4 données, je ne peux pas passer les infos RTS CTS DSR et DCD.
Le serialport est visiblement une des nouveautées du framework 2.0, et je ne trouve pas d'infos me sortant de cette impasse ...
(exemples modifiés de MSDN également) Dim returnStr As String = "" Dim incoming As String
Using com1 As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort("COM1", 1200, IO.Ports.Parity.None, 7, IO.Ports.StopBits.Two) Dim i = 0 Do While i <> 2 i = i + 1 'com1.WriteLine("D") 'l envoi du caractère D provoque l emission des données mesurées par l'appateil incoming = com1.ReadChar() If incoming Is Nothing Then Exit Do Else returnStr &= incoming & vbCrLf ListBox1.Items.Add(incoming) End If Loop End Using
ListBox1.Items.Add(returnStr)
Si qqun a une idée ou une piste pour un exemple, je prends !!! PS: premier post sur dotnet au lieu de donet.vb, sry ... Bertrand
TroXsA
Bonjour
Je pense qu'avec WMI tu auras plus de chance a fait ce que tu veux ....
-- Mail : http://cerbermail.com/?rIXgaw9Xsl Site : http://planetenova.free.fr/
"Bertrand CHARLOTTIN" a écrit dans le message de news: 43512b70$0$17236$
Bonjour, il y a qq années, je récupérais des données via une liaison série en basic.
20 OPEN "COM1:1200,N,7,2,RS,CS,DS,CD" FOR RANDOM AS #1 30 PRINT #1, "D" : REM envoi d'un caractère au multimètre 40 in$ = INPUT$(14, #1) : REM longueur de chaîne renvoyée 14 caractères 50 PRINT TIME$, in$ : REM affichage du temps et de la chaîne lue Je récupère des données en clair, sauvegardées dans un fichier .TXT, c'est en fait un multimètre numérique.
Je me remets à la programmation, j'ai installé VB2005 express beta 2 avec le framework.net 2.0. Je n'arrive pas à reproduire la même manip simplement en VB. Je trouve bien les ports comms avec ce qui suit: (exemples MSDN) mëme les ports USB - série sont reconnus.
For Each sp As String In My.Computer.Ports.SerialPortNames ListBox1.Items.Add(sp) Next
J'ai essayé readstring : le prog se bloque sur la ligne "incoming > com1.ReadString()" J'ai essayé readChar : le prog se bloque sur la ligne "incoming > com1.ReadChar()" au second passage de la boucle. Le openserialport n'accepte pas plus de 4 données, je ne peux pas passer les infos RTS CTS DSR et DCD.
Le serialport est visiblement une des nouveautées du framework 2.0, et je ne trouve pas d'infos me sortant de cette impasse ...
(exemples modifiés de MSDN également) Dim returnStr As String = "" Dim incoming As String
Using com1 As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort("COM1", 1200, IO.Ports.Parity.None, 7, IO.Ports.StopBits.Two) Dim i = 0 Do While i <> 2 i = i + 1 'com1.WriteLine("D") 'l envoi du caractère D provoque l emission des données mesurées par l'appateil incoming = com1.ReadChar() If incoming Is Nothing Then Exit Do Else returnStr &= incoming & vbCrLf ListBox1.Items.Add(incoming) End If Loop End Using
ListBox1.Items.Add(returnStr)
Si qqun a une idée ou une piste pour un exemple, je prends !!! PS: premier post sur dotnet au lieu de donet.vb, sry ... Bertrand
Bonjour
Je pense qu'avec WMI tu auras plus de chance a fait ce que tu veux ....
--
Mail : http://cerbermail.com/?rIXgaw9Xsl
Site : http://planetenova.free.fr/
"Bertrand CHARLOTTIN" <nospam@wanadoo.fr> a écrit dans le message de news:
43512b70$0$17236$8fcfb975@news.wanadoo.fr...
Bonjour,
il y a qq années, je récupérais des données via une liaison série en
basic.
20 OPEN "COM1:1200,N,7,2,RS,CS,DS,CD" FOR RANDOM AS #1
30 PRINT #1, "D" : REM envoi d'un caractère au multimètre
40 in$ = INPUT$(14, #1) : REM longueur de chaîne renvoyée 14 caractères
50 PRINT TIME$, in$ : REM affichage du temps et de la chaîne lue
Je récupère des données en clair, sauvegardées dans un fichier .TXT, c'est
en fait un multimètre numérique.
Je me remets à la programmation, j'ai installé VB2005 express beta 2 avec
le
framework.net 2.0.
Je n'arrive pas à reproduire la même manip simplement en VB.
Je trouve bien les ports comms avec ce qui suit: (exemples MSDN)
mëme les ports USB - série sont reconnus.
For Each sp As String In My.Computer.Ports.SerialPortNames
ListBox1.Items.Add(sp)
Next
J'ai essayé readstring : le prog se bloque sur la ligne "incoming > com1.ReadString()"
J'ai essayé readChar : le prog se bloque sur la ligne "incoming > com1.ReadChar()" au second passage de la boucle.
Le openserialport n'accepte pas plus de 4 données, je ne peux pas passer
les
infos RTS CTS DSR et DCD.
Le serialport est visiblement une des nouveautées du framework 2.0, et je
ne
trouve pas d'infos me sortant de cette impasse ...
(exemples modifiés de MSDN également)
Dim returnStr As String = ""
Dim incoming As String
Using com1 As IO.Ports.SerialPort = _
My.Computer.Ports.OpenSerialPort("COM1", 1200,
IO.Ports.Parity.None, 7, IO.Ports.StopBits.Two)
Dim i = 0
Do While i <> 2
i = i + 1
'com1.WriteLine("D") 'l envoi du caractère D provoque l
emission des données mesurées par l'appateil
incoming = com1.ReadChar()
If incoming Is Nothing Then
Exit Do
Else
returnStr &= incoming & vbCrLf
ListBox1.Items.Add(incoming)
End If
Loop
End Using
ListBox1.Items.Add(returnStr)
Si qqun a une idée ou une piste pour un exemple, je prends !!!
PS: premier post sur dotnet au lieu de donet.vb, sry ...
Bertrand
Je pense qu'avec WMI tu auras plus de chance a fait ce que tu veux ....
-- Mail : http://cerbermail.com/?rIXgaw9Xsl Site : http://planetenova.free.fr/
"Bertrand CHARLOTTIN" a écrit dans le message de news: 43512b70$0$17236$
Bonjour, il y a qq années, je récupérais des données via une liaison série en basic.
20 OPEN "COM1:1200,N,7,2,RS,CS,DS,CD" FOR RANDOM AS #1 30 PRINT #1, "D" : REM envoi d'un caractère au multimètre 40 in$ = INPUT$(14, #1) : REM longueur de chaîne renvoyée 14 caractères 50 PRINT TIME$, in$ : REM affichage du temps et de la chaîne lue Je récupère des données en clair, sauvegardées dans un fichier .TXT, c'est en fait un multimètre numérique.
Je me remets à la programmation, j'ai installé VB2005 express beta 2 avec le framework.net 2.0. Je n'arrive pas à reproduire la même manip simplement en VB. Je trouve bien les ports comms avec ce qui suit: (exemples MSDN) mëme les ports USB - série sont reconnus.
For Each sp As String In My.Computer.Ports.SerialPortNames ListBox1.Items.Add(sp) Next
J'ai essayé readstring : le prog se bloque sur la ligne "incoming > com1.ReadString()" J'ai essayé readChar : le prog se bloque sur la ligne "incoming > com1.ReadChar()" au second passage de la boucle. Le openserialport n'accepte pas plus de 4 données, je ne peux pas passer les infos RTS CTS DSR et DCD.
Le serialport est visiblement une des nouveautées du framework 2.0, et je ne trouve pas d'infos me sortant de cette impasse ...
(exemples modifiés de MSDN également) Dim returnStr As String = "" Dim incoming As String
Using com1 As IO.Ports.SerialPort = _ My.Computer.Ports.OpenSerialPort("COM1", 1200, IO.Ports.Parity.None, 7, IO.Ports.StopBits.Two) Dim i = 0 Do While i <> 2 i = i + 1 'com1.WriteLine("D") 'l envoi du caractère D provoque l emission des données mesurées par l'appateil incoming = com1.ReadChar() If incoming Is Nothing Then Exit Do Else returnStr &= incoming & vbCrLf ListBox1.Items.Add(incoming) End If Loop End Using
ListBox1.Items.Add(returnStr)
Si qqun a une idée ou une piste pour un exemple, je prends !!! PS: premier post sur dotnet au lieu de donet.vb, sry ... Bertrand