78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Threading.Tasks;
 | |
| using System.Windows.Forms;
 | |
| 
 | |
| namespace arDev
 | |
| {
 | |
|     public partial class fIOMonitor : Form
 | |
|     {
 | |
|         MasterK dio;
 | |
|         public fIOMonitor(MasterK _device)
 | |
|         {
 | |
|             InitializeComponent();
 | |
|             dio = _device;
 | |
|         }
 | |
| 
 | |
|         Button[] btInput;
 | |
|         Button[] btOutput;
 | |
|         private void fIOMonitor_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             btInput = new Button[dio.DICount];
 | |
|             btOutput = new Button[dio.DOCount];
 | |
|             for(int i = 0; i< dio.DICount;i++)
 | |
|             {
 | |
|                 Button lb = new Button();
 | |
|                 lb.Text = string.Format("{0}",i+1);
 | |
|                 lb.Tag = i;
 | |
|                 lb.Click += lb_ClickI;
 | |
|                 lb.Dock = DockStyle.Fill;
 | |
|                 lb.BackColor = dio.INPUT(i) ? Color.Lime : Color.White;
 | |
|                 btInput[i] = lb;
 | |
|                 this.tblINput.Controls.Add(lb);
 | |
|             }
 | |
|             for (int i = 0; i < dio.DOCount; i++)
 | |
|             {
 | |
|                 Button lb = new Button();
 | |
|                 lb.Text = string.Format("{0}", i + 1);
 | |
|                 lb.Tag = i;
 | |
|                 lb.Click += lb_ClickO;
 | |
|                 lb.Dock = DockStyle.Fill;
 | |
|                 lb.BackColor = dio.OUTPUT(i) ? Color.Lime : Color.White;
 | |
|                 btOutput[i] = lb;
 | |
|                 this.tblOutput.Controls.Add(lb);
 | |
|             }
 | |
| 
 | |
|             dio.IOValueChanged += dio_IOValueChanged;
 | |
|         }
 | |
| 
 | |
|         void dio_IOValueChanged(object sender, MasterK.IOValueEventArgs e)
 | |
|         {
 | |
|             if(e.Direction == MasterK.eIOPINDIR.INPUT)
 | |
|             {
 | |
|                 btInput[e.ArrIDX].BackColor = e.NewValue ? Color.Lime : Color.White;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 btOutput[e.ArrIDX].BackColor = e.NewValue ? Color.Lime : Color.White;
 | |
|             }
 | |
|         }
 | |
|         void lb_ClickI(object sender, EventArgs e)
 | |
|         {
 | |
|             var bt = sender as Button;
 | |
|             //MessageBox.Show("input click : " + bt.Tag.ToString());
 | |
|         }
 | |
|         void lb_ClickO(object sender, EventArgs e)
 | |
|         {
 | |
|             var bt = sender as Button;
 | |
|             var idx = int.Parse(bt.Tag.ToString());
 | |
|             dio.SetToggle(idx);
 | |
|         }
 | |
|     }
 | |
| }
 | 
