#0016: 新增变焦功能的适配

This commit is contained in:
zhengxuan.zhang
2024-12-23 13:55:43 +08:00
parent edeed6bb0e
commit 36cff662a5
6 changed files with 2543 additions and 2520 deletions
+10 -8
View File
@@ -145,9 +145,8 @@ HSI_API HSI_STATUS WINAPI HSI_SHUTDOWM()
////////////////////////////////////////////////////////////////////////////////
// MOTION API 运动相关API
///////////////////////////////////////////////////////////////////////////////
#pragma region Motion API
#pragma region Motion API Phase 1
#pragma region 第一阶段实现的API功能
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_STARTUP(bool bHome)
{
@@ -378,12 +377,6 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_IS_SUPPORTED(UINT& Types)
}
return rStatus;
}
#pragma endregion
#define USE_Motion_API
#ifdef USE_Motion_API
#pragma region 后续考虑
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_GET_FOCUSSPEED_XYZ(double& Speed)
@@ -415,6 +408,15 @@ HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_FOCUSSPEED_XYZ(double Speed)
return rStatus;
}
#pragma endregion
#define USE_Motion_API
#ifdef USE_Motion_API
#pragma region 后续考虑
//===========================================================================
HSI_API HSI_STATUS WINAPI HSI_MOTION_SET_SPEED_XYZ(double Speed)
{
@@ -122,6 +122,9 @@ copy "$(TargetDir)$(ProjectName).dll" "D:\HSI_Sevenocean_EF3.dll" </Command>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<None Include="ClassDiagram1.cd" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
@@ -22,4 +22,7 @@
<ClInclude Include="SevenOcean\CMMIO_SERIAL.H" />
<ClInclude Include="ACS\ACSC.h" />
</ItemGroup>
<ItemGroup>
<None Include="ClassDiagram1.cd" />
</ItemGroup>
</Project>
File diff suppressed because it is too large Load Diff
+83 -78
View File
@@ -70,7 +70,7 @@ enum MOTOR_CMD //第二级指令
CT_MOTOR_UPDATE, // up date all the aixs
};
enum MOTOR_START_POSOTION //
enum MOTOR_START_POSOTION //
{
INTERPOLATION = 0x61,
//插补
@@ -154,14 +154,14 @@ public:
HSI_STATUS Startup(HWND _hWnd, bool _bOfflineOnly) override;
/**
* \brief EF3固件版本
* \param version
* \return
* \param version
* \return
*/
HSI_STATUS GetFirmwareVersion(byte* version);
/**
* \brief
* \param bHomed
* \return
* \param bHomed
* \return
*/
HSI_STATUS HomeMachine(bool bHomed);
HSI_STATUS HomeMachineOld(bool bHomed);
@@ -172,15 +172,15 @@ public:
/**
* \brief
* \param bHomed
* \return
* \return
*/
HSI_STATUS IsHomed(bool& bHomed);
HSI_STATUS IsHomedOld(bool& bHomed);
/**
* \brief
* \param AxisNum
* \param Speed
* \return
* \param AxisNum
* \param Speed
* \return
*/
HSI_STATUS GetSpeedXyz(int AxisNum, double& Speed);
HSI_STATUS GetSpeedXyzOld(int AxisNum, double& Speed);
@@ -191,8 +191,13 @@ public:
* \return
*/
HSI_STATUS SetSpeedXyz(double Speed);
// 获取变焦速度
HSI_STATUS GetFocusSpeedOld(double& Speed);
HSI_STATUS GetFocusSpeed(double& Speed);
// 设置变焦速度
HSI_STATUS SetFocusSpeedOld(double Speed);
HSI_STATUS SetFocusSpeed(double Speed);
HSI_STATUS GetAccelerationXyz(double& AccelX, double& AccelY, double& AccelZ);
HSI_STATUS SetAccelerationXyz(double AccelX, double AccelY, double AccelZ);
HSI_STATUS GetSpeedR(double& Speed);
@@ -203,27 +208,27 @@ public:
HSI_STATUS GetRefreshDeadBand(double& Deadband);
/**
* \brief Jog运动,JOG才有CNC运行的速度是合成速度
* \param AxisTypes
* \param Speed
* \return
* \param AxisTypes
* \param Speed
* \return
*/
HSI_STATUS Jog(UINT AxisTypes, double Speed);
HSI_STATUS JogOld(UINT AxisTypes, double Speed);
HSI_STATUS JoyStick(UINT AxisTypes, long Speed);
/**
* \brief
* \return
* \brief
* \return
*/
HSI_STATUS StopJog();
HSI_STATUS StopJogOld();
HSI_STATUS StopJogEx(UINT AxisTypes);
/**
* \brief
* \param AxisTypes
* \param EncPos
* \param PrfPos
* \param Count
* \return
* \brief
* \param AxisTypes
* \param EncPos
* \param PrfPos
* \param Count
* \return
*/
HSI_STATUS GetPositionEncPrfMulti(UINT AxisTypes, double* EncPos, double* PrfPos, int Count);
HSI_STATUS GetPositionEncPrfMultiOld(UINT AxisTypes, double* EncPos, double* PrfPos, int Count);
@@ -233,13 +238,13 @@ public:
* \param PositionX X坐标
* \param PositionY Y坐标
* \param PositionZ Z坐标
* \param Time
* \return
* \param Time
* \return
*/
HSI_STATUS GetPositionXyz(UINT AxisTypes, double& PositionX, double& PositionY, double& PositionZ, double& Time);
HSI_STATUS GetPositionXyzOld(UINT AxisTypes, double& PositionX, double& PositionY, double& PositionZ, double& Time);
HSI_STATUS GetPositionXyzaProbe(UINT AxisTypes, double& PositionX, double& PositionY, double& PositionZ,
double& PositionA);
double& PositionA);
HSI_STATUS GetEncoderXyz(long* lEncoderVal);//获取编码器位置
HSI_STATUS GetEncoderXyzOld(long* lEncoderVal);
HSI_STATUS JogProbe(UINT AxisTypes, double Speed);
@@ -247,12 +252,12 @@ public:
int CaculateStepMotorACC(int pos, int maxacc, int minacc);
/**
* \brief
* \param AXIS
* \param motionParam
* \return
* \param AXIS
* \param motionParam
* \return
*/
HSI_STATUS HSI_Motion::GetSingleAxisParam(int AXIS, double motionParam[5]); //获取单轴运动参数
HSI_STATUS HSI_Motion::SetSingleAxisParam(int AXIS, double motionParam[5]); //设置单轴运动参数
HSI_STATUS GetSingleAxisParam(int AXIS, double motionParam[5]); //获取单轴运动参数
HSI_STATUS SetSingleAxisParam(int AXIS, double motionParam[5]); //设置单轴运动参数
/**
* \brief
* \param AxisTypes
@@ -260,15 +265,15 @@ public:
* \param PositionY Y坐标
* \param PositionZ Z坐标
* \param eType
* \param dFlyRadius
* \return
* \param dFlyRadius
* \return
*/
HSI_STATUS SetPositionXyz(UINT AxisTypes, double PositionX, double PositionY, double PositionZ,
HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
HSI_STATUS SetPositionXyzOld(UINT AxisTypes, double PositionX, double PositionY, double PositionZ,
HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
HSI_STATUS SetPositionXyza(UINT AxisTypes, double PositionX, double PositionY, double PositionZ, double PositionA,
HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
HSI_MOTION_MOVE_TYPE eType, double dFlyRadius);
HSI_STATUS SetPositionXyzCache(UINT AxisTypes, HSI_MOTION_MOVE_TYPE eType, int DataCount, Point* CacheData);
HSI_STATUS GetPositionXyzCache(unsigned char* CacheData, int& DataCount);
HSI_STATUS GetPositionR(UINT AxisTypes, double& PositionR, double& Time);
@@ -277,32 +282,32 @@ public:
HSI_STATUS Load_EF3_Motion_Inifile(CString GoogolIniFile);
HSI_STATUS Load_EF3_Config_Inifile(CString GoogolIniFile);
/**
* \brief
* \return
* \brief
* \return
*/
HSI_STATUS AbortMotion();
HSI_STATUS AbortMotionOld();
/**
* \brief
* \param IOChannel
* \param _Status
* \return
* \brief
* \param IOChannel
* \param _Status
* \return
*/
HSI_STATUS GetDIO(UINT IOChannel, UINT& _Status);
HSI_STATUS GetDIOOld(UINT IOChannel, UINT& _Status);
/**
* \brief
* \param IOChannel
* \param _Status
* \return
* \brief
* \param IOChannel
* \param _Status
* \return
*/
HSI_STATUS SetDIO(UINT IOChannel, UINT _Status);
HSI_STATUS SetDIOOld(UINT IOChannel, UINT _Status);
HSI_STATUS GetAxisStatus(int* _Status);
HSI_STATUS GetAppPath(CString& Path);
/**
* \brief
* \return
* \brief
* \return
*/
HSI_STATUS Shutdown() override;
HSI_STATUS IsSupportedEx(UINT AxisTypes, UINT& Types);
@@ -319,7 +324,7 @@ public:
HSI_STATUS GetAccelerationEx(UINT AxisTypes, double& Accel);
HSI_STATUS SetAccelerationEx(UINT AxisTypes, double Accel);
HSI_STATUS SetTriggerLight(int triggleNum, int delayLighting, int delayLightBefor, int triggleMode,
double* Intensities);
double* Intensities);
HSI_STATUS DCCPPStartPoint(double* startPoint);
HSI_STATUS DCCScanSetData(UINT AxisTypes, HSI_SCAN_MOTION_TYPE eType, UINT lTrigNumber, double* dTrigDis);// 下发触发间距,轴、等间距或者等时间、触发数量、间距
@@ -334,16 +339,16 @@ public:
HSI_STATUS DCCScanSetDataWithPoints(UINT AxisTypes, double speed, Point3D* points, UINT numPoints); // 直线电机平台新增,三轴轨迹规划
HSI_STATUS DCCForLightPlate();
HSI_STATUS IOStep(bool RunSts);
HSI_STATUS IOprogram(byte* SendData, int length);
HSI_STATUS FindOriginTest(bool state);
HSI_STATUS StartPlcJob(int* CamerasDis, int* BinsDis, int SubArea, int filterTime1, int filterTime2,
int pluseSumDis);
int pluseSumDis);
HSI_STATUS SendBinResult(int* BinResult);
HSI_STATUS GetTriggleCount(int* nCount, int& nArea);
HSI_STATUS GluePPSpnts(int* ppsDir, double* gluePPSPos, int* delayLightBefore, int* lightTime, double* lightData,
int num);
int num);
HSI_STATUS GlueDispenser(int* index, int* cirdirection, double* gluePos, int num);
HSI_STATUS GlueDispenserStart(double xOffset, double yOffset, double qOffset);
HSI_STATUS GetPntsDistance(double& ptpDistance, int& spTimeCount);
@@ -441,7 +446,7 @@ public:
UINT m_ForStatus;
int m_Set_XYZA_Reserve; //XYZA轴方向
int m_motorType; //电机类型 1为伺服电机 0为步进电机
int m_setPositionDelay; //设置定位超时
int m_setPositionDelay; //设置定位超时
int m_setPositionPrecision; //设置定位精度
int m_setPositionNum;
CString m_AppPath;//MST软件运行标志,trueMST软件已经启动,falseMST软件停止
@@ -482,7 +487,7 @@ public:
long m_ProbeCapturePos[5]; //锁存各轴的位置
double m_ProbeReturnPos; //探针触发时,调试时返回的距离mm,点击启动按钮时不起作用,默认10.0mm
int m_ProbeReturnSpeed; //探针触发后,轴的回退速度
int m_isOKGlint; //是否开启ok/ng 闪烁
int m_isOKGlint; //是否开启ok/ng 闪烁
int m_ETIPort; //外部触发拍照输入端口号
int m_axisStatus; //运动各轴的状态
int m_axisAlarmStatus; //轴报警状态
@@ -494,7 +499,7 @@ public:
int m_IsCollectPos; //是否通过串口打印位置,与摇杆2互斥
int m_IsCloseRocker;
int m_IsLightDebug; //是否不回家也能调试灯光 0为不启用 1为启用 默认为0
int m_rockerHStartSpeed[4]; //摇杆XYZ轴高初始速度
int m_rockerHStartSpeed[4]; //摇杆XYZ轴高初始速度
int m_rockerHDriveSpeed[4]; //摇杆XYZ轴高驱动速度
int m_rockerLStartSpeed[4]; //摇杆XYZ轴低初始速度
int m_rockerLDriveSpeed[4]; //摇杆XYZ轴低驱动速度
@@ -511,7 +516,7 @@ public:
bool jogMoving;
bool jogDirFlag;
bool m_bEmergencyState;
bool bUseGlueDispenser; //是否开启点胶
bool bUseGlueDispenser; //是否开启点胶
int m_iGlueStartSpeed;
int m_iGlueDriveSpeed;
int m_iGlueAccSpeed;
@@ -598,38 +603,38 @@ public:
VOID EventCallback(sHSIEventProperties& sEventProp);
/**
* \brief
* \param AxisNum
* \param Speed
* \param DriveSpeed
* \param StartSpeed
* \param AccLine
* \param DecLine
* \param AccCurve
* \param DecCurve
* \return
* \param AxisNum
* \param Speed
* \param DriveSpeed
* \param StartSpeed
* \param AccLine
* \param DecLine
* \param AccCurve
* \param DecCurve
* \return
*/
int SpeedPercent(int AxisNum, double& Speed, int& DriveSpeed, int& StartSpeed, int& AccLine, int& DecLine,
int& AccCurve, int& DecCurve);
int& AccCurve, int& DecCurve);
/**
* \brief , ;
* \param AxisNum
* \param Speed
* \param DriveSpeed
* \param StartSpeed
* \param AccLine
* \param DecLine
* \param AccCurve
* \param DecCurve
* \return
* \param AxisNum
* \param Speed
* \param DriveSpeed
* \param StartSpeed
* \param AccLine
* \param DecLine
* \param AccCurve
* \param DecCurve
* \return
*/
bool SpeedPercentJoyStick(int AxisNum, long& Speed, int& DriveSpeed, int& StartSpeed, int& AccLine, int& DecLine,
int& AccCurve, int& DecCurve);
int& AccCurve, int& DecCurve);
void HomeJogGearsChoice(int AxisType, int JogGears, int& DriveSpeed, int& StartSpeed, int& AccLine, int& DecLine,
int& AccCurve, int& DecCurve);
int& AccCurve, int& DecCurve);
/**
* \brief
* \param AxisTypes
* \return
* \brief
* \param AxisTypes
* \return
*/
short AxisConvertIndex(UINT AxisTypes);
short IndexConvertAxis(int Index);
+2 -2
View File
@@ -12,5 +12,5 @@
#define HSI_VERSION_REVNUM
#define HSI_VERSION_BUILD_DATE _T(__DATE__ )
#define HSI_VERSION_BUILD_TIME _T(__TIME__ )
#define HSI_FILE_DESCRIPTION "周四 2.24.08 / 13:09 "
#define HSI_FILE_CSDESCRIPTION _T("周四 2.24.08 / 13:09 ")
#define HSI_FILE_DESCRIPTION "2024.12.23 / 13:41 "
#define HSI_FILE_CSDESCRIPTION _T("2024.12.23 / 13:41 ")