Example #1
0
/*!
 * @brief Run on the main thread to handle new accelerometer data.
 */
void HandleNewAccelData()
{
	if (Accel_GetMode() == ACCEL_INT)
	{
		Packet_Put(0x10, AccReadData[0], AccReadData[1], AccReadData[2]);
		return;
	}

	//Shift history
	ShiftArray(AccelXHistory, 3, AccReadData[0]);
	ShiftArray(AccelYHistory, 3, AccReadData[1]);
	ShiftArray(AccelZHistory, 3, AccReadData[2]);

	uint8_t xMed = Median_Filter3(AccelXHistory[0], AccelXHistory[1], AccelXHistory[2]);
	uint8_t yMed = Median_Filter3(AccelYHistory[0], AccelYHistory[1], AccelYHistory[2]);
	uint8_t zMed = Median_Filter3(AccelZHistory[0], AccelZHistory[1], AccelZHistory[2]);

	if ((xMed != AccelSendHistory[0]) | (yMed != AccelSendHistory[1]) | (zMed != AccelSendHistory[2]))
	{
		AccelSendHistory[0] = xMed;
		AccelSendHistory[1] = yMed;
		AccelSendHistory[2] = zMed;
		(void) CMD_SendAccelerometerValues(AccelSendHistory);
	}
}
Example #2
0
int KThruput::CurIndex(int todo)
{
	int index;

	if (todo == COUNT)
		Connected++;

	index = ((Connected-1)/TimeScale)+1;

	if (Connected < 1)
		index = 0;

	if (index >= ValueSize)
	{
		if (todo == COUNT && index > ((Connected-2)/TimeScale)+1)
		{
			ShiftArray(RunTime);
			ShiftArray(Values[IN_DATA]);
			ShiftArray(Values[OUT_DATA]);
		}

		index = ValueSize-1;
	}

	return index;
}