Example #1
0
static void measures_printMeasures(char *buf, size_t len)
{
	float humidity = sensor_read(ADC_HUMIDITY);
	float ext_t = sensor_read(ADC_T1);

	/*
	 * Honeywell HIH-5030/5031 humidity sensor temperature compensation.
	 * See page 2, http://http://sensing.honeywell.com/index.php?ci_id=49692
	 */
	humidity /= (1.0546 - 0.00216 * ext_t);

	snprintf(buf, len, "%ld;%.1f;%.1f;%.0f;%.0f;%.1f;%.2f;%.2f;%.2f;%.0f;%.2f;%.2f;%.2f;%d",
		gps_info()->altitude,
		ext_t,
		sensor_read(ADC_T2),
		sensor_read(ADC_PRESS),
		humidity,
		measures_intTemp(),
		sensor_read(ADC_VIN),
		sensor_read(ADC_5V),
		sensor_read(ADC_3V3),
		sensor_read(ADC_CURR),
		measures_acceleration(MMA_X),
		measures_acceleration(MMA_Y),
		measures_acceleration(MMA_Z),
		hadarp_read()
	);

	buf[len - 1] = '\0';
}
Example #2
0
void measures_logFormat(char *buf, size_t len)
{
	struct tm *t;
	time_t tim;
	udegree_t lat, lon;
	int32_t altitude;


	bool fix = gps_fixed();
	if (fix)
	{
		lat = gps_info()->latitude;
		lon = gps_info()->longitude;
		altitude = gps_info()->altitude;
	}
	else
	{
		lat = 0;
		lon = 0;
		altitude = 0;
	}

	tim = gps_time();
	t = gmtime(&tim);

	snprintf(buf, len, "%02d:%02d:%02d;%s;%02ld.%.06ld;%03ld.%.06ld;%ld;%.1f;%.1f;%.0f;%.0f;%.1f;%.2f;%.2f;%.2f;%.0f;%.2f;%.2f;%.2f;%d",
		t->tm_hour, t->tm_min, t->tm_sec,
		fix ? "FIX" : "NOFIX",
		lat/1000000, ABS(lat)%1000000,
		lon/1000000, ABS(lon)%1000000,
		altitude,
		sensor_read(ADC_T1),
		sensor_read(ADC_T2),
		sensor_read(ADC_PRESS),
		sensor_read(ADC_HUMIDITY),
		measures_intTemp(),
		sensor_read(ADC_VIN),
		sensor_read(ADC_5V),
		sensor_read(ADC_3V3),
		sensor_read(ADC_CURR),
		measures_acceleration(MMA_X),
		measures_acceleration(MMA_Y),
		measures_acceleration(MMA_Z),
		hadarp_read()
	);

	buf[len - 1] = '\0';
}
Example #3
0
void measures_aprsFormat(char *buf, size_t len)
{
	const char *lat, *lon;
	if (gps_fixed())
	{
		lat = gps_aprsLat();
		lon = gps_aprsLon();
	}
	else
	{
		lat = "0000.00N";
		lon = "00000.00W";
	}

	float x = measures_acceleration(MMA_X);
	float y = measures_acceleration(MMA_Y);
	float z = measures_acceleration(MMA_Z);

	float acc = sqrt(x * x + y * y + z * z);

	char time[7];
	radio_time(time, sizeof(time));

	snprintf(buf, len, "/%.6sh%s/%s>%ld;%.1f;%.0f;%.0f;%.1f;%.2f;%.2f;%d",
		time,
		lat, lon,
		gps_info()->altitude,
		sensor_read(ADC_T1),
		sensor_read(ADC_PRESS),
		sensor_read(ADC_HUMIDITY),
		measures_intTemp(),
		sensor_read(ADC_VIN),
		acc,
		hadarp_read()
	);

	buf[len - 1] = '\0';
}