Bonjour messieur dame , c'est mon premier message et je vous dis bonjour à tous.
Je suis à l'heure actuel en stage jusque fin septembre .

Je fais un master handi nouvelle technologie
( il faut comprendre de la nouvelle technologie au service des personnes handicapées en fait)

Le but de mon travail faire deux programmes en C++ sous environnement VS2005.

un programme pour diriger un bras robot sur une base mobile
( base comportant un pc windows portable)
un autre programme sur un pocket pc ( programmation windows mobile)

La communication se fait par liaison bluetooth

vous vous doutez bien que si je vous ecris c'est que pour le moment je n'ai ni votre connaissance, ni la solution à mon probleme

le programme conçu pour recevoir les infos sur la base mobile est un pc portable windows qui m'affirme que tout mes ports sont invalides ...(this port is unvaluable)

Le port de transit est censer etre le port com4(port bluetooth).

La ligne suivante: T_COM2->WriteOnCom("$");

a pour but de renvoyer un flag pour ré-autoriser l'envoye d'un nouvel ordre depuis le pocket pc.

En effet si on envoye un deuxieme ordre avant la fin de l'execution du premier le bras plante .

C'est la premiere fois que je poste sur ce type de forum j'espere que mon poste n'est pas encore trop "lourd"

Je suis à l'attente de vos conseils et je vous remercie de m'avoir lu , toutes vos observation seront bonnes à prendre à mes yeux .

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
HINSTANCE hInstance2=NULL;
Communication* T_COM=NULL;//COM_read=NULL;
Communication* T_COM2=NULL;//COM_write=NULL;
unsigned char** Data=NULL;
wchar_t* port=NULL;
wchar_t* DataToPrint=NULL;
DWORD dwIndex; 
 
 
 LPMEASUREITEMSTRUCT lpmis; 
    LPDRAWITEMSTRUCT lpdis; 
    TEXTMETRIC tm; 
    HDC hdc; 
    int x; 
    int y;
	HRESULT hr;
	size_t * pcch; 
 
 
 
int i=0,j=0;
int nbTag=0;
	switch (message)
	{
	case WM_COMMAND:
		wmId    = LOWORD(wParam);
		wmEvent = HIWORD(wParam);
		// Parse the menu selections:
		if (wParam == 524288){// || wParam==262144){
			initcb(hWnd);
		}
 
		switch (wmId)
		{
		case IDM_ABOUT:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
			break;
 
 
		case IDM_NEW:	
			lsthWnd = CreateWindowEx(WS_EX_CLIENTEDGE, L"LISTBOX", L"Treeview", WS_VISIBLE|WS_CHILD|LBS_SORT|LBS_NOTIFY|\
			WS_HSCROLL|WS_VSCROLL, 10, 10, 750, 500, hWnd, NULL, hInst, NULL);
				CB = CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, L"COMBOBOX", L"", WS_VISIBLE|WS_CHILD|CBS_AUTOHSCROLL|\
            CBS_DISABLENOSCROLL|CBS_HASSTRINGS|CBS_SORT|CBS_DROPDOWN, 760, 10 , 150, 200, hWnd, NULL,
            hInst, NULL);
 
			if (lsthWnd == NULL || CB == NULL)
			{
 
				MessageBox(hWnd, L"Erreur lors de la création de la ListBox.", L"Erreur", MB_OK);
				return 0;
 
			}
			UpdateWindow(hWnd);
			SendMessage(CB, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)L"COM1");
			 SendMessage(CB, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)L"COM2");
			 SendMessage(CB, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)L"COM3");
			 SendMessage(CB, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)L"COM4");
			 SendMessage(CB, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)L"COM5");
			 SendMessage(CB, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)L"COM6");
			 SendMessage(CB, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)L"COM7");
			 SendMessage(CB, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)L"COM8");
			 SendMessage(CB, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)L"COM9");
			 // Sélectionne le premier par défaut
			 SendMessage(CB, CB_SETCURSEL, (WPARAM)0, 0);
			 UpdateWindow(CB);
 
		break;
 
 
 
		case IDM_EXIT:
			DestroyWindow(hWnd);
			break;
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
		}
		break;
 
	case WM_SNIF:
			port=(wchar_t*)wParam;
			T_COM=new Communication( _T("COM4"),READ);//avant GENERIC_READ
			T_COM2=new Communication( _T("COM4"),WRITE);//avant GENERIC_WRITE
			T_COM2->initCOMConnection();//ajout
			T_COM->initCOMConnection();//ajout
			if(T_COM->GetCOMStatut()!=MS_CTS_ON)
				if(T_COM->initCOMConnection()!=0)//!=NULL marche pas non plus.
				{
					MessageBox(hWnd,L"This Port is unavailable",L"reading error",0);//le pb acteul c'est
					break;//que je passe systematiquement dans cette boucle
				}
			while(1){
				if(i==100){
				Data=(unsigned char**)realloc(Data,sizeof(unsigned char[5])*nbTag+1);
					for(j=0;j<5;i++){
					Data[j]=NULL;
						if(T_COM->ReadOnCom(Data[j])==0){
						nbTag++;
						}
					}
				}
				else{
					i++;
				}
				T_COM2->WriteOnCom("$");	
			}
 
	break;