Files
vms2016_kadisp/Sub/arMasterK/Project/fIOMonitor.cs

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);
}
}
}