You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
401 lines
12 KiB
C#
401 lines
12 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Mesnac.Controls.Sulf
|
|
{
|
|
[ToolboxBitmap(typeof(TextBox))]
|
|
public partial class IOControl : UserControl
|
|
{
|
|
public IOControl()
|
|
{
|
|
InitializeComponent();
|
|
//this.B1. = Color.Yellow;
|
|
}
|
|
#region 属性
|
|
private string _iOName;
|
|
/// <summary>
|
|
/// IO名称
|
|
/// </summary>
|
|
public string IOName
|
|
{
|
|
get { return this.button1.Text; }
|
|
set
|
|
{
|
|
_iOName = value;
|
|
this.button1.Text = _iOName;
|
|
}
|
|
}
|
|
|
|
private string _iOName1;
|
|
/// <summary>
|
|
/// IO1名称
|
|
/// </summary>
|
|
public string IOName1
|
|
{
|
|
get { return this.B1.Text; }
|
|
set {
|
|
_iOName1 = value;
|
|
this.B1.Text = _iOName1;
|
|
}
|
|
}
|
|
|
|
private string _iOName2;
|
|
/// <summary>
|
|
/// IO1名称
|
|
/// </summary>
|
|
public string IOName2
|
|
{
|
|
get { return _iOName2; }
|
|
set
|
|
{
|
|
_iOName2 = value;
|
|
this.B2.Text = _iOName2;
|
|
}
|
|
}
|
|
|
|
private string _iOName3;
|
|
/// <summary>
|
|
/// IO3名称
|
|
/// </summary>
|
|
public string IOName3
|
|
{
|
|
get { return _iOName3; }
|
|
set
|
|
{
|
|
_iOName3 = value;
|
|
this.B3.Text = _iOName3;
|
|
}
|
|
}
|
|
|
|
private string _iOName4;
|
|
/// <summary>
|
|
/// IO4名称
|
|
/// </summary>
|
|
public string IOName4
|
|
{
|
|
get { return _iOName4; }
|
|
set
|
|
{
|
|
_iOName4 = value;
|
|
this.B4.Text = _iOName4;
|
|
}
|
|
}
|
|
|
|
private string _iOName5;
|
|
/// <summary>
|
|
/// IO5名称
|
|
/// </summary>
|
|
public string IOName5
|
|
{
|
|
get { return _iOName5; }
|
|
set
|
|
{
|
|
_iOName5 = value;
|
|
this.B5.Text = _iOName5;
|
|
}
|
|
}
|
|
|
|
private string _iOName6;
|
|
/// <summary>
|
|
/// IO6名称
|
|
/// </summary>
|
|
public string IOName6
|
|
{
|
|
get { return _iOName6; }
|
|
set
|
|
{
|
|
_iOName6 = value;
|
|
this.B6.Text = _iOName6;
|
|
}
|
|
}
|
|
|
|
private string _iOName7;
|
|
/// <summary>
|
|
/// IO7名称
|
|
/// </summary>
|
|
public string IOName7
|
|
{
|
|
get { return _iOName7; }
|
|
set
|
|
{
|
|
_iOName7 = value;
|
|
this.B7.Text = _iOName7;
|
|
}
|
|
}
|
|
|
|
private string _iOName8;
|
|
/// <summary>
|
|
/// IO8名称
|
|
/// </summary>
|
|
public string IOName8
|
|
{
|
|
get { return _iOName8; }
|
|
set
|
|
{
|
|
_iOName8 = value;
|
|
this.B8.Text = _iOName8;
|
|
}
|
|
}
|
|
|
|
private string _iOName9;
|
|
/// <summary>
|
|
/// IO9名称
|
|
/// </summary>
|
|
public string IOName9
|
|
{
|
|
get { return _iOName9; }
|
|
set
|
|
{
|
|
_iOName9 = value;
|
|
this.B9.Text = _iOName9;
|
|
}
|
|
}
|
|
|
|
private string _iOName10;
|
|
/// <summary>
|
|
/// IO10名称
|
|
/// </summary>
|
|
public string IOName10
|
|
{
|
|
get { return _iOName10; }
|
|
set
|
|
{
|
|
_iOName10 = value;
|
|
this.B10.Text = _iOName10;
|
|
}
|
|
}
|
|
|
|
private string _iOName11;
|
|
/// <summary>
|
|
/// IO11名称
|
|
/// </summary>
|
|
public string IOName11
|
|
{
|
|
get { return _iOName11; }
|
|
set
|
|
{
|
|
_iOName11 = value;
|
|
this.B11.Text = _iOName11;
|
|
}
|
|
}
|
|
|
|
private string _iOName12;
|
|
/// <summary>
|
|
/// IO12名称
|
|
/// </summary>
|
|
public string IOName12
|
|
{
|
|
get { return _iOName12; }
|
|
set
|
|
{
|
|
_iOName12 = value;
|
|
this.B12.Text = _iOName12;
|
|
}
|
|
}
|
|
|
|
private string _iOName13;
|
|
/// <summary>
|
|
/// IO13名称
|
|
/// </summary>
|
|
public string IOName13
|
|
{
|
|
get { return _iOName13; }
|
|
set
|
|
{
|
|
_iOName13 = value;
|
|
this.B13.Text = _iOName13;
|
|
}
|
|
}
|
|
|
|
private string _iOName14;
|
|
/// <summary>
|
|
/// IO14名称
|
|
/// </summary>
|
|
public string IOName14
|
|
{
|
|
get { return _iOName14; }
|
|
set
|
|
{
|
|
_iOName14 = value;
|
|
this.B14.Text = _iOName14;
|
|
}
|
|
}
|
|
|
|
private string _iOName15;
|
|
/// <summary>
|
|
/// IO15名称
|
|
/// </summary>
|
|
public string IOName15
|
|
{
|
|
get { return _iOName15; }
|
|
set
|
|
{
|
|
_iOName15 = value;
|
|
this.B15.Text = _iOName15;
|
|
}
|
|
}
|
|
|
|
private string _iOName16;
|
|
/// <summary>
|
|
/// IO16名称
|
|
/// </summary>
|
|
public string IOName16
|
|
{
|
|
get { return _iOName16; }
|
|
set
|
|
{
|
|
_iOName16 = value;
|
|
this.B16.Text = _iOName16;
|
|
}
|
|
}
|
|
|
|
private bool _fontleft;
|
|
public bool Fontleft
|
|
{
|
|
get { return _fontleft; }
|
|
set
|
|
{
|
|
_fontleft = value;
|
|
if (value)
|
|
{
|
|
this.B1.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B2.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B3.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B4.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B5.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B6.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B7.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B8.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B9.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B10.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B11.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B12.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B13.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B14.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B15.TextAlign = ContentAlignment.MiddleLeft;
|
|
this.B16.TextAlign = ContentAlignment.MiddleLeft;
|
|
}
|
|
}
|
|
}
|
|
|
|
private bool _fontColor;
|
|
public bool FontColor
|
|
{
|
|
get { return _fontColor; }
|
|
set
|
|
{
|
|
_fontColor = value;
|
|
if (_fontColor)
|
|
{
|
|
this.B1.ForeColor = Color.Yellow;
|
|
this.B2.ForeColor = Color.Yellow;
|
|
this.B3.ForeColor = Color.Yellow;
|
|
this.B4.ForeColor = Color.Yellow;
|
|
this.B5.ForeColor = Color.Yellow;
|
|
this.B6.ForeColor = Color.Yellow;
|
|
this.B7.ForeColor = Color.Yellow;
|
|
this.B8.ForeColor = Color.Yellow;
|
|
this.B9.ForeColor = Color.Yellow;
|
|
this.B10.ForeColor = Color.Yellow;
|
|
this.B11.ForeColor = Color.Yellow;
|
|
this.B12.ForeColor = Color.Yellow;
|
|
this.B13.ForeColor = Color.Yellow;
|
|
this.B14.ForeColor = Color.Yellow;
|
|
this.B15.ForeColor = Color.Yellow;
|
|
this.B16.ForeColor = Color.Yellow;
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 动画
|
|
|
|
private string _equipName;
|
|
|
|
public string EquipName
|
|
{
|
|
get { return _equipName; }
|
|
set { _equipName = value; }
|
|
}
|
|
public string EquipValue
|
|
{
|
|
set
|
|
{
|
|
if (!string.IsNullOrEmpty(value))
|
|
{
|
|
string retValue = string.Empty;
|
|
int data = 0;
|
|
int.TryParse(value, out data);
|
|
int[] datas = new int[16];
|
|
//int[] datas = ParseBinaryValue(data, 16);
|
|
string Dec = data.ToString();
|
|
//string bv = string.Empty;
|
|
//for (int j = 0; j < Dec.Length; j++)
|
|
//{
|
|
|
|
// int[] bitValue = ParseBinaryValue(Convert.ToInt32(Dec.Substring(Dec.Length - 1 - j, 1)), 4);
|
|
// for (int i = 0; i < 4; i++)
|
|
// {
|
|
// bv += bitValue[i];
|
|
// }
|
|
// retValue = bv + retValue;
|
|
// bv = string.Empty;
|
|
//}
|
|
//string temp = retValue.PadLeft(16, '0');
|
|
int[] bitValue = ParseBinaryValue(Convert.ToInt32(Dec), 16);
|
|
//if (temp.Length == 16)
|
|
//{
|
|
// for (int i = 0; i <16; i++)
|
|
// {
|
|
// int j = 0;
|
|
// int.TryParse(temp.Substring(i, 1),out j);
|
|
// datas[i] = j;
|
|
// }
|
|
//}
|
|
B1.BackColor = bitValue[15] == 0 ? Color.Black : Color.Green;
|
|
B2.BackColor = bitValue[14] == 0 ? Color.Black : Color.Green;
|
|
B3.BackColor = bitValue[13] == 0 ? Color.Black : Color.Green;
|
|
B4.BackColor = bitValue[12] == 0 ? Color.Black : Color.Green;
|
|
B5.BackColor = bitValue[11] == 0 ? Color.Black : Color.Green;
|
|
B6.BackColor = bitValue[10] == 0 ? Color.Black : Color.Green;
|
|
B7.BackColor = bitValue[9] == 0 ? Color.Black : Color.Green;
|
|
B8.BackColor = bitValue[8] == 0 ? Color.Black : Color.Green;
|
|
B9.BackColor = bitValue[7] == 0 ? Color.Black : Color.Green;
|
|
B10.BackColor = bitValue[6] == 0 ? Color.Black : Color.Green;
|
|
B11.BackColor = bitValue[5] == 0 ? Color.Black : Color.Green;
|
|
B12.BackColor = bitValue[4] == 0 ? Color.Black : Color.Green;
|
|
B13.BackColor = bitValue[3] == 0 ? Color.Black : Color.Green;
|
|
B14.BackColor = bitValue[2] == 0 ? Color.Black : Color.Green;
|
|
B15.BackColor = bitValue[1] == 0 ? Color.Black : Color.Green;
|
|
B16.BackColor = bitValue[0] == 0 ? Color.Black : Color.Green;
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 解析二进制位
|
|
/// </summary>
|
|
/// <param name="x">要解析的变量</param>
|
|
/// <param name="len">解析的长度</param>
|
|
/// <returns>返回解析的二进制值数组</returns>
|
|
public int[] ParseBinaryValue(int x, int len)
|
|
{
|
|
int[] result = new int[len];
|
|
int b = 1;
|
|
for (int i = len - 1; i >= 0; i--)
|
|
{
|
|
result[i] = (x & b) == 0 ? 0 : 1;
|
|
b = b << 1;
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
}
|