DeviceAdaptChecker.h 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #ifndef DEVICE_ADAPTER_CHECKER_H_
  2. #define DEVICE_ADAPTER_CHECKER_H_
  3. #include "DevEntityCommBase.hpp"
  4. #include "DevFSMCommBase.hpp"
  5. #include "toolkit.h"
  6. //Stand2S
  7. static const char* adapterList[] = {
  8. "PinPad", "CardIssuer", "IDCertificate","ContactlessCard","HSPScanner", "FingerPrint", "WatchDog", "Gpio", "Ups" };
  9. struct AdapterRootConfigInfo
  10. {
  11. DWORD dwPort = 0;
  12. DWORD dwBaudRate = 0;
  13. DWORD dwParam1 = 0;
  14. DWORD dwParam2 = 0;
  15. CSimpleStringA strDepDirWithSlashOrFileName;
  16. };
  17. struct VendorLibInfoEx : public VendorLibInfo
  18. {
  19. AdapterRootConfigInfo optCfg;
  20. bool Load(CSimpleStringA& adapterFilename);
  21. };
  22. class CAdapterLoader
  23. {
  24. public:
  25. CAdapterLoader(LPCTSTR lpcszAdapterName, CEntityBase* pEntity) {
  26. vendorLibInfo.strDevice = lpcszAdapterName;
  27. pEntityBase = pEntity;
  28. }
  29. ~CAdapterLoader() {}
  30. ErrorCodeEnum LoadConfigFromRootIni();
  31. bool IsNoAnyConfigure() const
  32. {
  33. return vendorLibInfo.IsNotConfig();
  34. }
  35. bool IsFullConfig() const
  36. {
  37. return vendorLibInfo.IsValid();
  38. }
  39. bool IsConfigIncomplete() const
  40. {
  41. return (!IsNoAnyConfigure() && !IsFullConfig());
  42. }
  43. ErrorCodeEnum GetAdapterFullPath(CSimpleStringA& strLibFullPath);
  44. CSimpleStringA GetAdaperFileName()
  45. {
  46. return vendorLibInfo.toLibNameString();
  47. }
  48. VendorLibInfoEx vendorLibInfo;
  49. private:
  50. CEntityBase* pEntityBase;
  51. };
  52. class CAdapterLoadChecker
  53. {
  54. public:
  55. CAdapterLoadChecker() {
  56. mAdapterConfigList.Init(array_size(adapterList));
  57. for (int i = 0; i < mAdapterConfigList.GetCount(); ++i) {
  58. mAdapterConfigList[i] = nullptr;
  59. }
  60. }
  61. ~CAdapterLoadChecker() {
  62. for (int i = 0; i < mAdapterConfigList.GetCount(); ++i) {
  63. if (mAdapterConfigList[i] != nullptr) {
  64. delete mAdapterConfigList[i];
  65. mAdapterConfigList[i] = nullptr;
  66. }
  67. }
  68. }
  69. void Init(CEntityBase* pEntity);
  70. bool IsThisFileConfigure(LPCTSTR fileName, AdapterRootConfigInfo* info = NULL);
  71. CAutoArray<CSimpleStringA> GetConfigedAdapterFileName(LPCTSTR device = "", LPCTSTR vendor = "");
  72. CAutoArray<AdapterRootConfigInfo> GetConfigedAdapterInfo(LPCTSTR device = "", LPCTSTR vendor = "");
  73. CAutoArray<CAdapterLoader*>& AdapterCoinfigList() { return mAdapterConfigList; }
  74. static ErrorCodeEnum CheckDeviceAndAdapterAvailable(const VendorLibInfoEx& vendorLibInfo, CSimpleStringA& strErrMsg);
  75. static ErrorCodeEnum EditLDLibraryPathForVendor(LPCTSTR filePath, BOOL fAdd);
  76. private:
  77. CAutoArray<CAdapterLoader*> mAdapterConfigList;
  78. };
  79. #endif