구조체 및 배열 값 입력 질문드립니다
글쓴이: rider7979 / 작성시간: 목, 2013/04/04 - 6:04오후
안녕하세요
아래와 같이 구조체에 값 입력하구요
구조체를 char 배열에 memcpy로 복사하여 전송하는 간단한 소스입니다
일단 확인해보니 USER_ID나 GPS에 엉뚱한 값이 들어가고 있네요
아주 단순하게 for문으로 값을 입력해준다고 생각하는데
뭐가 틀렸는지 아무리 봐도 모르겠습니다;;;;;
조언 부탁드립니다
아래 INT8U는 unsigned char 입니다
EMG_PACKET PACKET_Creation(void) { EMG_PACKET emg_packet; emg_packet.Entire_Msg_Length = sizeof(emg_packet); INT8U user[13]={0,1,2,3,4,5,6,7,8,9,0}; //TAG_ID[2]; emg_packet.TAG_ID[0] = 0; emg_packet.TAG_ID[1] = 1; //USER_ID[12]; for(int cnt=0;cnt==11;cnt++){ emg_packet.USER_ID[cnt+2] = user[cnt]; } //GPS_Data[11]; INT8U latitude[5]; INT8U longitude[5]; latitude [0] = 35; latitude [1] = 7; latitude [2] = 3; latitude [3] = 44; latitude [4] = 'N'; longitude [0] = 128; longitude [1] = 58; longitude [2] = 4; longitude [3] = 92; longitude [4] = 'E'; for(int cnt=0;cnt==4;cnt++){ emg_packet.GPS_Data[cnt] = latitude[cnt]; } for(int cnt=5;cnt==9;cnt++){ emg_packet.GPS_Data[cnt] = longitude[cnt]; } //Battery; emg_packet.Battery = 0x63; BSP_Debug_Put_String("PACKET_Creation\r\n"); return emg_packet; } bool Send_Packet(EMG_PACKET emg_packet) { //bool send_flag = FALSE; INT8U data[sizeof(emg_packet)]; memcpy(data, &emg_packet, sizeof(emg_packet)); // int size=0; BSP_WCDMA_SendCmd((INT8U*)data); BSP_Debug_Put_String("Send_Packet\r\n"); return TRUE; }
Forums:
...
cnt==4 => cnt<4
자답...
다시 자세히 보니...실수한 부분이 많네요.....
해결 했습니다....
답변 주신분 감사합니다
댓글 달기