I have a struct "allmsg" and him member :
Expand|Select|Wrap|Line Numbers
- unsigned char card_number[MAX_CARD_NUMBER]; //16
And I must store contain of an __int64 into this member
Expand|Select|Wrap|Line Numbers
- __int64 temp_badge_id;
- unsigned char *ptemp_badge_id; //
So I pass value to this last :
Expand|Select|Wrap|Line Numbers
- DLL_API(long) vgt_sendto_S3100(__int64 badgeid, char* remote_host, int remote_port)
- {
- //allmsg.card_number=(unsigned char*)badgeid; //ERROR
- unsigned int crc32=0;
- temp_badge_id = badgeid; //here passing value OK
And the code above here: seems ok but the contains of allmsg.cardnumber
is not the exactly the same than the _int64
Expand|Select|Wrap|Line Numbers
- allmsg.card_number[15]=ptemp_badge_id[15]; //not good way
- allmsg.card_number[14]=ptemp_badge_id[14];
- ....
- ...
- allmsg.card_number[0]=ptemp_badge_id[0];
So maybe _int64 must be casted differently to pass in unsigned char ?
And in fact _int64 is 8 bytes and not 16 bytes where it must store?
Here above codes to check for details:
I have a struct define in S3100.h :
Expand|Select|Wrap|Line Numbers
- #define MAX_CARD_NUMBER 16
- #define MAX_PADDING 16
- #define CRC_LENGTH 36
- #define CRC_LENGTH_RETURN 16
- struct frame_message {
- unsigned int sender_id;
- ..
- unsigned char card_number[MAX_CARD_NUMBER];//crcin
- ..
- unsigned char padding_bytes[MAX_PADDING];
- }allmsg;
- ..
- unsigned char *ps_card_number;
- ..
Expand|Select|Wrap|Line Numbers
- #include "S3100.h"
- ..
- #define PACKET_LENGTH 68 //with padding bytes reserved
- #define CRC_LENGTH 36
- .........
- .........
- ////IMPLEMENTATION CRC CLASS/////
- =======================================================================================
- // Fonction: Crc32::Crc32()
- // =======================================================================================
- Crc32::Crc32()
- {
- memset( &this->crc32_table, 0, sizeof(unsigned int)*256 );
- this->polynomial = 0;
- }
- // =======================================================================================
- ........
- ........
- //VARIABLES GENERALES ////
- long error_code=0;
- bool DEBUG=true;
- bool initcrcok=false;
- unsigned int rescrc32=0;
- char msg_crc[CRC_LENGTH]; // message to send
- char message[MAX_PATH]; // message to send
- //char response[MAX_PATH]; // response to receive //090406
- char* response = (char*)malloc(1024*sizeof(char));
- int message_length=68; // length of the message to send
- int response_length=0;
- int engine_id=0;
- int analyse_id=0;
- //int remote_port=0;
- int timeout_ms=1000;
- char binary[80];
- char *glremote_ip=NULL;
- int glremote_port;
- bool init_struct=false;
- frame_message packet;
- Crc32 *pCrc32 = new Crc32();
- __int64 temp_badge_id;
- char *ptemp_badge_id; //090408 enlever le unsigned
- .......
- .......
- void init_structptr()
- {
- memset(allmsg.card_number,0,MAX_CARD_NUMBER);
- memset(allmsg.padding_bytes,0,MAX_PADDING);
- memset(message,0,MAX_PATH);
- message_length=0;
- memset(msg_crc,0,CRC_LENGTH);//crc
- memset(response,0,MAX_PATH); //090406
- psender_id = (unsigned char*)&(allmsg.sender_id);
- pencrypt_key_id = (unsigned char*)&allmsg.encrypt_key_id;
- pencrypt_size = (unsigned char*)&allmsg.encrypt_size;
- pcrc = (unsigned char*)&allmsg.crc;
- pdata_length = (unsigned char*)&allmsg.data_length;//crcin
- psequence_number = (unsigned char*)&allmsg.sequence_number;//crcin
- ppacket_type = (unsigned char*)&allmsg.packet_type;//crcin
- ps_read_number = (unsigned char*)&allmsg.read_number;//crcin
- ps_card_number = (unsigned char*)&allmsg.card_number; //crcin
- ps_pin_code = (unsigned char*)&allmsg.pin_code; //crcin
- ppadding_bytes = (unsigned char*)&allmsg.padding_bytes;
- //allmsg.sender_id=0x0a0b0c0d; //hexadecimal sur 4 bytes rmq: nous sommes en little endian
- //allmsg.sender_id=3;
- allmsg.sender_id=0;
- allmsg.encrypt_key_id=0;
- //allmsg.encrypt_size=0;
- allmsg.encrypt_size=40;
- allmsg.crc=0; //090406
- //allmsg.data_length=24; //crcin 1
- allmsg.data_length=52; //crcin 1
- //allmsg.sequence_number=12345; //crcin 2
- //allmsg.sequence_number=1; //090407 géré en mode saisie clavier
- allmsg.packet_type=1; //crcin 3
- //allmsg.read_number=2; //crcin 4 //090401
- //allmsg.read_number=1; //090407 géré en mode saisie clavier
- allmsg.pin_code=0; //crcin 6 //090404
- alreadyinit =true;
- //allmsg.card_number=0;//0904007
- ptemp_badge_id = (char*)&temp_badge_id; //090407
- }
- ......
- ......
- void write_struct(bool a)
- {
- if (a)
- {
- #ifdef _LITTLE_ENDIAN
- message[0]= psender_id[0];
- message[1]= psender_id[1];
- message[2]= psender_id[2];
- message[3]= psender_id[3];
- message[4]= pencrypt_key_id[0];
- message[5]= pencrypt_key_id[1];
- message[6]= pencrypt_key_id[2];
- message[7]= pencrypt_key_id[3];
- message[8]= pencrypt_size[0];
- message[9]= pencrypt_size[1];
- message[10]= pencrypt_size[2];
- message[11]= pencrypt_size[3];
- ///
- message[12]= pcrc[0];
- message[13]= pcrc[1];
- message[14]= pcrc[2];
- message[15]= pcrc[3];
- ///
- message[16]= pdata_length[0];
- message[17]= pdata_length[1];
- message[18]= pdata_length[2];
- message[19]= pdata_length[3];
- msg_crc[0]=pdata_length[0];///////crc 1
- msg_crc[1]=pdata_length[1];
- msg_crc[2]=pdata_length[2];
- msg_crc[3]=pdata_length[3];
- message[20]= psequence_number[0];
- message[21]= psequence_number[1];
- message[22]= psequence_number[2];
- message[23]= psequence_number[3];
- msg_crc[4]=psequence_number[0];///////crc 2
- msg_crc[5]=psequence_number[1];
- msg_crc[6]=psequence_number[2];
- msg_crc[7]=psequence_number[3];
- message[24]= ppacket_type[0];
- message[25]= ppacket_type[1];
- message[26]= ppacket_type[2];
- message[27]= ppacket_type[3];
- msg_crc[8]=ppacket_type[0];///////crc 3
- msg_crc[9]=ppacket_type[1];
- msg_crc[10]=ppacket_type[2];
- msg_crc[11]=ppacket_type[3];
- message[28]= ps_read_number[0];
- message[29]= ps_read_number[1];
- message[30]= ps_read_number[2];
- message[31]= ps_read_number[3];
- msg_crc[12]=ps_read_number[0]; ///////crc 4
- msg_crc[13]=ps_read_number[1];
- msg_crc[14]=ps_read_number[2];
- msg_crc[15]=ps_read_number[3];
- for (int i=0; i<16 ;++i )
- {
- msg_crc[16+i]=message[32+i]= ps_card_number[i]; //crc 5
- }/*
- msg_crc[16]=message[32]= ps_card_number[0]; //crc 5
- msg_crc[17]=message[33]= ps_card_number[1];
- msg_crc[18]=message[34]= ps_card_number[2];
- msg_crc[19]=message[35]= ps_card_number[3];
- msg_crc[20]=message[36]= ps_card_number[4];
- msg_crc[21]=message[37]= ps_card_number[5];
- msg_crc[22]=message[38]= ps_card_number[6];
- msg_crc[23]=message[39]= ps_card_number[7];
- msg_crc[24]=message[40]= ps_card_number[8];
- msg_crc[25]=message[41]= ps_card_number[9];
- msg_crc[26]=message[42]= ps_card_number[10];
- msg_crc[27]=message[43]= ps_card_number[11];
- msg_crc[28]=message[44]= ps_card_number[12];
- msg_crc[29]=message[45]= ps_card_number[13];
- msg_crc[30]=message[46]= ps_card_number[14];
- msg_crc[31]=message[47]= ps_card_number[15];
- */
- msg_crc[32]=message[48]= ps_pin_code[0]; //crc 6
- msg_crc[33]=message[49]= ps_pin_code[1];
- msg_crc[34]=message[50]= ps_pin_code[2];
- msg_crc[35]=message[51]= ps_pin_code[3];
- for (int i=0; i<16 ;++i )
- {
- message[52+i]= ppadding_bytes[i];
- }/*
- message[52]= ppadding_bytes[0];
- message[53]= ppadding_bytes[1];
- message[54]= ppadding_bytes[2];
- message[55]= ppadding_bytes[3];
- message[56]= ppadding_bytes[4];
- message[57]= ppadding_bytes[5];
- message[58]= ppadding_bytes[6];
- message[59]= ppadding_bytes[7];
- message[60]= ppadding_bytes[8];
- message[61]= ppadding_bytes[9];
- message[62]= ppadding_bytes[10];
- message[63]= ppadding_bytes[11];
- message[64]= ppadding_bytes[12];
- message[65]= ppadding_bytes[13];
- message[66]= ppadding_bytes[14];
- message[67]= ppadding_bytes[15];
- */
- #else
- message[0]= psender_id[3];
- message[1]= psender_id[2];
- message[2]= psender_id[1];
- message[3]= psender_id[0];
- message[4]= pencrypt_key_id[3];
- message[5]= pencrypt_key_id[2];
- message[6]= pencrypt_key_id[1];
- message[7]= pencrypt_key_id[0];
- message[8]= pencrypt_size[3];
- message[9]= pencrypt_size[2];
- message[10]= pencrypt_size[1];
- message[11]= pencrypt_size[0];
- ///
- message[12]= pcrc[3];
- message[13]= pcrc[2];
- message[14]= pcrc[1];
- message[15]= pcrc[0];
- ///
- message[16]= pdata_length[3];
- message[17]= pdata_length[2];
- message[18]= pdata_length[1];
- message[19]= pdata_length[0];
- msg_crc[0]=pdata_length[3];///////crc 1
- msg_crc[1]=pdata_length[2];
- msg_crc[2]=pdata_length[1];
- msg_crc[3]=pdata_length[0];
- //printf("\nblabla Big_endian\n");
- message[20]= psequence_number[3];
- message[21]= psequence_number[2];
- message[22]= psequence_number[1];
- message[23]= psequence_number[0];
- msg_crc[4]=psequence_number[3];///////crc 2
- msg_crc[5]=psequence_number[2];
- msg_crc[6]=psequence_number[1];
- msg_crc[7]=psequence_number[0];
- message[24]= ppacket_type[3];
- message[25]= ppacket_type[2];
- message[26]= ppacket_type[1];
- message[27]= ppacket_type[0];
- msg_crc[8]=ppacket_type[3];///////crc 3
- msg_crc[9]=ppacket_type[2];
- msg_crc[10]=ppacket_type[1];
- msg_crc[11]=ppacket_type[0];
- message[28]= ps_read_number[3];
- message[29]= ps_read_number[2];
- message[30]= ps_read_number[1];
- message[31]= ps_read_number[0];
- msg_crc[12]=ps_read_number[3]; ///////crc 4
- msg_crc[13]=ps_read_number[2];
- msg_crc[14]=ps_read_number[1];
- msg_crc[15]=ps_read_number[0];
- message[32]= ps_card_number[15];
- message[33]= ps_card_number[14];
- message[34]= ps_card_number[13];
- message[35]= ps_card_number[12];
- message[36]= ps_card_number[11];
- message[37]= ps_card_number[10];
- message[38]= ps_card_number[9];
- message[39]= ps_card_number[8];
- message[40]= ps_card_number[7];
- message[41]= ps_card_number[6];
- message[42]= ps_card_number[5];
- message[43]= ps_card_number[4];
- message[44]= ps_card_number[3];
- message[45]= ps_card_number[2];
- message[46]= ps_card_number[1];
- message[47]= ps_card_number[0];
- msg_crc[16]= ps_card_number[15]; //crc 5
- msg_crc[17]= ps_card_number[14];
- msg_crc[18]= ps_card_number[13];
- msg_crc[19]= ps_card_number[12];
- msg_crc[20]= ps_card_number[11];
- msg_crc[21]= ps_card_number[10];
- msg_crc[22]= ps_card_number[9];
- msg_crc[23]= ps_card_number[8];
- msg_crc[24]= ps_card_number[7];
- msg_crc[25]= ps_card_number[6];
- msg_crc[26]= ps_card_number[5];
- msg_crc[27]= ps_card_number[4];
- msg_crc[28]= ps_card_number[3];
- msg_crc[29]= ps_card_number[2];
- msg_crc[30]= ps_card_number[1];
- msg_crc[31]= ps_card_number[0];
- message[48]= ps_pin_code[3];
- message[49]= ps_pin_code[2];
- message[50]= ps_pin_code[1];
- message[51]= ps_pin_code[0];
- msg_crc[32]=ps_pin_code[3]; //crc 6
- msg_crc[33]=ps_pin_code[2];
- msg_crc[34]=ps_pin_code[1];
- msg_crc[35]=ps_pin_code[0];
- message[52]= ppadding_bytes[15];
- message[53]= ppadding_bytes[14];
- message[54]= ppadding_bytes[13];
- message[55]= ppadding_bytes[12];
- message[56]= ppadding_bytes[11];
- message[57]= ppadding_bytes[10];
- message[58]= ppadding_bytes[9];
- message[59]= ppadding_bytes[8];
- message[60]= ppadding_bytes[7];
- message[61]= ppadding_bytes[6];
- message[62]= ppadding_bytes[5];
- message[63]= ppadding_bytes[4];
- message[64]= ppadding_bytes[3];
- message[65]= ppadding_bytes[2];
- message[66]= ppadding_bytes[1];
- message[67]= ppadding_bytes[0];
- #endif
- } // if(a)
- else
- {
- #ifdef _LITTLE_ENDIAN
- message[12]= pcrc[0];
- message[13]= pcrc[1];
- message[14]= pcrc[2];
- message[15]= pcrc[3];
- message[32]= ps_card_number[0];
- message[33]= ps_card_number[1];
- message[34]= ps_card_number[2];
- message[35]= ps_card_number[3];
- message[36]= ps_card_number[4];
- message[37]= ps_card_number[5];
- message[38]= ps_card_number[6];
- message[39]= ps_card_number[7];
- message[40]= ps_card_number[8];
- message[41]= ps_card_number[9];
- message[42]= ps_card_number[10];
- message[43]= ps_card_number[11];
- message[44]= ps_card_number[12];
- message[45]= ps_card_number[13];
- message[46]= ps_card_number[14];
- message[47]= ps_card_number[15];
- #else
- message[32]= ps_card_number[15];
- message[33]= ps_card_number[14];
- message[34]= ps_card_number[13];
- message[35]= ps_card_number[12];
- message[36]= ps_card_number[11];
- message[37]= ps_card_number[10];
- message[38]= ps_card_number[9];
- message[39]= ps_card_number[8];
- message[40]= ps_card_number[7];
- message[41]= ps_card_number[6];
- message[42]= ps_card_number[5];
- message[43]= ps_card_number[4];
- message[44]= ps_card_number[3];
- message[45]= ps_card_number[2];
- message[46]= ps_card_number[1];
- message[47]= ps_card_number[0];
- message[12]= pcrc[3]; //GOOD
- message[13]= pcrc[2];
- message[14]= pcrc[1];
- message[15]= pcrc[0];
- #endif
- }
- }
- .....
- .....
- DLL_API(long) vgt_init_S3100 ( char* remote_host, int remote_port, int active_door, int seq_number)
- {
- if (!alreadyinit)
- init_structptr();
- glremote_ip=remote_host; //090407 ATTENTION APRES INIT
- glremote_port =remote_port;
- allmsg.read_number = active_door;
- allmsg.sequence_number=seq_number;
- write_struct(1);
- init_struct =true;
- return 0 ;
- }
- .....
- .....
- DLL_API(long) vgt_sendto_S3100 (__int64 badgeid, char* remote_host, int remote_port)
- {
- //allmsg.card_number=(unsigned char*)&badgeid;
- //ps_card_number=(unsigned char*)badge_id;
- unsigned int crc32=0;
- temp_badge_id = badgeid;
- memset(message,0,MAX_PATH);
- //message[32]= ps_card_number[15];
- //allmsg.card_number=(unsigned char*)&temp_badge_id;
- allmsg.card_number[15]=ptemp_badge_id[15]; //ICIBUG
- allmsg.card_number[14]=ptemp_badge_id[14];
- allmsg.card_number[13]=ptemp_badge_id[13];
- allmsg.card_number[12]=ptemp_badge_id[12];
- allmsg.card_number[11]=ptemp_badge_id[11];
- allmsg.card_number[10]=ptemp_badge_id[10];
- allmsg.card_number[9]=ptemp_badge_id[9];
- allmsg.card_number[8]=ptemp_badge_id[8];
- allmsg.card_number[7]=ptemp_badge_id[7];
- allmsg.card_number[6]=ptemp_badge_id[6];
- allmsg.card_number[5]=ptemp_badge_id[5];
- allmsg.card_number[4]=ptemp_badge_id[4];
- allmsg.card_number[3]=ptemp_badge_id[3];
- allmsg.card_number[2]=ptemp_badge_id[2];
- allmsg.card_number[1]=ptemp_badge_id[1];
- allmsg.card_number[0]=ptemp_badge_id[0];
- /*
- char digits[30];
- sprintf(digits,"%I64d\n",temp_badge_id);
- //I64d
- for(int i=0; i<20; i++)
- printf ("digits[%d] = %d ", i, digits[i]);
- //allmsg.card_number=(unsigned char*)&digits;
- allmsg.card_number[15]=digits[15]; //ICIBUG
- allmsg.card_number[14]=digits[14];
- allmsg.card_number[13]=digits[13];
- allmsg.card_number[12]=digits[12];
- allmsg.card_number[11]=digits[11];
- allmsg.card_number[10]=digits[10];
- allmsg.card_number[9]=digits[9];
- allmsg.card_number[8]=digits[8];
- allmsg.card_number[7]=digits[7];
- allmsg.card_number[6]=digits[6];
- allmsg.card_number[5]=digits[5];
- allmsg.card_number[4]=digits[4];
- allmsg.card_number[3]=digits[3];
- allmsg.card_number[2]=digits[2];
- allmsg.card_number[1]=digits[1];
- allmsg.card_number[0]=digits[0];
- */
- printf("\nvaleur de temp_badge_id (Lu)= %Lu\n", temp_badge_id);
- printf("\nvaleur de *ptemp_badge_id apres (s)= %s\n", (unsigned char*)ptemp_badge_id);
- printf("\nvaleur de *ptemp_badge_id apres (c) = %c\n");
- for (int i=0;i<16;++i)
- {
- printf("%c, ", (unsigned char*)ptemp_badge_id[i]);
- }
- printf("\n");
- //gbadge_id = badgeid;
- //allmsg.card_number= badgeid;
- //allmsg.card_number=(unsigned char*)&temp_badge_id;
- /*
- allmsg.card_number[0]=(((unsigned char)&badgeid) & 0x00000000000000FF); //GOOD TOO
- allmsg.card_number[1]= (unsigned char)(&badgeid & 0x000000000000FF); //GOOD TOO
- allmsg.card_number[2]= (unsigned char)(&badgeid & 0x0000000000FF); //GOOD TOO
- allmsg.card_number[3]= (unsigned char)(&badgeid & 0x00000000FF); //GOOD TOO
- allmsg.card_number[4]= (unsigned char)(&badgeid & 0x000000FF); //GOOD TOO
- allmsg.card_number[5]= (unsigned char)(&badgeid & 0x0000FF); //GOOD TOO
- allmsg.card_number[6]= (unsigned char)(&badgeid & 0x00FF); //GOOD TOO
- allmsg.card_number[7]= (unsigned char)(&badgeid & 0xFF); //GOOD TOO
- */
- //temp_badge_id =(__int64)&badgeid;
- //ptemp_badge_id = __ui64toa( badgeid, temparray, 10 );
- //ptemp_badge_id=(unsigned char*)&temp_badge_id;
- //allmsg.card_number[0]=&temp_badge_id
- //if (!alreadyinit)
- //init_structptr();
- ////////////////////////////:
- /*
- message[32]= ps_card_number[15];
- message[33]= ps_card_number[14];
- message[34]= ps_card_number[13];
- message[35]= ps_card_number[12];
- message[36]= ps_card_number[11];
- message[37]= ps_card_number[10];
- message[38]= ps_card_number[9];
- message[39]= ps_card_number[8];
- message[40]= ps_card_number[7];
- message[41]= ps_card_number[6];
- message[42]= ps_card_number[5];
- message[43]= ps_card_number[4];
- message[44]= ps_card_number[3];
- message[45]= ps_card_number[2];
- message[46]= ps_card_number[1];
- message[47]= ps_card_number[0];
- */
- //allmsg.card_number= (unsigned char*)&badgeid;
- /*
- allmsg.card_number[15]=ptemp_badge_id[15]; //ICIBUG
- allmsg.card_number[14]=ptemp_badge_id[14];
- allmsg.card_number[13]=ptemp_badge_id[13];
- allmsg.card_number[12]=ptemp_badge_id[12];
- allmsg.card_number[11]=ptemp_badge_id[11];
- allmsg.card_number[10]=ptemp_badge_id[10];
- allmsg.card_number[9]=ptemp_badge_id[9];
- allmsg.card_number[8]=ptemp_badge_id[8];
- allmsg.card_number[7]=ptemp_badge_id[7];
- allmsg.card_number[6]=ptemp_badge_id[6];
- allmsg.card_number[5]=ptemp_badge_id[5];
- allmsg.card_number[4]=ptemp_badge_id[4];
- allmsg.card_number[3]=ptemp_badge_id[3];
- allmsg.card_number[2]=ptemp_badge_id[2];
- allmsg.card_number[1]=ptemp_badge_id[1];
- allmsg.card_number[0]=ptemp_badge_id[0];
- */
- memset(message,0,MAX_PATH);
- write_struct(1); //090406 (1) -> (0) -> 1 ok // plus bas
- initcrcok =0 ;
- initcrcok = objcrc32.Init(CRC32_POLY_WINZIP);
- rescrc32=0;
- rescrc32= objcrc32.GetCrc32( &msg_crc,CRC_LENGTH ); //objcrc32.
- //allmsg.crc=rescrc32;
- *pcrc=rescrc32; //090405
- //write_struct(0); 090408
- #ifdef _LITTLE_ENDIAN
- message[12]= pcrc[0];
- message[13]= pcrc[1];
- message[14]= pcrc[2];
- message[15]= pcrc[3];
- /* message[12]= (char)(rescrc32 & 0x000000FF); //GOOD TOO
- message[13]= (char)((rescrc32>>8) & 0x0000FF);
- message[14]= (char)((rescrc32>>16) & 0x00FF);
- message[15]= (char)(rescrc32>>24);
- */
- #else
- message[12]= pcrc[3]; //GOOD
- message[13]= pcrc[2];
- message[14]= pcrc[1];
- message[15]= pcrc[0];
- message[15]= (char)(rescrc32 & 0x000000FF); //GOOD TOO
- message[14]= (char)((rescrc32>>8) & 0x0000FF);
- message[13]= (char)((rescrc32>>16) & 0x00FF);
- message[12]= (char)(rescrc32>>24);
- #endif
- //write_struct(0); //ICIBUG
- /*
- allmsg.card_number[14]=ptemp_badge_id[14];
- allmsg.card_number[13]=ptemp_badge_id[13];
- allmsg.card_number[12]=ptemp_badge_id[12];
- allmsg.card_number[11]=ptemp_badge_id[11];
- allmsg.card_number[10]=ptemp_badge_id[10];
- allmsg.card_number[9]=ptemp_badge_id[9];
- allmsg.card_number[8]=ptemp_badge_id[8];
- allmsg.card_number[7]=ptemp_badge_id[7];
- allmsg.card_number[6]=ptemp_badge_id[6];
- allmsg.card_number[5]=ptemp_badge_id[5];
- allmsg.card_number[4]=ptemp_badge_id[4];
- allmsg.card_number[3]=ptemp_badge_id[3];
- allmsg.card_number[2]=ptemp_badge_id[2];
- allmsg.card_number[1]=ptemp_badge_id[1];
- allmsg.card_number[0]=ptemp_badge_id[0];
- */
- /*
- printf("containe card_number\n", allmsg.card_number);
- for(int i=0; i < 15; ++i)
- {
- printf("%2d [0x%2.2X], [0x%2.2X]\n", i,allmsg.card_number[i],ptemp_badge_id[i]);
- }
- */
- printf("Sender ID = %d\n", allmsg.sender_id);
- for(int i=0; i < 4; ++i)
- {
- printf("%2d[0x%2.2X], ", i, (unsigned char)message[i]);
- }
- printf("\nEncryption key ID = %d\n", allmsg.encrypt_key_id);
- for(int i=0; i < 4; ++i)
- {
- printf("%2d[0x%2.2X], ", i, (unsigned char)message[4+i]);
- }
- printf("\nEncrypted size = %d\n", allmsg.encrypt_size);
- for(int i=0; i < 4; ++i)
- {
- printf("%2d[0x%2.2X], ", i, (unsigned char)message[8+i]);
- }
- printf("\nCRC-32 = %u\n",rescrc32);
- for(int i=0; i < 4; ++i)
- {
- printf("%2d[0x%2.2X], ", i, (unsigned char)message[12+i]);
- }
- printf("\nData length = %d\n", allmsg.data_length);
- for(int i=0; i < 4; ++i)
- {
- printf("%2d[0x%2.2X], ", i, (unsigned char)message[16+i]);
- }
- printf("\nSequence number = %d\n", allmsg.sequence_number);
- for(int i=0; i < 4; ++i)
- {
- printf("%2d[0x%2.2X], ", i, (unsigned char)message[20+i]);
- }
- printf("\nPacket type = %d\n", allmsg.packet_type);
- for(int i=0; i < 4; ++i)
- {
- printf("%2d[0x%2.2X], ", i, (unsigned char)message[24+i]);
- }
- printf("\ndata: READER NUMBER = %d\n", allmsg.read_number);
- for(int i=0; i < 4; ++i)
- {
- printf("%2d[0x%2.2X], ", i, (unsigned char)message[28+i]);
- }
- //printf("\ndata: CARD NUMBER = %s\n", allmsg.card_number); printf("%s\n", _i64toa(987654321234567890LL, bin, 2));
- printf("\ndata: CARD NUMBER = %Ld\n", temp_badge_id ); //gbadge_id //094008 remplacer paer temp_badge_id pui
- for(int i=0; i < 16; ++i)
- {
- printf("%2d[0x%2.2X], ", i, (unsigned char)message[32+i]);
- if (i==14)printf("\n");
- }
- printf("\ndata: PIN CODE = %d\n", allmsg.pin_code);
- for(int i=0; i < 4; ++i)
- {
- printf("%2d[0x%2.2X], ", i, (unsigned char)message[48+i]);
- }
- printf("\n\nCOMPLETE MESSAGE:\n");
- for(int i=0; i < 52; ++i) //090407 68 -> 52 disable padding bytes
- {
- printf("%2d[0x%2.2X], ", i, (unsigned char)message[i]);
- if (i==14||i==29||i==44||i==59) printf("\n");
- }
- char *remote_ip=remote_host;
- if (!error_code)
- { error_code = pCVgtNotifyDll->vgt_client_open (&pCUdpClt, remote_ip,remote_port);
- if (error_code)
- { printf("dans if(error_code) \n");
- if (DEBUG) fprintf(stderr," ERROR: udp client open returned error_code %ld \n",error_code);
- sprintf(response,"error_code= %d",ERROR_NOTIFY_CLIENT_OPEN);
- }
- }
- if (!error_code)
- {
- error_code = pCVgtNotifyDll->vgt_client_send_to(&pCUdpClt, message,68); //68 -> 66
- if (error_code)
- {
- if (DEBUG) fprintf(stderr," ERROR: udp client send to returned error_code %ld \n",error_code);
- sprintf(response,"error_code= %d",ERROR_NOTIFY_CLIENT_SEND_TO);
- }
- }
- printf("\nWait for response... \n");
- if (!error_code)
- {
- error_code = pCVgtNotifyDll->vgt_client_wait_response (&pCUdpClt, (char *)response, MAX_PATH, &response_length, timeout_ms); //090406
- if (error_code)
- {
- if (DEBUG) fprintf(stderr," ERROR: udp client wait response returned error_code %ld \n",error_code);
- sprintf(response,"error_code= %d",ERROR_NOTIFY_CLIENT_WAIT_RESPONSE);
- }
- }
- if (!error_code)
- {
- error_code = pCVgtNotifyDll->vgt_client_close (&pCUdpClt);
- if (error_code)
- {
- if (DEBUG) fprintf(stderr," ERROR: udp client close returned error_code %ld \n",error_code);
- sprintf(response,"error_code= %d",ERROR_NOTIFY_CLIENT_CLOSE);
- }
- }
- for(int i=0; i < response_length; ++i)
- {
- printf("%2d[0x%2.2X], ",i, (unsigned char)response[i]);
- if (i==14||i==29||i==44||i==59) printf("\n");
- }
- init_struct=true;
- return error_code;
- }
- DLL_API(long) vgt_dest_S3100()
- {
- error_code=0;
- free(response);
- printf("\n\nExiting...\n");
- delete pCrc32;
- printf("\n");
- return error_code;
- }
Expand|Select|Wrap|Line Numbers
- int main(int argc, char* argv[])
- {
- unsigned int rescrc32=0;
- char remote_ip[16];
- int remote_port=0;
- unsigned int act_doors=1;
- __int64 badge_id=0;
- int seq_num=1;
- ....
- ....
- error_code = pCVgtS3100_interface->vgt_init_S3100( remote_ip, remote_port, act_doors, seq_num);//IMPL_1
- if (error_code)
- {
- if (DEBUG) fprintf(stderr," ERROR: S3100 init returned error_code %ld \n",error_code);
- sprintf(response,"error_code= %d",ERROR_S3100_INTERFACE_INIT);
- }
- printf("\n");
- .....
- .....
- error_code =pCVgtS3100_interface->vgt_sendto_S3100(badge_id,remote_ip,remote_port);
- if (error_code)
- {
- if (DEBUG) fprintf(stderr," ERROR: S3100 send to returned error_code %ld \n",error_code);
- sprintf(response,"error_code= %d",ERROR_S3100_INTERFACE_SEND_TO);
- }
- .....
Expand|Select|Wrap|Line Numbers
- allmsg.card_number[0]=(((unsigned char)&badgeid) & 0x00000000000000FF);
- allmsg.card_number[1]= (unsigned char)(&badgeid & 0x000000000000FF);
- allmsg.card_number[2]= (unsigned char)(&badgeid & 0x0000000000FF);
- allmsg.card_number[3]= (unsigned char)(&badgeid & 0x00000000FF); allmsg.card_number[4]= (unsigned char)(&badgeid & 0x000000FF);
- allmsg.card_number[5]= (unsigned char)(&badgeid & 0x0000FF); allmsg.card_number[6]= (unsigned char)(&badgeid & 0x00FF); allmsg.card_number[7]= (unsigned char)(&badgeid & 0xFF);
how fix these problems?
Could you help me please.
Thank you
Kenzo