📄 cxpolarisdiag.h
字号:
/*+++ *******************************************************************\
*
* Copyright and Disclaimer:
*
* ---------------------------------------------------------------
* This software is provided "AS IS" without warranty of any kind,
* either expressed or implied, including but not limited to the
* implied warranties of noninfringement, merchantability and/or
* fitness for a particular purpose.
* ---------------------------------------------------------------
*
* Copyright (c) 2008 Conexant Systems, Inc.
* All rights reserved.
*
\******************************************************************* ---*/
#ifndef _CXPOLARIS_DIAG_INTERFACE_H_
#define _CXPOLARIS_DIAG_INTERFACE_H_
#include "sidewinderprivate.h"
// {0218F181-0635-466a-BFBB-44B844760DA6}
static const GUID PROPSETID_CXPOLARIS_DIAG_PROP =
{ 0x218f181, 0x635, 0x466a, { 0xbf, 0xbb, 0x44, 0xb8, 0x44, 0x76, 0xd, 0xa6 } };
#define CXPOLARIS_MAX_SUBADDRESS_BYTES 2
#define CXPOLARIS_MAX_I2C_BYTES 6
#define CXPOLARIS_MAX_READ_I2C_BYTES 4
#define CXPOLARIS_MAX_WRITE_I2C_BYTES 4
#define CXPOLARIS_MAX_REGISTER_BYTES 4
#define CXPOLARIS_MAX_RW_I2C_BYTES (CXPOLARIS_MAX_READ_I2C_BYTES>CXPOLARIS_MAX_WRITE_I2C_BYTES ? \
CXPOLARIS_MAX_READ_I2C_BYTES : CXPOLARIS_MAX_WRITE_I2C_BYTES)
typedef struct _CXPOLARIS_I2C_STRUCT
{
BYTE channel;
BYTE chip_address;
BYTE sub_size;
BYTE sub_buf[CXPOLARIS_MAX_SUBADDRESS_BYTES];
BYTE buffer_size;
BYTE bytes[CXPOLARIS_MAX_RW_I2C_BYTES];
}CXPOLARIS_I2C_STRUCT, *PCXPOLARIS_I2C_STRUCT;
typedef struct _CXPOLARIS_I2C_WRITE_THEN_READ_STRUCT
{
BYTE channel;
BYTE chip_address;
BYTE num_write_bytes;
BYTE write_bytes[CXPOLARIS_MAX_SUBADDRESS_BYTES];
BYTE num_read_bytes;
BYTE read_bytes[CXPOLARIS_MAX_RW_I2C_BYTES];
}CXPOLARIS_I2C_WRITE_THEN_READ_STRUCT, *PCXPOLARIS_I2C_WRITE_THEN_READ_STRUCT;
typedef struct _CXPOLARIS_GET_REGISTER_STRUCT
{
BYTE len;
BYTE address[2];
BYTE buffer[CXPOLARIS_MAX_REGISTER_BYTES];
}CXPOLARIS_GET_REGISTER_STRUCT, *PCXPOLARIS_GET_REGISTER_STRUCT;
typedef struct _CXPOLARIS_SET_REGISTER_STRUCT
{
BYTE len;
BYTE address[2];
BYTE buffer[CXPOLARIS_MAX_REGISTER_BYTES];
}CXPOLARIS_SET_REGISTER_STRUCT, *PCXPOLARIS_SET_REGISTER_STRUCT;
typedef struct _CXPOLARIS_I2C_PERIOD_STRUCT
{
BYTE value;
}CXPOLARIS_I2C_PERIOD_STRUCT, *PCXPOLARIS_I2C_PERIOD_STRUCT;
typedef struct _CXPOLARIS_GPIO_STRUCT
{
BYTE gpio_bit[4]; //direction of 32 GPIO pins, input(0) or output(1)
BYTE gpio_value[4]; //value of 32 GPIO pins, Logic high(1) or low(0)
BYTE len;
BYTE request;
}CXPOLARIS_GPIO_STRUCT, *PCXPOLARIS_GPIO_STRUCT;
/* The next 3 structures are added for call back functions from Fulcrum
Any changes have to be conveyed back to Fulcrum team */
typedef void (*DEMOD_CALLBACK_ROUTINE)(void *p_context,DWORD if_freq, BOOL spectral_invert, ULONG mode );
typedef void (*GEN_SI_TUNERCALLBACK_ROUTINE)(void *p_DIF, DWORD command, void* callback_context);
typedef struct _SW_PRIVATE_STRUCT
{
DEMOD_CALLBACK_ROUTINE p_callback;
GEN_SI_TUNERCALLBACK_ROUTINE p_gen_si_tuner_callback;
void* p_context;
DWORD xtal_freq;
DWORD saw_freq;
DWORD saw_type; // One of SIDEWINDER_SAW_TYPE
}SW_PRIVATE_STRUCT, *PSW_PRIVATE_STRUCT;
typedef struct _SW_PRIVATE_CALLBACK
{
void *p_context;
DWORD if_freq;
BOOL spectral_invert;
ULONG mode;
}SW_PRIVATE_CALLBACK, *PSW_PRIVATE_CALLBACK;
typedef struct _SW_PRIVATE_GEN_SI_TUNER_CALLBACK
{
void *p_DIF;
DWORD command;
DWORD callback_context;
}SW_PRIVATE_GEN_SI_TUNER_CALLBACK, *PSW_PRIVATE_GEN_SI_TUNER_CALLBACK;
typedef enum {
CXPOLARIS_DIAG_PROP_I2C_WRITE = 0,
CXPOLARIS_DIAG_PROP_I2C_READ = 1,
CXPOLARIS_DIAG_PROP_I2C_WRITE_THEN_READ = 2,
CXPOLARIS_GET_REGISTER = 3,
CXPOLARIS_SET_REGISTER = 4,
CXPOLARIS_GET_I2C_PERIOD = 5,
CXPOLARIS_SET_I2C_PERIOD = 6,
CXPOLARIS_DIAG_PROP_RELOAD_MERLIN_FIRMWARE = 7,
CXPOLARIS_DIAG_PROP_I2C_DIGITAL_WRITE = 8,
CXPOLARIS_DIAG_PROP_I2C_DIGITAL_WRITE_THEN_READ = 9,
CXPOLARIS_DIAG_PROP_SW_PRV_GET = 10,
CXPOLARIS_DIAG_PROP_SW_PRV_CB = 11,
CXPOLARIS_DIAG_PROP_SW_PRV_GEN_SI_TUNER_CB = 12,
CXPOLARIS_GET_GPIO = 13,
CXPOLARIS_SET_GPIO = 14
} CXPOLARIS_DIAGNOSTIC_PROPERTIES;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -