Programmer's Guide

RaDeKL Radar API Programmer’s Guide 43
© Multispectral Solutions, Inc. 2006
#define REGISTER_DAC16 23 // Threshold setting 16
#define REGISTER_DAC17 24 // Threshold setting 17
#define REGISTER_DAC18 25 // Threshold setting 18
#define REGISTER_DAC19 26 // Threshold setting 19
#define REGISTER_DAC20 27 // Threshold setting 20
#define REGISTER_DAC21 28 // Threshold setting 21
#define REGISTER_DAC22 29 // Threshold setting 22
#define REGISTER_DAC23 30 // Threshold setting 23
#define REGISTER_DAC24 31 // Threshold setting 24
#define REGISTER_DAC25 32 // Threshold setting 25
#define REGISTER_DAC26 33 // Threshold setting 26
#define REGISTER_DAC27 34 // Threshold setting 27
#define REGISTER_DAC28 35 // Threshold setting 28
#define REGISTER_DAC29 36 // Threshold setting 29
#define REGISTER_DAC30 37 // Threshold setting 30
#define REGISTER_DAC31 38 // Threshold setting 31
#define REGISTER_DAC32 39 // Threshold setting 32
#define REGISTER_MAX 39 // MUST be same as the last valid register
//
//
// Type definitions
//
//
// Handle to RaDeKL Radar device
typedef PVOID RaDeKL_HANDLE;
// RaDeKL Radar device-specific info
typedef struct RaDeKL_DEVICEINFO
{
// FTDI USB Chip specific data
FT_HANDLE ft_handle;
FT_DEVICE ft_device_type;
char ft_serial_number[SIZE_SERIAL_NUMBER];
char ft_description[SIZE_DESCRIPTION];
union // This union allows us to overlay the 32-bit device_id
{ // with the 16-bit product_id and vendor_id
DWORD ft_device_id;
struct
{
WORD ft_product_id; // Low word
WORD ft_vendor_id; // High word
};
};
// RaDeKL Radar specific data
BYTE resolution; // Currently always RESOLUTION_1FOOT
WORD range_bins; // Currently always 256
BYTE range_bin_min; // Currently always 0
BYTE range_bin_max; // Currently always 32
BYTE thresholds; // Currently always 32
BYTE threshold_min; // Currently always 20
BYTE threshold_max; // Currently always 227
BYTE tx_atten_min; // Currently always 0
BYTE tx_atten_max; // Currently always 63
BYTE rx_atten_min; // Currently always 0
BYTE rx_atten_max; // Currently always 255
BYTE interval_min; // Currently always 0
BYTE interval_max; // Currently always 4
BYTE interval; // Current interval setting
union // This union allows us to overlay the 8-bit version_id
{ // with the 4-bit major and 4-bit minor version_id
BYTE version_id;
struct
{
unsigned int version_id_minor:4; // Low nibble
unsigned int version_id_major:4; // High nibble
};
};
} RaDeKL_DEVICEINFO;