From b6a40477c0ad116305f7e34f1be7d2d76b75e359 Mon Sep 17 00:00:00 2001 From: Gerry Stellenberg Date: Thu, 15 Sep 2011 19:04:39 -0500 Subject: [PATCH] Provide P-ROC event timestamps with switch events. --- src/PRDevice.cpp | 3 ++- src/PRHardware.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/PRDevice.cpp b/src/PRDevice.cpp index d24558b..5fa0252 100644 --- a/src/PRDevice.cpp +++ b/src/PRDevice.cpp @@ -176,11 +176,12 @@ int PRDevice::GetEvents(PREvent *events, int maxEvents) events[i].value = event_data & P_ROC_EVENT_SWITCH_NUM_MASK; int open = (event_data & P_ROC_EVENT_SWITCH_STATE_MASK) >> P_ROC_EVENT_SWITCH_STATE_SHIFT; - + switch ((event_data & P_ROC_EVENT_TYPE_MASK) >> P_ROC_EVENT_TYPE_SHIFT) { case P_ROC_EVENT_TYPE_SWITCH: { + events[i].time = (event_data & P_ROC_EVENT_SWITCH_TIMESTAMP_MASK) >> P_ROC_EVENT_SWITCH_TIMESTAMP_SHIFT; int debounced = (event_data & P_ROC_EVENT_SWITCH_DEBOUNCED_MASK) >> P_ROC_EVENT_SWITCH_DEBOUNCED_SHIFT; if (open) events[i].type = debounced ? kPREventTypeSwitchOpenDebounced : kPREventTypeSwitchOpenNondebounced; diff --git a/src/PRHardware.h b/src/PRHardware.h index b1a8eb5..616977e 100644 --- a/src/PRHardware.h +++ b/src/PRHardware.h @@ -134,6 +134,8 @@ const uint32_t P_ROC_EVENT_TYPE_SHIFT = 10; const uint32_t P_ROC_EVENT_SWITCH_NUM_MASK = 0xFF; const uint32_t P_ROC_EVENT_SWITCH_STATE_MASK = 0x100; const uint32_t P_ROC_EVENT_SWITCH_STATE_SHIFT = 8; +const uint32_t P_ROC_EVENT_SWITCH_TIMESTAMP_MASK = 0xFFFFF000; +const uint32_t P_ROC_EVENT_SWITCH_TIMESTAMP_SHIFT = 12; const uint32_t P_ROC_EVENT_SWITCH_DEBOUNCED_MASK = 0x200; const uint32_t P_ROC_EVENT_SWITCH_DEBOUNCED_SHIFT = 9;