optical/NxFuncs/motions/curves.h

94 lines
2.1 KiB
C
Raw Normal View History

2025-09-04 01:45:08 +00:00
#ifndef __CURVES_H__
#define __CURVES_H__
#include "config.h"
//--------------------------------------------------
// <20><><EFBFBD>μӼ<CEBC><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u32 movement; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
float begPPS; // <20><><EFBFBD>γ<EFBFBD>ʼ<EFBFBD>ٶ<EFBFBD>
float endPPS; // <20><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
float runPPS; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
float maxPPSS; // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶ<EFBFBD>
// <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
u32 mvmtseg[3]; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>, <20>ֶε<D6B6>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>, ˵<><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
float newRunPPS; // <20>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
float newAddPPSS; // <20>µļ<C2B5><C4BC>ٶ<EFBFBD>
}TTypeCtrl;
//--------------------------------------------------
// <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
u32 TTypeCalcDisplacement(float pps1, float pps2, float ppss);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
float TTypeCalcAddPPSS(u32 disp, float pps1, float pps2);
// <20><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
float TTypeCalcEndSpd(u32 disp, float pps1, float ppss);
// <20><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD>ʱ<EFBFBD><CAB1>
float TTypeCalcRunTime(u32 disp, u32 startpps, u32 stoppps, u32 runpps, u32 addppss);
// <20><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
int TTypeCalcRunParas(TTypeCtrl * pTTypeCtrl);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD>Ƶϵ<C6B5><CFB5><EFBFBD><EFBFBD>
int TTypeCalcDivTab(u32 fin, TTypeCtrl * pTTypeCtrl, u32 * pFidvTab, u32 * pTablen);
//--------------------------------------------------
// 7<><37>S<EFBFBD>ͼӼ<CDBC><D3BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
typedef struct
{
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
u32 movement; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
float begPPS; // <20><><EFBFBD>γ<EFBFBD>ʼ<EFBFBD>ٶ<EFBFBD>
float endPPS; // <20><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
float runPPS; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶȣ<D9B6>v<EFBFBD><76>
float maxPPSS; // <20><><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC>ٶȣ<D9B6>a<EFBFBD><61>
float maxPPSSS; // <20><><EFBFBD><EFBFBD><EFBFBD>ļӼ<C4BC><D3BC>ٶȣ<D9B6>j<EFBFBD><6A>
// <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
u32 timeseg[7]; // <20>߶<EFBFBD>ʱ<EFBFBD><EFBFBD><E4B3A4>, <20><>λΪ1<CEAA><31>ʱ<EFBFBD><CAB1>Ƭ
u32 mvmtseg[7]; // <20>߶<EFBFBD>λ<EFBFBD><CEBB>, <20>ֶε<D6B6>λ<EFBFBD><CEBB><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>, ˵<><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
float newRunPPS; // <20>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
}STypeCtrl;
// <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>
u32 STypeCalcDisplacement(float pps1, float pps2, float ppss);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
float STypeCalcAddPPSS(u32 disp, float pps1, float pps2);
// <20><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD>
float STypeCalcEndSpd(u32 disp, float pps1, float ppss);
// <20><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD>ʱ<EFBFBD><CAB1>
float STypeCalcRunTime(u32 disp, u32 startpps, u32 stoppps, u32 runpps, u32 addppss);
// <20><><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>
int STypeCalcRunParas(STypeCtrl * pSTypeCtrl);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɷ<EFBFBD>Ƶϵ<C6B5><CFB5><EFBFBD><EFBFBD>
int STypeCalcDivTab(u32 fin, STypeCtrl * pSTypeCtrl, u32 * pFidvTab, u32 * pTablen);
//--------------------------------------------------
#endif