Accueil > Forum > > > > DataReceived l'interuption ne fonctionne pas: Besoin d'aide
DataReceived l'interuption ne fonctionne pas: Besoin d'aide
dimanche 16 novembre 2008 à 12:56:05 |
DataReceived l'interuption ne fonctionne pas: Besoin d'aide

Aselophe
|
Bonjour a tous J'ai un petit probleme avec la fonction DataReceived. Interuption a la reception d'un byte ne fonctionne pas. J'ai pourtant cherché sur plusieur site et livre mes j'ai rien trouvé. J'ai un pic qui m'envoye un byte sur le port COM RS232. Si je met "instance.ReadByte" dans un timer ceci fonctionne correctement. Mes si je prend la fonction interuption port com "PrivateSub RS232_DataReceived(ByVal sender AsObject, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceived"
Le programme ne vas pas dans interuption.
Programme fait sur "Microsoft Visual Basic 2008 Expresse"
Je souhaiterai SVP vottre aide si vous trouvé mon erreur.
Merci de vottre aide !
Telecharger mon Programme sur : [ Lien ]
Ou voici mon code:
Imports System.IO.PortsPublic Class Form Dim instance AsNew SerialPort PrivateSub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load instance.Open() EndSubPrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Quitter.Click instance.Close() Close() EndSubPrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click instance.Write(TextBox1.Text) EndSubPrivateSub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick EndSubPrivateSub RS232_DataReceived(ByVal sender AsObject, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceived Label1.Text = Convert.ToChar(instance.ReadByte) Label2.Text = ( "Interupte en fonction") EndSub End Class
|
|
dimanche 16 novembre 2008 à 13:05:25 |
Re : DataReceived l'interuption ne fonctionne pas: Besoin d'aide

casy
|
Pourquoi poster sous VB6, puisque tu es en VB2008 ???? Si j'en crois ton code, ton objet RS232 s'appelle Instance (pas futé comme nom, mais c'est pas le sujet) Ton évènement DataReceived ne peut pas se déclenché puisqu'il n'est pas branché sur ton objet Instance. Il est branché sur un autre objet qui s'appelle RS232 : ... HandlesRS232.DataReceived ---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE # [ Lien ]
|
|
dimanche 16 novembre 2008 à 13:09:03 |
Re : DataReceived l'interuption ne fonctionne pas: Besoin d'aide

casy
|
Oupps, ripage de bouton dsl Donc pour continuer, si je comprend bien tu as un objet RS232 sur ton écran je présume connecté à un port série sur lequel tu as un évènement DataReceive. Mais dans ton code, tu déclare un second objet, Instance en l'occurrence, branché lui aussi sur un port série je présume, sauf que dans le code que tu nous montre il n'est même pas configuré. A mon avis je pense que tu te mélance les pinceaux et que l'objet Instance n'a pas lieu d'être, il faut que tu travaille sur l'objet RS232 ---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE # [ Lien ]
|
|
dimanche 16 novembre 2008 à 13:26:39 |
Re : DataReceived l'interuption ne fonctionne pas: Besoin d'aide

Aselophe
|
J'ai mis sur VB6 Car il y avait pas pour VB2008
Je suis debutant sur Visual basic ses bien possible que je me mélange les pinceaux . Je suis desoler pour les nom que j'ai copier collé sur l'aide de l'aide microsoft .
Mes si j'ai bien compris l'erreur se touve a cette ligne.
PrivateSub RS232_DataReceived(ByVal sender AsObject, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceived
je les modifié comme suite
PrivateSub instance_DataReceived(ByVal sender AsObject, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceived
Mes cela ne marche pas.
Si cela ne te derange pas je voudrai savoir si tu pourrai m'aidé un peut plus.
Merci encore pour ton aide.
|
|
dimanche 16 novembre 2008 à 13:46:29 |
Re : DataReceived l'interuption ne fonctionne pas: Besoin d'aide

Aselophe
|
Merci pour ton aide j'ai reussi a faire fonctionner interuption
Mes reste que j'ai un souci maintenent pour afficher ma valeur sur le Label1.Text & Label2.Text
Pour vous je pense que l'erreur se voit a vus d'oeil mes moi je patoge dans une flaque
Code:
Imports System.IO.Ports Public Class Form Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase .LoadRS232.Open() End Sub Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Quitter.ClickRS232.Close() Close() End Sub Private Sub Button2_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickRS232.Write(TextBox1.Text) End Sub Private Sub RS232_DataReceived( ByVal sender As Object , ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceivedLabel2.Text = ( "Interupte en fonction" )Label1.Text = Convert.ToChar(RS232.ReadByte) End SubEnd Class
|
|
dimanche 16 novembre 2008 à 14:37:51 |
Re : DataReceived l'interuption ne fonctionne pas: Besoin d'aide

casy
|
Ceratinement que tu dois avoir un message d'erreur sur une histoire de thread. Je vais essayer de faire simple. La fonction DataReceive ne s'execute pas, en réalité dans le processus principal de ton logiciel, celui de ton écran, en fait elle s'execute dans son propre processus indépendant. Elle ne peut donc pas ainsi acceder directement aux objets du processus principal, notamment les controles de ton écran. Il faut mettre en place un mécanisme appelé délégué (delegate en anglais) pour que ta fonction marche. En gros, ta fonction DataReceive va appeler par un mécanisme particulier, une seconde fonction en lui passant les données, et cette seconde fonction qui va se charger de faire la mise à jour des labels. Ca va doner le code suivant :  Imports System.IO.Ports Public Class Form
Private Delegate Sub _Affiche_reception(ByVal donnee As String)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load RS232.Open() End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Quitter.Click RS232.Close() Close() End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click RS232.Write(TextBox1.Text) End Sub
Private Sub RS232_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles RS232.DataReceived Me.Invoke(New _Affiche_reception(AddressOf Affiche_reception), RS232.ReadExisting) End Sub
Private Sub Affiche_reception(ByVal donnee As String) Label1.Text = "Interuption en fonction" Label2.Text = donnee 'On affiche les données à l'écran End Sub
End Class
 JE t'invite à regarder cette source, qui est une initiation à l'utilisation du port série avec .Net --> http://www.vbfrance.com/codes/UTILISATION-PORT-COM-VS2005_42181.aspx ---- Sevyc64 (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE # [ Lien ]
|
|
dimanche 16 novembre 2008 à 14:42:47 |
Re : DataReceived l'interuption ne fonctionne pas: Besoin d'aide

Aselophe
|
Un grand Merci a toi , Tu est genial  J'aurai pue encore cherche longtemp . Ceci fonctionne super bien . et ca me fait comprendre ces fonction de base que je connaissé pas. Merci et bonne journée a toi
|
|
mardi 24 février 2009 à 18:59:36 |
Re : DataReceived l'interuption ne fonctionne pas: Besoin d'aide

taouale2
|
Bonsoir,
Merci Casy pour cette aide, je tournais un peu en rond aussi à cause de ces histoires de thread. J'aurais voulu esquiver ce concept, mais je commence à voir le bien fondé de la méthode donc je vais m'y mettre finalement. Pour info, j'ai lu sur un autre post (en C#) que la méthode invoke est très pratique pour des cas simples, mais a ses limites (bloquage du thread le temps de l'exécution, et ne permet pas de retourner de valeur). Le concept asynchrone (begininvoke ...) est plus performant.
Bonne soirée et merci encore
|
|
lundi 14 mars 2011 à 11:26:38 |
Re : DataReceived l'interuption ne fonctionne pas: Besoin d'aide

foufate
|
Avec les délégués sa marche de merveille
|
|
Cette discussion est classée dans : system, instance, rs232, datareceived, byval
Répondre à ce message
Sujets en rapport avec ce message
[Catégorie modifiée VB6 --> .Net] envoi d'un fichier par RS232 [ par wajdibh ]
bjr à tous, svp j'ai besoin de votre aide pour achevé mon mini projet,(VB.NET). le projet consiste a envoyer un fichier soit .txt ou excel qui contien
On y est presque! [ par aldrac ]
Re-bonjour a tous, et oui on y est presque parce que après pas mal de recherche j'ai trouver presque ce qu'il me faut !! Je voudrais que ce petit bout
Comment imprimer tout le contenu d'un datagridview ? [ par olman50 ]
Bonjour, je souhaiterais imprimer tout le contenu de mon datagridview mais je n'arrive qu'à imprimer la partie visible de ce datagridview. Après plu
Notification et Win32_ProcessStopTrace [ par JiP85 ]
Bonjour, J'utilise VB2005 avec le Framework2 et je n'arrive pas à faire fonctionner la notification de fin de process avec WMI. Quelque soit l'évèneme
mciSendString [ par paillekane ]
Bonjour à tous. Je cherche à developper une application permettant d'enregistrer le son de mon PC (OS : Windows 7) J'ai quelques soucis avec la bibl
utilisation de la fonction drag and drop [ par bahharkarim ]
bonjour j'utilise 4 label 1;2;4;5 dans vb 2008[^^sad1] et je le drag and drop de label1 vers label3 et label2 vers label5 mais il ne fonctionne pas c
echec d'envoi de mail systématique [ par Ant95 ]
Bonjour, Depuis ce soir je n'arrive plus à envoyer de mail via mon application VB.Net. Le message d'erreur retourné est le suivant : [quote]Le serve
drag and drop de plusieurs labels [ par bahharkarim ]
bonjour a tout le monde j'ai créer une application ou il y a 6 labels et j'utilise la fonction drag and drop le problème c'est que lors le contenu d
Structure du code MVC [ par witschi ]
Bonjour à tous, J'ai une petite question concernant la structure de mon code. Alors voilà, mon code est structurée en MVC et j'aimerais connaître votr
Pb Listbox [ par alexsupertramp ]
Bonjour, Je fais un programme sur les options. J'ai deux listbox. La première affiche une liste d'indices boursiers. Après le choix d'un indice, la s
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|