구조체 및 배열 값 입력 질문드립니다
      글쓴이: 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자답...
다시 자세히 보니...실수한 부분이 많네요.....
해결 했습니다....
답변 주신분 감사합니다
댓글 달기