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

Provide P-ROC event timestamps with switch events.

This commit is contained in:
Gerry Stellenberg
2011-09-15 19:04:39 -05:00
parent 06b8af5393
commit b6a40477c0
2 changed files with 4 additions and 1 deletions

View File

@@ -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;

View File

@@ -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;