파일정리

This commit is contained in:
ChiKyun Kim
2026-01-29 14:03:17 +09:00
parent 00cc0ef5b7
commit 58ca67150d
440 changed files with 47236 additions and 99165 deletions

470
HMI/Project/ViewForm/fAgv.Designer.cs generated Normal file
View File

@@ -0,0 +1,470 @@
namespace Project.ViewForm
{
partial class fAgv
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.rtSystem0 = new System.Windows.Forms.RichTextBox();
this.rtSystem1 = new System.Windows.Forms.RichTextBox();
this.rtSignal1 = new System.Windows.Forms.RichTextBox();
this.rtError = new System.Windows.Forms.RichTextBox();
this.label1 = new System.Windows.Forms.Label();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.panel1 = new System.Windows.Forms.Panel();
this.button7 = new System.Windows.Forms.Button();
this.button6 = new System.Windows.Forms.Button();
this.button5 = new System.Windows.Forms.Button();
this.button17 = new System.Windows.Forms.Button();
this.lbIP = new System.Windows.Forms.Label();
this.button3 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.button8 = new System.Windows.Forms.Button();
this.button4 = new System.Windows.Forms.Button();
this.button9 = new System.Windows.Forms.Button();
this.panel2 = new System.Windows.Forms.Panel();
this.lbPortName = new System.Windows.Forms.Label();
this.button15 = new System.Windows.Forms.Button();
this.button14 = new System.Windows.Forms.Button();
this.button11 = new System.Windows.Forms.Button();
this.button12 = new System.Windows.Forms.Button();
this.button13 = new System.Windows.Forms.Button();
this.button10 = new System.Windows.Forms.Button();
this.button16 = new System.Windows.Forms.Button();
this.rtData = new System.Windows.Forms.RichTextBox();
this.rtSignal2 = new System.Windows.Forms.RichTextBox();
this.tableLayoutPanel1.SuspendLayout();
this.panel1.SuspendLayout();
this.panel2.SuspendLayout();
this.SuspendLayout();
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 4;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 25F));
this.tableLayoutPanel1.Controls.Add(this.rtSignal2, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.rtSystem0, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.rtSystem1, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.rtSignal1, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.rtError, 3, 0);
this.tableLayoutPanel1.Controls.Add(this.label1, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.rtData, 3, 1);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 3;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 50F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(1050, 461);
this.tableLayoutPanel1.TabIndex = 6;
//
// rtSystem0
//
this.rtSystem0.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtSystem0.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
this.rtSystem0.Location = new System.Drawing.Point(3, 3);
this.rtSystem0.Name = "rtSystem0";
this.tableLayoutPanel1.SetRowSpan(this.rtSystem0, 2);
this.rtSystem0.Size = new System.Drawing.Size(256, 404);
this.rtSystem0.TabIndex = 1;
this.rtSystem0.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n";
//
// rtSystem1
//
this.rtSystem1.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtSystem1.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
this.rtSystem1.Location = new System.Drawing.Point(265, 3);
this.rtSystem1.Name = "rtSystem1";
this.tableLayoutPanel1.SetRowSpan(this.rtSystem1, 2);
this.rtSystem1.Size = new System.Drawing.Size(256, 404);
this.rtSystem1.TabIndex = 1;
this.rtSystem1.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n";
//
// rtSignal1
//
this.rtSignal1.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtSignal1.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
this.rtSignal1.Location = new System.Drawing.Point(527, 3);
this.rtSignal1.Name = "rtSignal1";
this.rtSignal1.Size = new System.Drawing.Size(256, 199);
this.rtSignal1.TabIndex = 1;
this.rtSignal1.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n";
//
// rtError
//
this.rtError.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtError.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
this.rtError.Location = new System.Drawing.Point(789, 3);
this.rtError.Name = "rtError";
this.rtError.Size = new System.Drawing.Size(258, 199);
this.rtError.TabIndex = 1;
this.rtError.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n";
//
// label1
//
this.tableLayoutPanel1.SetColumnSpan(this.label1, 2);
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
this.label1.ForeColor = System.Drawing.Color.White;
this.label1.Location = new System.Drawing.Point(3, 410);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(518, 51);
this.label1.TabIndex = 2;
this.label1.Text = "label1";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// timer1
//
this.timer1.Interval = 200;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// panel1
//
this.panel1.Controls.Add(this.button7);
this.panel1.Controls.Add(this.button6);
this.panel1.Controls.Add(this.button5);
this.panel1.Controls.Add(this.button17);
this.panel1.Controls.Add(this.lbIP);
this.panel1.Controls.Add(this.button3);
this.panel1.Controls.Add(this.button2);
this.panel1.Controls.Add(this.button1);
this.panel1.Controls.Add(this.button8);
this.panel1.Controls.Add(this.button4);
this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel1.Location = new System.Drawing.Point(3, 522);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(1050, 58);
this.panel1.TabIndex = 7;
//
// button7
//
this.button7.Dock = System.Windows.Forms.DockStyle.Right;
this.button7.Location = new System.Drawing.Point(570, 0);
this.button7.Name = "button7";
this.button7.Size = new System.Drawing.Size(80, 58);
this.button7.TabIndex = 6;
this.button7.Text = "Go - Front\r\nManual";
this.button7.UseVisualStyleBackColor = true;
this.button7.Click += new System.EventHandler(this.button7_Click);
//
// button6
//
this.button6.Dock = System.Windows.Forms.DockStyle.Right;
this.button6.Location = new System.Drawing.Point(650, 0);
this.button6.Name = "button6";
this.button6.Size = new System.Drawing.Size(80, 58);
this.button6.TabIndex = 5;
this.button6.Text = "Go - Back\r\nManual";
this.button6.UseVisualStyleBackColor = true;
this.button6.Click += new System.EventHandler(this.button6_Click);
//
// button5
//
this.button5.Dock = System.Windows.Forms.DockStyle.Right;
this.button5.Location = new System.Drawing.Point(730, 0);
this.button5.Name = "button5";
this.button5.Size = new System.Drawing.Size(80, 58);
this.button5.TabIndex = 4;
this.button5.Text = "Stop(Mark)";
this.button5.UseVisualStyleBackColor = true;
this.button5.Click += new System.EventHandler(this.button5_Click);
//
// button17
//
this.button17.Dock = System.Windows.Forms.DockStyle.Right;
this.button17.Location = new System.Drawing.Point(810, 0);
this.button17.Name = "button17";
this.button17.Size = new System.Drawing.Size(80, 58);
this.button17.TabIndex = 9;
this.button17.Text = "Run(Bwd)";
this.button17.UseVisualStyleBackColor = true;
this.button17.Click += new System.EventHandler(this.button17_Click);
//
// lbIP
//
this.lbIP.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbIP.Font = new System.Drawing.Font("Tahoma", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.lbIP.ForeColor = System.Drawing.Color.White;
this.lbIP.Location = new System.Drawing.Point(252, 0);
this.lbIP.Name = "lbIP";
this.lbIP.Size = new System.Drawing.Size(638, 58);
this.lbIP.TabIndex = 8;
this.lbIP.Text = "000.000.000.000";
this.lbIP.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// button3
//
this.button3.Dock = System.Windows.Forms.DockStyle.Left;
this.button3.Location = new System.Drawing.Point(168, 0);
this.button3.Name = "button3";
this.button3.Size = new System.Drawing.Size(84, 58);
this.button3.TabIndex = 2;
this.button3.Text = "Charge Off";
this.button3.UseVisualStyleBackColor = true;
this.button3.Click += new System.EventHandler(this.button3_Click);
//
// button2
//
this.button2.Dock = System.Windows.Forms.DockStyle.Left;
this.button2.Location = new System.Drawing.Point(84, 0);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(84, 58);
this.button2.TabIndex = 1;
this.button2.Text = "Charge On";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button1
//
this.button1.Dock = System.Windows.Forms.DockStyle.Left;
this.button1.Location = new System.Drawing.Point(0, 0);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(84, 58);
this.button1.TabIndex = 0;
this.button1.Text = "Reset";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// button8
//
this.button8.Dock = System.Windows.Forms.DockStyle.Right;
this.button8.Location = new System.Drawing.Point(890, 0);
this.button8.Name = "button8";
this.button8.Size = new System.Drawing.Size(80, 58);
this.button8.TabIndex = 7;
this.button8.Text = "Run(Fwd)";
this.button8.UseVisualStyleBackColor = true;
this.button8.Click += new System.EventHandler(this.button8_Click);
//
// button4
//
this.button4.Dock = System.Windows.Forms.DockStyle.Right;
this.button4.Location = new System.Drawing.Point(970, 0);
this.button4.Name = "button4";
this.button4.Size = new System.Drawing.Size(80, 58);
this.button4.TabIndex = 3;
this.button4.Text = "Stop";
this.button4.UseVisualStyleBackColor = true;
this.button4.Click += new System.EventHandler(this.button4_Click);
//
// button9
//
this.button9.Dock = System.Windows.Forms.DockStyle.Left;
this.button9.Location = new System.Drawing.Point(324, 0);
this.button9.Name = "button9";
this.button9.Size = new System.Drawing.Size(115, 58);
this.button9.TabIndex = 9;
this.button9.Text = "GDS Center Scope";
this.button9.UseVisualStyleBackColor = true;
this.button9.Click += new System.EventHandler(this.button9_Click);
//
// panel2
//
this.panel2.Controls.Add(this.lbPortName);
this.panel2.Controls.Add(this.button15);
this.panel2.Controls.Add(this.button14);
this.panel2.Controls.Add(this.button11);
this.panel2.Controls.Add(this.button12);
this.panel2.Controls.Add(this.button13);
this.panel2.Controls.Add(this.button9);
this.panel2.Controls.Add(this.button10);
this.panel2.Controls.Add(this.button16);
this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel2.Location = new System.Drawing.Point(3, 464);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(1050, 58);
this.panel2.TabIndex = 8;
//
// lbPortName
//
this.lbPortName.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbPortName.Font = new System.Drawing.Font("Tahoma", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.lbPortName.ForeColor = System.Drawing.Color.White;
this.lbPortName.Location = new System.Drawing.Point(607, 0);
this.lbPortName.Name = "lbPortName";
this.lbPortName.Size = new System.Drawing.Size(203, 58);
this.lbPortName.TabIndex = 15;
this.lbPortName.Text = "--";
this.lbPortName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// button15
//
this.button15.Dock = System.Windows.Forms.DockStyle.Left;
this.button15.Location = new System.Drawing.Point(523, 0);
this.button15.Name = "button15";
this.button15.Size = new System.Drawing.Size(84, 58);
this.button15.TabIndex = 14;
this.button15.Text = "Mag Off";
this.button15.UseVisualStyleBackColor = true;
this.button15.Click += new System.EventHandler(this.button15_Click);
//
// button14
//
this.button14.Dock = System.Windows.Forms.DockStyle.Left;
this.button14.Location = new System.Drawing.Point(439, 0);
this.button14.Name = "button14";
this.button14.Size = new System.Drawing.Size(84, 58);
this.button14.TabIndex = 13;
this.button14.Text = "Mag On";
this.button14.UseVisualStyleBackColor = true;
this.button14.Click += new System.EventHandler(this.button14_Click);
//
// button11
//
this.button11.Dock = System.Windows.Forms.DockStyle.Right;
this.button11.Location = new System.Drawing.Point(810, 0);
this.button11.Name = "button11";
this.button11.Size = new System.Drawing.Size(80, 58);
this.button11.TabIndex = 11;
this.button11.Text = "Up";
this.button11.UseVisualStyleBackColor = true;
this.button11.Click += new System.EventHandler(this.button11_Click);
//
// button12
//
this.button12.Dock = System.Windows.Forms.DockStyle.Right;
this.button12.Location = new System.Drawing.Point(890, 0);
this.button12.Name = "button12";
this.button12.Size = new System.Drawing.Size(80, 58);
this.button12.TabIndex = 12;
this.button12.Text = "Stop";
this.button12.UseVisualStyleBackColor = true;
this.button12.Click += new System.EventHandler(this.button12_Click);
//
// button13
//
this.button13.Dock = System.Windows.Forms.DockStyle.Right;
this.button13.Location = new System.Drawing.Point(970, 0);
this.button13.Name = "button13";
this.button13.Size = new System.Drawing.Size(80, 58);
this.button13.TabIndex = 10;
this.button13.Text = "Down";
this.button13.UseVisualStyleBackColor = true;
this.button13.Click += new System.EventHandler(this.button13_Click);
//
// button10
//
this.button10.Dock = System.Windows.Forms.DockStyle.Left;
this.button10.Location = new System.Drawing.Point(162, 0);
this.button10.Name = "button10";
this.button10.Size = new System.Drawing.Size(162, 58);
this.button10.TabIndex = 1;
this.button10.Text = "GateOut Off Time";
this.button10.UseVisualStyleBackColor = true;
this.button10.Click += new System.EventHandler(this.button10_Click);
//
// button16
//
this.button16.Dock = System.Windows.Forms.DockStyle.Left;
this.button16.Location = new System.Drawing.Point(0, 0);
this.button16.Name = "button16";
this.button16.Size = new System.Drawing.Size(162, 58);
this.button16.TabIndex = 0;
this.button16.Text = "백턴유지시간";
this.button16.UseVisualStyleBackColor = true;
this.button16.Click += new System.EventHandler(this.button16_Click);
//
// rtData
//
this.rtData.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtData.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
this.rtData.Location = new System.Drawing.Point(789, 208);
this.rtData.Name = "rtData";
this.rtData.Size = new System.Drawing.Size(258, 199);
this.rtData.TabIndex = 3;
this.rtData.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n";
//
// rtSignal2
//
this.rtSignal2.Dock = System.Windows.Forms.DockStyle.Fill;
this.rtSignal2.Font = new System.Drawing.Font("Calibri", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(2)));
this.rtSignal2.Location = new System.Drawing.Point(527, 208);
this.rtSignal2.Name = "rtSignal2";
this.rtSignal2.Size = new System.Drawing.Size(256, 199);
this.rtSignal2.TabIndex = 4;
this.rtSignal2.Text = "test2\ntest3\nteat\nasdfjalsdf\nasdjfklasdfj\nkalsdjfalksdjfa\nsdjfklasdjfklasjdf\n";
//
// fAgv
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15)))));
this.ClientSize = new System.Drawing.Size(1056, 583);
this.Controls.Add(this.tableLayoutPanel1);
this.Controls.Add(this.panel2);
this.Controls.Add(this.panel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "fAgv";
this.Padding = new System.Windows.Forms.Padding(3);
this.Text = "fFlag";
this.Load += new System.EventHandler(this.fFlag_Load);
this.VisibleChanged += new System.EventHandler(this.fAgv_VisibleChanged);
this.tableLayoutPanel1.ResumeLayout(false);
this.panel1.ResumeLayout(false);
this.panel2.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.RichTextBox rtSystem0;
private System.Windows.Forms.RichTextBox rtSystem1;
private System.Windows.Forms.RichTextBox rtSignal1;
private System.Windows.Forms.RichTextBox rtError;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.Button button3;
private System.Windows.Forms.Button button4;
private System.Windows.Forms.Button button5;
private System.Windows.Forms.Button button6;
private System.Windows.Forms.Button button7;
private System.Windows.Forms.Button button8;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label lbIP;
private System.Windows.Forms.Button button9;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Button button16;
private System.Windows.Forms.Button button10;
private System.Windows.Forms.Button button15;
private System.Windows.Forms.Button button14;
private System.Windows.Forms.Button button11;
private System.Windows.Forms.Button button12;
private System.Windows.Forms.Button button13;
private System.Windows.Forms.Label lbPortName;
private System.Windows.Forms.Button button17;
private System.Windows.Forms.RichTextBox rtData;
private System.Windows.Forms.RichTextBox rtSignal2;
}
}

View File

@@ -0,0 +1,201 @@
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;
using COMM;
namespace Project.ViewForm
{
public partial class fAgv : Form
{
public fAgv()
{
InitializeComponent();
this.FormClosed += FIO_FormClosed;
}
private void fFlag_Load(object sender, EventArgs e)
{
this.timer1.Start();
}
private void FIO_FormClosed(object sender, FormClosedEventArgs e)
{
this.timer1.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
lbIP.Text = PUB.IP;
label1.Text = PUB.AGV.LastSTS;
rtSystem0.Rtf = PUB.AGV.system0.ToRtfString();
rtSystem1.Rtf = PUB.AGV.system1.ToRtfString();
rtSignal1.Rtf = PUB.AGV.signal1.ToRtfString();
rtSignal2.Rtf = PUB.AGV.signal2.ToRtfString();
rtData.Rtf = PUB.AGV.data.ToRtfString();
rtError.Rtf = PUB.AGV.error.ToRtfString();
lbPortName.Text = $"AGV:{PUB.setting.Port_AGV}\nBMS:{PUB.setting.Port_BAT}";
timer1.Start();
}
private string CombineRtfStrings(string rtf1, string rtf2)
{
// RTF 문자열 합치기: 첫 번째 RTF의 닫는 } 제거하고 두 번째 RTF의 헤더 제거
var rtf1Body = rtf1.Replace("}", "").Trim();
var rtf2Lines = rtf2.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
var sb = new System.Text.StringBuilder();
sb.Append(rtf1Body);
// 두 번째 RTF의 헤더 부분 건너뛰기
bool skipHeader = true;
foreach (var line in rtf2Lines)
{
if (line.Contains(@"\line") || (!line.StartsWith(@"{\rtf") && !line.StartsWith(@"{\colortbl") && !line.Contains("}")))
{
skipHeader = false;
}
if (!skipHeader && !line.Trim().Equals("}"))
{
sb.AppendLine(line);
}
}
sb.AppendLine("}");
return sb.ToString();
}
private void fAgv_VisibleChanged(object sender, EventArgs e)
{
this.timer1.Enabled = this.Visible;
if (timer1.Enabled) timer1.Start();
else timer1.Stop();
}
private void button1_Click(object sender, EventArgs e)
{
PUB.AGV.AGVErrorReset();
if(PUB.sm.Step == StateMachine.eSMStep.RUN)
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
}
private void button2_Click(object sender, EventArgs e)
{
PUB.log.Add($"사용자 충전 명령 전송 : {PUB.setting.ChargerID}");
PUB.AGV.AGVCharge(PUB.setting.ChargerID, true);
if (PUB.sm.Step == StateMachine.eSMStep.RUN)
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
}
private void button3_Click(object sender, EventArgs e)
{
PUB.AGV.AGVCharge(PUB.setting.ChargerID, false);
if (PUB.sm.Step == StateMachine.eSMStep.RUN)
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
}
private void button4_Click(object sender, EventArgs e)
{
PUB.AGV.AGVMoveStop("userbutton page:fagv button:button4");
if (PUB.sm.Step == StateMachine.eSMStep.RUN)
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
}
private void button5_Click(object sender, EventArgs e)
{
PUB.AGV.AGVMoveStop("user button clic fagv",arDev.Narumi.eStopOpt.MarkStop);
if (PUB.sm.Step == StateMachine.eSMStep.RUN)
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
}
private void button7_Click(object sender, EventArgs e)
{
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.FS, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn);
if (PUB.sm.Step == StateMachine.eSMStep.RUN)
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
}
private void button6_Click(object sender, EventArgs e)
{
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.BS, arDev.Narumi.Speed.Low, arDev.Narumi.Sensor.AllOn);
if (PUB.sm.Step == StateMachine.eSMStep.RUN)
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
}
private void button8_Click(object sender, EventArgs e)
{
PUB.AGV.AGVMoveRun( arDev.Narumi.eRunOpt.Forward);
}
private void button9_Click(object sender, EventArgs e)
{
var inputbox = AR.UTIL.InputBox("input value", "1000");
if (inputbox.Item1 == false) return;
if (UInt16.TryParse(inputbox.Item2, out UInt16 value) == false) return;
PUB.AGV.TurnGDSCenterScope(value);
if (PUB.sm.Step == StateMachine.eSMStep.RUN)
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
}
private void button16_Click(object sender, EventArgs e)
{
var inputbox = AR.UTIL.InputBox("input value","100");
if (inputbox.Item1 == false) return;
if (int.TryParse(inputbox.Item2, out int value) == false) return;
PUB.AGV.SetBackturnTime(value);
if (PUB.sm.Step == StateMachine.eSMStep.RUN)
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
}
private void button10_Click(object sender, EventArgs e)
{
var inputbox = AR.UTIL.InputBox("input value","50");
if (inputbox.Item1 == false) return;
if (int.TryParse(inputbox.Item2, out int value) == false) return;
PUB.AGV.SetGateOutOffTime(value);
if (PUB.sm.Step == StateMachine.eSMStep.RUN)
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
}
private void button14_Click(object sender, EventArgs e)
{
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON);
}
private void button15_Click(object sender, EventArgs e)
{
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF);
}
private void button11_Click(object sender, EventArgs e)
{
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP);
}
private void button13_Click(object sender, EventArgs e)
{
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.DN);
}
private void button12_Click(object sender, EventArgs e)
{
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.STP);
}
private void button17_Click(object sender, EventArgs e)
{
PUB.AGV.AGVMoveRun(arDev.Narumi.eRunOpt.Backward);
}
}
}

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

99
HMI/Project/ViewForm/fAuto.Designer.cs generated Normal file
View File

@@ -0,0 +1,99 @@
using System;
using System.Drawing;
using System.Windows.Forms;
namespace Project.ViewForm
{
partial class fAuto
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
components = new System.ComponentModel.Container();
timer1 = new System.Windows.Forms.Timer(components);
ctlAuto1 = new CtlAuto();
panel1 = new Panel();
SuspendLayout();
//
// timer1
//
timer1.Interval = 200;
//
// ctlAuto1
//
ctlAuto1.BackColor = Color.FromArgb(32, 32, 32);
ctlAuto1.BorderColor = Color.Transparent;
ctlAuto1.Font = new Font("맑은 고딕", 20F, FontStyle.Regular, GraphicsUnit.Point, 129);
ctlAuto1.Font_BMS_Level = new Font("Bahnschrift Condensed", 250F, FontStyle.Bold, GraphicsUnit.Point, 0);
ctlAuto1.Font_BMS_Volt = new Font("Bahnschrift Condensed", 50.25F, FontStyle.Bold);
ctlAuto1.Font_MAIN_BMSLevel = new Font("Arial Narrow", 150F, FontStyle.Bold);
ctlAuto1.ForeColor = Color.White;
ctlAuto1.ItemGap = 0;
ctlAuto1.Items = null;
ctlAuto1.Location = new Point(835, 338);
ctlAuto1.MinimumSize = new Size(100, 30);
ctlAuto1.Name = "ctlAuto1";
ctlAuto1.ProgressMax = 100F;
ctlAuto1.ProgressVal = 50F;
ctlAuto1.Scean = CtlAuto.eScean.Normal;
ctlAuto1.Size = new Size(179, 241);
ctlAuto1.StatusMessage = "상태메세지 입니다";
ctlAuto1.StopMessage = "";
ctlAuto1.StopTime = new DateTime(0L);
ctlAuto1.TabIndex = 20;
ctlAuto1.Text = "ctlAuto1";
//
// panel1
//
panel1.Dock = DockStyle.Fill;
panel1.Font = new Font("Tahoma", 8F, FontStyle.Bold);
panel1.Location = new Point(0, 0);
panel1.Name = "panel1";
panel1.Size = new Size(1014, 579);
panel1.TabIndex = 21;
//
// fAuto
//
AutoScaleMode = AutoScaleMode.None;
BackColor = Color.FromArgb(15, 15, 15);
ClientSize = new Size(1014, 579);
Controls.Add(panel1);
Controls.Add(ctlAuto1);
DoubleBuffered = true;
FormBorderStyle = FormBorderStyle.None;
Name = "fAuto";
Text = "fAuto";
Load += fAuto_Load;
VisibleChanged += fAuto_VisibleChanged;
ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Timer timer1;
private CtlAuto ctlAuto1;
private Panel panel1;
}
}

View File

@@ -0,0 +1,271 @@
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;
using Project.StateMachine;
using COMM;
using AR;
using AGVNavigationCore.Models;
namespace Project.ViewForm
{
public partial class fAuto : Form
{
public fAuto()
{
InitializeComponent();
this.FormClosed += FAuto_FormClosed;
PUB.sm.StepChanged += Sm_StepChanged;
this.ctlAuto1.ButtonClick += CtlAuto1_ButtonClick;
if (PUB.sm.Step == eSMStep.INIT || PUB.sm.Step == eSMStep.SYNC)
this.ctlAuto1.Scean = CtlAuto.eScean.Progress;
else
this.ctlAuto1.Scean = CtlAuto.eScean.Normal;
InitializeMapCanvas();
}
private void InitializeMapCanvas()
{
PUB._mapCanvas.NodeSelect += OnNodeSelected;;
// 스플리터 패널에 맵 캔버스 추가
panel1.Controls.Add(PUB._mapCanvas);
}
private void OnNodeSelected(object sender, NodeBase node, MouseEventArgs e)
{
if (node == null) return;
var mapnode = node as MapNode;
if (mapnode == null) return;
// [Run Mode] Left Click: AGV Operation
if (PUB._mapCanvas.Mode == AGVNavigationCore.Controls.UnifiedAGVCanvas.CanvasMode.Run && e.Button == MouseButtons.Left)
{
HandleRunModeClick(mapnode);
return;
}
if (e.Button != MouseButtons.Right) return;
// 도킹 가능한 노드인지 또는 작업 노드인지 확인
if (mapnode.isDockingNode == false) return;
ContextMenuStrip menu = new ContextMenuStrip();
// PickOn
var pickOn = new ToolStripMenuItem("Pick On (Move & Pick)");
pickOn.Click += (s, args) => ExecuteManualCommand(mapnode, ENIGProtocol.AGVCommandHE.PickOnEnter);
menu.Items.Add(pickOn);
// PickOff
var pickOff = new ToolStripMenuItem("Pick Off (Move & Drop)");
pickOff.Click += (s, args) => ExecuteManualCommand(mapnode, ENIGProtocol.AGVCommandHE.PickOffEnter);
menu.Items.Add(pickOff);
// Charge
if (mapnode.StationType == StationType.Charger1 || mapnode.StationType == StationType.Charger2)
{
var charge = new ToolStripMenuItem("Charge (Move & Charge)");
charge.Click += (s, args) => ExecuteManualCommand(mapnode, ENIGProtocol.AGVCommandHE.Charger);
menu.Items.Add(charge);
}
menu.Show(Cursor.Position);
}
private void ExecuteManualCommand(MapNode targetNode, ENIGProtocol.AGVCommandHE cmd)
{
if (PUB._virtualAGV.CurrentNode == null)
{
MessageBox.Show("AGV의 현재 위치를 알 수 없습니다.");
return;
}
if (PUB.sm.Step == eSMStep.IDLE)
{
if (MessageBox.Show("현재 대기상태가 아닙니다. 강제로 실행하시겠습니까?", "Warning", MessageBoxButtons.YesNo) == DialogResult.No) return;
}
if (targetNode.isDockingNode == false)
{
UTIL.MsgE("이동 가능한 노드가 아닙니다");
}
// 1. 경로 생성
var pathFinder = new AGVNavigationCore.PathFinding.Planning.AGVPathfinder(PUB._mapCanvas.Nodes);
//// 현재위치에서 목표위치까지
//var result = pathFinder.FindBasicPath(PUB._virtualAGV.CurrentNode, targetNode);
//if (!result.Success || result.Path == null || result.Path.Count == 0)
//{
// MessageBox.Show("경로를 찾을 수 없습니다.");
// return;
//}
// 2. 상태 설정
// 2. 상태 설정
if (targetNode is MapNode mapno)
PUB.log.AddI($"[Manual Command] {cmd} to {mapno.RfidId}({targetNode.Id})");
else
PUB.log.AddI($"[Manual Command] {cmd} to ({targetNode.Id})");
// FindPathResult contains DetailedPath already.
// PUB._virtualAGV.SetPath(result);
PUB._virtualAGV.TargetNode = targetNode as MapNode;
// 3. 작업 설정
PUB.NextWorkCmd = cmd;
// 4. 실행
PUB.sm.SetNewRunStep(ERunStep.GOTO); // GOTO -> Arrive -> _IN sequence execution
}
private void fAuto_Load(object sender, EventArgs e)
{
ctlAuto1.dev_agv = PUB.AGV;
ctlAuto1.dev_bms = PUB.BMS;
ctlAuto1.dev_xbe = PUB.XBE;
PUB.AGV.DataReceive += AGV_DataReceive;
this.timer1.Start();
}
private void AGV_DataReceive(object sender, arDev.Narumi.DataEventArgs e)
{
switch (e.DataType)
{
case arDev.Narumi.DataType.TAG:
//_AGV 파일에서 위치조정을 함
//var tagno = PUB.AGV.data.TagNo;
//PUB.mapctl.SetCurrentPosition(tagno);
break;
}
}
private void CtlAuto1_ButtonClick(CtlAuto.UIButton idx)
{
if (idx.cmd.Equals("EMG"))
{
PUB.log.Add("ui reset click");
PUB.AGV.AGVErrorReset();
}
}
private void Sm_StepChanged(object sender, StateMachine.StateMachine.StepChangeEventArgs e)
{
if (e.New == eSMStep.INIT || e.New == eSMStep.SYNC)
this.ctlAuto1.Scean = CtlAuto.eScean.Progress;
else
this.ctlAuto1.Scean = CtlAuto.eScean.Normal;
}
private void FAuto_FormClosed(object sender, FormClosedEventArgs e)
{
timer1.Stop();
PUB.sm.StepChanged -= Sm_StepChanged;
this.ctlAuto1.ButtonClick -= CtlAuto1_ButtonClick;
PUB.AGV.DataReceive -= AGV_DataReceive;
}
bool tmrun = false;
private void fAuto_VisibleChanged(object sender, EventArgs e)
{
this.timer1.Enabled = this.Visible;
if (timer1.Enabled)
{
timer1.Start();
}
else timer1.Stop();
}
private void timer1_Tick_1(object sender, EventArgs e)
{
//if (this.Visible == false) return;
//if (tmrun == true) return;
//tmrun = true;
//this.ctlAuto1.OnUpdateMode = true;
//if (this.ctlAuto1.Scean == CtlAuto.eScean.Progress)
//{
// ctlAuto1.ProgressVal = PUB.Result.SMSG_ProgressValue;
// ctlAuto1.ProgressMax = PUB.Result.SMSG_ProgressMax;
// ctlAuto1.StatusMessage = VAR.STR?.Get(eVarString.StatusMessage) ?? string.Empty;
//}
//this.ctlAuto1.StopMessage = string.Empty;
//if (PUB.sm.Step == StateMachine.eSMStep.RUN)
//{
// this.ctlAuto1.runStep = PUB.sm.RunStep;
//}
//else
//{
// this.ctlAuto1.runStep = ERunStep.READY;
//}
//this.ctlAuto1.OnUpdateMode = false;
//this.ctlAuto1.Invalidate();
//PUB.mapctl.PredictNextAction();
//tmrun = false;
}
private void HandleRunModeClick(MapNode targetNode)
{
if (targetNode == null) return;
ENIGProtocol.AGVCommandHE targetCmd = ENIGProtocol.AGVCommandHE.Goto;
string confirmMsg = "";
if (targetNode.StationType == StationType.Charger1 || targetNode.StationType == StationType.Charger2)
{
if (MessageBox.Show($"[{targetNode.Id}] 충전기로 이동하여 충전을 진행하시겠습니까?", "작업 확인", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
targetCmd = ENIGProtocol.AGVCommandHE.Charger;
ExecuteManualCommand(targetNode, targetCmd);
}
return;
}
else if (targetNode.isDockingNode)
{
// Loader, Unloader, Buffer, Cleaner - Pick/Drop Selection
ContextMenuStrip menu = new ContextMenuStrip();
var pickOn = new ToolStripMenuItem("Pick On (Move & Pick)");
pickOn.Click += (s, args) => ExecuteManualCommand(targetNode, ENIGProtocol.AGVCommandHE.PickOnEnter);
menu.Items.Add(pickOn);
var pickOff = new ToolStripMenuItem("Pick Off (Move & Drop)");
pickOff.Click += (s, args) => ExecuteManualCommand(targetNode, ENIGProtocol.AGVCommandHE.PickOffEnter);
menu.Items.Add(pickOff);
menu.Show(Cursor.Position);
return;
}
else
{
// Normal Node
if (MessageBox.Show($"[{targetNode.Id}] 노드로 이동하시겠습니까?", "이동 확인", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
targetCmd = ENIGProtocol.AGVCommandHE.Goto;
ExecuteManualCommand(targetNode, targetCmd);
}
return;
}
}
}
}

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

658
HMI/Project/ViewForm/fBms.Designer.cs generated Normal file
View File

@@ -0,0 +1,658 @@
namespace Project.ViewForm
{
partial class fBms
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.panel1 = new System.Windows.Forms.Panel();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.lbcvSt = new System.Windows.Forms.Label();
this.panel11 = new System.Windows.Forms.Panel();
this.lbtemp2 = new System.Windows.Forms.Label();
this.label7 = new System.Windows.Forms.Label();
this.panel10 = new System.Windows.Forms.Panel();
this.lbTemp1 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.panel9 = new System.Windows.Forms.Panel();
this.cv8 = new System.Windows.Forms.Label();
this.label16 = new System.Windows.Forms.Label();
this.panel8 = new System.Windows.Forms.Panel();
this.cv7 = new System.Windows.Forms.Label();
this.label14 = new System.Windows.Forms.Label();
this.panel7 = new System.Windows.Forms.Panel();
this.cv6 = new System.Windows.Forms.Label();
this.label12 = new System.Windows.Forms.Label();
this.panel6 = new System.Windows.Forms.Panel();
this.cv5 = new System.Windows.Forms.Label();
this.label10 = new System.Windows.Forms.Label();
this.panel5 = new System.Windows.Forms.Panel();
this.cv4 = new System.Windows.Forms.Label();
this.label8 = new System.Windows.Forms.Label();
this.panel4 = new System.Windows.Forms.Panel();
this.cv3 = new System.Windows.Forms.Label();
this.label6 = new System.Windows.Forms.Label();
this.panel3 = new System.Windows.Forms.Panel();
this.cv2 = new System.Windows.Forms.Label();
this.label4 = new System.Windows.Forms.Label();
this.panel2 = new System.Windows.Forms.Panel();
this.cv1 = new System.Windows.Forms.Label();
this.label1 = new System.Windows.Forms.Label();
this.button2 = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.arLabel1 = new arCtl.arLabel();
this.lbinfost = new System.Windows.Forms.Label();
this.lbCycle = new System.Windows.Forms.Label();
this.panel1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.panel11.SuspendLayout();
this.panel10.SuspendLayout();
this.groupBox1.SuspendLayout();
this.panel9.SuspendLayout();
this.panel8.SuspendLayout();
this.panel7.SuspendLayout();
this.panel6.SuspendLayout();
this.panel5.SuspendLayout();
this.panel4.SuspendLayout();
this.panel3.SuspendLayout();
this.panel2.SuspendLayout();
this.SuspendLayout();
//
// timer1
//
this.timer1.Interval = 200;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// panel1
//
this.panel1.Controls.Add(this.groupBox2);
this.panel1.Controls.Add(this.groupBox1);
this.panel1.Controls.Add(this.button2);
this.panel1.Controls.Add(this.button1);
this.panel1.Dock = System.Windows.Forms.DockStyle.Left;
this.panel1.Location = new System.Drawing.Point(3, 3);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(187, 577);
this.panel1.TabIndex = 0;
//
// groupBox2
//
this.groupBox2.Controls.Add(this.lbcvSt);
this.groupBox2.Controls.Add(this.panel11);
this.groupBox2.Controls.Add(this.panel10);
this.groupBox2.Dock = System.Windows.Forms.DockStyle.Fill;
this.groupBox2.ForeColor = System.Drawing.Color.White;
this.groupBox2.Location = new System.Drawing.Point(0, 465);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(187, 112);
this.groupBox2.TabIndex = 3;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "Temp";
//
// lbcvSt
//
this.lbcvSt.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lbcvSt.AutoSize = true;
this.lbcvSt.Font = new System.Drawing.Font("굴림", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.lbcvSt.ForeColor = System.Drawing.Color.White;
this.lbcvSt.Location = new System.Drawing.Point(148, 82);
this.lbcvSt.Name = "lbcvSt";
this.lbcvSt.Size = new System.Drawing.Size(39, 27);
this.lbcvSt.TabIndex = 8;
this.lbcvSt.Text = "●";
//
// panel11
//
this.panel11.Controls.Add(this.lbtemp2);
this.panel11.Controls.Add(this.label7);
this.panel11.Dock = System.Windows.Forms.DockStyle.Top;
this.panel11.Location = new System.Drawing.Point(3, 57);
this.panel11.Name = "panel11";
this.panel11.Size = new System.Drawing.Size(181, 40);
this.panel11.TabIndex = 10;
//
// lbtemp2
//
this.lbtemp2.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbtemp2.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lbtemp2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.lbtemp2.Location = new System.Drawing.Point(47, 0);
this.lbtemp2.Name = "lbtemp2";
this.lbtemp2.Size = new System.Drawing.Size(134, 40);
this.lbtemp2.TabIndex = 0;
this.lbtemp2.Text = "--";
this.lbtemp2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label7
//
this.label7.Dock = System.Windows.Forms.DockStyle.Left;
this.label7.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
this.label7.Location = new System.Drawing.Point(0, 0);
this.label7.Name = "label7";
this.label7.Size = new System.Drawing.Size(47, 40);
this.label7.TabIndex = 0;
this.label7.Text = "#2";
this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel10
//
this.panel10.Controls.Add(this.lbTemp1);
this.panel10.Controls.Add(this.label3);
this.panel10.Dock = System.Windows.Forms.DockStyle.Top;
this.panel10.Location = new System.Drawing.Point(3, 17);
this.panel10.Name = "panel10";
this.panel10.Size = new System.Drawing.Size(181, 40);
this.panel10.TabIndex = 9;
//
// lbTemp1
//
this.lbTemp1.Dock = System.Windows.Forms.DockStyle.Fill;
this.lbTemp1.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lbTemp1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.lbTemp1.Location = new System.Drawing.Point(47, 0);
this.lbTemp1.Name = "lbTemp1";
this.lbTemp1.Size = new System.Drawing.Size(134, 40);
this.lbTemp1.TabIndex = 0;
this.lbTemp1.Text = "--";
this.lbTemp1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label3
//
this.label3.Dock = System.Windows.Forms.DockStyle.Left;
this.label3.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
this.label3.Location = new System.Drawing.Point(0, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(47, 40);
this.label3.TabIndex = 0;
this.label3.Text = "#1";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// groupBox1
//
this.groupBox1.Controls.Add(this.panel9);
this.groupBox1.Controls.Add(this.panel8);
this.groupBox1.Controls.Add(this.panel7);
this.groupBox1.Controls.Add(this.panel6);
this.groupBox1.Controls.Add(this.panel5);
this.groupBox1.Controls.Add(this.panel4);
this.groupBox1.Controls.Add(this.panel3);
this.groupBox1.Controls.Add(this.panel2);
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top;
this.groupBox1.ForeColor = System.Drawing.Color.White;
this.groupBox1.Location = new System.Drawing.Point(0, 118);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(187, 347);
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Cell voltage";
//
// panel9
//
this.panel9.Controls.Add(this.cv8);
this.panel9.Controls.Add(this.label16);
this.panel9.Dock = System.Windows.Forms.DockStyle.Top;
this.panel9.Location = new System.Drawing.Point(3, 297);
this.panel9.Name = "panel9";
this.panel9.Size = new System.Drawing.Size(181, 40);
this.panel9.TabIndex = 7;
//
// cv8
//
this.cv8.Dock = System.Windows.Forms.DockStyle.Fill;
this.cv8.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cv8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.cv8.Location = new System.Drawing.Point(47, 0);
this.cv8.Name = "cv8";
this.cv8.Size = new System.Drawing.Size(134, 40);
this.cv8.TabIndex = 0;
this.cv8.Text = "--";
this.cv8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label16
//
this.label16.Dock = System.Windows.Forms.DockStyle.Left;
this.label16.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label16.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
this.label16.Location = new System.Drawing.Point(0, 0);
this.label16.Name = "label16";
this.label16.Size = new System.Drawing.Size(47, 40);
this.label16.TabIndex = 0;
this.label16.Text = "#8";
this.label16.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel8
//
this.panel8.Controls.Add(this.cv7);
this.panel8.Controls.Add(this.label14);
this.panel8.Dock = System.Windows.Forms.DockStyle.Top;
this.panel8.Location = new System.Drawing.Point(3, 257);
this.panel8.Name = "panel8";
this.panel8.Size = new System.Drawing.Size(181, 40);
this.panel8.TabIndex = 6;
this.panel8.Paint += new System.Windows.Forms.PaintEventHandler(this.panel8_Paint);
//
// cv7
//
this.cv7.Dock = System.Windows.Forms.DockStyle.Fill;
this.cv7.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cv7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.cv7.Location = new System.Drawing.Point(47, 0);
this.cv7.Name = "cv7";
this.cv7.Size = new System.Drawing.Size(134, 40);
this.cv7.TabIndex = 0;
this.cv7.Text = "--";
this.cv7.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label14
//
this.label14.Dock = System.Windows.Forms.DockStyle.Left;
this.label14.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
this.label14.Location = new System.Drawing.Point(0, 0);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(47, 40);
this.label14.TabIndex = 0;
this.label14.Text = "#7";
this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel7
//
this.panel7.Controls.Add(this.cv6);
this.panel7.Controls.Add(this.label12);
this.panel7.Dock = System.Windows.Forms.DockStyle.Top;
this.panel7.Location = new System.Drawing.Point(3, 217);
this.panel7.Name = "panel7";
this.panel7.Size = new System.Drawing.Size(181, 40);
this.panel7.TabIndex = 5;
//
// cv6
//
this.cv6.Dock = System.Windows.Forms.DockStyle.Fill;
this.cv6.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cv6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.cv6.Location = new System.Drawing.Point(47, 0);
this.cv6.Name = "cv6";
this.cv6.Size = new System.Drawing.Size(134, 40);
this.cv6.TabIndex = 0;
this.cv6.Text = "--";
this.cv6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label12
//
this.label12.Dock = System.Windows.Forms.DockStyle.Left;
this.label12.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
this.label12.Location = new System.Drawing.Point(0, 0);
this.label12.Name = "label12";
this.label12.Size = new System.Drawing.Size(47, 40);
this.label12.TabIndex = 0;
this.label12.Text = "#6";
this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel6
//
this.panel6.Controls.Add(this.cv5);
this.panel6.Controls.Add(this.label10);
this.panel6.Dock = System.Windows.Forms.DockStyle.Top;
this.panel6.Location = new System.Drawing.Point(3, 177);
this.panel6.Name = "panel6";
this.panel6.Size = new System.Drawing.Size(181, 40);
this.panel6.TabIndex = 4;
this.panel6.Paint += new System.Windows.Forms.PaintEventHandler(this.panel6_Paint);
//
// cv5
//
this.cv5.Dock = System.Windows.Forms.DockStyle.Fill;
this.cv5.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cv5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.cv5.Location = new System.Drawing.Point(47, 0);
this.cv5.Name = "cv5";
this.cv5.Size = new System.Drawing.Size(134, 40);
this.cv5.TabIndex = 0;
this.cv5.Text = "--";
this.cv5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label10
//
this.label10.Dock = System.Windows.Forms.DockStyle.Left;
this.label10.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
this.label10.Location = new System.Drawing.Point(0, 0);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(47, 40);
this.label10.TabIndex = 0;
this.label10.Text = "#5";
this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel5
//
this.panel5.Controls.Add(this.cv4);
this.panel5.Controls.Add(this.label8);
this.panel5.Dock = System.Windows.Forms.DockStyle.Top;
this.panel5.Location = new System.Drawing.Point(3, 137);
this.panel5.Name = "panel5";
this.panel5.Size = new System.Drawing.Size(181, 40);
this.panel5.TabIndex = 3;
//
// cv4
//
this.cv4.Dock = System.Windows.Forms.DockStyle.Fill;
this.cv4.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cv4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.cv4.Location = new System.Drawing.Point(47, 0);
this.cv4.Name = "cv4";
this.cv4.Size = new System.Drawing.Size(134, 40);
this.cv4.TabIndex = 0;
this.cv4.Text = "--";
this.cv4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label8
//
this.label8.Dock = System.Windows.Forms.DockStyle.Left;
this.label8.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
this.label8.Location = new System.Drawing.Point(0, 0);
this.label8.Name = "label8";
this.label8.Size = new System.Drawing.Size(47, 40);
this.label8.TabIndex = 0;
this.label8.Text = "#4";
this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel4
//
this.panel4.Controls.Add(this.cv3);
this.panel4.Controls.Add(this.label6);
this.panel4.Dock = System.Windows.Forms.DockStyle.Top;
this.panel4.Location = new System.Drawing.Point(3, 97);
this.panel4.Name = "panel4";
this.panel4.Size = new System.Drawing.Size(181, 40);
this.panel4.TabIndex = 2;
this.panel4.Paint += new System.Windows.Forms.PaintEventHandler(this.panel4_Paint);
//
// cv3
//
this.cv3.Dock = System.Windows.Forms.DockStyle.Fill;
this.cv3.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cv3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.cv3.Location = new System.Drawing.Point(47, 0);
this.cv3.Name = "cv3";
this.cv3.Size = new System.Drawing.Size(134, 40);
this.cv3.TabIndex = 0;
this.cv3.Text = "--";
this.cv3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label6
//
this.label6.Dock = System.Windows.Forms.DockStyle.Left;
this.label6.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label6.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
this.label6.Location = new System.Drawing.Point(0, 0);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(47, 40);
this.label6.TabIndex = 0;
this.label6.Text = "#3";
this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel3
//
this.panel3.Controls.Add(this.cv2);
this.panel3.Controls.Add(this.label4);
this.panel3.Dock = System.Windows.Forms.DockStyle.Top;
this.panel3.Location = new System.Drawing.Point(3, 57);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(181, 40);
this.panel3.TabIndex = 1;
this.panel3.Paint += new System.Windows.Forms.PaintEventHandler(this.panel3_Paint);
//
// cv2
//
this.cv2.Dock = System.Windows.Forms.DockStyle.Fill;
this.cv2.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cv2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.cv2.Location = new System.Drawing.Point(47, 0);
this.cv2.Name = "cv2";
this.cv2.Size = new System.Drawing.Size(134, 40);
this.cv2.TabIndex = 0;
this.cv2.Text = "--";
this.cv2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label4
//
this.label4.Dock = System.Windows.Forms.DockStyle.Left;
this.label4.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
this.label4.Location = new System.Drawing.Point(0, 0);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(47, 40);
this.label4.TabIndex = 0;
this.label4.Text = "#2";
this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// panel2
//
this.panel2.Controls.Add(this.cv1);
this.panel2.Controls.Add(this.label1);
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
this.panel2.Location = new System.Drawing.Point(3, 17);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(181, 40);
this.panel2.TabIndex = 0;
//
// cv1
//
this.cv1.Dock = System.Windows.Forms.DockStyle.Fill;
this.cv1.Font = new System.Drawing.Font("Tahoma", 21.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.cv1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.cv1.Location = new System.Drawing.Point(47, 0);
this.cv1.Name = "cv1";
this.cv1.Size = new System.Drawing.Size(134, 40);
this.cv1.TabIndex = 0;
this.cv1.Text = "--";
this.cv1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// label1
//
this.label1.Dock = System.Windows.Forms.DockStyle.Left;
this.label1.Font = new System.Drawing.Font("굴림", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(192)))), ((int)(((byte)(192)))));
this.label1.Location = new System.Drawing.Point(0, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(47, 40);
this.label1.TabIndex = 0;
this.label1.Text = "#1";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// button2
//
this.button2.Dock = System.Windows.Forms.DockStyle.Top;
this.button2.Location = new System.Drawing.Point(0, 59);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(187, 59);
this.button2.TabIndex = 1;
this.button2.Text = "Query Cell Voltage";
this.button2.UseVisualStyleBackColor = true;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button1
//
this.button1.Dock = System.Windows.Forms.DockStyle.Top;
this.button1.Location = new System.Drawing.Point(0, 0);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(187, 59);
this.button1.TabIndex = 0;
this.button1.Text = "Query Remain";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// arLabel1
//
this.arLabel1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(32)))), ((int)(((byte)(32)))), ((int)(((byte)(32)))));
this.arLabel1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(18)))), ((int)(((byte)(18)))), ((int)(((byte)(18)))));
this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel1.BorderColor = System.Drawing.Color.Red;
this.arLabel1.BorderColorOver = System.Drawing.Color.Red;
this.arLabel1.BorderSize = new System.Windows.Forms.Padding(0, 0, 0, 4);
this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel1.Cursor = System.Windows.Forms.Cursors.Arrow;
this.arLabel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 150F, System.Drawing.FontStyle.Bold);
this.arLabel1.ForeColor = System.Drawing.Color.White;
this.arLabel1.GradientEnable = true;
this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
this.arLabel1.GradientRepeatBG = false;
this.arLabel1.isButton = false;
this.arLabel1.Location = new System.Drawing.Point(190, 3);
this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel1.msg = null;
this.arLabel1.Name = "arLabel1";
this.arLabel1.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel1.ProgressEnable = false;
this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel1.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel1.ProgressMax = 100F;
this.arLabel1.ProgressMin = 0F;
this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel1.ProgressValue = 0F;
this.arLabel1.ShadowColor = System.Drawing.Color.WhiteSmoke;
this.arLabel1.Sign = "26.5v";
this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel1.SignColor = System.Drawing.Color.Yellow;
this.arLabel1.SignFont = new System.Drawing.Font("Microsoft Sans Serif", 50F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))));
this.arLabel1.Size = new System.Drawing.Size(863, 577);
this.arLabel1.TabIndex = 1;
this.arLabel1.Text = "80%";
this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel1.TextShadow = false;
this.arLabel1.TextVisible = true;
//
// lbinfost
//
this.lbinfost.AutoSize = true;
this.lbinfost.Font = new System.Drawing.Font("굴림", 20F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.lbinfost.ForeColor = System.Drawing.Color.White;
this.lbinfost.Location = new System.Drawing.Point(194, 8);
this.lbinfost.Name = "lbinfost";
this.lbinfost.Size = new System.Drawing.Size(39, 27);
this.lbinfost.TabIndex = 2;
this.lbinfost.Text = "●";
//
// lbCycle
//
this.lbCycle.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.lbCycle.Font = new System.Drawing.Font("Tahoma", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lbCycle.ForeColor = System.Drawing.Color.SkyBlue;
this.lbCycle.Location = new System.Drawing.Point(296, 8);
this.lbCycle.Name = "lbCycle";
this.lbCycle.Size = new System.Drawing.Size(749, 27);
this.lbCycle.TabIndex = 3;
this.lbCycle.Text = "Cycle(2)";
this.lbCycle.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// fBms
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15)))));
this.ClientSize = new System.Drawing.Size(1056, 583);
this.Controls.Add(this.lbCycle);
this.Controls.Add(this.lbinfost);
this.Controls.Add(this.arLabel1);
this.Controls.Add(this.panel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "fBms";
this.Padding = new System.Windows.Forms.Padding(3);
this.Text = "fFlag";
this.Load += new System.EventHandler(this.fFlag_Load);
this.VisibleChanged += new System.EventHandler(this.fAgv_VisibleChanged);
this.panel1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.groupBox2.PerformLayout();
this.panel11.ResumeLayout(false);
this.panel10.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
this.panel9.ResumeLayout(false);
this.panel8.ResumeLayout(false);
this.panel7.ResumeLayout(false);
this.panel6.ResumeLayout(false);
this.panel5.ResumeLayout(false);
this.panel4.ResumeLayout(false);
this.panel3.ResumeLayout(false);
this.panel2.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.Panel panel1;
private System.Windows.Forms.Button button1;
private arCtl.arLabel arLabel1;
private System.Windows.Forms.Button button2;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Label cv1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Panel panel9;
private System.Windows.Forms.Label cv8;
private System.Windows.Forms.Label label16;
private System.Windows.Forms.Panel panel8;
private System.Windows.Forms.Label cv7;
private System.Windows.Forms.Label label14;
private System.Windows.Forms.Panel panel7;
private System.Windows.Forms.Label cv6;
private System.Windows.Forms.Label label12;
private System.Windows.Forms.Panel panel6;
private System.Windows.Forms.Label cv5;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.Panel panel5;
private System.Windows.Forms.Label cv4;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.Panel panel4;
private System.Windows.Forms.Label cv3;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Label cv2;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Label lbinfost;
private System.Windows.Forms.Label lbcvSt;
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.Panel panel11;
private System.Windows.Forms.Label lbtemp2;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.Panel panel10;
private System.Windows.Forms.Label lbTemp1;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Label lbCycle;
}
}

View File

@@ -0,0 +1,128 @@
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;
using COMM;
namespace Project.ViewForm
{
public partial class fBms : Form
{
public fBms()
{
InitializeComponent();
this.FormClosed += FIO_FormClosed;
PUB.BMS.BMSCellDataReceive += BMS_BMSCellDataReceive;
PUB.BMS.BMSDataReceive += BMS_BMSDataReceive;
}
private void BMS_BMSDataReceive(object sender, arDev.BMSInformationEventArgs e)
{
if (this.IsDisposed == true || this.Visible == false) return;
this.BeginInvoke(new Action(() =>
{
if (lbinfost.ForeColor == Color.FromArgb(32, 32, 32))
lbinfost.ForeColor = Color.Lime;
else
lbinfost.ForeColor = Color.FromArgb(32, 32, 32);
}));
}
private void BMS_BMSCellDataReceive(object sender, arDev.BMSCelvoltageEventArgs e)
{
if (this.IsDisposed == true || this.Visible == false) return;
this.BeginInvoke(new Action(() =>
{
if (lbcvSt.ForeColor == Color.FromArgb(15, 15, 15))
lbcvSt.ForeColor = Color.Lime;
else
lbcvSt.ForeColor = Color.FromArgb(15, 15, 15);
}));
}
private void fFlag_Load(object sender, EventArgs e)
{
this.timer1.Start();
}
private void FIO_FormClosed(object sender, FormClosedEventArgs e)
{
this.timer1.Stop();
PUB.BMS.BMSCellDataReceive -= BMS_BMSCellDataReceive;
PUB.BMS.BMSDataReceive -= BMS_BMSDataReceive;
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
var data = PUB.BMS.BMSInformation;
var volt = PUB.BMS.BMSCellVoltage;
if (PUB.BMS.IsOpen == false)
this.lbCycle.Text = "통신이 열려있지 않습니다";
else if (PUB.BMS.IsValid == false)
this.lbCycle.Text = "데이터가 유효하지 않습니다";
else
this.lbCycle.Text = $"Average:{volt.Average:N2}v, Delta:{volt.Delta:N0}, Cycle({data.cycleCount})";
this.arLabel1.Text = $"{data.rsoc}%";
this.arLabel1.Sign = $"{data.packVoltage}v, {data.watt:N0}w";// PUB.BMS.Current_Volt.ToString() + "v";
if (data.watt < 0) this.arLabel1.SignColor = Color.Tomato;
else this.arLabel1.SignColor = Color.Lime;
this.cv1.Text = volt.Voltage[0].ToString("N3") + "v";
this.cv2.Text = volt.Voltage[1].ToString("N3") + "v";
this.cv3.Text = volt.Voltage[2].ToString("N3") + "v";
this.cv4.Text = volt.Voltage[3].ToString("N3") + "v";
this.cv5.Text = volt.Voltage[4].ToString("N3") + "v";
this.cv6.Text = volt.Voltage[5].ToString("N3") + "v";
this.cv7.Text = volt.Voltage[6].ToString("N3") + "v";
this.cv8.Text = volt.Voltage[7].ToString("N3") + "v";
this.lbTemp1.Text = data.ntcTemp[0].ToString() + "℃";
this.lbtemp2.Text = data.ntcTemp[1].ToString() + "℃";
timer1.Start();
}
private void fAgv_VisibleChanged(object sender, EventArgs e)
{
this.timer1.Enabled = this.Visible;
}
private void button1_Click(object sender, EventArgs e)
{
PUB.BMS.SendQuery_ReadStatue();
}
private void button2_Click(object sender, EventArgs e)
{
PUB.BMS.SendQuery_ReadCellvoltage();
}
private void panel3_Paint(object sender, PaintEventArgs e)
{
}
private void panel4_Paint(object sender, PaintEventArgs e)
{
}
private void panel6_Paint(object sender, PaintEventArgs e)
{
}
private void panel8_Paint(object sender, PaintEventArgs e)
{
}
}
}

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

276
HMI/Project/ViewForm/fFlag.Designer.cs generated Normal file
View File

@@ -0,0 +1,276 @@
namespace Project.ViewForm
{
partial class fFlag
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.dv1 = new System.Windows.Forms.DataGridView();
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dv2 = new System.Windows.Forms.DataGridView();
this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dv3 = new System.Windows.Forms.DataGridView();
this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dv4 = new System.Windows.Forms.DataGridView();
this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dv2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dv3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dv4)).BeginInit();
this.SuspendLayout();
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 4;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 30F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F));
this.tableLayoutPanel1.Controls.Add(this.dv4, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.dv3, 2, 0);
this.tableLayoutPanel1.Controls.Add(this.dv2, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.dv1, 0, 0);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 3);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 2;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(1050, 577);
this.tableLayoutPanel1.TabIndex = 6;
//
// timer1
//
this.timer1.Interval = 500;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// dv1
//
this.dv1.AllowUserToAddRows = false;
this.dv1.AllowUserToDeleteRows = false;
this.dv1.AllowUserToResizeRows = false;
this.dv1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dv1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column1,
this.Column2});
dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle4.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle4.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle4.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle4.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle4.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle4.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dv1.DefaultCellStyle = dataGridViewCellStyle4;
this.dv1.Dock = System.Windows.Forms.DockStyle.Fill;
this.dv1.Location = new System.Drawing.Point(3, 3);
this.dv1.Name = "dv1";
this.dv1.ReadOnly = true;
this.dv1.RowHeadersVisible = false;
this.tableLayoutPanel1.SetRowSpan(this.dv1, 2);
this.dv1.RowTemplate.Height = 23;
this.dv1.Size = new System.Drawing.Size(309, 571);
this.dv1.TabIndex = 1;
//
// Column1
//
this.Column1.HeaderText = "Column1";
this.Column1.Name = "Column1";
this.Column1.ReadOnly = true;
//
// Column2
//
this.Column2.HeaderText = "Column2";
this.Column2.Name = "Column2";
this.Column2.ReadOnly = true;
//
// dv2
//
this.dv2.AllowUserToAddRows = false;
this.dv2.AllowUserToDeleteRows = false;
this.dv2.AllowUserToResizeRows = false;
this.dv2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dv2.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewTextBoxColumn1,
this.dataGridViewTextBoxColumn2});
dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle3.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dv2.DefaultCellStyle = dataGridViewCellStyle3;
this.dv2.Dock = System.Windows.Forms.DockStyle.Fill;
this.dv2.Location = new System.Drawing.Point(318, 3);
this.dv2.Name = "dv2";
this.dv2.ReadOnly = true;
this.dv2.RowHeadersVisible = false;
this.tableLayoutPanel1.SetRowSpan(this.dv2, 2);
this.dv2.RowTemplate.Height = 23;
this.dv2.Size = new System.Drawing.Size(309, 571);
this.dv2.TabIndex = 2;
//
// dataGridViewTextBoxColumn1
//
this.dataGridViewTextBoxColumn1.HeaderText = "Column1";
this.dataGridViewTextBoxColumn1.Name = "dataGridViewTextBoxColumn1";
this.dataGridViewTextBoxColumn1.ReadOnly = true;
//
// dataGridViewTextBoxColumn2
//
this.dataGridViewTextBoxColumn2.HeaderText = "Column2";
this.dataGridViewTextBoxColumn2.Name = "dataGridViewTextBoxColumn2";
this.dataGridViewTextBoxColumn2.ReadOnly = true;
//
// dv3
//
this.dv3.AllowUserToAddRows = false;
this.dv3.AllowUserToDeleteRows = false;
this.dv3.AllowUserToResizeRows = false;
this.dv3.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dv3.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewTextBoxColumn3,
this.dataGridViewTextBoxColumn4});
this.tableLayoutPanel1.SetColumnSpan(this.dv3, 2);
dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle2.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dv3.DefaultCellStyle = dataGridViewCellStyle2;
this.dv3.Dock = System.Windows.Forms.DockStyle.Fill;
this.dv3.Location = new System.Drawing.Point(633, 3);
this.dv3.Name = "dv3";
this.dv3.ReadOnly = true;
this.dv3.RowHeadersVisible = false;
this.dv3.RowTemplate.Height = 23;
this.dv3.Size = new System.Drawing.Size(414, 282);
this.dv3.TabIndex = 3;
//
// dataGridViewTextBoxColumn3
//
this.dataGridViewTextBoxColumn3.HeaderText = "Column1";
this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3";
this.dataGridViewTextBoxColumn3.ReadOnly = true;
//
// dataGridViewTextBoxColumn4
//
this.dataGridViewTextBoxColumn4.HeaderText = "Column2";
this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4";
this.dataGridViewTextBoxColumn4.ReadOnly = true;
//
// dv4
//
this.dv4.AllowUserToAddRows = false;
this.dv4.AllowUserToDeleteRows = false;
this.dv4.AllowUserToResizeRows = false;
this.dv4.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dv4.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewTextBoxColumn5,
this.dataGridViewTextBoxColumn6});
this.tableLayoutPanel1.SetColumnSpan(this.dv4, 2);
dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle1.Font = new System.Drawing.Font("Calibri", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dv4.DefaultCellStyle = dataGridViewCellStyle1;
this.dv4.Dock = System.Windows.Forms.DockStyle.Fill;
this.dv4.Location = new System.Drawing.Point(633, 291);
this.dv4.Name = "dv4";
this.dv4.ReadOnly = true;
this.dv4.RowHeadersVisible = false;
this.dv4.RowTemplate.Height = 23;
this.dv4.Size = new System.Drawing.Size(414, 283);
this.dv4.TabIndex = 4;
//
// dataGridViewTextBoxColumn5
//
this.dataGridViewTextBoxColumn5.HeaderText = "Column1";
this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5";
this.dataGridViewTextBoxColumn5.ReadOnly = true;
//
// dataGridViewTextBoxColumn6
//
this.dataGridViewTextBoxColumn6.HeaderText = "Column2";
this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6";
this.dataGridViewTextBoxColumn6.ReadOnly = true;
//
// fFlag
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15)))));
this.ClientSize = new System.Drawing.Size(1056, 583);
this.Controls.Add(this.tableLayoutPanel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "fFlag";
this.Padding = new System.Windows.Forms.Padding(3);
this.Text = "fFlag";
this.Load += new System.EventHandler(this.fFlag_Load);
this.VisibleChanged += new System.EventHandler(this.fFlag_VisibleChanged);
this.tableLayoutPanel1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dv2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dv3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dv4)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.DataGridView dv4;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6;
private System.Windows.Forms.DataGridView dv3;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4;
private System.Windows.Forms.DataGridView dv2;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn1;
private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn2;
private System.Windows.Forms.DataGridView dv1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column1;
private System.Windows.Forms.DataGridViewTextBoxColumn Column2;
}
}

View File

@@ -0,0 +1,132 @@
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;
using AR;
using COMM;
namespace Project.ViewForm
{
public partial class fFlag : Form
{
public fFlag()
{
InitializeComponent();
this.FormClosed += FIO_FormClosed;
}
private void fFlag_Load(object sender, EventArgs e)
{
MakeControl();
this.timer1.Start();
}
void MakeControl()
{
DataGridView[] dvs = new DataGridView[] { dv1, dv2, dv3, dv4 };
foreach(var lv in dvs)
{
lv.Columns.Clear();
lv.Columns.Add("idx", "*");
lv.Columns.Add("Title", "Title");
lv.Columns.Add("Value", "Value");
lv.Columns[0].Width = 25;
lv.Columns[1].Width = 150;
lv.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
}
Array valuelist;
valuelist = Enum.GetValues(typeof(COMM.eVarBool));
foreach (var item in valuelist)
{
var v = (COMM.eVarBool)item;
dv1.Rows.Add($"{(int)v}", item, "--");
}
valuelist = Enum.GetValues(typeof(COMM.eVarInt32));
foreach (var item in valuelist)
{
var v = (COMM.eVarInt32)item;
dv2.Rows.Add($"{(int)v}", item, "--");
}
valuelist = Enum.GetValues(typeof(COMM.eVarString));
foreach (var item in valuelist)
{
var v = (COMM.eVarString)item;
dv3.Rows.Add($"{(int)v}", item, "--");
}
valuelist = Enum.GetValues(typeof(COMM.eVarTime));
foreach (var item in valuelist)
{
var v = (COMM.eVarString)item;
dv4.Rows.Add($"{(int)v}", item, "--");
}
foreach (var dv in dvs)
dv.AutoResizeColumns();
}
private void FIO_FormClosed(object sender, FormClosedEventArgs e)
{
this.timer1.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
foreach(DataGridViewRow item in this.dv1.Rows)
{
var idx = int.Parse(item.Cells["idx"].Value.ToString());
var v = VAR.BOOL.Get(idx);
item.Cells["value"].Value = v ? "O" : "X";
}
foreach (DataGridViewRow item in this.dv2.Rows)
{
var idx = int.Parse(item.Cells["idx"].Value.ToString());
var v = VAR.I32.Get(idx);
item.Cells["value"].Value = v.ToString();
}
foreach (DataGridViewRow item in this.dv3.Rows)
{
var idx = int.Parse(item.Cells["idx"].Value.ToString());
var v = VAR.STR.Get(idx);
item.Cells["value"].Value = v;
}
foreach (DataGridViewRow item in this.dv4.Rows)
{
var idx = int.Parse(item.Cells["idx"].Value.ToString());
var v = VAR.TIME.Get(idx);
item.Cells["value"].Value = v.ToString("HH:mm:ss.fff");
}
timer1.Start();
}
private void fFlag_VisibleChanged(object sender, EventArgs e)
{
this.timer1.Enabled = this.Visible;
if (timer1.Enabled) timer1.Start();
else timer1.Stop();
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
}

View File

@@ -0,0 +1,147 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="dataGridViewTextBoxColumn5.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn6.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

210
HMI/Project/ViewForm/fIO.Designer.cs generated Normal file
View File

@@ -0,0 +1,210 @@
namespace Project.ViewForm
{
partial class fIO
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
arFrame.Control.ColorListItem colorListItem1 = new arFrame.Control.ColorListItem();
arFrame.Control.ColorListItem colorListItem2 = new arFrame.Control.ColorListItem();
arFrame.Control.ColorListItem colorListItem3 = new arFrame.Control.ColorListItem();
arFrame.Control.ColorListItem colorListItem4 = new arFrame.Control.ColorListItem();
arFrame.Control.ColorListItem colorListItem5 = new arFrame.Control.ColorListItem();
arFrame.Control.ColorListItem colorListItem6 = new arFrame.Control.ColorListItem();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.HWState = new arFrame.Control.GridView();
this.panel1 = new System.Windows.Forms.Panel();
this.label1 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.panel3 = new System.Windows.Forms.Panel();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.tableLayoutPanel1.SuspendLayout();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 1;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.Controls.Add(this.HWState, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.panel3, 0, 1);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 3;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 58F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(1056, 583);
this.tableLayoutPanel1.TabIndex = 5;
//
// HWState
//
this.HWState.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60)))));
this.HWState.BorderSize = 0;
colorListItem1.BackColor1 = System.Drawing.Color.Gray;
colorListItem1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(100)))), ((int)(((byte)(100)))));
colorListItem1.Remark = "타이틀바(상)";
colorListItem2.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
colorListItem2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
colorListItem2.Remark = "상태표시(하)";
colorListItem3.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
colorListItem3.BackColor2 = System.Drawing.Color.Lime;
colorListItem3.Remark = "정상";
colorListItem4.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
colorListItem4.BackColor2 = System.Drawing.Color.Red;
colorListItem4.Remark = "오류";
colorListItem5.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
colorListItem5.BackColor2 = System.Drawing.Color.Yellow;
colorListItem5.Remark = "오류(깜박)";
colorListItem6.BackColor1 = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40)))));
colorListItem6.BackColor2 = System.Drawing.Color.DarkViolet;
colorListItem6.Remark = "오류(유효)";
this.HWState.ColorList = new arFrame.Control.ColorListItem[] {
colorListItem1,
colorListItem2,
colorListItem3,
colorListItem4,
colorListItem5,
colorListItem6};
this.HWState.Dock = System.Windows.Forms.DockStyle.Fill;
this.HWState.Font = new System.Drawing.Font("Consolas", 13F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.HWState.FontPin = new System.Drawing.Font("Consolas", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.HWState.ForeColor = System.Drawing.Color.Moccasin;
this.HWState.ForeColorPin = System.Drawing.Color.Moccasin;
this.HWState.Location = new System.Drawing.Point(0, 525);
this.HWState.Margin = new System.Windows.Forms.Padding(0);
this.HWState.MatrixSize = new System.Drawing.Point(3, 2);
this.HWState.MenuBorderSize = 1;
this.HWState.MenuGap = 5;
this.HWState.MinimumSize = new System.Drawing.Size(100, 0);
this.HWState.Name = "HWState";
this.HWState.Names = new string[] {
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""};
this.HWState.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(60)))), ((int)(((byte)(60)))));
this.HWState.showDebugInfo = false;
this.HWState.ShowIndexString = false;
this.HWState.Size = new System.Drawing.Size(1056, 58);
this.HWState.TabIndex = 9;
this.HWState.Tags = null;
this.HWState.Text = "gridView3";
this.HWState.TextAttachToImage = true;
this.HWState.Titles = new string[] {
"AGV|XBE|BAT|",
"C00|C00|C00|"};
this.HWState.Values = new ushort[] {
((ushort)(0)),
((ushort)(0)),
((ushort)(0)),
((ushort)(1)),
((ushort)(1)),
((ushort)(1))};
//
// panel1
//
this.panel1.Controls.Add(this.label1);
this.panel1.Controls.Add(this.label3);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(3, 3);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(1050, 14);
this.panel1.TabIndex = 6;
//
// label1
//
this.label1.Dock = System.Windows.Forms.DockStyle.Fill;
this.label1.ForeColor = System.Drawing.Color.White;
this.label1.Location = new System.Drawing.Point(0, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(650, 14);
this.label1.TabIndex = 5;
this.label1.Text = "label1";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// label3
//
this.label3.Dock = System.Windows.Forms.DockStyle.Right;
this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
this.label3.Location = new System.Drawing.Point(650, 0);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(400, 14);
this.label3.TabIndex = 6;
this.label3.Text = "label3";
this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// panel3
//
this.panel3.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel3.Location = new System.Drawing.Point(3, 23);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(1050, 499);
this.panel3.TabIndex = 10;
//
// timer1
//
this.timer1.Interval = 200;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// fIO
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(15)))), ((int)(((byte)(15)))), ((int)(((byte)(15)))));
this.ClientSize = new System.Drawing.Size(1056, 583);
this.Controls.Add(this.tableLayoutPanel1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "fIO";
this.Text = "fIO";
this.Load += new System.EventHandler(this.fIO_Load);
this.VisibleChanged += new System.EventHandler(this.fIO_VisibleChanged);
this.tableLayoutPanel1.ResumeLayout(false);
this.panel1.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Panel panel1;
private arFrame.Control.GridView HWState;
private System.Windows.Forms.Panel panel3;
}
}

162
HMI/Project/ViewForm/fIO.cs Normal file
View File

@@ -0,0 +1,162 @@
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 Project.ViewForm
{
public partial class fIO : Form
{
public fIO()
{
InitializeComponent();
//이름설정 INput #1
List<string> namearray = new List<string>(32);
List<string> tagarray = new List<string>(32);
namearray.Clear();
tagarray.Clear();
//for (byte i = 0; i < 16; i++)
//{
// var flagName = ((arDev.FakePLC.DIName)i).ToString();
// var enumValue = Enum.Parse(typeof(arDev.FakePLC.DIPin), flagName);
// if (flagName == i.ToString()) tagarray.Add(string.Empty);
// else
// {
// //동일한 이름의 pin 번호르 찾아서 할당해준다.
// var eV = (arDev.FakePLC.DIPin)enumValue;
// tagarray.Add(((byte)eV).ToString());
// }
// namearray.Add(flagName.Replace("_", "\n"));
//}
//for (byte i = 0; i < 8; i++)
//{
// var flagName = ((arDev.FakePLC.DOName)i).ToString();
// var enumValue = Enum.Parse(typeof(arDev.FakePLC.DOPin), flagName);
// if (flagName == i.ToString()) tagarray.Add(string.Empty);
// else
// {
// //동일한 이름의 pin 번호르 찾아서 할당해준다.
// var eV = (arDev.FakePLC.DOPin)enumValue;
// tagarray.Add(((byte)eV).ToString());
// }
// namearray.Add(flagName);
//}
this.FormClosed += FIO_FormClosed;
UpdateControl();
}
void Update_HWStatus()
{
var rownum = 1;
var colIdx = 0;
if (PUB.AGV.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4);
else HWState.setValue(rownum, colIdx++, 2); //
if (PUB.XBE.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4);
else HWState.setValue(rownum, colIdx++, 2); //
//if (PUB.PLC.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4);
//else HWState.setValue(rownum, colIdx++, 2); //
if (PUB.BMS.IsOpen == false) BlinkGridViewItem(HWState, rownum, colIdx++, 3, 4);
else HWState.setValue(rownum, colIdx++, 2); //
}
void BlinkGridViewItem(arFrame.Control.GridView ctl, int row, int col, int value1, int value2)
{
var curValue = ctl.getValue(row, col);
ctl.setValue(row, col, (byte)(curValue == value1 ? value2 : value1)); //
}
void UpdateControl()
{
var rowNum = 1;
var colIdx = 0;
HWState.setTitle(0, colIdx++, "AGV");
HWState.setTitle(0, colIdx++, "XBE");
//HWState.setTitle(0, colIdx++, "PLC");
HWState.setTitle(0, colIdx++, "BAT");
colIdx = 0;
HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_AGV);
HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_XBE);
//HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_PLC);
HWState.setTitle(rowNum, colIdx++, PUB.setting.Port_BAT);
HWState.Invalidate();
}
private void fIO_Load(object sender, EventArgs e)
{
this.timer1.Start();
}
private void FIO_FormClosed(object sender, FormClosedEventArgs e)
{
//Pub.plcM.ValueChanged -= Plc1_ValueChanged;
//Pub.plcS.ValueChanged -= Plc2_ValueChanged;
}
bool tmrun = false;
private void timer1_Tick(object sender, EventArgs e)
{
if (this.Visible == false) return;
if (tmrun == true) return;
tmrun = true;
Update_HWStatus();
List<Boolean> fgValueM = new List<bool>();
List<Boolean> fgValueS = new List<bool>();
tmrun = false;
}
private void fIO_VisibleChanged(object sender, EventArgs e)
{
this.timer1.Enabled = this.Visible;
if (timer1.Enabled) timer1.Start();
else timer1.Stop();
}
private void button1_Click(object sender, EventArgs e)
{
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.UP);
}
private void button2_Click(object sender, EventArgs e)
{
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.STP);
}
private void button3_Click_1(object sender, EventArgs e)
{
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.DN);
}
private void button4_Click(object sender, EventArgs e)
{
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON);
}
private void button5_Click(object sender, EventArgs e)
{
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF);
}
}
}

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

989
HMI/Project/ViewForm/fManual.Designer.cs generated Normal file
View File

@@ -0,0 +1,989 @@
namespace Project.ViewForm
{
partial class fManual
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.btStart = new arCtl.arLabel();
this.btRight = new arCtl.arLabel();
this.btBack = new arCtl.arLabel();
this.btForward = new arCtl.arLabel();
this.btLeft = new arCtl.arLabel();
this.btMarkStop = new System.Windows.Forms.Button();
this.btchargeOff = new System.Windows.Forms.Button();
this.btChargeOn = new System.Windows.Forms.Button();
this.btErrReset = new System.Windows.Forms.Button();
this.timer1 = new System.Windows.Forms.Timer(this.components);
this.panel2 = new System.Windows.Forms.Panel();
this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel();
this.btBack180 = new System.Windows.Forms.Button();
this.btLeft180 = new System.Windows.Forms.Button();
this.btRight180 = new System.Windows.Forms.Button();
this.button2 = new System.Windows.Forms.Button();
this.button1 = new System.Windows.Forms.Button();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.radpbs2 = new AGVControl.MyRadioButton();
this.panel9 = new System.Windows.Forms.Panel();
this.radpbs1 = new AGVControl.MyRadioButton();
this.panel3 = new System.Windows.Forms.Panel();
this.radpbs0 = new AGVControl.MyRadioButton();
this.grpSpeed = new System.Windows.Forms.GroupBox();
this.radspdh = new AGVControl.MyRadioButton();
this.panel8 = new System.Windows.Forms.Panel();
this.radspdm = new AGVControl.MyRadioButton();
this.panel4 = new System.Windows.Forms.Panel();
this.radspdl = new AGVControl.MyRadioButton();
this.grpBunki = new System.Windows.Forms.GroupBox();
this.radright = new AGVControl.MyRadioButton();
this.panel7 = new System.Windows.Forms.Panel();
this.radstrai = new AGVControl.MyRadioButton();
this.panel5 = new System.Windows.Forms.Panel();
this.radleft = new AGVControl.MyRadioButton();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.arLabel1 = new arCtl.arLabel();
this.panel12 = new System.Windows.Forms.Panel();
this.radbackward = new AGVControl.MyRadioButton();
this.panel6 = new System.Windows.Forms.Panel();
this.radforward = new AGVControl.MyRadioButton();
this.label1 = new System.Windows.Forms.Label();
this.guideSensor1 = new Narumi.UC.GuideSensor();
this.tableLayoutPanel1.SuspendLayout();
this.panel2.SuspendLayout();
this.tableLayoutPanel2.SuspendLayout();
this.groupBox1.SuspendLayout();
this.grpSpeed.SuspendLayout();
this.grpBunki.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout();
//
// tableLayoutPanel1
//
this.tableLayoutPanel1.ColumnCount = 3;
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.Controls.Add(this.btStart, 1, 1);
this.tableLayoutPanel1.Controls.Add(this.btRight, 2, 1);
this.tableLayoutPanel1.Controls.Add(this.btBack, 1, 0);
this.tableLayoutPanel1.Controls.Add(this.btForward, 1, 2);
this.tableLayoutPanel1.Controls.Add(this.btLeft, 0, 1);
this.tableLayoutPanel1.Controls.Add(this.btMarkStop, 0, 0);
this.tableLayoutPanel1.Controls.Add(this.btchargeOff, 2, 2);
this.tableLayoutPanel1.Controls.Add(this.btChargeOn, 0, 2);
this.tableLayoutPanel1.Controls.Add(this.btErrReset, 2, 0);
this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Left;
this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 21);
this.tableLayoutPanel1.Name = "tableLayoutPanel1";
this.tableLayoutPanel1.RowCount = 3;
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 33.33333F));
this.tableLayoutPanel1.Size = new System.Drawing.Size(604, 594);
this.tableLayoutPanel1.TabIndex = 7;
//
// btStart
//
this.btStart.BackColor = System.Drawing.Color.Gray;
this.btStart.BackColor2 = System.Drawing.Color.Black;
this.btStart.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.btStart.BorderColor = System.Drawing.Color.Black;
this.btStart.BorderColorOver = System.Drawing.Color.DarkBlue;
this.btStart.BorderSize = new System.Windows.Forms.Padding(1);
this.btStart.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.btStart.Cursor = System.Windows.Forms.Cursors.Hand;
this.btStart.Dock = System.Windows.Forms.DockStyle.Fill;
this.btStart.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.btStart.ForeColor = System.Drawing.Color.White;
this.btStart.GradientEnable = true;
this.btStart.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal;
this.btStart.GradientRepeatBG = false;
this.btStart.isButton = true;
this.btStart.Location = new System.Drawing.Point(204, 200);
this.btStart.MouseDownColor = System.Drawing.Color.Yellow;
this.btStart.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.btStart.msg = new string[] {
"커버",
"UP"};
this.btStart.Name = "btStart";
this.btStart.ProgressBorderColor = System.Drawing.Color.Black;
this.btStart.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.btStart.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.btStart.ProgressEnable = false;
this.btStart.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.btStart.ProgressForeColor = System.Drawing.Color.Black;
this.btStart.ProgressMax = 100F;
this.btStart.ProgressMin = 0F;
this.btStart.ProgressPadding = new System.Windows.Forms.Padding(0);
this.btStart.ProgressValue = 0F;
this.btStart.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.btStart.Sign = "";
this.btStart.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.btStart.SignColor = System.Drawing.Color.Yellow;
this.btStart.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.btStart.Size = new System.Drawing.Size(195, 191);
this.btStart.TabIndex = 6;
this.btStart.Text = "RUN";
this.btStart.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btStart.TextShadow = true;
this.btStart.TextVisible = true;
this.btStart.Click += new System.EventHandler(this.arLabel11_Click);
//
// btRight
//
this.btRight.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93)))));
this.btRight.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64)))));
this.btRight.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.btRight.BorderColor = System.Drawing.Color.Black;
this.btRight.BorderColorOver = System.Drawing.Color.DarkBlue;
this.btRight.BorderSize = new System.Windows.Forms.Padding(1);
this.btRight.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.btRight.Cursor = System.Windows.Forms.Cursors.Hand;
this.btRight.Dock = System.Windows.Forms.DockStyle.Fill;
this.btRight.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.btRight.ForeColor = System.Drawing.Color.White;
this.btRight.GradientEnable = true;
this.btRight.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal;
this.btRight.GradientRepeatBG = false;
this.btRight.isButton = true;
this.btRight.Location = new System.Drawing.Point(405, 200);
this.btRight.MouseDownColor = System.Drawing.Color.Yellow;
this.btRight.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.btRight.msg = null;
this.btRight.Name = "btRight";
this.btRight.ProgressBorderColor = System.Drawing.Color.Black;
this.btRight.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.btRight.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.btRight.ProgressEnable = false;
this.btRight.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.btRight.ProgressForeColor = System.Drawing.Color.Black;
this.btRight.ProgressMax = 100F;
this.btRight.ProgressMin = 0F;
this.btRight.ProgressPadding = new System.Windows.Forms.Padding(0);
this.btRight.ProgressValue = 0F;
this.btRight.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.btRight.Sign = "";
this.btRight.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.btRight.SignColor = System.Drawing.Color.Yellow;
this.btRight.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.btRight.Size = new System.Drawing.Size(196, 191);
this.btRight.TabIndex = 0;
this.btRight.Text = "좌회전";
this.btRight.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btRight.TextShadow = true;
this.btRight.TextVisible = true;
this.btRight.Click += new System.EventHandler(this.arLabel4_Click);
//
// btBack
//
this.btBack.AccessibleDescription = "";
this.btBack.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93)))));
this.btBack.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64)))));
this.btBack.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.btBack.BorderColor = System.Drawing.Color.Black;
this.btBack.BorderColorOver = System.Drawing.Color.DarkBlue;
this.btBack.BorderSize = new System.Windows.Forms.Padding(1);
this.btBack.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.btBack.Cursor = System.Windows.Forms.Cursors.Hand;
this.btBack.Dock = System.Windows.Forms.DockStyle.Fill;
this.btBack.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.btBack.ForeColor = System.Drawing.Color.White;
this.btBack.GradientEnable = true;
this.btBack.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal;
this.btBack.GradientRepeatBG = false;
this.btBack.isButton = true;
this.btBack.Location = new System.Drawing.Point(204, 3);
this.btBack.MouseDownColor = System.Drawing.Color.Yellow;
this.btBack.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.btBack.msg = null;
this.btBack.Name = "btBack";
this.btBack.ProgressBorderColor = System.Drawing.Color.Black;
this.btBack.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.btBack.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.btBack.ProgressEnable = false;
this.btBack.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.btBack.ProgressForeColor = System.Drawing.Color.Black;
this.btBack.ProgressMax = 100F;
this.btBack.ProgressMin = 0F;
this.btBack.ProgressPadding = new System.Windows.Forms.Padding(0);
this.btBack.ProgressValue = 0F;
this.btBack.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.btBack.Sign = "";
this.btBack.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.btBack.SignColor = System.Drawing.Color.Yellow;
this.btBack.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.btBack.Size = new System.Drawing.Size(195, 191);
this.btBack.TabIndex = 0;
this.btBack.Text = "후진";
this.btBack.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btBack.TextShadow = true;
this.btBack.TextVisible = true;
this.btBack.Click += new System.EventHandler(this.arLabel1_Click);
//
// btForward
//
this.btForward.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93)))));
this.btForward.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64)))));
this.btForward.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.btForward.BorderColor = System.Drawing.Color.Black;
this.btForward.BorderColorOver = System.Drawing.Color.DarkBlue;
this.btForward.BorderSize = new System.Windows.Forms.Padding(1);
this.btForward.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.btForward.Cursor = System.Windows.Forms.Cursors.Hand;
this.btForward.Dock = System.Windows.Forms.DockStyle.Fill;
this.btForward.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.btForward.ForeColor = System.Drawing.Color.White;
this.btForward.GradientEnable = true;
this.btForward.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal;
this.btForward.GradientRepeatBG = false;
this.btForward.isButton = true;
this.btForward.Location = new System.Drawing.Point(204, 397);
this.btForward.MouseDownColor = System.Drawing.Color.Yellow;
this.btForward.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.btForward.msg = null;
this.btForward.Name = "btForward";
this.btForward.ProgressBorderColor = System.Drawing.Color.Black;
this.btForward.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.btForward.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.btForward.ProgressEnable = false;
this.btForward.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.btForward.ProgressForeColor = System.Drawing.Color.Black;
this.btForward.ProgressMax = 100F;
this.btForward.ProgressMin = 0F;
this.btForward.ProgressPadding = new System.Windows.Forms.Padding(0);
this.btForward.ProgressValue = 0F;
this.btForward.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.btForward.Sign = "";
this.btForward.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.btForward.SignColor = System.Drawing.Color.Yellow;
this.btForward.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.btForward.Size = new System.Drawing.Size(195, 194);
this.btForward.TabIndex = 0;
this.btForward.Text = "전진";
this.btForward.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btForward.TextShadow = true;
this.btForward.TextVisible = true;
this.btForward.Click += new System.EventHandler(this.arLabel2_Click);
//
// btLeft
//
this.btLeft.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(23)))), ((int)(((byte)(55)))), ((int)(((byte)(93)))));
this.btLeft.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(12)))), ((int)(((byte)(36)))), ((int)(((byte)(64)))));
this.btLeft.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.btLeft.BorderColor = System.Drawing.Color.Black;
this.btLeft.BorderColorOver = System.Drawing.Color.DarkBlue;
this.btLeft.BorderSize = new System.Windows.Forms.Padding(1);
this.btLeft.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.btLeft.Cursor = System.Windows.Forms.Cursors.Hand;
this.btLeft.Dock = System.Windows.Forms.DockStyle.Fill;
this.btLeft.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.btLeft.ForeColor = System.Drawing.Color.White;
this.btLeft.GradientEnable = true;
this.btLeft.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal;
this.btLeft.GradientRepeatBG = false;
this.btLeft.isButton = true;
this.btLeft.Location = new System.Drawing.Point(3, 200);
this.btLeft.MouseDownColor = System.Drawing.Color.Yellow;
this.btLeft.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.btLeft.msg = null;
this.btLeft.Name = "btLeft";
this.btLeft.ProgressBorderColor = System.Drawing.Color.Black;
this.btLeft.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.btLeft.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.btLeft.ProgressEnable = false;
this.btLeft.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.btLeft.ProgressForeColor = System.Drawing.Color.Black;
this.btLeft.ProgressMax = 100F;
this.btLeft.ProgressMin = 0F;
this.btLeft.ProgressPadding = new System.Windows.Forms.Padding(0);
this.btLeft.ProgressValue = 0F;
this.btLeft.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.btLeft.Sign = "";
this.btLeft.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.btLeft.SignColor = System.Drawing.Color.Yellow;
this.btLeft.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.btLeft.Size = new System.Drawing.Size(195, 191);
this.btLeft.TabIndex = 0;
this.btLeft.Text = "우회전";
this.btLeft.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.btLeft.TextShadow = true;
this.btLeft.TextVisible = true;
this.btLeft.Click += new System.EventHandler(this.arLabel3_Click);
//
// btMarkStop
//
this.btMarkStop.Dock = System.Windows.Forms.DockStyle.Fill;
this.btMarkStop.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.btMarkStop.Location = new System.Drawing.Point(3, 3);
this.btMarkStop.Name = "btMarkStop";
this.btMarkStop.Size = new System.Drawing.Size(195, 191);
this.btMarkStop.TabIndex = 7;
this.btMarkStop.Text = "마크정지";
this.btMarkStop.UseVisualStyleBackColor = true;
this.btMarkStop.Click += new System.EventHandler(this.button1_Click);
//
// btchargeOff
//
this.btchargeOff.Dock = System.Windows.Forms.DockStyle.Fill;
this.btchargeOff.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.btchargeOff.Location = new System.Drawing.Point(405, 397);
this.btchargeOff.Name = "btchargeOff";
this.btchargeOff.Size = new System.Drawing.Size(196, 194);
this.btchargeOff.TabIndex = 8;
this.btchargeOff.Text = "충전해제";
this.btchargeOff.UseVisualStyleBackColor = true;
this.btchargeOff.Click += new System.EventHandler(this.btchargeOff_Click);
//
// btChargeOn
//
this.btChargeOn.Dock = System.Windows.Forms.DockStyle.Fill;
this.btChargeOn.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.btChargeOn.Location = new System.Drawing.Point(3, 397);
this.btChargeOn.Name = "btChargeOn";
this.btChargeOn.Size = new System.Drawing.Size(195, 194);
this.btChargeOn.TabIndex = 9;
this.btChargeOn.Text = "충전";
this.btChargeOn.UseVisualStyleBackColor = true;
this.btChargeOn.Click += new System.EventHandler(this.btChargeOn_Click);
//
// btErrReset
//
this.btErrReset.Dock = System.Windows.Forms.DockStyle.Fill;
this.btErrReset.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.btErrReset.Location = new System.Drawing.Point(405, 3);
this.btErrReset.Name = "btErrReset";
this.btErrReset.Size = new System.Drawing.Size(196, 191);
this.btErrReset.TabIndex = 10;
this.btErrReset.Text = "오류소거";
this.btErrReset.UseVisualStyleBackColor = true;
this.btErrReset.Click += new System.EventHandler(this.button3_Click);
//
// timer1
//
this.timer1.Interval = 250;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// panel2
//
this.panel2.Controls.Add(this.tableLayoutPanel2);
this.panel2.Controls.Add(this.button1);
this.panel2.Controls.Add(this.groupBox1);
this.panel2.Controls.Add(this.grpSpeed);
this.panel2.Controls.Add(this.grpBunki);
this.panel2.Controls.Add(this.groupBox2);
this.panel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel2.Location = new System.Drawing.Point(607, 21);
this.panel2.Name = "panel2";
this.panel2.Size = new System.Drawing.Size(404, 556);
this.panel2.TabIndex = 9;
this.panel2.Paint += new System.Windows.Forms.PaintEventHandler(this.panel2_Paint);
//
// tableLayoutPanel2
//
this.tableLayoutPanel2.ColumnCount = 2;
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.Controls.Add(this.btBack180, 1, 0);
this.tableLayoutPanel2.Controls.Add(this.btLeft180, 0, 0);
this.tableLayoutPanel2.Controls.Add(this.btRight180, 0, 1);
this.tableLayoutPanel2.Controls.Add(this.button2, 1, 1);
this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 438);
this.tableLayoutPanel2.Name = "tableLayoutPanel2";
this.tableLayoutPanel2.RowCount = 2;
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
this.tableLayoutPanel2.Size = new System.Drawing.Size(404, 118);
this.tableLayoutPanel2.TabIndex = 12;
//
// btBack180
//
this.btBack180.BackColor = System.Drawing.Color.WhiteSmoke;
this.btBack180.Cursor = System.Windows.Forms.Cursors.Hand;
this.btBack180.Dock = System.Windows.Forms.DockStyle.Fill;
this.btBack180.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold);
this.btBack180.ForeColor = System.Drawing.Color.Black;
this.btBack180.Location = new System.Drawing.Point(205, 3);
this.btBack180.Name = "btBack180";
this.btBack180.Size = new System.Drawing.Size(196, 53);
this.btBack180.TabIndex = 15;
this.btBack180.Text = "자석 (ON)";
this.btBack180.UseVisualStyleBackColor = false;
this.btBack180.Click += new System.EventHandler(this.btBack180_Click);
//
// btLeft180
//
this.btLeft180.BackColor = System.Drawing.Color.WhiteSmoke;
this.btLeft180.Dock = System.Windows.Forms.DockStyle.Fill;
this.btLeft180.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold);
this.btLeft180.ForeColor = System.Drawing.Color.Black;
this.btLeft180.Location = new System.Drawing.Point(3, 3);
this.btLeft180.Name = "btLeft180";
this.btLeft180.Size = new System.Drawing.Size(196, 53);
this.btLeft180.TabIndex = 7;
this.btLeft180.Text = "180도 좌회전";
this.btLeft180.UseVisualStyleBackColor = false;
this.btLeft180.Click += new System.EventHandler(this.btLeft180_Click);
//
// btRight180
//
this.btRight180.BackColor = System.Drawing.Color.WhiteSmoke;
this.btRight180.Dock = System.Windows.Forms.DockStyle.Fill;
this.btRight180.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold);
this.btRight180.ForeColor = System.Drawing.Color.Black;
this.btRight180.Location = new System.Drawing.Point(3, 62);
this.btRight180.Name = "btRight180";
this.btRight180.Size = new System.Drawing.Size(196, 53);
this.btRight180.TabIndex = 6;
this.btRight180.Text = "180도 우회전";
this.btRight180.UseVisualStyleBackColor = false;
this.btRight180.Click += new System.EventHandler(this.btRight180_Click);
//
// button2
//
this.button2.BackColor = System.Drawing.Color.WhiteSmoke;
this.button2.Cursor = System.Windows.Forms.Cursors.Hand;
this.button2.Dock = System.Windows.Forms.DockStyle.Fill;
this.button2.Font = new System.Drawing.Font("맑은 고딕", 10F, System.Drawing.FontStyle.Bold);
this.button2.ForeColor = System.Drawing.Color.Black;
this.button2.Location = new System.Drawing.Point(205, 62);
this.button2.Name = "button2";
this.button2.Size = new System.Drawing.Size(196, 53);
this.button2.TabIndex = 15;
this.button2.Text = "자석(OFF)";
this.button2.UseVisualStyleBackColor = false;
this.button2.Click += new System.EventHandler(this.button2_Click);
//
// button1
//
this.button1.Dock = System.Windows.Forms.DockStyle.Top;
this.button1.Font = new System.Drawing.Font("맑은 고딕", 20F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.button1.Location = new System.Drawing.Point(0, 380);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(404, 58);
this.button1.TabIndex = 10;
this.button1.Text = "설정 적용";
this.button1.UseVisualStyleBackColor = true;
this.button1.Click += new System.EventHandler(this.button1_Click_2);
//
// groupBox1
//
this.groupBox1.Controls.Add(this.radpbs2);
this.groupBox1.Controls.Add(this.panel9);
this.groupBox1.Controls.Add(this.radpbs1);
this.groupBox1.Controls.Add(this.panel3);
this.groupBox1.Controls.Add(this.radpbs0);
this.groupBox1.Dock = System.Windows.Forms.DockStyle.Top;
this.groupBox1.Location = new System.Drawing.Point(0, 285);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10);
this.groupBox1.Size = new System.Drawing.Size(404, 95);
this.groupBox1.TabIndex = 9;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "근접센서(PBS)";
//
// radpbs2
//
this.radpbs2.BackColor = System.Drawing.Color.WhiteSmoke;
this.radpbs2.Bordercolor = System.Drawing.Color.DimGray;
this.radpbs2.BorderRadius = 7;
this.radpbs2.BorderSize = 2;
this.radpbs2.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.radpbs2.CheckOnColor = System.Drawing.Color.LimeGreen;
this.radpbs2.CheckWidth = 30;
this.radpbs2.Dock = System.Windows.Forms.DockStyle.Left;
this.radpbs2.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.radpbs2.Location = new System.Drawing.Point(278, 19);
this.radpbs2.Name = "radpbs2";
this.radpbs2.Size = new System.Drawing.Size(119, 66);
this.radpbs2.TabIndex = 10;
this.radpbs2.Text = "On(2)";
this.radpbs2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.radpbs2.UseVisualStyleBackColor = false;
//
// panel9
//
this.panel9.Dock = System.Windows.Forms.DockStyle.Left;
this.panel9.Location = new System.Drawing.Point(263, 19);
this.panel9.Name = "panel9";
this.panel9.Size = new System.Drawing.Size(15, 66);
this.panel9.TabIndex = 12;
//
// radpbs1
//
this.radpbs1.BackColor = System.Drawing.Color.WhiteSmoke;
this.radpbs1.Bordercolor = System.Drawing.Color.DimGray;
this.radpbs1.BorderRadius = 7;
this.radpbs1.BorderSize = 2;
this.radpbs1.Checked = true;
this.radpbs1.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.radpbs1.CheckOnColor = System.Drawing.Color.LimeGreen;
this.radpbs1.CheckWidth = 30;
this.radpbs1.Dock = System.Windows.Forms.DockStyle.Left;
this.radpbs1.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.radpbs1.ForeColor = System.Drawing.Color.Blue;
this.radpbs1.Location = new System.Drawing.Point(144, 19);
this.radpbs1.Name = "radpbs1";
this.radpbs1.Size = new System.Drawing.Size(119, 66);
this.radpbs1.TabIndex = 9;
this.radpbs1.TabStop = true;
this.radpbs1.Text = "On(1)";
this.radpbs1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.radpbs1.UseVisualStyleBackColor = false;
//
// panel3
//
this.panel3.Dock = System.Windows.Forms.DockStyle.Left;
this.panel3.Location = new System.Drawing.Point(129, 19);
this.panel3.Name = "panel3";
this.panel3.Size = new System.Drawing.Size(15, 66);
this.panel3.TabIndex = 11;
//
// radpbs0
//
this.radpbs0.BackColor = System.Drawing.Color.WhiteSmoke;
this.radpbs0.Bordercolor = System.Drawing.Color.DimGray;
this.radpbs0.BorderRadius = 7;
this.radpbs0.BorderSize = 2;
this.radpbs0.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.radpbs0.CheckOnColor = System.Drawing.Color.LimeGreen;
this.radpbs0.CheckWidth = 30;
this.radpbs0.Dock = System.Windows.Forms.DockStyle.Left;
this.radpbs0.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.radpbs0.Location = new System.Drawing.Point(10, 19);
this.radpbs0.Name = "radpbs0";
this.radpbs0.Size = new System.Drawing.Size(119, 66);
this.radpbs0.TabIndex = 8;
this.radpbs0.Text = "Off(0)";
this.radpbs0.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.radpbs0.UseVisualStyleBackColor = false;
//
// grpSpeed
//
this.grpSpeed.Controls.Add(this.radspdh);
this.grpSpeed.Controls.Add(this.panel8);
this.grpSpeed.Controls.Add(this.radspdm);
this.grpSpeed.Controls.Add(this.panel4);
this.grpSpeed.Controls.Add(this.radspdl);
this.grpSpeed.Dock = System.Windows.Forms.DockStyle.Top;
this.grpSpeed.Location = new System.Drawing.Point(0, 190);
this.grpSpeed.Name = "grpSpeed";
this.grpSpeed.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10);
this.grpSpeed.Size = new System.Drawing.Size(404, 95);
this.grpSpeed.TabIndex = 0;
this.grpSpeed.TabStop = false;
this.grpSpeed.Text = "속도";
//
// radspdh
//
this.radspdh.BackColor = System.Drawing.Color.WhiteSmoke;
this.radspdh.Bordercolor = System.Drawing.Color.DimGray;
this.radspdh.BorderRadius = 7;
this.radspdh.BorderSize = 2;
this.radspdh.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.radspdh.CheckOnColor = System.Drawing.Color.LimeGreen;
this.radspdh.CheckWidth = 30;
this.radspdh.Dock = System.Windows.Forms.DockStyle.Left;
this.radspdh.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.radspdh.Location = new System.Drawing.Point(278, 19);
this.radspdh.Name = "radspdh";
this.radspdh.Size = new System.Drawing.Size(119, 66);
this.radspdh.TabIndex = 2;
this.radspdh.Text = "고속";
this.radspdh.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.radspdh.UseVisualStyleBackColor = false;
//
// panel8
//
this.panel8.Dock = System.Windows.Forms.DockStyle.Left;
this.panel8.Location = new System.Drawing.Point(263, 19);
this.panel8.Name = "panel8";
this.panel8.Size = new System.Drawing.Size(15, 66);
this.panel8.TabIndex = 13;
//
// radspdm
//
this.radspdm.BackColor = System.Drawing.Color.WhiteSmoke;
this.radspdm.Bordercolor = System.Drawing.Color.DimGray;
this.radspdm.BorderRadius = 7;
this.radspdm.BorderSize = 2;
this.radspdm.Checked = true;
this.radspdm.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.radspdm.CheckOnColor = System.Drawing.Color.LimeGreen;
this.radspdm.CheckWidth = 30;
this.radspdm.Dock = System.Windows.Forms.DockStyle.Left;
this.radspdm.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.radspdm.ForeColor = System.Drawing.Color.Blue;
this.radspdm.Location = new System.Drawing.Point(144, 19);
this.radspdm.Name = "radspdm";
this.radspdm.Size = new System.Drawing.Size(119, 66);
this.radspdm.TabIndex = 1;
this.radspdm.TabStop = true;
this.radspdm.Text = "중속";
this.radspdm.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.radspdm.UseVisualStyleBackColor = false;
//
// panel4
//
this.panel4.Dock = System.Windows.Forms.DockStyle.Left;
this.panel4.Location = new System.Drawing.Point(129, 19);
this.panel4.Name = "panel4";
this.panel4.Size = new System.Drawing.Size(15, 66);
this.panel4.TabIndex = 12;
//
// radspdl
//
this.radspdl.BackColor = System.Drawing.Color.WhiteSmoke;
this.radspdl.Bordercolor = System.Drawing.Color.DimGray;
this.radspdl.BorderRadius = 7;
this.radspdl.BorderSize = 2;
this.radspdl.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.radspdl.CheckOnColor = System.Drawing.Color.LimeGreen;
this.radspdl.CheckWidth = 30;
this.radspdl.Dock = System.Windows.Forms.DockStyle.Left;
this.radspdl.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.radspdl.Location = new System.Drawing.Point(10, 19);
this.radspdl.Name = "radspdl";
this.radspdl.Size = new System.Drawing.Size(119, 66);
this.radspdl.TabIndex = 0;
this.radspdl.Text = "저속";
this.radspdl.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.radspdl.UseVisualStyleBackColor = false;
//
// grpBunki
//
this.grpBunki.Controls.Add(this.radright);
this.grpBunki.Controls.Add(this.panel7);
this.grpBunki.Controls.Add(this.radstrai);
this.grpBunki.Controls.Add(this.panel5);
this.grpBunki.Controls.Add(this.radleft);
this.grpBunki.Dock = System.Windows.Forms.DockStyle.Top;
this.grpBunki.Location = new System.Drawing.Point(0, 95);
this.grpBunki.Name = "grpBunki";
this.grpBunki.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10);
this.grpBunki.Size = new System.Drawing.Size(404, 95);
this.grpBunki.TabIndex = 1;
this.grpBunki.TabStop = false;
this.grpBunki.Text = "분기";
//
// radright
//
this.radright.BackColor = System.Drawing.Color.WhiteSmoke;
this.radright.Bordercolor = System.Drawing.Color.DimGray;
this.radright.BorderRadius = 7;
this.radright.BorderSize = 2;
this.radright.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.radright.CheckOnColor = System.Drawing.Color.LimeGreen;
this.radright.CheckWidth = 30;
this.radright.Dock = System.Windows.Forms.DockStyle.Left;
this.radright.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.radright.Location = new System.Drawing.Point(278, 19);
this.radright.Name = "radright";
this.radright.Size = new System.Drawing.Size(119, 66);
this.radright.TabIndex = 4;
this.radright.Text = "우측";
this.radright.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.radright.UseVisualStyleBackColor = false;
//
// panel7
//
this.panel7.Dock = System.Windows.Forms.DockStyle.Left;
this.panel7.Location = new System.Drawing.Point(263, 19);
this.panel7.Name = "panel7";
this.panel7.Size = new System.Drawing.Size(15, 66);
this.panel7.TabIndex = 13;
//
// radstrai
//
this.radstrai.BackColor = System.Drawing.Color.WhiteSmoke;
this.radstrai.Bordercolor = System.Drawing.Color.DimGray;
this.radstrai.BorderRadius = 7;
this.radstrai.BorderSize = 2;
this.radstrai.Checked = true;
this.radstrai.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.radstrai.CheckOnColor = System.Drawing.Color.LimeGreen;
this.radstrai.CheckWidth = 30;
this.radstrai.Dock = System.Windows.Forms.DockStyle.Left;
this.radstrai.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.radstrai.ForeColor = System.Drawing.Color.Blue;
this.radstrai.Location = new System.Drawing.Point(144, 19);
this.radstrai.Name = "radstrai";
this.radstrai.Size = new System.Drawing.Size(119, 66);
this.radstrai.TabIndex = 3;
this.radstrai.TabStop = true;
this.radstrai.Text = "직진";
this.radstrai.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.radstrai.UseVisualStyleBackColor = false;
//
// panel5
//
this.panel5.Dock = System.Windows.Forms.DockStyle.Left;
this.panel5.Location = new System.Drawing.Point(129, 19);
this.panel5.Name = "panel5";
this.panel5.Size = new System.Drawing.Size(15, 66);
this.panel5.TabIndex = 12;
//
// radleft
//
this.radleft.BackColor = System.Drawing.Color.WhiteSmoke;
this.radleft.Bordercolor = System.Drawing.Color.DimGray;
this.radleft.BorderRadius = 7;
this.radleft.BorderSize = 2;
this.radleft.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.radleft.CheckOnColor = System.Drawing.Color.LimeGreen;
this.radleft.CheckWidth = 30;
this.radleft.Dock = System.Windows.Forms.DockStyle.Left;
this.radleft.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.radleft.Location = new System.Drawing.Point(10, 19);
this.radleft.Name = "radleft";
this.radleft.Size = new System.Drawing.Size(119, 66);
this.radleft.TabIndex = 5;
this.radleft.Text = "좌측";
this.radleft.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.radleft.UseVisualStyleBackColor = false;
//
// groupBox2
//
this.groupBox2.Controls.Add(this.arLabel1);
this.groupBox2.Controls.Add(this.panel12);
this.groupBox2.Controls.Add(this.radbackward);
this.groupBox2.Controls.Add(this.panel6);
this.groupBox2.Controls.Add(this.radforward);
this.groupBox2.Dock = System.Windows.Forms.DockStyle.Top;
this.groupBox2.Location = new System.Drawing.Point(0, 0);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Padding = new System.Windows.Forms.Padding(10, 5, 5, 10);
this.groupBox2.Size = new System.Drawing.Size(404, 95);
this.groupBox2.TabIndex = 3;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "방향";
//
// arLabel1
//
this.arLabel1.BackColor = System.Drawing.Color.Pink;
this.arLabel1.BackColor2 = System.Drawing.Color.Tomato;
this.arLabel1.BackgroundImagePadding = new System.Windows.Forms.Padding(0);
this.arLabel1.BorderColor = System.Drawing.Color.Black;
this.arLabel1.BorderColorOver = System.Drawing.Color.DarkBlue;
this.arLabel1.BorderSize = new System.Windows.Forms.Padding(1);
this.arLabel1.ColorTheme = arCtl.arLabel.eColorTheme.Custom;
this.arLabel1.Cursor = System.Windows.Forms.Cursors.Hand;
this.arLabel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.arLabel1.Font = new System.Drawing.Font("맑은 고딕", 15F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.arLabel1.ForeColor = System.Drawing.Color.White;
this.arLabel1.GradientEnable = true;
this.arLabel1.GradientMode = System.Drawing.Drawing2D.LinearGradientMode.ForwardDiagonal;
this.arLabel1.GradientRepeatBG = false;
this.arLabel1.isButton = true;
this.arLabel1.Location = new System.Drawing.Point(278, 19);
this.arLabel1.MouseDownColor = System.Drawing.Color.Yellow;
this.arLabel1.MouseOverColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.arLabel1.msg = new string[] {
"커버",
"UP"};
this.arLabel1.Name = "arLabel1";
this.arLabel1.ProgressBorderColor = System.Drawing.Color.Black;
this.arLabel1.ProgressColor1 = System.Drawing.Color.LightSkyBlue;
this.arLabel1.ProgressColor2 = System.Drawing.Color.DeepSkyBlue;
this.arLabel1.ProgressEnable = false;
this.arLabel1.ProgressFont = new System.Drawing.Font("Consolas", 10F);
this.arLabel1.ProgressForeColor = System.Drawing.Color.Black;
this.arLabel1.ProgressMax = 100F;
this.arLabel1.ProgressMin = 0F;
this.arLabel1.ProgressPadding = new System.Windows.Forms.Padding(0);
this.arLabel1.ProgressValue = 0F;
this.arLabel1.ShadowColor = System.Drawing.Color.FromArgb(((int)(((byte)(20)))), ((int)(((byte)(20)))), ((int)(((byte)(20)))));
this.arLabel1.Sign = "";
this.arLabel1.SignAlign = System.Drawing.ContentAlignment.BottomRight;
this.arLabel1.SignColor = System.Drawing.Color.Yellow;
this.arLabel1.SignFont = new System.Drawing.Font("Consolas", 7F, System.Drawing.FontStyle.Italic);
this.arLabel1.Size = new System.Drawing.Size(121, 66);
this.arLabel1.TabIndex = 15;
this.arLabel1.Text = "주행속도";
this.arLabel1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.arLabel1.TextShadow = true;
this.arLabel1.TextVisible = true;
this.arLabel1.Click += new System.EventHandler(this.arLabel1_Click_1);
//
// panel12
//
this.panel12.Dock = System.Windows.Forms.DockStyle.Left;
this.panel12.Location = new System.Drawing.Point(263, 19);
this.panel12.Name = "panel12";
this.panel12.Size = new System.Drawing.Size(15, 66);
this.panel12.TabIndex = 14;
//
// radbackward
//
this.radbackward.BackColor = System.Drawing.Color.WhiteSmoke;
this.radbackward.Bordercolor = System.Drawing.Color.DimGray;
this.radbackward.BorderRadius = 7;
this.radbackward.BorderSize = 2;
this.radbackward.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.radbackward.CheckOnColor = System.Drawing.Color.LimeGreen;
this.radbackward.CheckWidth = 30;
this.radbackward.Dock = System.Windows.Forms.DockStyle.Left;
this.radbackward.Font = new System.Drawing.Font("맑은 고딕", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.radbackward.Location = new System.Drawing.Point(144, 19);
this.radbackward.Name = "radbackward";
this.radbackward.Size = new System.Drawing.Size(119, 66);
this.radbackward.TabIndex = 6;
this.radbackward.Text = "후진";
this.radbackward.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.radbackward.UseVisualStyleBackColor = false;
//
// panel6
//
this.panel6.Dock = System.Windows.Forms.DockStyle.Left;
this.panel6.Location = new System.Drawing.Point(129, 19);
this.panel6.Name = "panel6";
this.panel6.Size = new System.Drawing.Size(15, 66);
this.panel6.TabIndex = 12;
//
// radforward
//
this.radforward.BackColor = System.Drawing.Color.WhiteSmoke;
this.radforward.Bordercolor = System.Drawing.Color.DimGray;
this.radforward.BorderRadius = 7;
this.radforward.BorderSize = 2;
this.radforward.Checked = true;
this.radforward.CheckOffColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
this.radforward.CheckOnColor = System.Drawing.Color.LimeGreen;
this.radforward.CheckWidth = 30;
this.radforward.Dock = System.Windows.Forms.DockStyle.Left;
this.radforward.Font = new System.Drawing.Font("맑은 고딕", 16F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.radforward.ForeColor = System.Drawing.Color.Blue;
this.radforward.Location = new System.Drawing.Point(10, 19);
this.radforward.Name = "radforward";
this.radforward.Size = new System.Drawing.Size(119, 66);
this.radforward.TabIndex = 7;
this.radforward.TabStop = true;
this.radforward.Text = "전진";
this.radforward.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.radforward.UseVisualStyleBackColor = false;
//
// label1
//
this.label1.BackColor = System.Drawing.Color.Blue;
this.label1.Dock = System.Windows.Forms.DockStyle.Bottom;
this.label1.Font = new System.Drawing.Font("맑은 고딕", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.label1.ForeColor = System.Drawing.Color.White;
this.label1.Location = new System.Drawing.Point(607, 577);
this.label1.Name = "label1";
this.label1.Padding = new System.Windows.Forms.Padding(0, 3, 0, 3);
this.label1.Size = new System.Drawing.Size(404, 38);
this.label1.TabIndex = 9;
this.label1.Text = "----------";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
//
// guideSensor1
//
this.guideSensor1.Dock = System.Windows.Forms.DockStyle.Top;
this.guideSensor1.LMark = false;
this.guideSensor1.Location = new System.Drawing.Point(3, 3);
this.guideSensor1.Name = "guideSensor1";
this.guideSensor1.RMark = false;
this.guideSensor1.SensorValue = 0;
this.guideSensor1.Size = new System.Drawing.Size(1008, 18);
this.guideSensor1.TabIndex = 8;
this.guideSensor1.Text = "guideSensor1";
//
// fManual
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.SlateGray;
this.ClientSize = new System.Drawing.Size(1014, 618);
this.Controls.Add(this.panel2);
this.Controls.Add(this.label1);
this.Controls.Add(this.tableLayoutPanel1);
this.Controls.Add(this.guideSensor1);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Name = "fManual";
this.Padding = new System.Windows.Forms.Padding(3);
this.Text = "fManual";
this.Load += new System.EventHandler(this.fManual_Load);
this.VisibleChanged += new System.EventHandler(this.fManual_VisibleChanged);
this.tableLayoutPanel1.ResumeLayout(false);
this.panel2.ResumeLayout(false);
this.tableLayoutPanel2.ResumeLayout(false);
this.groupBox1.ResumeLayout(false);
this.grpSpeed.ResumeLayout(false);
this.grpBunki.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private arCtl.arLabel btBack;
private arCtl.arLabel btForward;
private arCtl.arLabel btLeft;
private arCtl.arLabel btRight;
private arCtl.arLabel btStart;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.Button btMarkStop;
private System.Windows.Forms.Button btchargeOff;
private System.Windows.Forms.Button btChargeOn;
private Narumi.UC.GuideSensor guideSensor1;
private System.Windows.Forms.Panel panel2;
private System.Windows.Forms.Button btErrReset;
private System.Windows.Forms.GroupBox grpSpeed;
private System.Windows.Forms.GroupBox grpBunki;
private System.Windows.Forms.GroupBox groupBox2;
private AGVControl.MyRadioButton radspdl;
private AGVControl.MyRadioButton radspdh;
private AGVControl.MyRadioButton radspdm;
private AGVControl.MyRadioButton radleft;
private AGVControl.MyRadioButton radright;
private AGVControl.MyRadioButton radstrai;
private AGVControl.MyRadioButton radbackward;
private AGVControl.MyRadioButton radforward;
private AGVControl.MyRadioButton radpbs0;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.GroupBox groupBox1;
private AGVControl.MyRadioButton radpbs1;
private AGVControl.MyRadioButton radpbs2;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Panel panel9;
private System.Windows.Forms.Panel panel8;
private System.Windows.Forms.Panel panel4;
private System.Windows.Forms.Panel panel7;
private System.Windows.Forms.Panel panel5;
private System.Windows.Forms.Panel panel6;
private System.Windows.Forms.Button button1;
private arCtl.arLabel arLabel1;
private System.Windows.Forms.Panel panel12;
private System.Windows.Forms.Button btRight180;
private System.Windows.Forms.Button btLeft180;
private System.Windows.Forms.Button btBack180;
private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2;
private System.Windows.Forms.Button button2;
}
}

View File

@@ -0,0 +1,410 @@
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;
using AR;
using arDev;
using COMM;
namespace Project.ViewForm
{
public partial class fManual : Form
{
public fManual()
{
InitializeComponent();
this.FormClosed += FIO_FormClosed;
}
private void fManual_Load(object sender, EventArgs e)
{
if (PUB.AGV.data.Direction == 'F') radforward.Checked = true;
else radbackward.Checked = false;
//if (PUB.AGV.data.Sts == 'L') radleft.Checked = true;
//else if (PUB.AGV.data.Sts == 'R') radright.Checked = true;
//else
radstrai.Checked = true;
if (PUB.AGV.data.Speed == 'H') radspdh.Checked = true;
else if (PUB.AGV.data.Speed == 'L') radspdl.Checked = true;
else radspdm.Checked = true;
this.timer1.Start();
}
private void FIO_FormClosed(object sender, FormClosedEventArgs e)
{
timer1.Stop();
}
#region "Z축 커버"
private void arLabel10_Click(object sender, EventArgs e)
{
}
private void arLabel8_Click(object sender, EventArgs e)
{
}
private void arLabel7_Click(object sender, EventArgs e)
{
}
#endregion
#region "AGV 수동 이동"
private void arLabel1_Click(object sender, EventArgs e)
{
//후진
if (VAR.BOOL[eVarBool.FLAG_CHARGEONA])
{
UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요");
return;
}
else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM])
{
UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요");
return;
}
if (PUB.CheckManualChargeMode() == false) return;
arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low;
if (radspdh.Checked) spd = arDev.Narumi.Speed.High;
else if (radspdm.Checked) spd = arDev.Narumi.Speed.Mid;
arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff;
if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn;
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.BS, spd, ss);
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
// [Manual Safety] Clear previous auto-task state
PUB._virtualAGV.TargetNode = null;
PUB._virtualAGV.StopPath();
PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop; // Clear ACS Command
PUB.sm.ClearRunStep(); // Clear RunStep sequence
}
private void arLabel2_Click(object sender, EventArgs e)
{
//전진
if (VAR.BOOL[eVarBool.FLAG_CHARGEONA])
{
UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요");
return;
}
else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM])
{
UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요");
return;
}
if (PUB.CheckManualChargeMode() == false) return;
arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low;
if (radspdh.Checked) spd = arDev.Narumi.Speed.High;
else if (radspdm.Checked) spd = arDev.Narumi.Speed.Mid;
arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff;
if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn;
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.FS, spd, ss);
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
// [Manual Safety] Clear previous auto-task state
PUB._virtualAGV.TargetNode = null;
PUB._virtualAGV.StopPath();
PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop;
PUB.sm.ClearRunStep();
}
private void arLabel3_Click(object sender, EventArgs e)
{
//우회전
if (VAR.BOOL[eVarBool.FLAG_CHARGEONA])
{
UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요");
return;
}
else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM])
{
UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요");
return;
}
if (PUB.CheckManualChargeMode() == false) return;
arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low;
if (radspdh.Checked) spd = arDev.Narumi.Speed.High;
else if (radspdl.Checked) spd = arDev.Narumi.Speed.Mid;
arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff;
if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn;
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.RT, spd, ss);
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
// [Manual Safety] Clear previous auto-task state
PUB._virtualAGV.TargetNode = null;
PUB._virtualAGV.StopPath();
PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop;
PUB.sm.ClearRunStep();
}
private void arLabel4_Click(object sender, EventArgs e)
{
//좌회전
if (VAR.BOOL[eVarBool.FLAG_CHARGEONA])
{
UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요");
return;
}
else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM])
{
UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요");
return;
}
if (PUB.CheckManualChargeMode() == false) return;
arDev.Narumi.Speed spd = arDev.Narumi.Speed.Low;
if (radspdh.Checked) spd = arDev.Narumi.Speed.High;
else if (radspdl.Checked) spd = arDev.Narumi.Speed.Mid;
arDev.Narumi.Sensor ss = arDev.Narumi.Sensor.PBSOff;
if (radpbs0.Checked) ss = arDev.Narumi.Sensor.PBSOn;
PUB.AGV.AGVMoveManual(arDev.Narumi.ManulOpt.LT, spd, ss);
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
// [Manual Safety] Clear previous auto-task state
PUB._virtualAGV.TargetNode = null;
PUB._virtualAGV.StopPath();
PUB.NextWorkCmd = ENIGProtocol.AGVCommandHE.Stop;
PUB.sm.ClearRunStep();
}
private void arLabel11_Click(object sender, EventArgs e)
{
if (VAR.BOOL[eVarBool.FLAG_CHARGEONA])
{
UTIL.MsgE("자동 충전 중입니다\n충전을 해제 하세요");
return;
}
else if (VAR.BOOL[eVarBool.FLAG_CHARGEONM])
{
UTIL.MsgE("수동 충전 중입니다\b충전을 해제 하세요");
return;
}
if (PUB.CheckManualChargeMode() == false) return;
PUB.sm.SetNewStep(StateMachine.eSMStep.IDLE);
if (PUB.AGV.system1.agv_run == false && PUB.AGV.system1.agv_run_manual == false)
{
var dlg = UTIL.MsgQ("자동 진행을 시작할까요?\n우측 옵션을 확인 하세요");
if (dlg != DialogResult.Yes) return;
var opt = makeopt();
if (PUB.AGV.AGVMoveSet(opt) == eNarumiCommandResult.Success)
PUB.AGV.AGVMoveRun(opt.Direction == arDev.Narumi.eMoveDir.Forward ? arDev.Narumi.eRunOpt.Forward : arDev.Narumi.eRunOpt.Backward);
}
else
{
PUB.AGV.AGVMoveStop("fmanual arlabel11_Clcik", arDev.Narumi.eStopOpt.Stop);
}
}
#endregion
bool tmrun = false;
private void timer1_Tick(object sender, EventArgs e)
{
if (this.Visible == false) return;
if (tmrun == true) return;
tmrun = true;
//충전중이면 수동버튼을 누를수없게한다
if (VAR.BOOL[eVarBool.FLAG_CHARGEONA] || VAR.BOOL[eVarBool.FLAG_CHARGEONM]) btLeft.Enabled = false;
else btLeft.Enabled = true;
btRight.Enabled = btLeft.Enabled;
btStart.Enabled = btLeft.Enabled;
btBack.Enabled = btLeft.Enabled;
btForward.Enabled = btLeft.Enabled;
//상태메세지
label1.Text = VAR.STR[eVarString.StatusMessage];
//마크정보
guideSensor1.SensorValue = PUB.AGV.data.guidesensor;
guideSensor1.LMark = PUB.AGV.signal1.mark_sensor_1;
guideSensor1.RMark = PUB.AGV.signal1.mark_sensor_2;
guideSensor1.Invalidate();
if (PUB.AGV.system1.agv_run || PUB.AGV.system1.agv_run_manual)
{
btStart.Text = "동작\n멈춤";
btStart.BackColor = Color.Tomato;
btStart.BackColor2 = Color.Orange;
}
else
{
btStart.Text = "자돟\n진행";
btStart.BackColor = Color.DimGray;
btStart.BackColor2 = Color.Gray;
}
//모터전원상태에따라서 배경색상을 변경해준다.
//var Mot_Dir_Backward = PUB.AGV.data.Direction == 'B';// PUB.flag.get(EFlag.FLAG_DIR_CW);// PUB.flag.get(EFlag.FLAG_DIR_CW);
//if (Mot_Dir_Backward == true)
//{
// btBack.BackColor = Color.Lime;
// btBack.BackColor2 = Color.Green;
// btForward.BackColor = Color.FromArgb(23, 55, 93);
// btForward.BackColor2 = Color.FromArgb(12, 36, 64);
//}
//else
//{
// btForward.BackColor = Color.Lime;
// btForward.BackColor2 = Color.Green;
// btBack.BackColor = Color.FromArgb(23, 55, 93);
// btBack.BackColor2 = Color.FromArgb(12, 36, 64);
//}
tmrun = false;
}
private void button1_Click(object sender, EventArgs e)
{
PUB.AGV.AGVMoveStop("fmanual button1_click", arDev.Narumi.eStopOpt.MarkStop);
//VAR.BOOL[eVarBool.FLAG_NEXTSTOP_MARK] = true;
}
private void fManual_VisibleChanged(object sender, EventArgs e)
{
this.timer1.Enabled = this.Visible;
if (timer1.Enabled) timer1.Start();
else timer1.Stop();
}
private void button3_Click(object sender, EventArgs e)
{
PUB.AGV.AGVErrorReset();
}
private void panel2_Paint(object sender, PaintEventArgs e)
{
}
arDev.Narumi.BunkiData makeopt()
{
var p = new arDev.Narumi.BunkiData();
if (radbackward.Checked) p.Direction = arDev.Narumi.eMoveDir.Backward;
else p.Direction = arDev.Narumi.eMoveDir.Forward;
if (radleft.Checked) p.Bunki = arDev.Narumi.eBunki.Left;
else if (radright.Checked) p.Bunki = arDev.Narumi.eBunki.Right;
else p.Bunki = arDev.Narumi.eBunki.Strate;
if (radspdh.Checked) p.Speed = arDev.Narumi.eMoveSpd.High;
else if (radspdl.Checked) p.Speed = arDev.Narumi.eMoveSpd.Low;
else p.Speed = arDev.Narumi.eMoveSpd.Mid;
if (radpbs1.Checked) p.PBSSensor = 2;
else if (radpbs2.Checked) p.PBSSensor = 2;
else p.PBSSensor = 0;
return p;
}
private void btchargeOff_Click(object sender, EventArgs e)
{
if (UTIL.MsgQ("충전 해제 명령을 전송 할까요?") == DialogResult.Yes)
PUB.AGV.AGVCharge(PUB.setting.ChargerID, false);
}
private void btChargeOn_Click(object sender, EventArgs e)
{
if (VAR.BOOL[eVarBool.MARK_SENSOR] == false)
{
UTIL.MsgE("마크센서가 확인되지 않아 충전을 시작할 수 없습니다");
return;
}
var dlg = UTIL.MsgQ("충전 시작 명령을 전송 할까요?");
if (dlg != DialogResult.Yes) return;
PUB.AGV.AGVCharge(PUB.setting.ChargerID, true);
}
arDev.Narumi.BunkiData bunkiopt = null;
private void button1_Click_2(object sender, EventArgs e)
{
bunkiopt = makeopt();
PUB.AGV.AGVMoveSet(bunkiopt);
PUB.log.Add($"사용자 설정 : {bunkiopt}");
if (PUB.DriveSpeed)
{
if (PUB.AGV.AGVCommand("SSH", PUB.setting.SPD_H.ToString("0000")) == eNarumiCommandResult.Success)
PUB.DriveSpeed = false;
}
}
private void arLabel1_Click_1(object sender, EventArgs e)
{
if (PUB.AGV.AGVCommand("SSH", PUB.setting.SPD_DRIVE.ToString("0000")) != eNarumiCommandResult.Success)
{
AR.UTIL.MsgE("고속속도에 주행속도 연결 실패\n잠시 후 다시 시도하세요");
return;
}
if (this.bunkiopt == null) bunkiopt = makeopt();
bunkiopt.Speed = arDev.Narumi.eMoveSpd.High;
if (PUB.AGV.AGVMoveSet(bunkiopt) == eNarumiCommandResult.Success)
{
PUB.log.Add($"고속주행설정 : {bunkiopt}");
PUB.DriveSpeed = true;
AR.UTIL.MsgI($"주행속도({PUB.setting.SPD_DRIVE})가 '고속' 속도에 연결되었습니다.\n" +
$"창을 이동하거나 '설정적용'을 누르면 원래속도({PUB.setting.SPD_H})로 변경 됩니다");
}
else
{
UTIL.MsgE($"고속 속도 설정이 실패되었습니다");
}
}
private void btLeft180_Click(object sender, EventArgs e)
{
//[STX] C T L 0 0 0 0 A 3 [ETX]
PUB.AGV.AGVMoveLeft180Turn();
}
private void btRight180_Click(object sender, EventArgs e)
{
//[STX] C T R 0 0 0 0 A 9 [ETX]
PUB.AGV.AGVMoveRight180Turn();
}
private void btBack180_Click(object sender, EventArgs e)
{
//[STX] C T B 0 0 0 0 9 9 [ETX]
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.ON);// (;// (true);
}
private void button2_Click(object sender, EventArgs e)
{
PUB.AGV.LiftControl(arDev.Narumi.LiftCommand.OFF);
}
}
}

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>