DeviceAdaptChecker.h 2.7 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_4_stand2s[] = {
  8. "PinPad", "CardIssuer", "IDCertificate","ContactlessCard","HSPScanner", "FingerPrint", "WatchDog", "Gpio", "Ups" };
  9. //Stand1SPlus
  10. static const char* adapterList_4_stand1s[] = {
  11. "PinPad", "CardIssuer", "IDCertificate","ContactlessCard", "FingerPrint","Gpio" };
  12. struct AdapterRootConfigInfo
  13. {
  14. DWORD dwPort;
  15. DWORD dwBaudRate;
  16. DWORD dwParam1;
  17. DWORD dwParam2;
  18. CSimpleStringA strDepDirWithSlashOrFileName;
  19. AdapterRootConfigInfo() :dwPort(0), dwBaudRate(0), dwParam1(0), dwParam2(0), strDepDirWithSlashOrFileName(true) {}
  20. };
  21. struct VendorLibInfoEx : public VendorLibInfo
  22. {
  23. AdapterRootConfigInfo optCfg;
  24. bool Load(CSimpleStringA& adapterFilename);
  25. };
  26. class CAdapterLoader
  27. {
  28. public:
  29. CAdapterLoader(LPCTSTR lpcszAdapterName, CEntityBase* pEntity) {
  30. vendorLibInfo.strDevice = lpcszAdapterName;
  31. pEntityBase = pEntity;
  32. }
  33. ~CAdapterLoader() {}
  34. ErrorCodeEnum LoadConfigFromRootIni();
  35. bool IsNoAnyConfigure() const
  36. {
  37. return vendorLibInfo.IsNotConfig();
  38. }
  39. bool IsFullConfig() const
  40. {
  41. return vendorLibInfo.IsValid();
  42. }
  43. bool IsConfigIncomplete() const
  44. {
  45. return (!IsNoAnyConfigure() && !IsFullConfig());
  46. }
  47. ErrorCodeEnum GetAdapterFullPath(CSimpleStringA& strLibFullPath);
  48. CSimpleStringA GetAdaperFileName()
  49. {
  50. return vendorLibInfo.toLibNameString();
  51. }
  52. VendorLibInfoEx vendorLibInfo;
  53. private:
  54. CEntityBase* pEntityBase;
  55. };
  56. class CAdapterLoadChecker
  57. {
  58. public:
  59. CAdapterLoadChecker() {
  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