Beispiel #1
0
void copy_gps_reading(void)
{
  static vector v_r_ecef, v_v_ecef;
  
  Current_state.gps = gps;
  
  Current_state.gps.time_since_reading = 0;
  
  v_r_ecef[0] = (float)Current_state.gps.x / 1000;
  v_r_ecef[1] = (float)Current_state.gps.y / 1000;
  v_r_ecef[2] = (float)Current_state.gps.z / 1000;
  
  v_v_ecef[0] = (float)Current_state.gps.v_x / 1000;
  v_v_ecef[1] = (float)Current_state.gps.v_y / 1000;
  v_v_ecef[2] = (float)Current_state.gps.v_z / 1000;
  
  get_seconds_since_equinox();
  
  ecef2eci(v_r_ecef, v_r); 
  ecef2eci(v_v_ecef, v_v); 
  
  v_sat[0] = (((float)Current_state.gps.lat) / 10000000) * (M_PI / 180);
  v_sat[1] = (((float)Current_state.gps.lon) / 10000000) * (M_PI / 180);
  
  GPS_done = 0;
}
void copy_gps_reading(void)
{
	
  static vector v_r_ecef, v_v_ecef;
  
 // Current_state.gps = gps;
  
  Current_state.gps.time_since_reading = 0;
  //increase a zero at end
  //int32_t test = -181930228;
  v_r_ecef[0] = ((float)Current_state.gps.x)/100;//((float)test/100);//
  v_r_ecef[1] = ((float)Current_state.gps.y) / 100;//((float)test/100);//
  v_r_ecef[2] = ((float)Current_state.gps.z) / 100;//((float)test/100);//
  
  v_v_ecef[0] = (float)Current_state.gps.v_x / 1;
  v_v_ecef[1] = (float)Current_state.gps.v_y / 1;
  v_v_ecef[2] = (float)Current_state.gps.v_z / 1;
   
  get_seconds_since_equinox();//check
   
  r_ecef_ash[0] = v_r_ecef[0];
  r_ecef_ash[1] = v_r_ecef[1];
  r_ecef_ash[2] = v_r_ecef[2];
  ecef2eci(v_r_ecef, v_r);
  ecef2eci(v_v_ecef, v_v);
  
  int32_t send;
  /*for (int i=0;i<3;i++)
  {
	  //if(send[i]<0)
	  //send[i]=(int16_t)(-1*(v_v_ecef[i]/1));
	  //else
	  send[i]=(int16_t)((abs(v_v[i])));
	  
  }*/
 /*
  uint8_t a,b,c,d;
  for (int i=0;i<3;i++)
  {
	  send=(int32_t)(v_r_ecef[i]*100);
	  a = (int8_t)send;
	  b = (int8_t)(send>>8);
	  c = (int8_t)(send>>16);
	  d = (int8_t)(send>>24);
	  transmit_UART0(a);
	  transmit_UART0(b);
	  transmit_UART0(c);
	  transmit_UART0(d);
  }
  */
  v_sat[0] = (((float)Current_state.gps.lat) / 10000000) * (M_PI / 180);// check scale factor
  v_sat[1] = (((float)Current_state.gps.lon) / 10000000) * (M_PI / 180);
  
  GPS_done = 0;
}
Beispiel #3
0
void copy_gps_reading(void)
{
  static vector v_r_ecef, v_v_ecef;
  
  v_r_ecef[0] = (float)1 / 1000;
  v_r_ecef[1] = (float)1 / 1000;
  v_r_ecef[2] = (float)1 / 1000;
  
  v_v_ecef[0] = (float)1 / 1000;
  v_v_ecef[1] = (float)1 / 1000;
  v_v_ecef[2] = (float)1 / 1000;
  
  get_seconds_since_equinox();
  
  ecef2eci(v_r_ecef, v_r); 
  ecef2eci(v_v_ecef, v_v); 
  v_r[0] = -7178521.3196791;
  v_r[1] = -525365.237135614;
  v_r[2] = -14623.7085998278;
  
  v_v[0] = -89.2053675056426;
  v_v[1] = 1118.96667576478;
  v_v[2] = 7357.30907922713;
}