bonjour ,
je travail sur un projet de lecteur rfid sur un beaglebone black wifi le but etant de scanné une carte et d'écrire le token resultant dans une base de donnée mysql ,
pour le moment le printf affiche correctement le token dans la console tty le probléme c'est que je n'arrive pas a délcaré convenablement une chaine unsigned char je vous présente le code

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
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include "linux_nfc_api.h"
 
static nfc_tag_info_t g_TagInfo;
static nfcTagCallback_t g_TagCB;
 
 
 
/********************************** CallBack **********************************/
 
void onTagArrival(nfc_tag_info_t *pTagInfo)
{
 
	int i;
	memcpy(&g_TagInfo, pTagInfo, sizeof(nfc_tag_info_t));
 
	for(i = 0x00; i < g_TagInfo.uid_length; i++)
		{
			printf("%02X ", (unsigned char) g_TagInfo.uid[i]);
		}
	printf("\n");
	printf("TAG OK\n");
}
 
void onTagDeparture(void)
{	
}
 
 
int InitMode()
{
	int res = 0x00;
 
	g_TagCB.onTagArrival = onTagArrival;
	g_TagCB.onTagDeparture = onTagDeparture;
 
	if(0x00 == res)
	{
		res = nfcManager_doInitialize();
		if(0x00 != res)
		{
			printf("NfcService Init Failed\n");
		}
		nfcManager_registerTagCallback(&g_TagCB);
		nfcManager_enableDiscovery(DEFAULT_NFA_TECH_MASK, 0x00, 0x00, 0);
	}
 
 
	return res;
}
 
int DeinitPollMode()
{
	int res = 0x00;
 
	nfcSnep_stopServer();
 
	nfcManager_disableDiscovery();
 
	nfcSnep_deregisterClientCallback();
 
	nfcManager_deregisterTagCallback();
 
	nfcHce_deregisterHceCallback();
 
	res = nfcManager_doDeinitialize();
 
	if(0x00 != res)
	{
		printf("NFC Service Deinit Failed\n");
	}
	return res;
}
 
 
 
 int main(int argc, char ** argv)
 {
	 int res = 0x00;
 
	if(InitMode() == 0)
	{
			while(1)
			{
 
			}
	}
 
	res = DeinitPollMode();
 
	// CleanEnv();
 
	return 0;
 }
la chaine de caractere a recupérer est ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
printf("%02X ", (unsigned char) g_TagInfo.uid[i]);
donc je cherche a ecrire le contenu de g_taginfo.uid dans une bdd mysql
jai deja init ma connection sql sur une 2eme version de mon code mais je n'arrive pas a compilé.
la 2eme version du code qui n'attend plus que la requete sql:
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
115
116
117
118
#include <mysql/mysql.h>
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include "linux_nfc_api.h"
 
static nfc_tag_info_t g_TagInfo;
static nfcTagCallback_t g_TagCB;
 
static MYSQL mysql;
 
/********************************** CallBack **********************************/
 
void onTagArrival(nfc_tag_info_t *pTagInfo)
{
	int ret;
	ret = mysql_real_connect(&mysql,"localhost","root","root66","BEAGLEBONE",3306,NULL,0))
 
	if(!ret){
		printf("erreur connection");
	}
 
	int i;
	memcpy(&g_TagInfo, pTagInfo, sizeof(nfc_tag_info_t));
 
	for(i = 0x00; i < g_TagInfo.uid_length; i++)
		{
			unsigned char token = g_TagInfo.uid[i];
		}
	printf("\n");
	printf("%02X ",token)
	printf("TAG OK\n");
	if(ret){
		///requette
		/// ferme connexion
	}
}
 
void onTagDeparture(void)
{	
}
 
 
int InitMode()
{
	int res = 0x00;
 
	g_TagCB.onTagArrival = onTagArrival;
	g_TagCB.onTagDeparture = onTagDeparture;
 
	if(0x00 == res)
	{
		res = nfcManager_doInitialize();
		if(0x00 != res)
		{
			printf("NfcService Init Failed\n");
		}
		nfcManager_registerTagCallback(&g_TagCB);
		nfcManager_enableDiscovery(DEFAULT_NFA_TECH_MASK, 0x00, 0x00, 0);
	}
 
 
	return res;
}
 
int DeinitPollMode()
{
	int res = 0x00;
 
	nfcSnep_stopServer();
 
	nfcManager_disableDiscovery();
 
	nfcSnep_deregisterClientCallback();
 
	nfcManager_deregisterTagCallback();
 
	nfcHce_deregisterHceCallback();
 
	res = nfcManager_doDeinitialize();
 
	if(0x00 != res)
	{
		printf("NFC Service Deinit Failed\n");
	}
	return res;
}
 
void init_mysql_mode()
{
	//Initialisation de MySQL
      mysql_init(&mysql);
	//Options de connexion
      mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"option");
 
}
 
 
 int main(int argc, char ** argv)
 {
	 int res = 0x00;
	init_mysql_mode();
 
	if(InitMode() == 0)
	{
			while(1)
			{
 
			}
	}
 
 
	res = DeinitPollMode();
 
	// CleanEnv();
 
	return 0;
si quelqu'un peut m'aider a débloquer mon problème sa fait un moment que j'avais pas mis les main dans du c =)
merci.