/*! * @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); } }
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; }