From 12b139bbb190cc21a46a60dc00c97e669505ab63 Mon Sep 17 00:00:00 2001 From: "zhengxuan.zhang" Date: Mon, 17 Feb 2025 13:19:56 +0800 Subject: [PATCH] =?UTF-8?q?#0018=20=E5=AF=B9=E4=B8=AD=E9=97=B4=E4=BB=B6?= =?UTF-8?q?=E6=96=B0=E5=A2=9ECLMS=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Explorer-Fx-1D-NTC-10- 8- 3.cct | Bin 0 -> 39404 bytes .../inspector-Status Fx-1D-NTC-10- 8- 3.cct | Bin 0 -> 39420 bytes HSI_HexagonMI_EF3/CLMS.cpp | 130 ++++++++++++++++++ HSI_HexagonMI_EF3/CLMS.h | 6 + HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj | 2 + .../HSI_HexagonMI_EF3.vcxproj.filters | 2 + HSI_HexagonMI_EF3/HSI_Motion.cpp | 13 ++ HSI_HexagonMI_EF3/version.h | 4 +- HexcalMC/Resources/start.png | Bin 0 -> 756 bytes 9 files changed, 155 insertions(+), 2 deletions(-) create mode 100644 Doc/Calibration Templates/Explorer-Fx-1D-NTC-10- 8- 3.cct create mode 100644 Doc/Calibration Templates/inspector-Status Fx-1D-NTC-10- 8- 3.cct create mode 100644 HSI_HexagonMI_EF3/CLMS.cpp create mode 100644 HSI_HexagonMI_EF3/CLMS.h create mode 100644 HexcalMC/Resources/start.png diff --git a/Doc/Calibration Templates/Explorer-Fx-1D-NTC-10- 8- 3.cct b/Doc/Calibration Templates/Explorer-Fx-1D-NTC-10- 8- 3.cct new file mode 100644 index 0000000000000000000000000000000000000000..eacaf3e4a29d4edd2d537d52c5c24682af49dcd4 GIT binary patch literal 39404 zcmeI*&2AD=6u|LYu@$P1>Z^-L+imD8t||ObfjJN$<23H^S-TroiqMS*RGFA|%Eack2>?WRp# z!5Gu;FPM@E?(K)2noX^&WNl8a8k(Z5xb0OuP0FXMe%|LvI@aX*L0^|%CL zTG7wC@r(a)uzt0d-+DNl5Bhx7nC-Fo-(DY{KYP8ttHX9`Fw|FlQeyZPPaLK&LI42- z5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0009ILKmY**5I_I{1Q0*~0R#|0 z0D*s8pwJyYpwjSsRaq*RwLZqOKcj(th@sC zdu)@PmtOVelDAS_xnbtB6NKNL;vwYLz|XAe7Kaaf0K#MkCsIA z`*TwK5NxFNnrk%Oj($V^+@z+t7frCQSX=5&FY`YAK%A+ jHQ4vsTsF{F1?xgbCKN?#3oX>TyKN?QXeNm>6KGv^B`yS? z!?(x-D2UJDMsO*_b7nGWOe?4uwD`Yp=6>YNy)(b*_RwB$(p)pXA4R@xgj=yq!&Y-W zh}sRC29w5^UT?}c#=pN8CRLkSS;^XjTs1UBTWQm+xSEtt7rngClXR@fXZn3jdX4w* zw0*iKLun;1>qal$oBsOsZvN9l@9W#oAD6dQ`}Y+$Z1(etdC~u^_2T@K*Xy@BY-jsJ z{nV!=im!O;Foh8U2q1s}0tg_000IagfB*srAb-Nt~CUA%Fk^2q1s}0tg_000IagfB*srAb<;HAr zBaGaQAlMD!q+GRWp1Ix$lA7J0b(d|t{mh-aHR~?SE!;FS!v{HoCzu}EBqQ#|UeVWN zprQW(LqnUEL%h0@uYZw=&WB4Rdc6rLhVa+YS~aLQ +/// 功能:使用MORCODE.DLL前验证使用软件是否正确,否则其他函数都不可正常调用 +/// +/// 验证内容为软件指纹文件中字符串 +/// +/// TRUE :该软件可正常调用 +/// FALSE :该软件不可正常调用 +/// +typedef BOOL(WINAPI* CLM_Login)(char* _Massage); +CLM_Login m_pCLM_Login; + +/// +/// 退出前执行一次,释放内存,记录使用信息 +/// +/// +typedef BOOL(WINAPI* CLM_Logout)(); +CLM_Logout m_pCLM_Logout; + +/// +/// 自动检查电脑中是否有当前软件的许可信息,过期/非本机电脑/其他软件 的许可证书都不会识别 +/// +/// +/// TRUE :有该软件许可证书 +/// FALSE :没有该软件许可证书 +/// +typedef BOOL(WINAPI* CLM_Login_Scope)(); +CLM_Login_Scope m_pCLM_Login_Scope; + +/// +/// 输入模块ID验证模块可用性,输入CLMS服务器中模块ID -1(如服务器中模块ID为1,则mod参数输入0) +/// +/// 模块ID-1 +/// 暂无定义 +/// +/// TRUE :该模块可用 +/// FALSE :该模块不可用 +/// +typedef BOOL(WINAPI* CLM_ModuleIsLicensed)(UINT16& _MOD, UINT16& _OnLineType); +CLM_ModuleIsLicensed m_pCLM_ModuleIsLicensed; + +/// +/// 获取到期日期 +/// +/// 月 +/// 日 +/// 年 +/// +typedef BOOL(WINAPI* CLM_GetWarrantyExpiration)(int& _Month, int& _Day, int& _Year); +CLM_GetWarrantyExpiration m_pCLM_GetWarrantyExpiration; + +/// +/// 输入模块ID获取该模块过期时间,输入CLMS服务器中模块ID -1(如服务器中模块ID为1,则mod参数输入0) +/// +/// 模块ID-1 +/// 日 +/// 月 +/// 年 +/// +/// TRUE :时间有效 +/// FALSE :该软件不可正常调用 +/// +typedef BOOL(WINAPI* CLM_GetExpirationDateFor)(const int _MOD, int& _Day, int& _Month, int& _Year); +CLM_GetExpirationDateFor m_pCLM_GetExpirationDateFor; + +BOOL CheckLicense() +{ + m_hCLM = LoadLibrary(_T("CLMTool.dll")); + if (m_hCLM) + { + //Production + m_pCLM_Login = (CLM_Login)GetProcAddress(m_hCLM, "CLM_Login"); + m_pCLM_Logout = (CLM_Logout)GetProcAddress(m_hCLM, "CLM_Logout"); + m_pCLM_Login_Scope = (CLM_Login_Scope)GetProcAddress(m_hCLM, "CLM_Login_Scope"); + m_pCLM_ModuleIsLicensed = (CLM_ModuleIsLicensed)GetProcAddress(m_hCLM, "CLM_ModuleIsLicensed"); + m_pCLM_GetExpirationDateFor = (CLM_GetExpirationDateFor)GetProcAddress(m_hCLM, "CLM_GetExpirationDateFor"); + m_pCLM_GetWarrantyExpiration = (CLM_GetWarrantyExpiration)GetProcAddress(m_hCLM, "CLM_GetWarrantyExpiration"); + } + //////////////////////////////////////////////////////////////////1登陆验证 + BOOL res = FALSE; + //Metus软件 + char* strLogin = "rsWoGvmINesgabljzJZpTmMRGMLyKxFsaxpLRZSnpsujYlboLaKwSINrFbtddgMYgsXkCLwxfVUALwfQcxWEbvZZHjrrYwRkNCBMsjfxeKyannbTIVxsrQvLUWraoysNJFcYJrYnCSabWnxgezkDbvwHLksNqdWyvrfHqKeBLyyVyVYROgizPCqVaRQLkNrSROgvbAqShNZNuzKGHjOLYiwLaXnPKgvHcXuNeNLyuGMFeDnpiipTVDrvJaoNXDTq"; + res = m_pCLM_Login(strLogin); + if (!res) + { + return res; + + //登陆验证失败 + } + + //////////////////////////////////////////////////////////////////2检查许可 + res = m_pCLM_Login_Scope(); + if (!res) + { + return res; + //检查许可失败 + } + + //////////////////////////////////////////////////////////////////3获取许可模块 + UINT16 Mod = 0;// + UINT16 OnLineType = 0;//许可状态 + res = m_pCLM_ModuleIsLicensed(Mod, OnLineType); + if (!res) + { + return res; + //登陆验证失败 + } + + //////////////////////////////////////////////////////////////////4获取许可最早到期日期 + int ModuleID = 2; + int Year, Month, Day; + res = m_pCLM_GetWarrantyExpiration(Month, Day, Year);//获取过期时间 + if (!res) + { + return res; + //登陆验证失败 + } + return res; +} diff --git a/HSI_HexagonMI_EF3/CLMS.h b/HSI_HexagonMI_EF3/CLMS.h new file mode 100644 index 0000000..765988e --- /dev/null +++ b/HSI_HexagonMI_EF3/CLMS.h @@ -0,0 +1,6 @@ +#ifndef CLMS_H_INCLUDED_ +#define CLMS_H_INCLUDED_ + +BOOL CheckLicense(); + +#endif \ No newline at end of file diff --git a/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj b/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj index 1d4b2f5..db240b2 100644 --- a/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj +++ b/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj @@ -99,6 +99,7 @@ copy "$(TargetDir)$(ProjectName).dll" "D:\HSI_Sevenocean_EF3.dll" + @@ -111,6 +112,7 @@ copy "$(TargetDir)$(ProjectName).dll" "D:\HSI_Sevenocean_EF3.dll" + diff --git a/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj.filters b/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj.filters index 790b4b0..e60de99 100644 --- a/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj.filters +++ b/HSI_HexagonMI_EF3/HSI_HexagonMI_EF3.vcxproj.filters @@ -8,6 +8,7 @@ + @@ -21,6 +22,7 @@ + diff --git a/HSI_HexagonMI_EF3/HSI_Motion.cpp b/HSI_HexagonMI_EF3/HSI_Motion.cpp index 48deb03..f2da96b 100644 --- a/HSI_HexagonMI_EF3/HSI_Motion.cpp +++ b/HSI_HexagonMI_EF3/HSI_Motion.cpp @@ -17,6 +17,7 @@ #include #include "windows.h" #include "ACS/ACSC.h" //寮曞叆ACS杩愬姩鎺у埗鍗″ご鏂囦欢 +#include "ClMS.h" using namespace std; #ifdef _DEBUG @@ -244,6 +245,18 @@ HSI_Motion::HSI_Motion() g_pLogger->SendAndFlushWithTime(L"\n"); g_pLogger->SendAndFlushWithTime(L"==========================================================\n"); + // CLMS 鎺堟潈楠岃瘉 + if (!CheckLicense()) + { + wprintf(L"Can't find license\n"); + //寮圭獥鎻愮ず + AfxMessageBox(_T("acs metus middleware No authorization found, please contact the corresponding sales"), MB_ICONWARNING | MB_OK); + + g_pLogger->SendAndFlushWithTime(L"Acs Middleware No authorization found, Please contact the corresponding sales\n"); + + } + g_pLogger->SendAndFlushWithTime(L"Acs Middleware Check License OK\n"); + //妗d綅鍙傛暟 for (int i = 0; i < 5; i++) { diff --git a/HSI_HexagonMI_EF3/version.h b/HSI_HexagonMI_EF3/version.h index 801a9c8..582ed31 100644 --- a/HSI_HexagonMI_EF3/version.h +++ b/HSI_HexagonMI_EF3/version.h @@ -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 "2025.02.13 / 17:57 " -#define HSI_FILE_CSDESCRIPTION _T("2025.02.13 / 17:57 ") +#define HSI_FILE_DESCRIPTION "2025.02.17 / 11:10 " +#define HSI_FILE_CSDESCRIPTION _T("2025.02.17 / 11:10 ") diff --git a/HexcalMC/Resources/start.png b/HexcalMC/Resources/start.png new file mode 100644 index 0000000000000000000000000000000000000000..b01cb72829eeac4db975528271f4fc2a1735aecd GIT binary patch literal 756 zcmVPx%u1Q2eRCr$H+gpp%P!I?3nG@IBtKhQw;K%X7s?a9qUGRJ8Cm2LTL=+VfDP>*S zB)cjiA|fIpBBF?>th-67A|i;a(#=THhKRK6rA>30ycSyiKbR&tGlL-f!cqD6w~x)L z-?*=<+pnu^G!)=q>u8OE?I<_{wv+<$8upVaLJS2s(5#&X1*iTE%m`$JK&#sEssyoV zfH*Y63L{fsxo4_^ur+`*^X*gSvO2&p+6ie0CDUd08nqI zqA$lgpNj~QH9(U2BQTJ!opVJ)m=-`kH}gY4MZRUXivlrSfHd_DRzN|+d7d{!UI0<< zKY&1CxK3TY^ffPtJOPrjct0qM^LZfT50Kn60UjU%`KA-UhEMA%3_ubX5w1fRlBXA6 zOaq~C0E4^58loaFc92(J_?9I^F#*!V@1nBsOy@#Y2t@}-a^FX0^0ezt8lo%!gWPyc zA=0YZc{wSFk^#iAe=z{f>|y#;bH9%ZQAU6y^IK-7K)V;mK`1l8;6V!Rg^1L(?4|8M zlpi2XeZ?@CR_gAntw2->AjLXZ3?c``*7KRozg!$@x400000