tpapi.c

来自「君正早期ucos系统(只有早期的才不没有打包成库),MPLAYER,文件系统,图」· C语言 代码 · 共 635 行 · 第 1/2 页

C
635
字号
    cmd[2] = serviceid & 0x00FF;
    cmd[3] = TP_SERVICE_CTRL_CMD_ADD;
    if (pf_datawrite(cmd, TP_CTRL_CMD_MAX_SIZE) != TP_CTRL_CMD_MAX_SIZE)
        return TP_RET_SEND_DATA_FAIL;
        
    TP_WAITFOR(FrameParser.CmdResponse, TP_RESPONSE_TIMEOUT_MAX, bOK);
    if (!bOK)
        return TP_RET_WAIT_RESPONSE_TIMEOUT;

    response = FrameParser.CmdResponse;
    result = FrameParser.CmdResult;
    FrameParser.CmdResponse = 0;
    FrameParser.CmdResult = 0;
    
    if (response == TP_CTRL_CMD_TYPE_SERVICE_CTRL)
    {
        if (result == TP_RET_SUC)
            return TP_RET_SUC;
        else if (result == 1)
            return TP_RET_SERVICE_ID_ERR;
        else if (result == 2)
            return TP_RET_SERVICE_TOO_MUCH;
        else
            return TP_RET_UNKNOW_ERR;
	}
    else 
        return TP_RET_RESPONSE_ERR;
}

/****************************************************************************** 
*                       tpTvUnSelectService                                   * 
*   Description: Unselect a service for play.                                 * 
*   Input:                                                                    * 
*       serviceid: Service Id, get from CSCT/SSCT                             * 
*   Output:                                                                   *
*       None                                                                  * 
*   Return:                                                                   * 
*       0:  Send command Success.                                             * 
*       -1: Send command Fail.                                                * 
*   Note:                                                                     * 
*       None                                                                  * 
*******************************************************************************/
TP_INT32 tpTvUnSelectService(TP_UINT16 serviceid)
{
    TP_UINT8 cmd[TP_CTRL_CMD_MAX_SIZE]={0};
    TP_BOOL bOK;
    TP_UINT32 response,result;

    cmd[0] = TP_CTRL_CMD_TYPE_SERVICE_CTRL;
    cmd[1] = serviceid >> 8; 
    cmd[2] = serviceid & 0x00FF;
    cmd[3] = TP_SERVICE_CTRL_CMD_REMOVE;
    if (pf_datawrite(cmd, TP_CTRL_CMD_MAX_SIZE) != TP_CTRL_CMD_MAX_SIZE)
        return TP_RET_SEND_DATA_FAIL;
        
    TP_WAITFOR(FrameParser.CmdResponse, TP_RESPONSE_TIMEOUT_MAX, bOK);
    if (!bOK)
        return TP_RET_WAIT_RESPONSE_TIMEOUT;

    response = FrameParser.CmdResponse;
    result = FrameParser.CmdResult;
    FrameParser.CmdResponse = 0;
    FrameParser.CmdResult = 0;
    
    if (response == TP_CTRL_CMD_TYPE_SERVICE_CTRL)
    {
        if (result == TP_RET_SUC)
            return TP_RET_SUC;
        else if (result == 1)
            return TP_RET_SERVICE_ID_ERR;
        else if (result == 2)
            return TP_RET_SERVICE_TOO_MUCH;
        else
            return TP_RET_UNKNOW_ERR;
	}
    else 
        return TP_RET_RESPONSE_ERR;
}

/****************************************************************************** 
*                       tpTvSetFreq                                           * 
*   Description: Send a set frequency point command.                          * 
*   Input:                                                                    * 
*       freqpointid: frequency point id get from service info                 * 
*   Output:                                                                   *
*       None                                                                  * 
*   Return:                                                                   * 
*       0:  Send command Success.                                             * 
*       -1: Send command Fail.                                                * 
*   Note:                                                                     * 
*       None                                                                  * 
*******************************************************************************/
TP_INT32 tpTvSetFreq(TP_UINT16 freqpointid)
{
    TP_UINT8 cmd[TP_CTRL_CMD_MAX_SIZE]={0};
    TP_BOOL bOK;
    TP_UINT32 response,result;

    cmd[0] = TP_CTRL_CMD_TYPE_SET_FREQ;
    cmd[1] = freqpointid >> 8;
	cmd[2] = freqpointid & 0x00FF;
    if (pf_datawrite(cmd, TP_CTRL_CMD_MAX_SIZE) != TP_CTRL_CMD_MAX_SIZE)
        return TP_RET_SEND_DATA_FAIL;
        
    TP_WAITFOR(FrameParser.CmdResponse, TP_RESPONSE_TIMEOUT_MAX, bOK);
    if (!bOK)
        return TP_RET_WAIT_RESPONSE_TIMEOUT;

    response = FrameParser.CmdResponse;
    result = FrameParser.CmdResult;
    FrameParser.CmdResponse = 0;
    FrameParser.CmdResult = 0;
    
    if (response == TP_CTRL_CMD_TYPE_SET_FREQ)
    {
        if (result == TP_RET_SUC)
            return TP_RET_SUC;
        else if (result == 1)
            return TP_RET_SERVICE_ID_ERR;
        else if (result == 2)
            return TP_RET_SERVICE_TOO_MUCH;
        else
            return TP_RET_UNKNOW_ERR;
	}
    else 
        return TP_RET_RESPONSE_ERR;
}

/****************************************************************************** 
*                       tpTvSetIQPolarity                                     * 
*   Description: Set polarity of IQ signal.                                   * 
*   Input:                                                                    * 
*       polarity: IQ polarity                                                 * 
*          0: IQ polarity is positive                                         * 
*          1: turn over IQ polarity                                           * 
*   Output:                                                                   *
*       None                                                                  * 
*   Return:                                                                   * 
*       0:  Send command Success.                                             * 
*       -1: Send command Fail.                                                * 
*   Note:                                                                     * 
*       None                                                                  * 
*******************************************************************************/
TP_INT32 tpTvSetIQPolarity(TP_UINT16 polarity)
{
    TP_UINT8 cmd[TP_CTRL_CMD_MAX_SIZE]={0};
    TP_BOOL bOK;
    TP_UINT32 response,result;

    cmd[0] = TP_CTRL_CMD_TYPE_SYS_CTRL;
    cmd[1] = TP_SYS_CTRL_DEMOD_IQ_POLARITY;
    cmd[2] = (TP_UINT8)polarity;
    
    if (pf_datawrite(cmd, TP_CTRL_CMD_MAX_SIZE) != TP_CTRL_CMD_MAX_SIZE)
        return TP_RET_SEND_DATA_FAIL;

    TP_WAITFOR(FrameParser.CmdResponse, TP_RESPONSE_TIMEOUT_MAX, bOK);
    if (!bOK)
        return TP_RET_WAIT_RESPONSE_TIMEOUT;
        
    response = FrameParser.CmdResponse;
    result = FrameParser.CmdResult;
    FrameParser.CmdResponse = 0;
    FrameParser.CmdResult = 0;

    if (response == TP_CTRL_CMD_TYPE_SYS_CTRL)
    {
        if (result == TP_RET_SUC)
            return TP_RET_SUC;
        else if (result == 1)
            return TP_RET_SERVICE_ID_ERR;
        else if (result == 2)
            return TP_RET_SERVICE_TOO_MUCH;
        else
            return TP_RET_UNKNOW_ERR;
	}
    else 
        return TP_RET_RESPONSE_ERR;
}

/****************************************************************************** 
*                       tpTvGetSignalPower                                    * 
*   Description: Get the signal power.                                        * 
*   Input:                                                                    * 
*       None                                                                  * 
*   Output:                                                                   *
*       signalpower The value is -127~+128, unit is DBm                       * 
*   Return:                                                                   * 
*       0:  command Success.                                                  * 
*       -1: command Fail.                                                     * 
*   Note:                                                                     * 
*       None                                                                  * 
*******************************************************************************/
TP_INT32 tpTvGetSignalPower(TP_INT16 *signalpower)
{
    TP_UINT8 cmd[TP_CTRL_CMD_MAX_SIZE]={0};
    TP_BOOL bOK;
    TP_UINT32 response,result;

    cmd[0] = TP_CTRL_CMD_TYPE_GET_SIGNAL_POWER;
    if (pf_datawrite(cmd, TP_CTRL_CMD_MAX_SIZE) != TP_CTRL_CMD_MAX_SIZE)
        return TP_RET_SEND_DATA_FAIL;

    TP_WAITFOR(FrameParser.CmdResponse, TP_RESPONSE_TIMEOUT_MAX, bOK);
    if (!bOK)
        return TP_RET_WAIT_RESPONSE_TIMEOUT;
        
    response = FrameParser.CmdResponse;
    result = FrameParser.CmdResult;
    FrameParser.CmdResponse = 0;
    FrameParser.CmdResult = 0;

    if (response == TP_CTRL_CMD_TYPE_GET_SIGNAL_POWER)
    {
        if (result == TP_RET_SUC)
        {
            *signalpower = (TP_INT8)FrameParser.CmdResData[0];
            return TP_RET_SUC;
        }
        else if (result == 1)
            return TP_RET_SERVICE_ID_ERR;
        else if (result == 2)
            return TP_RET_SERVICE_TOO_MUCH;
        else
            return TP_RET_UNKNOW_ERR;
	}
    else 
        return TP_RET_RESPONSE_ERR;
}

/****************************************************************************** 
*                       tpTvSelectAudioLang                                   * 
*   Description: Select a language's audio.                                   * 
*   Input:                                                                    * 
*       lang language type                                                    * 
*   Output:                                                                   *
*       None                                                                  * 
*   Return:                                                                   * 
*       0:  Success.                                                          * 
*       -1: Fail.                                                             * 
*   Note:                                                                     * 
*       None                                                                  * 
*******************************************************************************/
TP_INT32 tpTvSelectAudioLang(TP_LANGUAGE_TYPE_E lang)
{
    if (lang < TP_LANGUAGE_TYPE_CHINESE)
        return -1;
    if (lang > TP_LANGUAGE_TYPE_MAX)
        return -1;
    FrameParser.Language = lang;
    return 0;
}#define PRINT     printfint tpTvFirmwareReset(){    TP_UINT8 cmd[TP_CTRL_CMD_MAX_SIZE]={0};    TP_BOOL bOK;    TP_UINT32 response,result;    cmd[0] = 1;    cmd[1] = 1;    if (pf_datawrite(cmd, TP_CTRL_CMD_MAX_SIZE) != TP_CTRL_CMD_MAX_SIZE){        PRINT("data write error\n");        return TP_RET_SEND_DATA_FAIL;    }    TP_WAITFOR(FrameParser.CmdResponse, TP_RESPONSE_TIMEOUT_MAX, bOK);    response = FrameParser.CmdResponse;    result = FrameParser.CmdResult;    FrameParser.CmdResponse = 0;    FrameParser.CmdResult = 0;    if (result == TP_RET_SUC){        PRINT("sucess\n");        return 0;    }else{        PRINT("response error\n");       return 1;    }}int tpTvGetFirmwareVersion(){    TP_UINT8 cmd[TP_CTRL_CMD_MAX_SIZE]={0};    TP_BOOL bOK;    TP_UINT32 response,result;    cmd[0] = 9;    if (pf_datawrite(cmd, TP_CTRL_CMD_MAX_SIZE) != TP_CTRL_CMD_MAX_SIZE){        PRINT("data write error\n");        return TP_RET_SEND_DATA_FAIL;    }    TP_WAITFOR(FrameParser.CmdResponse, TP_RESPONSE_TIMEOUT_MAX, bOK);    if (!bOK){        return TP_RET_WAIT_RESPONSE_TIMEOUT;    }    response = FrameParser.CmdResponse;    result = FrameParser.CmdResult;    FrameParser.CmdResponse = 0;    FrameParser.CmdResult = 0;    if (result == TP_RET_SUC){        PRINT("sucess\n");        return response;    }else{        PRINT("response error\n");       return 1;    }}

⌨️ 快捷键说明

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