|
@@ -0,0 +1,165 @@
|
|
|
+#ifndef RVC_MOD_COMM_ENTITY_UTIL_HPP_
|
|
|
+#define RVC_MOD_COMM_ENTITY_UTIL_HPP_
|
|
|
+
|
|
|
+#include "path.h"
|
|
|
+#include "SpBase.h"
|
|
|
+
|
|
|
+#if defined(RVC_OS_WIN)
|
|
|
+#define streq stricmp
|
|
|
+#else
|
|
|
+#define streq strcasecmp
|
|
|
+#endif //RVC_OS_WIN
|
|
|
+
|
|
|
+namespace SP
|
|
|
+{
|
|
|
+namespace Module
|
|
|
+{
|
|
|
+namespace Comm
|
|
|
+{
|
|
|
+inline
|
|
|
+CSimpleStringA GetCurrMachineType(CEntityBase* pEntity)
|
|
|
+{
|
|
|
+ CSystemStaticInfo sysInfo;
|
|
|
+ pEntity->GetFunction()->GetSystemStaticInfo(sysInfo);
|
|
|
+ return sysInfo.strMachineType;
|
|
|
+}
|
|
|
+
|
|
|
+inline
|
|
|
+CSimpleStringA GetCurrEntityConfigPath(CEntityBase* pEntity)
|
|
|
+{
|
|
|
+ CSimpleStringA strConfigDir(true);
|
|
|
+ pEntity->GetFunction()->GetPath("cfg", strConfigDir);
|
|
|
+ CSimpleStringA result(strConfigDir + SPLIT_SLASH_STR + pEntity->GetEntityName() + ".ini");
|
|
|
+ Dbg("config path: %s", result.GetData());
|
|
|
+ return result;
|
|
|
+}
|
|
|
+
|
|
|
+enum Site
|
|
|
+{
|
|
|
+ CMB_UNKNOWN,
|
|
|
+ CMB_LIB, /** 行内大堂*/
|
|
|
+ CMB_SSB, /** 自助网点*/
|
|
|
+ CMB_LSS, /** 生活销售机*/
|
|
|
+ CMB_FLB, /** 离行机器*/
|
|
|
+ CMB_OSB, /** 外拓PAD*/
|
|
|
+ CMB_SMM /** 商户终端*/
|
|
|
+};
|
|
|
+
|
|
|
+#define SITE_ENUM_TYPE(MACRO) \
|
|
|
+ MACRO(LIB)\
|
|
|
+ MACRO(SSB)\
|
|
|
+ MACRO(LSS)\
|
|
|
+ MACRO(FLB)\
|
|
|
+ MACRO(OSB)\
|
|
|
+ MACRO(SMM)
|
|
|
+
|
|
|
+
|
|
|
+#define ENUM_MAP_CONVERT(elem) \
|
|
|
+ if (streq(lpcszSiteName, "CMB."#elem) == 0) return CMB_##elem;
|
|
|
+/*!
|
|
|
+ * convert cmb site name to enum type.
|
|
|
+ */
|
|
|
+static Site Str2Site(LPCSTR lpcszSiteName)
|
|
|
+{
|
|
|
+ if (lpcszSiteName == NULL || strlen(lpcszSiteName) == 0)
|
|
|
+ return CMB_UNKNOWN;
|
|
|
+ SITE_ENUM_TYPE(ENUM_MAP_CONVERT)
|
|
|
+ return CMB_UNKNOWN;
|
|
|
+}
|
|
|
+
|
|
|
+#undef ENUM_MAP_CONVERT
|
|
|
+#define ENUM_MAP_CONVERT(elem) case CMB_##elem: return "CMB."#elem;
|
|
|
+
|
|
|
+static LPCSTR Site2Str(Site site)
|
|
|
+{
|
|
|
+ switch (site) {
|
|
|
+ SITE_ENUM_TYPE(ENUM_MAP_CONVERT)
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return "Unkown";
|
|
|
+}
|
|
|
+
|
|
|
+enum What
|
|
|
+{
|
|
|
+ RVC_UNKNOWN,
|
|
|
+ RVC_Stand2S, /** 落地式大机*/
|
|
|
+ RVC_PAD, /** PAD*/
|
|
|
+ RVC_Desk2S, /** 低柜双屏*/
|
|
|
+ RVC_IL, /** 简版*/
|
|
|
+ RVC_Desk1S, /** 低柜一体机*/
|
|
|
+ RPM_Stand1S /** 扩展柜*/
|
|
|
+};
|
|
|
+
|
|
|
+#define MACHINE_ENUM_TYPE(MACRO) \
|
|
|
+ MACRO(Stand2S)\
|
|
|
+ MACRO(PAD)\
|
|
|
+ MACRO(Desk2S)\
|
|
|
+ MACRO(IL)\
|
|
|
+ MACRO(Desk1S)
|
|
|
+
|
|
|
+#undef ENUM_MAP_CONVERT
|
|
|
+#define ENUM_MAP_CONVERT(elem) \
|
|
|
+ if (streq(lpcszTypeName, "RVC."#elem) == 0) return RVC_##elem;
|
|
|
+/*!
|
|
|
+ * convert cmb site name to enum type.
|
|
|
+ */
|
|
|
+static What Str2Type(LPCSTR lpcszTypeName)
|
|
|
+{
|
|
|
+ if (lpcszTypeName == NULL || strlen(lpcszTypeName) == 0)
|
|
|
+ return RVC_UNKNOWN;
|
|
|
+ MACHINE_ENUM_TYPE(ENUM_MAP_CONVERT)
|
|
|
+
|
|
|
+ if (streq(lpcszTypeName, "RPM.Stand1S") == 0)
|
|
|
+ return RPM_Stand1S;
|
|
|
+
|
|
|
+ return RVC_UNKNOWN;
|
|
|
+}
|
|
|
+
|
|
|
+#undef ENUM_MAP_CONVERT
|
|
|
+#define ENUM_MAP_CONVERT(elem) case RVC_##elem: return "RVC."#elem;
|
|
|
+
|
|
|
+static LPCSTR Type2Str(What what)
|
|
|
+{
|
|
|
+ switch (what) {
|
|
|
+ MACHINE_ENUM_TYPE(ENUM_MAP_CONVERT)
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (what == RPM_Stand1S)
|
|
|
+ return "RPM.Stand1S";
|
|
|
+
|
|
|
+ return "Unkown";
|
|
|
+}
|
|
|
+
|
|
|
+struct TerminalMachineInfo
|
|
|
+{
|
|
|
+ Site site;
|
|
|
+ What type;
|
|
|
+ struct {
|
|
|
+ WORD minor;
|
|
|
+ WORD major;
|
|
|
+ } gen;
|
|
|
+};
|
|
|
+
|
|
|
+inline
|
|
|
+TerminalMachineInfo GetTerminalMachineInfo(CEntityBase* pEntity)
|
|
|
+{
|
|
|
+ CSystemStaticInfo sysInfo;
|
|
|
+ TerminalMachineInfo termInfo;
|
|
|
+ pEntity->GetFunction()->GetSystemStaticInfo(sysInfo);
|
|
|
+ termInfo.site = Str2Site(sysInfo.strSite);
|
|
|
+ termInfo.type = Str2Type(sysInfo.strMachineType);
|
|
|
+ termInfo.gen.major = sysInfo.MachineVersion.GetMajor();
|
|
|
+ termInfo.gen.minor = sysInfo.MachineVersion.GetMinor();
|
|
|
+ return termInfo;
|
|
|
+}
|
|
|
+
|
|
|
+} // comm
|
|
|
+} // mod
|
|
|
+} // sp
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+#endif //RVC_MOD_COMM_ENTITY_UTIL_HPP_
|