⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hamaro_sdc.c

📁 QPSK Tuner details, for conexant chipset.
💻 C
📖 第 1 页 / 共 5 页
字号:
/*****************************************************************************/
/* STS_MoveLeft */
/* f2 = f1; f1 = (f0 + f1)/2; f0 remains same */
/*****************************************************************************/
void 
STS_MoveLeft()
{
    unsigned short* p_power_reading = 0;
    unsigned long*  p_freq_reading = 0;

    STS_PrintSamples("STS_MoveLeft--");

    if (STS_GetUseMainBuffer() == True)
    {
        p_power_reading = &s_power_spectrum_data.power[0]; 
        p_freq_reading  = &s_power_spectrum_data.abs_freq[0]; 
    }
    else
    {
        p_power_reading = &s_power_spectrum_data.sub_power[0]; 
        p_freq_reading  = &s_power_spectrum_data.sub_abs_freq[0]; 
    }

    s_power_spectrum_data.s_sts_sample.p_freq[2]  = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];
    s_power_spectrum_data.s_sts_sample.p_freq[1]  = &p_freq_reading[s_iter+(s_power_spectrum_data.s_sts_sample.step/2)];
    s_power_spectrum_data.s_sts_sample.p_freq[0]  = &p_freq_reading[s_iter];

    s_power_spectrum_data.s_sts_sample.p_power[2] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];
    s_power_spectrum_data.s_sts_sample.p_power[1] = &p_power_reading[s_iter+(s_power_spectrum_data.s_sts_sample.step/2)];
    s_power_spectrum_data.s_sts_sample.p_power[0] = &p_power_reading[s_iter];

    STS_PrintSamples("--STS_MoveLeft");
}

/*****************************************************************************/
/* STS_MoveRight */
/* f0 = f1; f1 = (f1 + f2)/2; f2 remains same */
/*****************************************************************************/
void 
STS_MoveRight()
{
    unsigned short* p_power_reading = 0;
    unsigned long*  p_freq_reading = 0;

    STS_PrintSamples("STS_MoveRight--");

    if (STS_GetUseMainBuffer() == True)
    {
        p_power_reading = &s_power_spectrum_data.power[0]; 
        p_freq_reading  = &s_power_spectrum_data.abs_freq[0]; 
    }
    else
    {
        p_power_reading = &s_power_spectrum_data.sub_power[0]; 
        p_freq_reading  = &s_power_spectrum_data.sub_abs_freq[0]; 
    }

    s_power_spectrum_data.s_sts_sample.p_freq[0] = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];
    s_power_spectrum_data.s_sts_sample.p_freq[1] = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step+(s_power_spectrum_data.s_sts_sample.step/2)];
    s_power_spectrum_data.s_sts_sample.p_freq[2] = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step*2];

    s_power_spectrum_data.s_sts_sample.p_power[0] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];
    s_power_spectrum_data.s_sts_sample.p_power[1] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step+(s_power_spectrum_data.s_sts_sample.step/2)];
    s_power_spectrum_data.s_sts_sample.p_power[2] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step*2];

    STS_PrintSamples("--STS_MoveRight");
}
/*****************************************************************************/
/* STS_JumpToPowerLevel                                                      */
/* Locates the next specified power level point and returns the index        */
/* retuns False if we run out of buffer.                                     */ 
/*****************************************************************************/
BOOL
STS_JumpToPowerLevel(unsigned short  start_point_power, 
                     unsigned short  start_point_index, 
                     unsigned short* p_index)
{
    unsigned short* p_power_reading = 0;
    unsigned short* p_filled_buffer_length = 0;
    short loop;
    unsigned short loop2;

    if (p_index == 0)
    {
        return (False);
    }

    if (STS_GetUseMainBuffer() == True)
    {
        p_power_reading = &s_power_spectrum_data.power[0]; 
        p_filled_buffer_length = &s_power_spectrum_data.filled_buffer_len;
    }
    else
    {
        p_power_reading = &s_power_spectrum_data.sub_power[0]; 
        p_filled_buffer_length = &s_power_spectrum_data.filled_sub_buffer_len;
    }

    if (start_point_index > *p_filled_buffer_length)
    {
        return (False);
    }

    if (STS_GetUseMainBuffer() == True)
    {
        loop2 = start_point_index+1;
        for (; loop2 < *p_filled_buffer_length; loop2++)
        {
            if (p_power_reading[loop2] <= start_point_power)
            {
                *p_index = loop2 - STS_FALLEDGE_START_INDEX_OFFSET; 
                return (True);
            }
        }
    }
    else
    {
        loop = start_point_index-1;
        for (; loop >= 0; loop--)
        {
            if (p_power_reading[loop] <= start_point_power)
            {
                *p_index = loop + STS_FALLEDGE_START_INDEX_OFFSET; 
                return (True);
            }
        }
    }
    return(True);
}


/*****************************************************************************/
/* STS_MoveExInit */
/*****************************************************************************/
static unsigned short s_move_step;
static unsigned short s_f0_index, s_f1_index, s_f2_index;
void STS_MoveExInit(unsigned short max_buffer_length) 
{
    unsigned short* p_power_reading = 0;
    unsigned long*  p_freq_reading = 0;

    if (STS_GetUseMainBuffer() == True)
    {
        p_power_reading = &s_power_spectrum_data.power[0]; 
        p_freq_reading  = &s_power_spectrum_data.abs_freq[0]; 
    }
    else
    {
        p_power_reading = &s_power_spectrum_data.sub_power[0]; 
        p_freq_reading  = &s_power_spectrum_data.sub_abs_freq[0]; 
    }

    s_move_step = max_buffer_length >> 1;

    s_f0_index = 0;
    s_f1_index = s_move_step;
    s_f2_index = max_buffer_length-1;

    s_power_spectrum_data.s_sts_sample.p_freq[0] = &p_freq_reading[s_f0_index];
    s_power_spectrum_data.s_sts_sample.p_freq[1] = &p_freq_reading[s_f1_index];    
    s_power_spectrum_data.s_sts_sample.p_freq[2] = &p_freq_reading[s_f2_index];

    s_power_spectrum_data.s_sts_sample.p_power[0] = &p_power_reading[s_f0_index];
    s_power_spectrum_data.s_sts_sample.p_power[1] = &p_power_reading[s_f1_index];
    s_power_spectrum_data.s_sts_sample.p_power[2] = &p_power_reading[s_f2_index];

    STSDBG_WR_INT_LN("STS_MoveExInit s_index2 = ",    max_buffer_length);
    STSDBG_WR_INT_LN("STS_MoveExInit s_move_step = ", s_move_step);
}

/*****************************************************************************/
/* STS_GetSampleIndexEx */
/*  */
/*****************************************************************************/
unsigned short 
STS_GetSampleIndexEx(unsigned char selection)
{
    switch (selection)
    {
    case STS_SAMPLE_LEFT: return s_f0_index;    
    case STS_SAMPLE_RIGHT: return s_f2_index;
    case STS_SAMPLE_MIDDLE: default: return s_f1_index;
    }
}

/*****************************************************************************/
/* STS_MoveLeftEx */
/* f2 = f1; f1 = (f0 + f1)/2; f0 remains same */
/*****************************************************************************/
BOOL 
STS_MoveLeftEx()
{
    unsigned short* p_power_reading = 0;
    unsigned long*  p_freq_reading = 0;

    STS_PrintSamples("STS_MoveLeftEx--");
    STSDBG_WR_INT_LN("STS_MoveLeftEx Step = ", s_move_step);

    if (s_move_step == 0)
    {
        STSDBG_WR_STR("STS_MoveLeftEx : Cannot step anymore.", True);
        return (False);
    }

    if (STS_GetUseMainBuffer() == True)
    {
        p_power_reading = &s_power_spectrum_data.power[0]; 
        p_freq_reading  = &s_power_spectrum_data.abs_freq[0]; 
    }
    else
    {
        p_power_reading = &s_power_spectrum_data.sub_power[0]; 
        p_freq_reading  = &s_power_spectrum_data.sub_abs_freq[0]; 
    }

    s_f2_index = s_f1_index;
    s_power_spectrum_data.s_sts_sample.p_freq [2] = &p_freq_reading[s_f2_index];
    s_power_spectrum_data.s_sts_sample.p_power[2] = &p_power_reading[s_f2_index];

    s_power_spectrum_data.s_sts_sample.p_freq [0] = &p_freq_reading[s_f0_index];    
    s_power_spectrum_data.s_sts_sample.p_power[0] = &p_power_reading[s_f0_index];

    s_f1_index = (s_f0_index + s_f2_index)/2;
    s_move_step = s_move_step >> 1;

    s_power_spectrum_data.s_sts_sample.p_freq [1] = &p_freq_reading[s_f1_index];
    s_power_spectrum_data.s_sts_sample.p_power[1] = &p_power_reading[s_f1_index];

    STS_PrintSamples("--STS_MoveLeftEx");
    return (True);
}

/*****************************************************************************/
/* STS_MoveRightEx */
/* f0 = f1; f1 = (f1 + f2)/2; f2 remains same */
/* Returns False when we cannot move anymore. Step = 1 */
/*****************************************************************************/
BOOL 
STS_MoveRightEx()
{
    unsigned short* p_power_reading = 0;
    unsigned long*  p_freq_reading = 0;

    STS_PrintSamples("STS_MoveRightEx--");
    STSDBG_WR_INT_LN("STS_MoveRightEx Step = ", s_move_step);

    if (s_move_step == 0)
    {
        STSDBG_WR_STR("STS_MoveRightEx : Cannot step anymore.", True);
        return (False);
    }

    if (STS_GetUseMainBuffer() == True)
    {
        p_power_reading = &s_power_spectrum_data.power[0]; 
        p_freq_reading  = &s_power_spectrum_data.abs_freq[0]; 
    }
    else
    {
        p_power_reading = &s_power_spectrum_data.sub_power[0]; 
        p_freq_reading  = &s_power_spectrum_data.sub_abs_freq[0]; 
    }

    s_f0_index = s_f1_index;
    s_power_spectrum_data.s_sts_sample.p_freq [0] = &p_freq_reading [s_f0_index];
    s_power_spectrum_data.s_sts_sample.p_power[0] = &p_power_reading[s_f0_index];

    s_power_spectrum_data.s_sts_sample.p_freq [2] = &p_freq_reading [s_f2_index];    
    s_power_spectrum_data.s_sts_sample.p_power[2] = &p_power_reading[s_f2_index];

    s_f1_index = (s_f0_index + s_f2_index)/2;
    s_move_step = s_move_step >> 1;

    s_power_spectrum_data.s_sts_sample.p_freq [1] = &p_freq_reading [s_f1_index];
    s_power_spectrum_data.s_sts_sample.p_power[1] = &p_power_reading[s_f1_index];

    STS_PrintSamples("--STS_MoveRightEx");    

    return (True);
}

/*****************************************************************************/
/* STS_StepForward */
/* f0 = f1; f1 = f2; f2 = (new f1 + step) */
/*****************************************************************************/
BOOL 
STS_StepForward()
{
    unsigned short* p_power_reading = 0;
    unsigned long*  p_freq_reading = 0;

    STS_PrintSamples("STS_StepForward--");

    if (STS_GetUseMainBuffer() == True)
    {
        p_power_reading = &s_power_spectrum_data.power[0]; 
        p_freq_reading  = &s_power_spectrum_data.abs_freq[0]; 
    }
    else
    {
        p_power_reading = &s_power_spectrum_data.sub_power[0]; 
        p_freq_reading  = &s_power_spectrum_data.sub_abs_freq[0]; 
    }

        if (s_power_spectrum_data.s_sts_sample.step == 0)
                s_power_spectrum_data.s_sts_sample.step = 1;
                
    if (STS_MeasurementIterNext(s_power_spectrum_data.s_sts_sample.step) == True)
    {
        s_power_spectrum_data.s_sts_sample.p_freq[0]  = &p_freq_reading[s_iter];
        s_power_spectrum_data.s_sts_sample.p_freq[1]  = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];    
        s_power_spectrum_data.s_sts_sample.p_freq[2]  = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step*2];

        s_power_spectrum_data.s_sts_sample.p_power[0] = &p_power_reading[s_iter];
        s_power_spectrum_data.s_sts_sample.p_power[1] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];
        s_power_spectrum_data.s_sts_sample.p_power[2] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step*2];
    }
    else
    {
        s_power_spectrum_data.s_sts_sample.p_freq[0]  = &p_freq_reading[s_iter];
        s_power_spectrum_data.s_sts_sample.p_freq[1]  = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];    
        s_power_spectrum_data.s_sts_sample.p_freq[2]  = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step*2];

        s_power_spectrum_data.s_sts_sample.p_power[0] = &p_power_reading[s_iter];
        s_power_spectrum_data.s_sts_sample.p_power[1] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];
        s_power_spectrum_data.s_sts_sample.p_power[2] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step*2];
        STSDBG_WR_STR("STS_StepForward:Cannot step forward", True);
        return (False);
    }

    STS_PrintSamples("--STS_StepForward");
    return (True);
}

/*****************************************************************************/
/* STS_StepBackward */
/* f2 = f1; f1 = f0; f0 = (new f1 - step) */
/*****************************************************************************/
BOOL 
STS_StepBackward()
{
    unsigned short* p_power_reading = 0;
    unsigned long*  p_freq_reading  = 0;

    STS_PrintSamples("STS_StepBackward--");

    if (STS_GetUseMainBuffer() == True)
    {
        p_power_reading = &s_power_spectrum_data.power[0]; 
        p_freq_reading  = &s_power_spectrum_data.abs_freq[0]; 
    }
    else
    {
        p_power_reading = &s_power_spectrum_data.sub_power[0]; 
        p_freq_reading = &s_power_spectrum_data.sub_abs_freq[0]; 
    }

        if (s_power_spectrum_data.s_sts_sample.step == 0)
                s_power_spectrum_data.s_sts_sample.step = 1;
                
    if (STS_MeasurementIterPrev(s_power_spectrum_data.s_sts_sample.step) == True)
    {
        s_power_spectrum_data.s_sts_sample.p_freq[0] = &p_freq_reading[s_iter];
        s_power_spectrum_data.s_sts_sample.p_freq[1] = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];    
        s_power_spectrum_data.s_sts_sample.p_freq[2] = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step*2];

        s_power_spectrum_data.s_sts_sample.p_power[0] = &p_power_reading[s_iter];
        s_power_spectrum_data.s_sts_sample.p_power[1] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];
        s_power_spectrum_data.s_sts_sample.p_power[2] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step*2];
    }
    else
    {
        s_power_spectrum_data.s_sts_sample.p_freq[0] = &p_freq_reading[s_iter];
        s_power_spectrum_data.s_sts_sample.p_freq[1] = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];    
        s_power_spectrum_data.s_sts_sample.p_freq[2] = &p_freq_reading[s_iter+s_power_spectrum_data.s_sts_sample.step*2];

        s_power_spectrum_data.s_sts_sample.p_power[0] = &p_power_reading[s_iter];
        s_power_spectrum_data.s_sts_sample.p_power[1] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step];
        s_power_spectrum_data.s_sts_sample.p_power[2] = &p_power_reading[s_iter+s_power_spectrum_data.s_sts_sample.step*2];
        return (False);
    }

    STS_PrintSamples("--STS_StepBackward");
    return (True);
}

/*****************************************************************************/
unsigned short s_sts_edge = STS_EDGE_UNKNOWN;
/****************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -