示例#1
0
void update(uint64_t read_time) {
	if (prev_sent == 0) prev_sent = last_sent;
	if (last_time == 0) {
		last_time = read_time;
		prev_sent = last_sent;
		speed = 0.0;
		speeds.append(speed);
	}
	else if (read_time - last_time >= 10000) {
/*
		double dt = (double)(read_time - last_time);
		double dv = (double)(last_sent - prev_sent);
		speed = (long)( dv / dt * 1000000.0) ;
*/
		rate_len = findMovement(positions, 20, *position_history);
		if (rate_len < *position_history) {
			speed = 1000000.0 * rate(positions, (rate_len<4)? 4 : rate_len);
		}
		else speed = 0.0;
		speeds.append(speed);
		last_time = read_time;
		prev_sent = last_sent;
	}
}