byllu
Messages postés29Date d'inscriptionvendredi 8 mars 2013StatutMembreDernière intervention 8 mars 2013
-
16 févr. 2010 à 14:40
byllu
Messages postés29Date d'inscriptionvendredi 8 mars 2013StatutMembreDernière intervention 8 mars 2013
-
18 févr. 2010 à 09:26
bonjour,
j'ai développer une apllication en VB pour un appareil fonctionnant sous Windows CE, j'arrive bien à emmetre des trame à partir de mon appareil, mais je ne reçoi rien.
De plus aprés plusieur envoi, j'ai une erreur dans le degogueur qui apparait.
voici mon code:
Public Class Form1
Dim recoi As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
SerialPort1.Open()
SerialPort1.Write("hello world")
End Sub
Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
Dim buf(20) As Byte
SerialPort1.Read(buf, 0, buf.Length)
recoi = buf(0).ToString & buf(1).ToString & buf(2).ToString
Label1.Text = recoi
Erase buf
End Sub
End Class
et l'erreur est: Control.Invoke must be used to interact with controls created on a separate thread.
savez vous pourquoi cela ne fonctionne pas? et pourquoi aprés plusieurs envoi ou mon programme fait rien, j'ai cet erreur?
cs_lim
Messages postés329Date d'inscriptionjeudi 20 novembre 2003StatutMembreDernière intervention10 mai 20147 17 févr. 2010 à 08:53
RE
A moins qu'il ne manque un imports System. quelquechose.
Je regarde et essaye de te retrouver un exemple avec un delegué. Car la méthode qui consiste à mettre CheckForIllegalCrossThreadCalls à false n'est pas conseillée.
byllu
Messages postés29Date d'inscriptionvendredi 8 mars 2013StatutMembreDernière intervention 8 mars 2013 16 févr. 2010 à 17:46
Merci, oui vous avez été clair, mais lorque je colle cette ligne dans le form.load, j'ai une erreur qui apparait, il me dit que :Erreur Le nom 'CheckForIllegalCorssThreadCalls' n'est pas déclaré.
Je précise que je suis dans un porjet pour smart device pour windows CE.
cs_lim
Messages postés329Date d'inscriptionjeudi 20 novembre 2003StatutMembreDernière intervention10 mai 20147 17 févr. 2010 à 09:08
Re
Je ne trouve pas pour CheckForIllegalCrossThreadCalls si c'est compatible ou pas avec SmartDevice.
Pour Faire un délegué
'Une sub qui affiche du texte dans un label
Private sub AffiTexte(Byval msg as String)
label1.text=msg
end sub
'Creation du délégué (il doit avoir les mêmes paramètres que la fonction qu'il va délégué)
Delegate sub UpdateTxtDelegate(Byval msg as string)
'Creation de l'instance du délégué
Public UpdateTextInstance as UpdateTxtDelegate = New UpdateTextDelegate(Addressof AffiTexte)
'Dans ton SerialPortDataReceive tu remplaces label1.text=recoi
'On invoque le délégué pour pouvoir écrire dans le thread de la form
Me.Invoke(UpdateTextInstance, New Object() {recoi})
byllu
Messages postés29Date d'inscriptionvendredi 8 mars 2013StatutMembreDernière intervention 8 mars 2013 17 févr. 2010 à 10:45
Ca fonctionne !!!!
Merci beaucoup! j'ai eu un petit souci c'est que la m'affichait une valuer tout les 20 envoi, j'ai donc réduit la taille dem on tableau et maintenat c'est bon merci !
byllu
Messages postés29Date d'inscriptionvendredi 8 mars 2013StatutMembreDernière intervention 8 mars 2013 17 févr. 2010 à 14:42
j'ai bien analyser le probléme, lorsque j'envoi 1 trame (2bit en hexa), celà fonctionne, pour 2/3 trames etc ca fonctionne, mais des que j'envoi des données en continue, le programme n'affiche plus rien et lorsque je veux réemettre une seule trame il n'affihce plus rein, et je n'ai pas d'erreur dans le dégogueur.
byllu
Messages postés29Date d'inscriptionvendredi 8 mars 2013StatutMembreDernière intervention 8 mars 2013 17 févr. 2010 à 16:10
ce que j'appel un envoi en continue, est que mon périphérique Rs232 envoi une trame toutes les 700ms en 115200 bauds.
j'ai essayer avec le petit programme que j'ai dévellopé pour tester la RS232, ca fonctionne sans probléme aprés avoir défini que le srailport, devait scrutter la lecture toutes les 700ms.
Mais dans mon projet complet, cela ne fonctionne pas. car j'execute le programme en topmost (plein écran) et mon lorsque monsysteme sous windows CE, recoi des trames j'ai la barre de menu avec le bouton start qui apparait et mon projet plante.
cs_lim
Messages postés329Date d'inscriptionjeudi 20 novembre 2003StatutMembreDernière intervention10 mai 20147 17 févr. 2010 à 16:26
Ok,
Ta communication est seulement une lecture du port de com ou est-ce que tu envoi une demande et reçoit une réponse ?
Ton programme ne fait que çà (portcom) ou bien il fait autre chose en même temps ?
Comment as tu défini la vitesse de scrutation de ton serialport ?
As-tu tester la uniquement communication portcom sous Wince (sans tout les reste de ton projet) ? Si oui que se passe-t-il?
byllu
Messages postés29Date d'inscriptionvendredi 8 mars 2013StatutMembreDernière intervention 8 mars 2013 17 févr. 2010 à 16:38
ma communication, fonctionne de la manierre suivante:
mon porgramme envoi des trames afin de configuer un écran avec une dalle tactille (appel de boutons, définition deszones tactilee,s et l'activation de la dalle tactille)
une fois activé, la dalle envoi une trame toute les 700ms pour dire qu'elle zone est appuyer, on relacher.
c'est ces trames que je n'aarrives pas à voir, avec le petit programme, que j'ai poster sur le forum, cela fonctionne, sans probléme, grâce à votre aide.
Mais lorsque je l'intégre a mon programme complet, celà ne fonctionne pas, et c'est à ce moment là que j'ai la barre de tache avec le bouton start qui apparai.
Pour le test de la communication sous windows Ce, oui je l'ai tester avec le programme que j'ai poster sur le forum.
cs_lim
Messages postés329Date d'inscriptionjeudi 20 novembre 2003StatutMembreDernière intervention10 mai 20147 18 févr. 2010 à 08:32
Bonjour,
Pour le peu que j'ai utilisé des écrans tactiles c'est Windows et le driver qui gère l'écran et pas un programme que j'ai developpé.
Pourkoi avoir besoin de gérer un écran tactile par toi-même ?
Au niveau de Win CE : ne peut-il pas gérer l'écran tactile et toi faire juste une ihm pleine écran ?
Quel est le but rechercher avec ton programme ? Quelle est ta configuration hard et soft ?.
Désolé de ne poser plus de questions ue de réponses mais plus tu m'expliques ce que tu fais plus cela devient obscurs pour moi.