当前位置:首页 > 沁工-PLC梯形图转指令表的算法源代码
IOPOINT.h
[cpp] view plain copy print?
1. //File plc.h 2. #ifndef __PLC8_H 3. #define __PLC8_H 4. #define m_nAreRow 100 5. #define m_nAreCol 16 6. class CIO:public CObject 7. {
8. DECLARE_SERIAL(CIO); 9. public:
10. virtual void Serialize(CArchive &ar); 11. CString name; 12. CString addr; 13. CString code; 14. int Rows; 15. int Cols; 16. int flag; 17. int fiveflag; 18. int xpoint; 19. int ypoint; 20. CIO(); 21. };
22. class IOPOINT:public CObject 23. {
24. friend class LIST; 25. friend class PLC; 26. protected:
27. CString name; // 元件名称
28. CString code; // 元件生成的代码() 29. CString addr; // 元件地址(操作数) 30. int xpoint,ypoint; // 元件x、y坐标 31. int flag; // 上下左右连接关系
32. int fiveflag; // 图符的索引号,图符的唯一标记 33. BOOL visit; // 34. IOPOINT *right; 35. IOPOINT *down; 36. IOPOINT *left; 37. IOPOINT *up; 38. IOPOINT *unup; 39. IOPOINT *undown;
40. public:
41. IOPOINT(int x,int y,int fl,CString cd=\,CString nm=\,CString ad=\) 42. {
43. name=nm; 44. code=cd; 45. addr=ad; 46. flag=fl; 47. fiveflag=0; 48. visit=FALSE; 49. xpoint=x; 50. ypoint=y; 51. right=0; 52. left=0; 53. up=0; 54. down=0; 55. unup=0; 56. undown=0; 57. }
58. IOPOINT() 59. {
60. name=\; 61. code=\; 62. addr=\; 63. flag=0; 64. fiveflag=0; 65. visit=FALSE; 66. xpoint=0; 67. ypoint=0; 68. right=0; 69. left=0; 70. up=0; 71. down=0; 72. unup=0; 73. undown=0; 74. }
75. void setname(const CString ioname) 76. {
77. name=ioname; 78. }
79. void setaddr(const CString ioaddr) // 设置地址 80. {
81. addr=ioaddr; 82. }
83. void setcode(const CString iocode) // 设置生成的指令
84. {
85. code=iocode; 86. }
87. void setflag(int flg) 88. {
89. flag=flg; 90. }
91. void setfiveflag(int fivflg) 92. {
93. fiveflag=fivflg; 94. }
95. void setvisit(BOOL x) 96. {
97. visit=x; 98. }
99. void setwhere(int x,int y) 100. {
101. xpoint=x; 102. ypoint=y; 103. }
104. void getname(CString *result_name) // 获取元件名称 105. {
106. *result_name=name; 107. }
108. void getaddr(CString *result_addr) // 获取无件地址 109. {
110. *result_addr=addr; 111. }
112. void getcode(CString *result_code) 113. {
114. *result_code=code; 115. }
116. int getflag() 117. {
118. return flag; 119. }
120. int getfiveflag() 121. {
122. return fiveflag; 123. }
124. int getxpoint() 125. {
126. return xpoint; 127. }
128. int getypoint() 129. {
130. return ypoint; 131. }
132. void changeimg(int,int,CDC *); 133. virtual void setstatu() {}
134. virtual void print(int x,int y,CDC *pDC) 135. {
136. changeimg(x,y,pDC); 137. }
138. virtual void put_img(int,int,CDC *){} 139. virtual int testaddr(); 140. };
141. class LD :public IOPOINT 142. { 143. public:
144. LD(int x,int y,int flg,CString cd=\,CString nm=\,CString ad=\) 145. :IOPOINT(x,y,flg,cd,nm,ad) 146. {};
147. LD():IOPOINT() 148. {
149. setcode(\); 150. }
151. void put_img(int x,int y,CDC *pDC); 152. void print(int x,int y,CDC *pDC); 153. };
154. class LDI :public IOPOINT 155. { 156. public:
157. LDI(int x,int y,int flg,CString cd=\,CString nm=\,CString ad=\) 158. :IOPOINT(x,y,flg,cd,nm,ad) 159. {}
160. LDI():IOPOINT() 161. {
162. setcode(\); 163. }
164. void put_img(int x,int y,CDC *pDC); 165. void print(int x,int y,CDC *pDC); 166. };
167. class OR :public IOPOINT 168. { 169. public:
170. OR(int x,int y,int flg,CString cd=\,CString nm=\,CString ad=\) 171. :IOPOINT(x,y,flg,cd,nm,ad)
共分享92篇相关文档