Add a function to retrieve the stored handshake packet.

This commit is contained in:
Jef Driesen 2009-04-14 21:37:04 +00:00
parent 67363ea05c
commit 572dfa5184
7 changed files with 69 additions and 0 deletions

View File

@ -44,9 +44,11 @@ oceanic_vtpro_device_keepalive
oceanic_vtpro_device_calibrate
reefnet_sensus_device_open
reefnet_sensus_device_set_timestamp
reefnet_sensus_device_get_handshake
reefnet_sensus_extract_dives
reefnet_sensuspro_device_open
reefnet_sensuspro_device_set_timestamp
reefnet_sensuspro_device_get_handshake
reefnet_sensuspro_device_write_interval
reefnet_sensuspro_extract_dives
reefnet_sensusultra_device_open
@ -54,6 +56,7 @@ reefnet_sensusultra_device_read_user
reefnet_sensusultra_device_sense
reefnet_sensusultra_device_set_maxretries
reefnet_sensusultra_device_set_timestamp
reefnet_sensusultra_device_get_handshake
reefnet_sensusultra_device_write_parameter
reefnet_sensusultra_device_write_user
reefnet_sensusultra_extract_dives

View File

@ -180,6 +180,25 @@ reefnet_sensus_device_close (device_t *abstract)
}
device_status_t
reefnet_sensus_device_get_handshake (device_t *abstract, unsigned char data[], unsigned int size)
{
reefnet_sensus_device_t *device = (reefnet_sensus_device_t*) abstract;
if (! device_is_reefnet_sensus (abstract))
return DEVICE_STATUS_TYPE_MISMATCH;
if (size < REEFNET_SENSUS_HANDSHAKE_SIZE) {
WARNING ("Insufficient buffer space available.");
return DEVICE_STATUS_MEMORY;
}
memcpy (data, device->handshake, REEFNET_SENSUS_HANDSHAKE_SIZE);
return DEVICE_STATUS_SUCCESS;
}
device_status_t
reefnet_sensus_device_set_timestamp (device_t *abstract, unsigned int timestamp)
{

View File

@ -38,6 +38,9 @@ reefnet_sensus_device_open (device_t **device, const char* name);
device_status_t
reefnet_sensus_device_set_timestamp (device_t *device, unsigned int timestamp);
device_status_t
reefnet_sensus_device_get_handshake (device_t *abstract, unsigned char data[], unsigned int size);
device_status_t
reefnet_sensus_extract_dives (device_t *device, const unsigned char data[], unsigned int size, dive_callback_t callback, void *userdata);

View File

@ -154,6 +154,25 @@ reefnet_sensuspro_device_close (device_t *abstract)
}
device_status_t
reefnet_sensuspro_device_get_handshake (device_t *abstract, unsigned char data[], unsigned int size)
{
reefnet_sensuspro_device_t *device = (reefnet_sensuspro_device_t*) abstract;
if (! device_is_reefnet_sensuspro (abstract))
return DEVICE_STATUS_TYPE_MISMATCH;
if (size < REEFNET_SENSUSPRO_HANDSHAKE_SIZE) {
WARNING ("Insufficient buffer space available.");
return DEVICE_STATUS_MEMORY;
}
memcpy (data, device->handshake, REEFNET_SENSUSPRO_HANDSHAKE_SIZE);
return DEVICE_STATUS_SUCCESS;
}
device_status_t
reefnet_sensuspro_device_set_timestamp (device_t *abstract, unsigned int timestamp)
{

View File

@ -38,6 +38,9 @@ reefnet_sensuspro_device_open (device_t **device, const char* name);
device_status_t
reefnet_sensuspro_device_set_timestamp (device_t *device, unsigned int timestamp);
device_status_t
reefnet_sensuspro_device_get_handshake (device_t *abstract, unsigned char data[], unsigned int size);
device_status_t
reefnet_sensuspro_device_write_interval (device_t *device, unsigned char interval);

View File

@ -161,6 +161,25 @@ reefnet_sensusultra_device_close (device_t *abstract)
}
device_status_t
reefnet_sensusultra_device_get_handshake (device_t *abstract, unsigned char data[], unsigned int size)
{
reefnet_sensusultra_device_t *device = (reefnet_sensusultra_device_t*) abstract;
if (! device_is_reefnet_sensusultra (abstract))
return DEVICE_STATUS_TYPE_MISMATCH;
if (size < REEFNET_SENSUSULTRA_HANDSHAKE_SIZE) {
WARNING ("Insufficient buffer space available.");
return DEVICE_STATUS_MEMORY;
}
memcpy (data, device->handshake, REEFNET_SENSUSULTRA_HANDSHAKE_SIZE);
return DEVICE_STATUS_SUCCESS;
}
device_status_t
reefnet_sensusultra_device_set_maxretries (device_t *abstract, unsigned int maxretries)
{

View File

@ -52,6 +52,9 @@ reefnet_sensusultra_device_set_maxretries (device_t *device, unsigned int maxret
device_status_t
reefnet_sensusultra_device_set_timestamp (device_t *device, unsigned int timestamp);
device_status_t
reefnet_sensusultra_device_get_handshake (device_t *abstract, unsigned char data[], unsigned int size);
device_status_t
reefnet_sensusultra_device_read_user (device_t *device, unsigned char *data, unsigned int size);