STDTLCHK.H
上传用户:ywlong9188
上传日期:2022-05-31
资源大小:2656k
文件大小:9k
源码类别:

远程控制编程

开发平台:

C/C++

  1. //////////////////////////////////////////
  2. // STDtlChk.H
  3. //SOURCE STDtlChk.cpp
  4. #ifndef __STRU_STDTLEDITDATA__
  5. #define __STRU_STDTLEDITDATA__
  6. #include <afxtempl.h>
  7. #include "cfginsdt.h"
  8. #include "checkdef.h"
  9. struct STDtlEditData{
  10. int nSTTableNo;       //current ST Detail Table Number
  11. CString sExtTableNo;  //should be deleted
  12. int nPriorTableNo;    //the priror detail table  : 0 = none , 
  13. int nExtTableNo;      //the next detail table : 0 = none
  14. CString sMode;  //scan mode ,H,L,T,E,I
  15. BOOL bScanOn;        //indicate Scan status: True = ON; False = OFF
  16. CString sarStep[CFG_NUM_STDETAIL_RULE];
  17. CString sarElse[CFG_NUM_STDETAIL_RULE];
  18. CString sarThen[CFG_NUM_STDETAIL_RULE];
  19. CString sarCond[CFG_NUM_STDETAIL_COND][CFG_NUM_STDETAIL_RULE +2 ];
  20. CString sarAct[CFG_NUM_STDETAIL_ACT][CFG_NUM_STDETAIL_RULE +2 ];
  21. };
  22. class  AFX_EXT_CLASS CCfgSTDtlBase: public CCfgCheckBase{
  23. public:
  24. CFCUTagSet m_FCUTagListSet;
  25. int m_nCurSTTableNo;
  26. public:
  27. CCfgSTDtlBase();
  28. ~CCfgSTDtlBase();
  29. void ReadBinFile(BYTE *pbuf);
  30. void WriteBinFile(BYTE *pbuf);
  31. virtual void ReadFileToEditStr(struct STDtlEditData& struEdData){ };
  32. virtual void WriteEditStrToFile(struct STDtlEditData& struEdData){ };
  33. void CopyTable(int srcTableNo,int dstTableNo);
  34. void InitialPointer(CDaoDatabase* pOPSDB,CDaoDatabase* pFCUDB,BYTE* pbinbuf,int nOnlineMode,CFile* pFile,CCommunication* pComm);
  35.     void DividDWORDtoFourByte(DWORD dword,BYTE *pbyte);
  36. void CombFourBytetoDWORD(BYTE *pbyte,DWORD& dword);
  37.     void DividWORDtoTwoByte(WORD word,BYTE *pbyte);
  38. void CombTwoBytetoWORD(BYTE *pbyte,WORD& word);
  39. };
  40. //class for ST table's operation table
  41. class  AFX_EXT_CLASS CCfgSTDtl_Oper : public CCfgSTDtlBase{
  42. //attribute
  43. private:
  44. BYTE m_arBinItem[0x20];
  45. //operation
  46. public:
  47. CCfgSTDtl_Oper();
  48. void ReadFileToEditStr(struct STDtlEditData& struEdData);
  49. };
  50. //class for ST table's configure table
  51. class CCfgSTDtl_Cfg : public CCfgSTDtlBase {
  52. //attribute
  53. private:
  54. BYTE m_arBinItem[0x10];
  55. //operation
  56. public:
  57. CCfgSTDtl_Cfg();
  58. void ReadFileToEditStr(struct STDtlEditData& struEdData);
  59. };
  60. //class for ST Detail table's Y/N pattern block
  61. class  AFX_EXT_CLASS CCfgSTDtl_YNBlk : public CCfgSTDtlBase{
  62. //attribute
  63. private:
  64. BYTE m_arBinItem[0xd0];
  65. //operation
  66. public:
  67. CCfgSTDtl_YNBlk();
  68. void ReadFileToEditStr(struct STDtlEditData& struEdData) ;
  69. void WriteEditStrToFile(struct STDtlEditData& struEdData);
  70. };
  71. class CCfgSTDtl_CondYNLst : public CCfgSTDtlBase{
  72. private:
  73. //attribute
  74. BYTE m_arBinItem[0x100];
  75. //operation
  76. public:
  77. CCfgSTDtl_CondYNLst();
  78. void ReadFileToEditStr(struct STDtlEditData& struEdData) ;
  79. void WriteEditStrToFile(struct STDtlEditData& struEdData);
  80. };
  81. class CCfgSTDtl_ActYNLst : public CCfgSTDtlBase{
  82. //attribute
  83. private:
  84. BYTE m_arBinItem[0x100];
  85. //operation
  86. public:
  87. CCfgSTDtl_ActYNLst();
  88. void ReadFileToEditStr(struct STDtlEditData& struEdData) ;
  89. void WriteEditStrToFile(struct STDtlEditData& struEdData);
  90. };
  91. class  AFX_EXT_CLASS CCfgSTDtl_StubLst : public CCfgSTDtlBase{
  92. //attribute
  93. public:
  94. BYTE m_arBinItem[0x80];
  95.     CMap<CString,LPCSTR,UINT,UINT> m_InsStrToIntMap;
  96. CMap<UINT,UINT,CString,LPCSTR> m_CondIntToStrMap;
  97. CMap<CString,LPCSTR,UINT,UINT> m_CondStrToIntMap;
  98. CMap<UINT,UINT,CString,LPCSTR> m_ALMIntToStrMap;
  99. CMap<CString,LPCSTR,UINT,UINT> m_ALMStrToIntMap;
  100. //operation
  101. public:
  102. CCfgSTDtl_StubLst();
  103. ~CCfgSTDtl_StubLst();
  104. BOOL Analyze_TagNo(const CString& sTagNo,UINT& nInsType,UINT& nElementNo);
  105. };
  106. class CCfgSTDtl_CondLst : public CCfgSTDtl_StubLst{
  107. public:
  108. CCfgSTDtl_CondLst();
  109. void ReadFileToEditStr(struct STDtlEditData& struEdData) ;
  110.     void WriteEditStrToFile(struct STDtlEditData& struEdData) ;
  111. void TransBinToEdStr(BYTE *pbyte,CString& sEdStr);
  112. void TransEdStrToBin(CString& sEdStr,BYTE *pbyte);
  113. CString BinToEdStr_TM(UINT nSign1,UINT nByte3, UINT nElementNo);
  114. CString BinToEdStr_SW(UINT nSign1,UINT nByte3, UINT nElementNo);
  115. CString BinToEdStr_DI(UINT nSign1,UINT nByte3, UINT nElementNo);
  116. CString BinToEdStr_DO(UINT nSign1,UINT nByte3, UINT nElementNo);
  117. CString BinToEdStr_SU(UINT nSign1,UINT nByte3, UINT nElementNo);
  118. CString BinToEdStr_SD(UINT nSign1,UINT nByte3, UINT nElementNo);
  119. CString BinToEdStr_ST(UINT nSign1,UINT nByte3, UINT nElementNo);
  120. CString BinToEdStr_RL(UINT nSign1,UINT nByte3, UINT nElementNo);
  121. CString BinToEdStr_LP(UINT Sign1,UINT nByte3, UINT nElementNo);
  122. BOOL CheckData(const CString& sEditstr,CString& sErrMsg);
  123. BOOL AnalyzeData(const CString& sEditstr,CString& sErrMsg,DWORD& dstDWord);
  124. BOOL AnalyzeCond_TMCTCICO(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  125. BOOL AnalyzeCond_SWAN(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  126. BOOL AnalyzeCond_DIDO(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  127. BOOL AnalyzeCond_SU(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  128. BOOL AnalyzeCond_SD(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  129. BOOL AnalyzeCond_ST(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  130. BOOL AnalyzeCond_RL(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  131. BOOL AnalyzeCond_LP(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  132. };
  133. class CCfgSTDtl_ActLst : public CCfgSTDtl_StubLst{
  134. public:
  135. CCfgSTDtl_ActLst();
  136. void ReadFileToEditStr(struct STDtlEditData& struEdData) ;
  137.     void WriteEditStrToFile(struct STDtlEditData& struEdData) ;
  138. void TransBinToEdStr(BYTE *pbyte,CString& sEdStr);
  139. void TransEdStrToBin(CString& sEdStr,BYTE *pbyte);
  140. CString BinToEdStr_TM(UINT nSign1,UINT nByte3, UINT nElementNo);
  141. CString BinToEdStr_SW(UINT nSign1,UINT nByte3, UINT nElementNo);
  142. CString BinToEdStr_DO(UINT nSign1,UINT nByte3, UINT nElementNo);
  143. CString BinToEdStr_SU(UINT nSign1,UINT nByte3, UINT nElementNo);
  144. CString BinToEdStr_SD(UINT nSign1,UINT nByte3, UINT nElementNo);
  145. CString BinToEdStr_ST(UINT nSign1,UINT nByte3, UINT nElementNo);
  146. CString BinToEdStr_CL(UINT nSign1,UINT nByte3, UINT nElementNo);
  147. CString BinToEdStr_PROGRQ(UINT nSign1,UINT nByte3, UINT nElementNo);
  148. CString BinToEdStr_BASIC(UINT nSign1,UINT nByte3, short nElementNo);
  149. CString BinToEdStr_LP(UINT Sign1,UINT nByte3, UINT nElementNo);
  150. BOOL CheckData(const CString& sEditstr,CString& sErrMsg);
  151. BOOL AnalyzeData(const CString& sEditstr,CString& sErrMsg,DWORD& dstDWord);
  152. BOOL AnalyzeAct_TMCTCICO(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  153. BOOL AnalyzeAct_SWAN(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  154. BOOL AnalyzeAct_DO(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  155. BOOL AnalyzeAct_SU(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  156. BOOL AnalyzeAct_SD(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  157. BOOL AnalyzeAct_ST(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  158. BOOL AnalyzeAct_CL(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  159. BOOL AnalyzeAct_LP(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  160. BOOL AnalyzeAct_PROGRQ(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  161. BOOL AnalyzeAct_BASIC(const UINT nInsType,const UINT nElementNo,const CString& sPara,CString& sErrMsg,DWORD& dstDWord);
  162. };
  163. class AFX_EXT_CLASS CCfgSTDtlInstrData : public CCfgCheckBase{
  164. //attribute
  165. private:
  166. CCfgSTDtl_Oper m_oOper;
  167. CCfgSTDtl_Cfg m_oCfg;
  168. CCfgSTDtl_YNBlk m_oYNBlk;
  169. CCfgSTDtl_CondYNLst m_oCondYNLst;
  170. CCfgSTDtl_ActYNLst m_oActYNLst;
  171. CCfgSTDtl_CondLst m_oCondLst;
  172. CCfgSTDtl_ActLst   m_oActLst;
  173. CString m_sarCondCmt[CFG_NUM_STDETAIL_COND];
  174. CString m_sarActCmt[CFG_NUM_STDETAIL_COND];
  175. int m_nCurSTTableNo;
  176. CFCUSTCondSet m_STCondSet;
  177. CFCUSTCondSet m_STActSet;
  178. // CFile* m_pBinFile;
  179. // CDaoDatabase* m_pFCUDB;
  180. // CDaoDatabase* m_pOPSDB;
  181. public:
  182. CCfgSTDtlInstrData();
  183. ~CCfgSTDtlInstrData();
  184. void InitialPointer(CDaoDatabase* pOPSDB,CDaoDatabase* pFCUDB,BYTE* pbinbuf,int nOnlineMode,CFile* pFile,CCommunication* pComm);
  185. void ReadData(struct STDtlEditData& struEdData);
  186. void WriteData(struct STDtlEditData& struEdData);
  187. BOOL CheckData(CString& sEditstr,int nCondOrActType,CString& sErrMsg,struct STDtlEditData& struEdData,int nRowNo,BOOL& bRetIsChanged);
  188. BOOL CheckAllData(struct STDtlEditData& struEdData,int& nErrAreaNo,int& nErrColNo,CString& sErrMsg);
  189. void CopyDetailTable(int srcTableNo,int dstTableNo,int copyMode);
  190. //used in UXL
  191. void InitialPointer(int nUnitNo,CDaoDatabase* pOPSDB,CDaoDatabase* pFCUDB,BYTE* pbinbuf,CCommunication* pComm);
  192. void ReadData(int nTableNo,struct STDtlEditData& struEdData);
  193. };
  194. #endif