Esempio n. 1
0
static int yas530_ext_read(void *mlsl_handle,
		       struct ext_slave_descr *slave,
		       struct ext_slave_platform_data *pdata,
		       unsigned char *data)
{
	int result = INV_SUCCESS;
	int raw[3] = {0,};
	int xyz[3] = {0,};
	int accuracy = 0;
	int i = 0;
	short xyz_scaled[3] = {0,};

	geomagnetic_api_read(xyz, raw, NULL, &accuracy);

	xyz_scaled[0] = (short)(xyz[0]/100);
	xyz_scaled[1] = (short)(xyz[1]/100);
	xyz_scaled[2] = (short)(xyz[2]/100);

	data[0] = xyz_scaled[0] >> 8;
	data[1] = xyz_scaled[0] & 0xFF;
	data[2] = xyz_scaled[1] >> 8;
	data[3] = xyz_scaled[1] & 0xFF;
	data[4] = xyz_scaled[2] >> 8;
	data[5] = xyz_scaled[2] & 0xFF;
	data[6] = (unsigned char)accuracy;

	return result;
}
static int
yas530_read
(
     void *mlsl_handle,
     struct ext_slave_descr *slave,
     struct ext_slave_platform_data *pdata,
     unsigned char *data
)
{
  int xyz[3];
  int raw[3];
  short rawfixed[3];
  int xy1y2[3];
  int accuracy;

  geomagnetic_api_read(xyz, raw, xy1y2, &accuracy);

  rawfixed[0] = (short) (xyz[0]/100);
  rawfixed[1] = (short) (xyz[1]/100);
  rawfixed[2] = (short) (xyz[2]/100);

  data[0] = rawfixed[0] >> 8;
  data[1] = rawfixed[0] & 0xFF;
  data[2] = rawfixed[1] >> 8;
  data[3] = rawfixed[1] & 0xFF;
  data[4] = rawfixed[2] >> 8;
  data[5] = rawfixed[2] & 0xFF;

  return ML_SUCCESS;
}
Esempio n. 3
0
 static int 
 yas530_read
 (
     void *mlsl_handle,
     struct ext_slave_descr *slave,
     struct ext_slave_platform_data *pdata, 
     unsigned char *data
 )
 {
  int result = ML_SUCCESS;
 
  int xyz[3];
  int raw[3];
  short rawfixed[3];
  int xy1y2[3];
  int accuracy;
  static short pre_data[3]={0,};

  geomagnetic_api_read(xyz,raw,xy1y2,&accuracy);
/*
  printk("@@@yas530_read@@@  x: %d, y: %d,  z: %d accuracy : %d \n", 
  	xyz[0]/1000, xyz[1]/1000, xyz[2]/1000, accuracy );
*/
//  if(accuracy>0)
  {
  	rawfixed[0] = (short) (xyz[0]/100);
  	rawfixed[1] = (short) (xyz[1]/100);
  	rawfixed[2] = (short) (xyz[2]/100);
	pre_data[0] = rawfixed[0];
	pre_data[1] = rawfixed[1];
	pre_data[2] = rawfixed[2];
	
	
	data[0] = rawfixed[0]>>8;
	data[1] = rawfixed[0] & 0xFF;
	data[2] = rawfixed[1]>>8;
	data[3] = rawfixed[1] & 0xFF;
	data[4] = rawfixed[2]>>8;
	data[5] = rawfixed[2] & 0xFF;
	//data[6] = accuracy;

//	printk("@@@yas530_read@@@ + accuracy: %d, predata[0]:%d\n", accuracy, pre_data[0]);

  }
  data[6] = accuracy;


  if(0/*!accuracy&&!pre_data[0]*/) {
  	printk("@@@yas530_read@@@ - accuracy: %d, predata[0]:%d\n", accuracy, pre_data[0]);
  	return ML_ERROR;
  }

  return result;
 }