From 64e3f4b4bf830f0d054b2402a190913382ef71e8 Mon Sep 17 00:00:00 2001 From: Jef Driesen Date: Fri, 20 Feb 2009 12:25:25 +0000 Subject: [PATCH] Add a device info event for the Reefnet Sensus Original, Pro and Ultra. --- src/reefnet_sensus.c | 7 +++++++ src/reefnet_sensuspro.c | 7 +++++++ src/reefnet_sensusultra.c | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/src/reefnet_sensus.c b/src/reefnet_sensus.c index 112fd8c..b2c4143 100644 --- a/src/reefnet_sensus.c +++ b/src/reefnet_sensus.c @@ -244,6 +244,13 @@ reefnet_sensus_device_handshake (device_t *abstract, unsigned char *data, unsign memcpy (data, handshake + 2, REEFNET_SENSUS_HANDSHAKE_SIZE); + // Emit a device info event. + device_devinfo_t devinfo; + devinfo.model = handshake[2] - '0'; + devinfo.firmware = handshake[3] - '0'; + devinfo.serial = handshake[6] + (handshake[7] << 8); + device_event_emit (abstract, DEVICE_EVENT_DEVINFO, &devinfo); + // Wait at least 10 ms to ensures the data line is // clear before transmission from the host begins. diff --git a/src/reefnet_sensuspro.c b/src/reefnet_sensuspro.c index 4bfdf85..3255471 100644 --- a/src/reefnet_sensuspro.c +++ b/src/reefnet_sensuspro.c @@ -215,6 +215,13 @@ reefnet_sensuspro_device_handshake (device_t *abstract, unsigned char *data, uns memcpy (data, handshake, REEFNET_SENSUSPRO_HANDSHAKE_SIZE); + // Emit a device info event. + device_devinfo_t devinfo; + devinfo.model = handshake[0]; + devinfo.firmware = handshake[1]; + devinfo.serial = handshake[4] + (handshake[5] << 8); + device_event_emit (abstract, DEVICE_EVENT_DEVINFO, &devinfo); + serial_sleep (10); return DEVICE_STATUS_SUCCESS; diff --git a/src/reefnet_sensusultra.c b/src/reefnet_sensusultra.c index 67caef0..3c0dcd3 100644 --- a/src/reefnet_sensusultra.c +++ b/src/reefnet_sensusultra.c @@ -329,6 +329,13 @@ reefnet_sensusultra_device_handshake (device_t *abstract, unsigned char *data, u memcpy (data, handshake, REEFNET_SENSUSULTRA_HANDSHAKE_SIZE); + // Emit a device info event. + device_devinfo_t devinfo; + devinfo.model = handshake[1]; + devinfo.firmware = handshake[0]; + devinfo.serial = handshake[2] + (handshake[3] << 8); + device_event_emit (abstract, DEVICE_EVENT_DEVINFO, &devinfo); + return DEVICE_STATUS_SUCCESS; }