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

📄 hamaro_iq.c

📁 QPSK Tuner details, for conexant chipset.
💻 C
📖 第 1 页 / 共 2 页
字号:
/* hamaro_IQ.c */

/*+++ *******************************************************************\
*
*   Copyright and Disclaimer:
*
*       ---------------------------------------------------------------
*       ALL SOFTWARE, APPLICATIONS, DOCUMENTATION, OR MATERIALS        
*       FURNISHED HEREIN IS PROVIDED *AS IS*.  CONEXANT DOES NOT MAKE  
*       ANY WARRANTIES, EITHER EXPRESS OR IMPLIED, AND HEREBY EXPRESSLY
*       DISCLAIMS ANY AND ALL SUCH WARRANTIES TO THE EXTENT PERMITTED  
*       BY LAW, INCLUDING, SPECIFICALLY, ANY IMPLIED WARRANTY ARISING  
*       BY STATUTE OR OTHERWISE IN LAW OR FROM A COURSE OF DEALING OR  
*       USAGE OF TRADE.  CONEXANT DOES NOT MAKE ANY WARRANTIES, EITHER 
*       EXPRESS OR IMPLIED, AND HEREBY EXPRESSLY DISCLAIMS ANY AND ALL 
*       SUCH WARRANTIES WITH RESPECT TO ALL SOFTWARE, APPLICATIONS,    
*       DOCUMENTATION, AND MATERIALS INCLUDING ALL IMPLIED WARRANTIES  
*       OF MERCHANTABILITY, OR OF MERCHANTABLE QUALITY, OR OF FITNESS  
*       FOR ANY PURPOSE, PARTICULAR, SPECIFIC OR OTHERWISE, OR OF      
*       NONINFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OF OTHERS,     
*       RELATING TO THE SOFTWARE, APPLICATIONS, OPERATION,             
*       DOCUMENTATION, DATA OR RESULTS GENERATED BY THE OPERATION OR   
*       USE THEREOF, AND MATERIALS PROVIDED HEREIN.  THE ENTIRE RISK AS
*       TO THE SUBSTANCE, QUALITY AND PERFORMANCE OF SOFTWARE,         
*       APPLICATIONS, AND DOCUMENTATION DESCRIBING SUCH SOFTWARE       
*       REMAINS WITH THE BUYER.                                        
*                                                                      
*       REGARDLESS OF WHETHER ANY REMEDY SET FORTH HEREIN FAILS OF ITS 
*       ESSENTIAL PURPOSE OR OTHERWISE, CONEXANT SHALL NOT BE LIABLE   
*       FOR ANY EXEMPLARY, SPECIAL, PUNITIVE, SPECULATIVE, INDIRECT,   
*       CONSEQUENTIAL OR INCIDENTAL DAMAGES OF ANY KIND (INCLUDING     
*       WITHOUT LIMITATION LOST PROFITS, LOSS OF INCOME, LOSS OF       
*       GOODWILL, OR OTHER TANGIBLE OR INTANGIBLE BUSINESS LOSS)       
*       ARISING OUT OF OR IN CONNECTION WITH, DIRECTLY OR INDIRECTLY,  
*       SOFTWARE, APPLICATIONS, DOCUMENTATION, OR ANY SERVICES OR      
*       MATERIALS PROVIDED HEREUNDER, OR USE OR INABILITY TO USE THE   
*       SOFTWARE, EVEN IF CONEXANT HAS BEEN ADVISED OF THE POSSIBILITY 
*       OF SUCH DAMAGES.                                               
*
*       Copyright (c) 2001 Conexant Systems, Inc.
*       All Rights Reserved.
*       ---------------------------------------------------------------
*
*   Module Revision Id:
*
*       $Header: hamaro_iq.c, 1, 2005-7-31 5:45:12, ShenWei Wang$
*
*   Abstract:
*
*       Contains software for capturing constellation (I and Q values)
*       data into a user-defined ring buffer.
*
\******************************************************************* ---*/

#include <stdio.h>                     /* ANSI Standard */

#include "hamaro.h"                     /* Cobra include files, ordered */

#ifdef HAMARO_INCLUDE_CONSTELLATION
/*******************************************************************************************************/
/* HAMARO_ConstON() */
/*******************************************************************************************************/
BOOL  HAMARO_ConstOn(                     /* function to turn-on the collection oc constellation data */
HAMARO_NIM    *nim,                           /* pointer to nim */
HAMARO_IQPAK  *iqpak)                         /* pointer to storage for HAMARO_IQPAK data */
{
  int  i = 0;

  /* test for valid HAMARO_NIM */
  HAMARO_DRIVER_VALIDATE_NIM(nim);

  /* test for valid iqpak */
  nim->iqpak = iqpak;
  if (HAMARO_DRIVER_ValidateNimIq(nim) == False)  return(False);

  /* clear the struct of data */
  for (i = 0 ; i < HAMARO_MAX_CONSTLIQ ; i++)
  {
    iqpak->I[i] = 0;
    iqpak->Q[i] = 0;
  }

  /* save the pointer to the alloc'd storage */
  nim->iqpak = iqpak;

  /* set the head/tail */
  iqpak->head = 0;
  iqpak->tail = 0;

  /* save the number of samples desired, clear the busy flag */
  iqpak->max = HAMARO_MAX_CONSTLIQ;
  iqpak->busy = False;

  return(True);

}  /* HAMARO_ConstON() */


/*******************************************************************************************************/
/* HAMARO_ConstOFF() */
/*******************************************************************************************************/
BOOL  HAMARO_ConstOff(                    /* function to discontinue collection of IQ data */
HAMARO_NIM   *nim)                            /* pointer to nim */
{
  /* test for valid IQ pointer */
  if (HAMARO_DRIVER_ValidateNimIq(nim) == False)  return(False);

  nim->iqpak->head = 0;
  nim->iqpak->tail = 0;

  /* kill the pointer in the nim */
  nim->iqpak = NULL;
  
  return(True);

}  /* HAMARO_ConstOFF() */


/*******************************************************************************************************/
/* HAMARO_ConstOFF() */
/*******************************************************************************************************/
int  HAMARO_ConstCount(                   /* function returning count of IQ elements stored in HAMARO_IQPAK */
HAMARO_NIM   *nim)                            /* pointer to nim */
{
  /* test for valid HAMARO_NIM, IQ pointer */
  HAMARO_DRIVER_VALIDATE_NIM(nim);
  if (HAMARO_DRIVER_ValidateNimIq(nim) == False)  return(False);

  return(HAMARO_IQ_ConstCount(nim));

}  /* HAMARO_ConstOFF() */


/*******************************************************************************************************/
/* HAMARO_ConstSetBusy() */
/*******************************************************************************************************/
BOOL  HAMARO_ConstSetBusy(                /* function set IQ busy flag (if set, suspend IQ collection) */
HAMARO_NIM    *nim,                           /* pointer to nim */
BOOL   busy_state)                     /* state: True=busy, False=not busy */
{
  /* test for valid IQ pointer */
  if (HAMARO_DRIVER_ValidateNimIq(nim) == False)  return(False);

  /* set busy state */
  nim->iqpak->busy = busy_state;
  return(True);

}  /* HAMARO_ConstSetBusy() */


/*******************************************************************************************************/
/* HAMARO_ConstGetBusy() */
/*******************************************************************************************************/
BOOL  HAMARO_ConstGetBusy(                /* function to return state of current IQ busy flag */
HAMARO_NIM    *nim)                           /* pointer to nim */
{
  /* test for valid IQ pointer */
  if (HAMARO_DRIVER_ValidateNimIq(nim) == False)  return(False);

  /* return busy state */
  return(nim->iqpak->busy);

}  /* HAMARO_ConstGetBusy() */


/*******************************************************************************************************/
/* HAMARO_ConstGetPoints() */
/*******************************************************************************************************/
BOOL           HAMARO_ConstGetPoints(     /* function to return a iqcount of IQ samples */
HAMARO_NIM            *nim,                   /* pointer to nim */
unsigned char  *ivals,                 /* storage for I portion of data */
unsigned char  *qvals,                 /* storage for Q portion of data */
int            iqcount)                /* count of IQ samples to retrieve  */
{
  int  cnt;
  int  ptr;

  /* test for valid IQ pointer */
  if (HAMARO_DRIVER_ValidateNimIq(nim) == False)  return(False);

  /* test for valid buffers */
  if (ivals == NULL || qvals == NULL)  
  {
    /* invalid pointer */
    HAMARO_DRIVER_SET_ERROR(nim,HAMARO_CONST_IQBUF);
    return(False);
  }

  /* test for minimum count of I, Q samples available to caller */
  if (iqcount > HAMARO_IQ_ConstCount(nim))
  {
    HAMARO_DRIVER_SET_ERROR(nim,HAMARO_CONST_IQLOW);
    return(False);

⌨️ 快捷键说明

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