📄 hamaro_pwrscan.h
字号:
/* hamaro_pwrscan.h */
/*+++ *******************************************************************\
*
* Abstract:
*
* Hamaro power scan FSM header.
*
* Created: 12/15/2005
*
*
* 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.
* ---------------------------------------------------------------
*
* Author: Amar Puttur
*
* Module Revision Id:
*
* $Header: hamaro_pwrscan.h, 1, 2006-4-8 1:51:56, ShenWei Wang$
*
* Copyright (c) 2005, 2006 Conexant Systems, Inc.
* All rights reserved.
*
\******************************************************************* ---*/
#ifndef _HAMARO_PWRSCAN_H_
#define _HAMARO_PWRSCAN_H_
#include "hamaro.h"
#include "hamaro_fsm.h"
#if HAMARO_SCAN_THE_SKY
#define PWRSCAN_AGC_THRESHOLD 35
#define PWRSCAN_SAMPLE_RATE 98333333UL /* Fsample = pll_mult*10.000/6=99.42 MHz */
typedef struct _hamaro_pwrscan_input_
{
unsigned long tuner_freq_hz;
unsigned long upper_freq_limit_hz;
unsigned long symbol_rate_khz; /* Match filter clock */
unsigned long step_size_hz;
unsigned char search_span_mhz;
unsigned char bw_symbol_rate_mhz; /* For tuner BW calculation */
unsigned short observation_window;
BOOL full_scan;
BOOL stitch;
BOOL smooth;
} HAMARO_PWRSCAN_INPUT;
typedef struct _hamaro_pwrscan_data_
{
HAMARO_PWRSCAN_INPUT power_scan_input;
unsigned short number_freq_cnt;
int center_frequency_hz;
int total_freq_offset_hz;
int center_frequency_upperbound_hz;
unsigned char offset;
int frequency_step_hz;
int initial_freq_step;
int tuner_freq_khz;
int abs_freq_khz;
int curr_abs_freq_khz;
int delta_abs_freq_khz;
unsigned short reg_value;
unsigned short actual_freq_count;
unsigned long power_index;
unsigned long abs_freq_index;
unsigned short iter;
unsigned short max_number_of_sets;
unsigned long abs_freq_hz;
unsigned long actual_tuner_frequency;
BOOL pll_lock;
BOOL b_last_set;
BOOL b_abort;
BOOL read_agc;
int forever;
unsigned long max_index;
unsigned long symbol_rate_read;
unsigned char number_of_segments;
} HAMARO_PWRSCAN_DATA;
typedef struct _hamaro_pwrscan_buffer_info_
{
unsigned long start_freq_hz;
unsigned long end_freq_hz;
unsigned short start_freq_index;
unsigned short end_freq_index;
unsigned short filled_buffer_length; /* per segment */
unsigned short max_power_reading;
signed char agcacc;
} HAMARO_PWRSCAN_BUFFER_INFO;
extern FSM pwr_scan_fsm;
/* Main function */
void PWRSCAN_Start(FSM *fsm, HAMARO_PWRSCAN_INPUT* p_power_scan_input);
/* Misc. functions */
unsigned short PWRSCAN_GetMaxRawPowerReading();
BOOL PWRSCAN_IsBufferEmpty();
void PWRSCAN_SetAAGCFilter(BOOL value);
BOOL PWRSCAN_AAGCControl(BOOL freeze);
BOOL PWRSCAN_BTLAccClear();
BOOL PWRSCAN_Enable(BOOL enable);
unsigned short PWRSCAN_FindNearestStartIndex(unsigned long frequency_hz);
unsigned short PWRSCAN_GetScaledMaxPowerReading();
int PWRSCAN_GetAGCFromFreq(unsigned long frequency); /* DEBUG ONLY */
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
extern BOOL PWRSCAN_GetSegmentLength(unsigned char* p_segment_len);
extern BOOL PWRSCAN_GetSegmentData(unsigned char index, HAMARO_PWRSCAN_BUFFER_INFO* p_data);
extern BOOL PWRSCAN_StitchPowerScanSegments(); /* used for main buffer */
extern BOOL PWRSCAN_SmoothingFilter(); /* used for main buffer */
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* HAMARO_SCAN_THE_SKY */
#endif /* _HAMARO_PWRSCAN_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -