增加代码知识库;修复文档处理内容;增加API设置

This commit is contained in:
2026-05-16 20:20:10 +08:00
parent 69b49d28b2
commit 7aa3ce3294
119 changed files with 182273 additions and 793 deletions

View File

@@ -0,0 +1,155 @@
/*
* Created: 2022/11/4 11:02:40
* Author: wangzk zhengmengxing
*/
#include "..\PrjCommon\CommonDef.h"
#include "AttCtrlMain.h"
#include "AttMath.h"
//初始化,在进程初始化时候调用
void ZKDYInit(void)
{
sAttPriData *tmpAtt=(sAttPriData *)ATTCLT_DATA1_ADDR;
sAttGuidLawPara_t *pGuide=&tmpAtt->sGuidLawPara;
if(NULL==tmpAtt)
{
return;
}
memset(pGuide->TargAng, 0.0, 3*sizeof(TYPE_CAL));
memset(pGuide->TargAngRat, 0.0, 3*sizeof(TYPE_CAL));
pGuide->AttGuid_Type=0; //导引律模式
}
/***********************************************
说明:对日定向导引律
***********************************************/
void ZKDYDirSun(void)
{
sAttPriData *tmpAtt = NULL;
sAttDeterPara_t *pDeter = NULL;
sAttEnvPara_t *pEnv = NULL;
sAttGuidLawPara_t *pGuide = NULL;
tmpAtt=(sAttPriData *)ATTCLT_DATA1_ADDR;
if(NULL==tmpAtt)
{
return;
}
pDeter = &tmpAtt->sDeterPara;
pEnv = &tmpAtt->sEnvPara;
pGuide=&tmpAtt->sGuidLawPara;
if(0==pDeter->CLPAttValid)
{
return;
}
if(0x55==pEnv->bInOutShadow)
{
memcpy(pGuide->TargAng, pDeter->CLPAttAng, 3*sizeof(TYPE_CAL));
return;
}
if(0x55 == pDeter->AngToSun_ValidFlg)
{
if(pGuide->CaptureSunCnt<200)
pGuide->CaptureSunCnt++;
if(pGuide->CaptureSunCnt>=5)
{
memset(pGuide->TargAng, 0.0, 3*sizeof(TYPE_CAL));
memset(pGuide->TargAngRat, 0.0, 3*sizeof(TYPE_CAL));
return;
}
else
{
//控制卫星旋转搜索太阳
if (pDeter->CLPAttAngRatPre[0] < 0)
{
pGuide->TargAngRat[0] = - 0.1 * ANG2RADIAN; //zmx20230915
}
else
{
pGuide->TargAngRat[0] = 0.1 * ANG2RADIAN; //zmx20230915
}
}
}
else
{
pGuide->CaptureSunCnt=0;
//控制卫星旋转搜索太阳
if (pDeter->CLPAttAngRatPre[0] < 0)
{
pGuide->TargAngRat[0] = - 0.1 * ANG2RADIAN; //zmx20230915
}
else
{
pGuide->TargAngRat[0] = 0.1 * ANG2RADIAN; //zmx20230915
}
}
}
/***********************************************
说明:固定目标导引律
***********************************************/
void ZKDYTarget(void)
{
sAttPriData *tmpAtt=(sAttPriData *)ATTCLT_DATA1_ADDR;
sAttGuidLawPara_t *pGuide=&tmpAtt->sGuidLawPara;
if(NULL==tmpAtt)
{
return;
}
if((ATTMOD_MagTOSUN == tmpAtt->sModePara.WorkMode)
||(ATTMOD_WHEELTOEARTH == tmpAtt->sModePara.WorkMode)
||(ATTMOD_ATTAJUSTPRE == tmpAtt->sModePara.WorkMode)
||(ATTMOD_ORBITCTL == tmpAtt->sModePara.WorkMode)
||(ATTMOD_ATTAJUST ==tmpAtt->sModePara.WorkMode))
{
pGuide->TargAng[0]=0;
pGuide->TargAng[1]=0;
pGuide->TargAng[2]=0;
}
if((ATTMOD_ONLTOEARTH ==tmpAtt->sModePara.WorkMode)||(ATTMOD_ATTAJUST ==tmpAtt->sModePara.WorkMode))
{
pGuide->TargAng[2]=tmpAtt->sDeterPara.CLPAttAng[2];
}
}
/************************************************
说明:导引率使用
输入:导引率模式
输出:
************************************************/
void ZKDYAction(void)
{
sAttPriData *tmpAtt=(sAttPriData *)ATTCLT_DATA1_ADDR;
sAttGuidLawPara_t *pGuide=&tmpAtt->sGuidLawPara;
if(NULL==tmpAtt)
{
return;
}
//初始化
ZKDYInit();
if((ATTMOD_WhlTOSUN ==tmpAtt->sModePara.WorkMode))
{
//对日定向导引律
pGuide->AttGuid_Type=1;
ZKDYDirSun();
}
else
{
//固定目标导引律
pGuide->AttGuid_Type=2;
ZKDYTarget();
}
}