begin process at 2012 02 13 18:12:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Réseaux & Internet

 > 

Protocoles

 > 

Thread et PortSerie


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Thread et PortSerie

jeudi 22 novembre 2007 à 12:53:10 | Thread et PortSerie

DarkMickael

Bonjours, j'aimerai etre un peu éclairé par ce probleme, je m'explique j'ai une connection en port serie de PC a Pocket PC l'ors de l'envoi d'information sur le PocketPC j'ai une erreur comme ceci :


Control.Invoke doit être utilisé pour permettre l'interaction avec des contrôles créés dans un autre thread.


ceci ce produisé aussi qunad je fesait du PocketPC au PC mais j'ai reussi a la contourné via une fonction "BarBar"


 Control.CheckForIllegalCrossThreadCalls = False


Mais je ne peut l'utilisé cette fonction sous le mobile... Merci d'avance pour votre aide,

PS : Juste la partie du de reception de donné sur le PocketPC :

    Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
        System.Threading.Thread.CurrentThread.Name = 1
        txtReception.Text = SerialPort1.ReadLine
    End Sub


jeudi 22 novembre 2007 à 13:10:09 | Re : Thread et PortSerie

pneau

Membre Club
salut
pourquoi n'utilises tu pas ActiveSync pour gérer tes communications entre le PC et le Pocket PC ?


Pat

 Don't Worry , Be Happy
jeudi 22 novembre 2007 à 13:14:39 | Re : Thread et PortSerie

DarkMickael

Car je shouaiterai faire une application independante de Microsoft ActiveSync, Remarque tu pourrait me donné plus d'info sur la communication entre ActiveSync et le PocketPC ? sa peut m'etre toujours utile un jours
jeudi 22 novembre 2007 à 13:42:26 | Re : Thread et PortSerie

pneau

Membre Club
oui, moi aussi, je voulais faire cela mais le probleme c'est que pour gérer un périph connecté sur USB ou Réseau, tu fais comment ? perso je n'ai pas trouvé... je n'ai peut etre pas bien cherché. Bref, pour des soucis de délais de réalisation, je me suis retranché sur ActiveSync.

donc, j'ai utilisé les fonctions de la dll RAPI. ci dessous les déclarations des api utilisées.


[

StructLayout(LayoutKind.Explicit)]

structRAPIINIT

{

[

FieldOffset(0)]

publicint cbSize;

[

FieldOffset(4)]

publicIntPtr heRapiInit;

[

FieldOffset(8)]

publicint hrRapiInit;

};

[

StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]

structCE_FIND_DATA

{

publicint dwFileAttributes;

publicint ftCreationTime_LowDateTime;

publicint ftCreationTime_HighDateTime;

publicint ftLastAccessTime_LowDateTime;

publicint ftLastAccessTime_HighDateTime;

publicint ftLastWriteTime_LowDateTime;

publicint ftLastWriteTime_HighDateTime;

publicint nFileSizeHigh;

publicint nFileSizeLow;

publicint dwReserved0;

[

MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]

publicstring cFileName;

};

[

DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]

privatestaticexternInt32 WaitForSingleObject (IntPtr hHandle,Int32 dwMilliseconds);

[

DllImport("rapi.dll", SetLastError = true)]

privatestaticexternint CeRapiInitEx (refRAPIINIT pRapiInit);

[

DllImport("rapi.dll", SetLastError = true)]

privatestaticexternint CeRapiUninit();

[

DllImport("rapi.dll", SetLastError = true,CharSet=CharSet.Unicode)]

privatestaticexternint CeFindFirstFile(string lpFileName,refCE_FIND_DATA lpFindFileData);

[

DllImport("rapi.dll", SetLastError = true, CharSet = CharSet.Unicode)]

privatestaticexternint CeFindNextFile(int handle, refCE_FIND_DATA lpFindFileData);

[

DllImport("rapi.dll")]

privatestaticexternbool CeFindClose(int handle);

[

DllImport("rapi.dll", SetLastError = true, CharSet = CharSet.Unicode)]

privatestaticexternint CeCopyFile(string lpExistingFileName,string lpNewFileName,bool bFailIfExists);

[

DllImport("rapi.dll", SetLastError = true, CharSet=CharSet.Unicode)]

privatestaticexternbool CeDeleteFile(string lpFileName);

[

DllImport("rapi.dll", SetLastError = true)]

privatestaticexternint CeRapiGetError();

[

DllImport("rapi.dll", SetLastError = true)]

privatestaticexternint CeGetLastError();

[

DllImport("rapi.dll", CharSet=CharSet.Unicode)]

privatestaticexternint CeCreateFile(

string lpFileName,

uint dwDesiredAccess,

int dwShareMode,

int lpSecurityAttributes,

int dwCreationDisposition,

int dwFlagsAndAttributes,

int hTemplateFile);

[

DllImport("rapi.dll", CharSet = CharSet.Unicode)]

privatestaticexternint CeReadFile(

int hFile,

byte[] lpBuffer,

int nNumberOfbytesToRead,

outint lpNumberOfbytesRead,

int lpOverlapped);

[

DllImport("rapi.dll")]

privatestaticexternuint CeGetFileSize(int hFile,refuint lpFileSizeHigh);

[

DllImport("rapi.dll")]

privatestaticexternint CeCloseHandle(int hFile);

[

DllImport("rapi.dll", CharSet = CharSet.Unicode)]

privatestaticexternuint CeRegOpenKeyEx(

uint HKEY,

string lpSubKey,

int ulOptions,

uint samDesired,

outuint phkResult);

[

DllImport("rapi.dll", CharSet = CharSet.Unicode)]

privatestaticexternint CeRegCreateKeyEx(

uint hKey,

string lpKeyName,

int lpReserved,

string dwType,

int dwOptions,

int samDesired,

int lpSecurityAttributes,

outuint phkResult,

outuint lpdwDisposition);

[

DllImport("rapi.dll", CharSet = CharSet.Unicode)]

privatestaticexternint CeRegSetValueEx(

uint hKey,

string lpValueName,

int lpReserved,

int dwType,

byte[] lpData,

int cbData);

 

[

DllImport("rapi.dll", CharSet = CharSet.Unicode)]

privatestaticexternuint CeRegQueryValueEx(

uint hKey,

string lpValueName,

int lpReserved,

refint lpType,

byte[] lpData,

refint lpchData);

 

[

DllImport("rapi.dll")]

privatestaticexternint CeRegCloseKey(uint hkey);
Pat

 Don't Worry , Be Happy
jeudi 22 novembre 2007 à 14:10:26 | Re : Thread et PortSerie

lesdis

Bonjour,

La récupération des données de SerialPort ne se déroule pas sur le même thread que le form, donc il n'est pas possible d'envoyer les infos en "direct". Il faut passer par un délégué qui le fera pour nous.

Petit exemple sur cette source.

Bonne Prog
jeudi 22 novembre 2007 à 14:18:29 | Re : Thread et PortSerie

DarkMickael

Merci pour l'information sur la connection avec Microsoft ActiveSync grace a la DLL RAPI; justement moi pour le transfere de donnée je l'effectue via bluetooth, j'ouvre un port com sur le PC et sur le PocketPC, puis je l'ai fait dialogué :


'Partie pour que le PC recoi l'information du PocketPC
        SerialPort1.PortName = "Com4"
        SerialPort1.BaudRate = 9600
        SerialPort1.DataBits = 8
        SerialPort1.Open()

    Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
        Control.CheckForIllegalCrossThreadCalls = False
        txtReception.Text = SerialPort1.ReadLine
    End Sub

'Partie pour que PocketPC envoi l'information au PC

  SerialPort1.PortName = "Com7"
        SerialPort1.BaudRate = 9600
        SerialPort1.DataBits = 8
        SerialPort1.Open()

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
        SerialPort1.WriteLine("Envoi De Donnée")
    End Sub

ATTENTION : Ne pas utilisé l'émulateur car il ne gere pas ce protocol faire les teste directement sur son PocketPC
jeudi 22 novembre 2007 à 14:24:22 | Re : Thread et PortSerie

DarkMickael

Merci lesdis pour ton information, mais, je l'avait deja explorer pour justement essaye de résoudre mon probleme mais cela n'as rien fait...) enfaite Invoke n'est pas disponible pour le PocketPC aurais tu sinon une autre methode ?
jeudi 22 novembre 2007 à 14:25:57 | Re : Thread et PortSerie

lesdis

Ha....

Je n'ai jamais programmer pour pocket PC, mais je vais essayer d'y jeter un coup d'oeil. Je te tiens au courant si je trouve quelque chose ^^


Bonne Prog
jeudi 22 novembre 2007 à 20:13:34 | Re : Thread et PortSerie

lermite222

Membre Club

Bonsoir à tous,

Je ne connais pas .Net, mais si je devai réaliser une tel  application en VB6 j'employerais un ActiveX.EXE qui lui peu gérer le multiThred. Je suppose que cà existe aussi en VB.2005 ?
Excusez-moi si je suis à côté de la plaque !.
A+

jeudi 22 novembre 2007 à 20:34:50 | Re : Thread et PortSerie

DarkMickael

Enfet sous VisualBasic.Net il y a une fonction deja inclue sauf je ne sait pas l'utilisé :s et je n'y arrive pas puis c'est toujours mieu que d'avoir reccour aux ActiveX, OCX...


Cette discussion est classée dans : pc, thread, pocketpc, serialport1, portserie


Répondre à ce message

Sujets en rapport avec ce message

URGENT Gestion des interface LTP et COM d un PC sous VB [ par ponch ] -quel sont les differents modes d'utilisation du port parallele sur un PC ?-Presenter succinctement le fonctionnement du port serie-VB ne possedant pa qui sait utiliser microsoft agent??? [ par sylvia ] j'utilise un controle microsoft agent, c'est un petit personnage genre merlin.'application fonctionne très bien sur mon pc mais lorsque je l'instakle Faire tourner un executable sur un autre pc [ par OCh ] J'ai un executable issu d'un programme fortran sur un pc, executable queje lance d'habitude localement sous DOS.Je souhaite maintenant pouvoir le lanc lancer un script Unix sur une station depuis VB sur un pc [ par OCh ] Quelqu'un peut-il me donner les grandes lignes de ce que je doisecrire en C sous Unix pour assurer un dialogue avec mon applicationVB sur pc? Visualiser l'écran d'un PC en réseau. [ par B.L ] Est-il possible en VB de pouvoir visualiser en temps réel l'écran d'un PC connecté en réseau sur un autre PC ?Merci. compilation [ par neness ] j'ai creer un programme qui a un moment execute un autre programme cela marche tres bien quand je l'execute sur mon pcmais j'aimerais pouvoir l'execut Conecter Un PC Portable à mon PC de bureau [ par yobogs ] Est il possible de connecter mon ordinateur portable à mon PC de bureau hors mis la solution du réseau?Ce serait pour utiliser mon graveur à partir de mettre la main sur un #@$£!! de thread... [ par Grib ] Voila, ma feuille Excel a des remote links (fonctions d'un Add-in Bloomberg) que je veux mettre a jour quand je l'ouvre, puis je veux sauver et fermer Connection entre 2 PC [ par efb ] Bonjour,je souhaite connecter 2 PC par le biais d'un cable LAPLINK. ces 2 pc sont sous NT.LE dialer PC de W95, ne fonctionne pas sous NT.Alors quoi de Objet : comment lancer le programme pendant l'inactivité du PC [ par codasa ] 1.Quel serai la commande pour faire exécuter le programme quand l'ordinateur serai plus de 15 minutes inactifExemple :a.Programme en VB charger en mém


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,874 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales