35cb12ed887f5f9313aa1bede8996a773955cf82.svn-base 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Windows.Forms;
  9. namespace IControls_FireManager
  10. {
  11. // cyim 2016.08.26
  12. // 대용량 수신기를 위해 기존의 코드중 15 번 통신카드는 이제 0번으로 대체해야한다. - 엑셀파일 포맷이 변경해야함
  13. // 수신기는 최대 8개의 통신카드 (통신카드당 2계통 커버) => 총 16 계통
  14. // 중계반은 최대 60개이고 (중계반은 4계통을 커버) -> 총 240 계통
  15. // 예외처리 사항
  16. // 1) 통신보드중 15번카드는 이제 0번카드로 대체 (IO 신호용)
  17. // 2) IO 보드는 어차피 셋팅이 의미없음
  18. public partial class Form_Receiver_Port_BigReceiver : Form
  19. {
  20. _RECEIVER RECEIVER;
  21. string RECEIVER_ID;
  22. // 최대 64개 (수신기 8개 + 중계반 60개) , 단 UI 접근성을 위해 배열 인덱스를 그대로 사용하려함
  23. Boolean[] bCOMM_Use = new Boolean[65];
  24. Boolean[] bCOMM_CH1Use = new Boolean[65];
  25. Boolean[] bCOMM_CH2Use = new Boolean[65];
  26. Boolean[] bCOMM_CH3Use = new Boolean[65];
  27. Boolean[] bCOMM_CH4Use = new Boolean[65];
  28. Boolean[] bIO_Use = new Boolean[16];
  29. public Form_Receiver_Port_BigReceiver(int iIndex)
  30. {
  31. InitializeComponent();
  32. RECEIVER_ID = Convert.ToString(iIndex);
  33. RECEIVER = (_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID];
  34. ReceiverToObj();
  35. }
  36. private void UiButton_Confirm_Click(object sender, EventArgs e)
  37. {
  38. try
  39. {
  40. ObjToReceiver();
  41. ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4CommBoard = RECEIVER.Port4CommBoard;
  42. ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4IOBoard = RECEIVER.Port4IOBoard;
  43. ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4KeyPAD = RECEIVER.Port4KeyPAD;
  44. ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).Port4EmergencyBroadcast = RECEIVER.Port4EmergencyBroadcast;
  45. // DB 에 저장
  46. Form_Receiver_Add DbSave_For_Form_Receiver_Add = new Form_Receiver_Add(Int32.Parse(((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER_ID]).ID));
  47. DbSave_For_Form_Receiver_Add._Event_Project_Receiver_Save_Event();
  48. // 완료 이벤트 발생
  49. _Event.WorkViewPageName_Receiver_SendMessage_Write(RECEIVER.ID);
  50. // 저장하였습니다
  51. _Popup.Create(Popup_Type.Confirm, Popup_Style.Normal, _Text.OK, 250, 150, _Text.SaveInform, 0);
  52. // 프로젝트 수정
  53. _Data.ProJect_Save_Complete = false;
  54. Close();
  55. }
  56. catch (Exception ex)
  57. {
  58. // LOG
  59. _Event.DebugView_SendMessage_Write(ex.ToString());
  60. }
  61. }
  62. // RECEIVER 객체의 값으로 화면 오브젝트의 값을 세팅한다.
  63. private void ReceiverToObj()
  64. {
  65. // GroupBox 데이터 넣기 (통신보드, IO보드, KeyPad, 비상방송 통신 관련 사항)
  66. gb_COMM1.Text = "통신보드 : " + RECEIVER.Port4CommBoard.Get_COM_PORT();
  67. gb_COMM2.Text = "IO보드 : " + RECEIVER.Port4IOBoard.Get_COM_PORT();
  68. gb_COMM3.Text = "키패드 : " + RECEIVER.Port4KeyPAD.Get_COM_PORT();
  69. gb_COMM4.Text = "비상방송 : " + RECEIVER.Port4EmergencyBroadcast.Get_COM_PORT();
  70. cb_COMM_USE.Checked = RECEIVER.Port4CommBoard.Use_Flag;
  71. cb_IO_USE.Checked = RECEIVER.Port4IOBoard.Use_Flag;
  72. cb_KEYPAD_USE.Checked = RECEIVER.Port4KeyPAD.Use_Flag;
  73. cb_EMER_USE.Checked = RECEIVER.Port4EmergencyBroadcast.Use_Flag;
  74. // 통신 보드
  75. cb_COMM1_PORT.SelectedIndex = RECEIVER.Port4CommBoard.PortNo - 1;
  76. cb_COMM1_BAUDRATE.Text = RECEIVER.Port4CommBoard.Get_COM_BAUDRATE();
  77. cb_COMM1_DATABITS.Text = RECEIVER.Port4CommBoard.DataBits.ToString();
  78. cb_COMM1_STOPBITS.Text = RECEIVER.Port4CommBoard.Get_COM_STOPBIT();
  79. cb_COMM1_PARITY.Text = RECEIVER.Port4CommBoard.Get_COM_PARITY();
  80. // I/O 보드
  81. cb_COMM2_PORT.SelectedIndex = RECEIVER.Port4IOBoard.PortNo - 1;
  82. cb_COMM2_BAUDRATE.Text = RECEIVER.Port4IOBoard.Get_COM_BAUDRATE();
  83. cb_COMM2_DATABITS.Text = RECEIVER.Port4IOBoard.DataBits.ToString();
  84. cb_COMM2_STOPBITS.Text = RECEIVER.Port4IOBoard.Get_COM_STOPBIT();
  85. cb_COMM2_PARITY.Text = RECEIVER.Port4IOBoard.Get_COM_PARITY();
  86. // KeyPad
  87. cb_COMM3_PORT.SelectedIndex = RECEIVER.Port4KeyPAD.PortNo - 1;
  88. cb_COMM3_BAUDRATE.Text = RECEIVER.Port4KeyPAD.Get_COM_BAUDRATE();
  89. cb_COMM3_DATABITS.Text = RECEIVER.Port4KeyPAD.DataBits.ToString();
  90. cb_COMM3_STOPBITS.Text = RECEIVER.Port4KeyPAD.Get_COM_STOPBIT();
  91. cb_COMM3_PARITY.Text = RECEIVER.Port4KeyPAD.Get_COM_PARITY();
  92. // 비상방송
  93. cb_COMM4_PORT.SelectedIndex = RECEIVER.Port4EmergencyBroadcast.PortNo - 1;
  94. cb_COMM4_BAUDRATE.Text = RECEIVER.Port4EmergencyBroadcast.Get_COM_BAUDRATE();
  95. cb_COMM4_DATABITS.Text = RECEIVER.Port4EmergencyBroadcast.DataBits.ToString();
  96. cb_COMM4_STOPBITS.Text = RECEIVER.Port4EmergencyBroadcast.Get_COM_STOPBIT();
  97. cb_COMM4_PARITY.Text = RECEIVER.Port4EmergencyBroadcast.Get_COM_PARITY();
  98. // 통신보드 및 중계반
  99. foreach (string COM_BOARD_ID in ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).List_COM_BOARD_ID)
  100. {
  101. int iID;
  102. iID = ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_ID; // BOARDID
  103. if ((iID > -1) && (iID < 65)) // cyim 2017.02.02 : IFC3300 에서는 통신보드, IO 보드 아이디가 0번이 존재한다
  104. {
  105. // ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_NAME; // BOARDID
  106. bCOMM_CH1Use[iID] = ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh1_Use_Flag;
  107. bCOMM_CH2Use[iID] = ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh2_Use_Flag;
  108. bCOMM_CH3Use[iID] = ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh3_Use_Flag;
  109. bCOMM_CH4Use[iID] = ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh4_Use_Flag;
  110. bCOMM_Use[iID] = ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).bUse_Flag; // Use Flag
  111. }
  112. }
  113. // IO 보드
  114. foreach (string IO_BOARD_ID in ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).List_IO_BOARD_ID)
  115. {
  116. int iID;
  117. iID = ((_IO_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_IO_BOARD[IO_BOARD_ID]).BOARD_ID; // BOARDID
  118. if ((iID > -1) && (iID < 16)) // cyim 2017.02.02 : IFC3300 에서는 통신보드, IO 보드 아이디가 0번이 존재한다
  119. {
  120. // ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_NAME; // BOARDID
  121. bIO_Use[iID] = ((_IO_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_IO_BOARD[IO_BOARD_ID]).bUse_Flag; // Use Flag
  122. }
  123. }
  124. // 체크 박스 설정
  125. for (int i = 0; i < 65; i++) // cyim 2017.02.02 : IFC3300 에서는 통신보드, IO 보드 아이디가 0번이 존재한다
  126. {
  127. //
  128. // 통신보드
  129. //
  130. // 사용 여부
  131. Control[] ctrl1 = this.Controls.Find(string.Format("cb_COMM{0}_Use", i), true);
  132. ((CheckBox)ctrl1[0]).Checked = bCOMM_Use[i];
  133. // 채널 체크여부
  134. Control[] ctrl2 = this.Controls.Find(string.Format("cb_COMM{0}_CH1Use", i), true);
  135. ((CheckBox)ctrl2[0]).Checked = bCOMM_CH1Use[i];
  136. Control[] ctrl3 = this.Controls.Find(string.Format("cb_COMM{0}_CH2Use", i), true);
  137. ((CheckBox)ctrl3[0]).Checked = bCOMM_CH2Use[i];
  138. //if (i > 8) // 9번 즉 중계반부터 채널이 4개이다
  139. {
  140. Control[] ctrl4 = this.Controls.Find(string.Format("cb_COMM{0}_CH3Use", i), true);
  141. ((CheckBox)ctrl4[0]).Checked = bCOMM_CH3Use[i];
  142. Control[] ctrl5 = this.Controls.Find(string.Format("cb_COMM{0}_CH4Use", i), true);
  143. ((CheckBox)ctrl5[0]).Checked = bCOMM_CH4Use[i];
  144. }
  145. //
  146. // IO 보드
  147. //
  148. if (i <= 15)
  149. {
  150. Control[] ctrl6 = this.Controls.Find(string.Format("cb_IO{0}_Use", i), true);
  151. ((CheckBox)ctrl6[0]).Checked = bIO_Use[i];
  152. }
  153. }
  154. }
  155. // 화면 오브젝트의 값을 RECEIVER 객체로 보낸다.
  156. private void ObjToReceiver()
  157. {
  158. // 포트
  159. RECEIVER.Port4CommBoard.Use_Flag = cb_COMM_USE.Checked;
  160. RECEIVER.Port4IOBoard.Use_Flag = cb_IO_USE.Checked;
  161. RECEIVER.Port4KeyPAD.Use_Flag = cb_KEYPAD_USE.Checked;
  162. RECEIVER.Port4EmergencyBroadcast.Use_Flag = cb_EMER_USE.Checked;
  163. // 통신 보드
  164. RECEIVER.Port4CommBoard.PortNo = cb_COMM1_PORT.SelectedIndex + 1;
  165. RECEIVER.Port4CommBoard.BaudRate = Util.StrToInt(cb_COMM1_BAUDRATE.Text, 0);
  166. RECEIVER.Port4CommBoard.DataBits = Util.StrToInt(cb_COMM1_DATABITS.Text, 0);
  167. RECEIVER.Port4CommBoard.Set_StopBits(cb_COMM1_STOPBITS.Text);
  168. RECEIVER.Port4CommBoard.Set_Parity(cb_COMM1_PARITY.Text);
  169. // I/O 보드
  170. RECEIVER.Port4IOBoard.PortNo = cb_COMM2_PORT.SelectedIndex + 1;
  171. RECEIVER.Port4IOBoard.BaudRate = Util.StrToInt(cb_COMM2_BAUDRATE.Text, 0);
  172. RECEIVER.Port4IOBoard.DataBits = Util.StrToInt(cb_COMM2_DATABITS.Text, 0);
  173. RECEIVER.Port4IOBoard.Set_StopBits(cb_COMM2_STOPBITS.Text);
  174. RECEIVER.Port4IOBoard.Set_Parity(cb_COMM2_PARITY.Text);
  175. // KeyPad
  176. RECEIVER.Port4KeyPAD.PortNo = cb_COMM3_PORT.SelectedIndex + 1;
  177. RECEIVER.Port4KeyPAD.BaudRate = Util.StrToInt(cb_COMM3_BAUDRATE.Text, 0);
  178. RECEIVER.Port4KeyPAD.DataBits = Util.StrToInt(cb_COMM3_DATABITS.Text, 0);
  179. RECEIVER.Port4KeyPAD.Set_StopBits(cb_COMM3_STOPBITS.Text);
  180. RECEIVER.Port4KeyPAD.Set_Parity(cb_COMM3_PARITY.Text);
  181. // 비상방송
  182. RECEIVER.Port4EmergencyBroadcast.PortNo = cb_COMM4_PORT.SelectedIndex + 1;
  183. RECEIVER.Port4EmergencyBroadcast.BaudRate = Util.StrToInt(cb_COMM4_BAUDRATE.Text, 0);
  184. RECEIVER.Port4EmergencyBroadcast.DataBits = Util.StrToInt(cb_COMM4_DATABITS.Text, 0);
  185. RECEIVER.Port4EmergencyBroadcast.Set_StopBits(cb_COMM4_STOPBITS.Text);
  186. RECEIVER.Port4EmergencyBroadcast.Set_Parity(cb_COMM4_PARITY.Text);
  187. // 체크 박스 설정
  188. for (int i = 0; i < 65; i++) // cyim 2017.02.02 : IFC3300 에서는 통신보드, IO 보드 아이디가 0번이 존재한다
  189. {
  190. //
  191. // 통신보드
  192. //
  193. // 사용 여부
  194. Control[] ctrl1 = this.Controls.Find(string.Format("cb_COMM{0}_Use", i), true);
  195. bCOMM_Use[i] = ((CheckBox)ctrl1[0]).Checked;
  196. // 채널 체크여부
  197. Control[] ctrl2 = this.Controls.Find(string.Format("cb_COMM{0}_CH1Use", i), true);
  198. bCOMM_CH1Use[i] = ((CheckBox)ctrl2[0]).Checked;
  199. Control[] ctrl3 = this.Controls.Find(string.Format("cb_COMM{0}_CH2Use", i), true);
  200. bCOMM_CH2Use[i] = ((CheckBox)ctrl3[0]).Checked;
  201. //if (i > 8) // 9번 즉 중계반부터 채널이 4개이다
  202. {
  203. Control[] ctrl4 = this.Controls.Find(string.Format("cb_COMM{0}_CH3Use", i), true);
  204. bCOMM_CH3Use[i] = ((CheckBox)ctrl4[0]).Checked;
  205. Control[] ctrl5 = this.Controls.Find(string.Format("cb_COMM{0}_CH4Use", i), true);
  206. bCOMM_CH4Use[i] = ((CheckBox)ctrl5[0]).Checked;
  207. }
  208. //
  209. // IO 보드
  210. //
  211. if (i <= 15)
  212. {
  213. Control[] ctrl6 = this.Controls.Find(string.Format("cb_IO{0}_Use", i), true);
  214. bIO_Use[i] = ((CheckBox)ctrl6[0]).Checked;
  215. }
  216. }
  217. foreach (string COM_BOARD_ID in ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).List_COM_BOARD_ID)
  218. {
  219. int iID;
  220. iID = ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_ID; // BOARDID
  221. if ((iID > -1) && (iID < 65)) // cyim 2017.02.02 : IFC3300 에서는 통신보드, IO 보드 아이디가 0번이 존재한다
  222. {
  223. //((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_NAME, // BOARDID
  224. ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh1_Use_Flag = bCOMM_CH1Use[iID];
  225. ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh2_Use_Flag = bCOMM_CH2Use[iID];
  226. ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh3_Use_Flag = bCOMM_CH3Use[iID];
  227. ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).bCh4_Use_Flag = bCOMM_CH4Use[iID];
  228. ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).bUse_Flag = bCOMM_Use[iID]; ; // Use Flag
  229. }
  230. }
  231. foreach (string IO_BOARD_ID in ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).List_IO_BOARD_ID)
  232. {
  233. int iID;
  234. iID = ((_IO_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_IO_BOARD[IO_BOARD_ID]).BOARD_ID; // BOARDID
  235. if ((iID > -1) && (iID < 16)) // cyim 2017.02.02 : IFC3300 에서는 통신보드, IO 보드 아이디가 0번이 존재한다
  236. {
  237. // ((_COM_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_COM_BOARD[COM_BOARD_ID]).BOARD_NAME; // BOARDID
  238. ((_IO_BOARD)((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).Hash_IO_BOARD[IO_BOARD_ID]).bUse_Flag = bIO_Use[iID]; // Use Flag
  239. }
  240. }
  241. // cyim 2014.5.22 입출력수정을 해도 변동이 없는 상황 수정
  242. // COM 이 활성화되면 보드에서 당연히 사용한다
  243. ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).KEYPAD.bUse_Flag = cb_KEYPAD_USE.Checked;
  244. ((_RECEIVER)_Data.HASH_RECEIVER[RECEIVER.ID]).EMERGENCY_BROADCAST.Set_Use_Flag((cb_EMER_USE.Checked == true) ? "Y" : "N");
  245. }
  246. // 취소 버튼을 누르면, 그냥 화면을 닫는다.
  247. private void UiButton_cancel_Click(object sender, EventArgs e)
  248. {
  249. Close();
  250. }
  251. private void checkBox_All_1_CheckedChanged(object sender, EventArgs e)
  252. {
  253. bool check = this.checkBox_All_1.Checked;
  254. for (int i = 1; i <= 21; i++)
  255. {
  256. // 사용 여부
  257. Control[] ctrl1 = this.Controls.Find(string.Format("cb_COMM{0}_Use", i), true);
  258. ((CheckBox)ctrl1[0]).Checked = check;
  259. // 채널 체크여부
  260. Control[] ctrl2 = this.Controls.Find(string.Format("cb_COMM{0}_CH1Use", i), true);
  261. ((CheckBox)ctrl2[0]).Checked = check;
  262. Control[] ctrl3 = this.Controls.Find(string.Format("cb_COMM{0}_CH2Use", i), true);
  263. ((CheckBox)ctrl3[0]).Checked = check;
  264. Control[] ctrl4 = this.Controls.Find(string.Format("cb_COMM{0}_CH3Use", i), true);
  265. ((CheckBox)ctrl4[0]).Checked = check;
  266. Control[] ctrl5 = this.Controls.Find(string.Format("cb_COMM{0}_CH4Use", i), true);
  267. ((CheckBox)ctrl5[0]).Checked = check;
  268. }
  269. }
  270. private void checkBox_All_2_CheckedChanged(object sender, EventArgs e)
  271. {
  272. bool check = this.checkBox_All_2.Checked;
  273. for (int i = 22; i <= 43; i++)
  274. {
  275. // 사용 여부
  276. Control[] ctrl1 = this.Controls.Find(string.Format("cb_COMM{0}_Use", i), true);
  277. ((CheckBox)ctrl1[0]).Checked = check;
  278. // 채널 체크여부
  279. Control[] ctrl2 = this.Controls.Find(string.Format("cb_COMM{0}_CH1Use", i), true);
  280. ((CheckBox)ctrl2[0]).Checked = check;
  281. Control[] ctrl3 = this.Controls.Find(string.Format("cb_COMM{0}_CH2Use", i), true);
  282. ((CheckBox)ctrl3[0]).Checked = check;
  283. Control[] ctrl4 = this.Controls.Find(string.Format("cb_COMM{0}_CH3Use", i), true);
  284. ((CheckBox)ctrl4[0]).Checked = check;
  285. Control[] ctrl5 = this.Controls.Find(string.Format("cb_COMM{0}_CH4Use", i), true);
  286. ((CheckBox)ctrl5[0]).Checked = check;
  287. }
  288. }
  289. private void checkBox_All_3_CheckedChanged(object sender, EventArgs e)
  290. {
  291. bool check = this.checkBox_All_3.Checked;
  292. for (int i = 44; i <= 64; i++)
  293. {
  294. // 사용 여부
  295. Control[] ctrl1 = this.Controls.Find(string.Format("cb_COMM{0}_Use", i), true);
  296. ((CheckBox)ctrl1[0]).Checked = check;
  297. // 채널 체크여부
  298. Control[] ctrl2 = this.Controls.Find(string.Format("cb_COMM{0}_CH1Use", i), true);
  299. ((CheckBox)ctrl2[0]).Checked = check;
  300. Control[] ctrl3 = this.Controls.Find(string.Format("cb_COMM{0}_CH2Use", i), true);
  301. ((CheckBox)ctrl3[0]).Checked = check;
  302. Control[] ctrl4 = this.Controls.Find(string.Format("cb_COMM{0}_CH3Use", i), true);
  303. ((CheckBox)ctrl4[0]).Checked = check;
  304. Control[] ctrl5 = this.Controls.Find(string.Format("cb_COMM{0}_CH4Use", i), true);
  305. ((CheckBox)ctrl5[0]).Checked = check;
  306. }
  307. }
  308. //
  309. // IO보드
  310. //
  311. private void checkBox_All_5_CheckedChanged(object sender, EventArgs e)
  312. {
  313. bool check = this.checkBox_All_5.Checked;
  314. for (int i = 0; i <= 15; i++) // cyim 2017.02.02 : IFC3300 에서는 통신보드, IO 보드 아이디가 0번이 존재한다
  315. {
  316. // 사용 여부
  317. Control[] ctrl1 = this.Controls.Find(string.Format("cb_IO{0}_Use", i), true);
  318. ((CheckBox)ctrl1[0]).Checked = check;
  319. }
  320. }
  321. }
  322. }