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