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 + -
显示快捷键?