1
0
mirror of https://github.com/preble/libpinproc synced 2026-02-24 18:25:23 +01:00

Added accelerometer events

This commit is contained in:
Gerry Stellenberg
2012-07-30 19:22:19 -05:00
parent 72301ec1dd
commit 78ed8bbe67
4 changed files with 86 additions and 9 deletions

View File

@@ -193,6 +193,7 @@ int PRDevice::GetEvents(PREvent *events, int maxEvents)
}
//fprintf(stderr, "\nLibpinproc: event type: %d", type);
switch (type)
{
case P_ROC_EVENT_TYPE_SWITCH:
@@ -212,11 +213,39 @@ int PRDevice::GetEvents(PREvent *events, int maxEvents)
case P_ROC_EVENT_TYPE_BURST_SWITCH:
{
if (open) events[i].type = kPREventTypeSwitchOpenNondebounced;
else events[i].type = kPREventTypeSwitchClosedNondebounced;
//fprintf(stderr, "\nBurst event");
if (open) events[i].type = kPREventTypeBurstSwitchOpen;
else events[i].type = kPREventTypeBurstSwitchClosed;
break;
}
case P_ROC_EVENT_TYPE_ACCELEROMETER:
{
events[i].time = events[i].time >> 2;
events[i].value = event_data & 0x00003FFF;
int accel_type = (event_data & 0x00030000) >> 16;
switch (accel_type)
{
case 0:
{
events[i].type = kPREventTypeAccelerometerX;
break;
}
case 1:
{
events[i].type = kPREventTypeAccelerometerY;
break;
}
case 2:
{
events[i].type = kPREventTypeAccelerometerZ;
break;
}
default: events[i].type = kPREventTypeInvalid;
}
break;
}
default: events[i].type = kPREventTypeInvalid;
}
@@ -1290,7 +1319,7 @@ int32_t PRDevice::CollectReadData()
PRResult PRDevice::SortReturningData()
{
int32_t num_bytes, num_words, rc;
uint32_t rd_buffer[512];
uint32_t rd_buffer[FTDI_BUFFER_SIZE/4];
num_bytes = CollectReadData();
if (num_bytes < 0)

View File

@@ -42,7 +42,8 @@
const int32_t FTDI_VENDOR_ID = 0x0403;
const int32_t FTDI_FT245RL_PRODUCT_ID = 0x6001;
const int32_t FTDI_BUFFER_SIZE = 2048;
//const int32_t FTDI_BUFFER_SIZE = 2048;
const int32_t FTDI_BUFFER_SIZE = 8192;
const uint32_t P_ROC_INIT_PATTERN_A = 0x801F1122;
const uint32_t P_ROC_INIT_PATTERN_B = 0x345678AB;
const uint32_t P_ROC_CHIP_ID = 0xfeedbeef;
@@ -130,6 +131,7 @@ const uint32_t P_ROC_SWITCH_CTRL_DEBOUNCE_BASE_ADDR = 12;
const uint32_t P_ROC_EVENT_TYPE_SWITCH = 0;
const uint32_t P_ROC_EVENT_TYPE_DMD = 1;
const uint32_t P_ROC_EVENT_TYPE_BURST_SWITCH = 2;
const uint32_t P_ROC_EVENT_TYPE_ACCELEROMETER = 3;
const uint32_t P_ROC_V1_EVENT_TYPE_MASK = 0xC00;
const uint32_t P_ROC_V1_EVENT_TYPE_SHIFT = 10;
@@ -150,6 +152,8 @@ const uint32_t P_ROC_V1_EVENT_SWITCH_TIMESTAMP_MASK = 0xFFFFF000;
const uint32_t P_ROC_V1_EVENT_SWITCH_TIMESTAMP_SHIFT = 12;
const uint32_t P_ROC_V2_EVENT_SWITCH_TIMESTAMP_MASK = 0xFFFF0000;
const uint32_t P_ROC_V2_EVENT_SWITCH_TIMESTAMP_SHIFT = 16;
const uint32_t P_ROC_V2_EVENT_ACCEL_TIMESTAMP_MASK = 0xFFFC0000;
const uint32_t P_ROC_V2_EVENT_ACCEL_TIMESTAMP_SHIFT = 18;
const uint32_t P_ROC_DRIVER_CTRL_DECODE_SHIFT = 10;