From d620c3a9c0b984ed684752ec9897506251ee31f0 Mon Sep 17 00:00:00 2001 From: Nick Santana Date: Fri, 29 May 2026 13:17:07 -0700 Subject: [PATCH] moving repo from git to local repo --- App.config | 6 + Form1.Designer.cs | 2520 ++++++++++++++++++++++++++++++ Form1.cs | 581 +++++++ Form1.resx | 194 +++ Program.cs | 22 + Properties/AssemblyInfo.cs | 36 + Properties/Resources.Designer.cs | 71 + Properties/Resources.resx | 117 ++ Properties/Settings.Designer.cs | 30 + Properties/Settings.settings | 7 + erisys_logo.jpg | Bin 0 -> 5393 bytes packages.config | 15 + quadRT_CMAC_TestGUI.csproj | 163 ++ quadRT_CMAC_TestGUI.sln | 25 + uartTestGUI_TemporaryKey.pfx | Bin 0 -> 1700 bytes unhandled exception.JPG | Bin 0 -> 70473 bytes 16 files changed, 3787 insertions(+) create mode 100644 App.config create mode 100644 Form1.Designer.cs create mode 100644 Form1.cs create mode 100644 Form1.resx create mode 100644 Program.cs create mode 100644 Properties/AssemblyInfo.cs create mode 100644 Properties/Resources.Designer.cs create mode 100644 Properties/Resources.resx create mode 100644 Properties/Settings.Designer.cs create mode 100644 Properties/Settings.settings create mode 100644 erisys_logo.jpg create mode 100644 packages.config create mode 100644 quadRT_CMAC_TestGUI.csproj create mode 100644 quadRT_CMAC_TestGUI.sln create mode 100644 uartTestGUI_TemporaryKey.pfx create mode 100644 unhandled exception.JPG diff --git a/App.config b/App.config new file mode 100644 index 0000000..56efbc7 --- /dev/null +++ b/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Form1.Designer.cs b/Form1.Designer.cs new file mode 100644 index 0000000..9f6f4e5 --- /dev/null +++ b/Form1.Designer.cs @@ -0,0 +1,2520 @@ +namespace uartTestGUI +{ + partial class Form1 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.Label label34; + System.Windows.Forms.Label label6; + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); + this.ssh_connect = new System.Windows.Forms.Button(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.flowLayoutPanel16 = new System.Windows.Forms.FlowLayoutPanel(); + this.flowLayoutPanel18 = new System.Windows.Forms.FlowLayoutPanel(); + this.label18 = new System.Windows.Forms.Label(); + this.reg_addr = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel47 = new System.Windows.Forms.FlowLayoutPanel(); + this.label19 = new System.Windows.Forms.Label(); + this.reg_data = new System.Windows.Forms.TextBox(); + this.reg_read = new System.Windows.Forms.Button(); + this.reg_write = new System.Windows.Forms.Button(); + this.groupBox10 = new System.Windows.Forms.GroupBox(); + this.cmac_read_all_regs = new System.Windows.Forms.Button(); + this.label7 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.flowLayoutPanel12 = new System.Windows.Forms.FlowLayoutPanel(); + this.flowLayoutPanel13 = new System.Windows.Forms.FlowLayoutPanel(); + this.label1 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x10000 = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x10000 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel14 = new System.Windows.Forms.FlowLayoutPanel(); + this.label2 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x10004 = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x10004 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel17 = new System.Windows.Forms.FlowLayoutPanel(); + this.label3 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x1000C = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x1000C = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel20 = new System.Windows.Forms.FlowLayoutPanel(); + this.label4 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x10014 = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x10014 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel24 = new System.Windows.Forms.FlowLayoutPanel(); + this.label5 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x10024 = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x10024 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel29 = new System.Windows.Forms.FlowLayoutPanel(); + this.cmac_0_reg_0x10090 = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x10090 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel37 = new System.Windows.Forms.FlowLayoutPanel(); + this.flowLayoutPanel38 = new System.Windows.Forms.FlowLayoutPanel(); + this.label8 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x00 = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x00 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel39 = new System.Windows.Forms.FlowLayoutPanel(); + this.label9 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x04 = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x04 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel40 = new System.Windows.Forms.FlowLayoutPanel(); + this.label10 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x08 = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x08 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel41 = new System.Windows.Forms.FlowLayoutPanel(); + this.label11 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x0C = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x0C = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel42 = new System.Windows.Forms.FlowLayoutPanel(); + this.label12 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x10 = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x10 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel43 = new System.Windows.Forms.FlowLayoutPanel(); + this.label13 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x14 = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x14 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel44 = new System.Windows.Forms.FlowLayoutPanel(); + this.label14 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x18 = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x18 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel45 = new System.Windows.Forms.FlowLayoutPanel(); + this.label15 = new System.Windows.Forms.Label(); + this.cmac_0_reg_0x1C = new System.Windows.Forms.TextBox(); + this.cmac_4_reg_0x1C = new System.Windows.Forms.TextBox(); + this.groupBox9 = new System.Windows.Forms.GroupBox(); + this.flowLayoutPanel11 = new System.Windows.Forms.FlowLayoutPanel(); + this.dac_data_src_cmac = new System.Windows.Forms.RadioButton(); + this.dac_data_src_quadsend_rcv = new System.Windows.Forms.RadioButton(); + this.flowLayoutPanel10 = new System.Windows.Forms.FlowLayoutPanel(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.flowLayoutPanel4 = new System.Windows.Forms.FlowLayoutPanel(); + this.qsfp1_present = new System.Windows.Forms.Button(); + this.qsfp1_intl = new System.Windows.Forms.Button(); + this.groupBox6 = new System.Windows.Forms.GroupBox(); + this.flowLayoutPanel6 = new System.Windows.Forms.FlowLayoutPanel(); + this.qsfp2_present = new System.Windows.Forms.Button(); + this.qsfp2_intl = new System.Windows.Forms.Button(); + this.groupBox8 = new System.Windows.Forms.GroupBox(); + this.flowLayoutPanel8 = new System.Windows.Forms.FlowLayoutPanel(); + this.qsfp3_present = new System.Windows.Forms.Button(); + this.qsfp3_intl = new System.Windows.Forms.Button(); + this.groupBox7 = new System.Windows.Forms.GroupBox(); + this.flowLayoutPanel7 = new System.Windows.Forms.FlowLayoutPanel(); + this.qsfp4_present = new System.Windows.Forms.Button(); + this.qsfp4_intl = new System.Windows.Forms.Button(); + this.cmac_init = new System.Windows.Forms.Button(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.groupBox5 = new System.Windows.Forms.GroupBox(); + this.flowLayoutPanel5 = new System.Windows.Forms.FlowLayoutPanel(); + this.ipAddress = new System.Windows.Forms.TextBox(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.read_all_regs = new System.Windows.Forms.Button(); + this.flowLayoutPanel15 = new System.Windows.Forms.FlowLayoutPanel(); + this.flowLayoutPanel9 = new System.Windows.Forms.FlowLayoutPanel(); + this.label29 = new System.Windows.Forms.Label(); + this.reg_0x00 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel19 = new System.Windows.Forms.FlowLayoutPanel(); + this.label30 = new System.Windows.Forms.Label(); + this.reg_0x04 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.label31 = new System.Windows.Forms.Label(); + this.reg_0x14 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel21 = new System.Windows.Forms.FlowLayoutPanel(); + this.label32 = new System.Windows.Forms.Label(); + this.reg_0x20 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel22 = new System.Windows.Forms.FlowLayoutPanel(); + this.label33 = new System.Windows.Forms.Label(); + this.reg_0x28 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel23 = new System.Windows.Forms.FlowLayoutPanel(); + this.reg_0x2C = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel25 = new System.Windows.Forms.FlowLayoutPanel(); + this.label35 = new System.Windows.Forms.Label(); + this.reg_0x30 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); + this.label36 = new System.Windows.Forms.Label(); + this.reg_0x34 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel26 = new System.Windows.Forms.FlowLayoutPanel(); + this.label37 = new System.Windows.Forms.Label(); + this.reg_0x38 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel27 = new System.Windows.Forms.FlowLayoutPanel(); + this.label38 = new System.Windows.Forms.Label(); + this.reg_0x3C = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel28 = new System.Windows.Forms.FlowLayoutPanel(); + this.label39 = new System.Windows.Forms.Label(); + this.reg_0x40 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel(); + this.label40 = new System.Windows.Forms.Label(); + this.reg_0xD4 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel30 = new System.Windows.Forms.FlowLayoutPanel(); + this.label41 = new System.Windows.Forms.Label(); + this.reg_0xD8 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel31 = new System.Windows.Forms.FlowLayoutPanel(); + this.label42 = new System.Windows.Forms.Label(); + this.reg_0xDC = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel32 = new System.Windows.Forms.FlowLayoutPanel(); + this.label43 = new System.Windows.Forms.Label(); + this.reg_0xE0 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel33 = new System.Windows.Forms.FlowLayoutPanel(); + this.label44 = new System.Windows.Forms.Label(); + this.reg_0xE4 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel34 = new System.Windows.Forms.FlowLayoutPanel(); + this.label45 = new System.Windows.Forms.Label(); + this.reg_0xE8 = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel35 = new System.Windows.Forms.FlowLayoutPanel(); + this.label46 = new System.Windows.Forms.Label(); + this.reg_0xEC = new System.Windows.Forms.TextBox(); + this.flowLayoutPanel36 = new System.Windows.Forms.FlowLayoutPanel(); + this.label47 = new System.Windows.Forms.Label(); + this.reg_0xF0 = new System.Windows.Forms.TextBox(); + this.reboot_fpga = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.flowLayoutPanel181 = new System.Windows.Forms.FlowLayoutPanel(); + this.cmac_rx_en = new System.Windows.Forms.RadioButton(); + this.cmac_tx_en = new System.Windows.Forms.RadioButton(); + this.cmac_rxtx_en = new System.Windows.Forms.RadioButton(); + this.cmac_disable = new System.Windows.Forms.RadioButton(); + this.counters_rst = new System.Windows.Forms.Button(); + this.label16 = new System.Windows.Forms.Label(); + this.label20 = new System.Windows.Forms.Label(); + this.label21 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + label34 = new System.Windows.Forms.Label(); + label6 = new System.Windows.Forms.Label(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.groupBox3.SuspendLayout(); + this.flowLayoutPanel16.SuspendLayout(); + this.flowLayoutPanel18.SuspendLayout(); + this.flowLayoutPanel47.SuspendLayout(); + this.groupBox10.SuspendLayout(); + this.flowLayoutPanel12.SuspendLayout(); + this.flowLayoutPanel13.SuspendLayout(); + this.flowLayoutPanel14.SuspendLayout(); + this.flowLayoutPanel17.SuspendLayout(); + this.flowLayoutPanel20.SuspendLayout(); + this.flowLayoutPanel24.SuspendLayout(); + this.flowLayoutPanel29.SuspendLayout(); + this.flowLayoutPanel37.SuspendLayout(); + this.flowLayoutPanel38.SuspendLayout(); + this.flowLayoutPanel39.SuspendLayout(); + this.flowLayoutPanel40.SuspendLayout(); + this.flowLayoutPanel41.SuspendLayout(); + this.flowLayoutPanel42.SuspendLayout(); + this.flowLayoutPanel43.SuspendLayout(); + this.flowLayoutPanel44.SuspendLayout(); + this.flowLayoutPanel45.SuspendLayout(); + this.groupBox9.SuspendLayout(); + this.flowLayoutPanel11.SuspendLayout(); + this.flowLayoutPanel10.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.flowLayoutPanel4.SuspendLayout(); + this.groupBox6.SuspendLayout(); + this.flowLayoutPanel6.SuspendLayout(); + this.groupBox8.SuspendLayout(); + this.flowLayoutPanel8.SuspendLayout(); + this.groupBox7.SuspendLayout(); + this.flowLayoutPanel7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.groupBox5.SuspendLayout(); + this.flowLayoutPanel5.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.flowLayoutPanel15.SuspendLayout(); + this.flowLayoutPanel9.SuspendLayout(); + this.flowLayoutPanel19.SuspendLayout(); + this.flowLayoutPanel1.SuspendLayout(); + this.flowLayoutPanel21.SuspendLayout(); + this.flowLayoutPanel22.SuspendLayout(); + this.flowLayoutPanel23.SuspendLayout(); + this.flowLayoutPanel25.SuspendLayout(); + this.flowLayoutPanel2.SuspendLayout(); + this.flowLayoutPanel26.SuspendLayout(); + this.flowLayoutPanel27.SuspendLayout(); + this.flowLayoutPanel28.SuspendLayout(); + this.flowLayoutPanel3.SuspendLayout(); + this.flowLayoutPanel30.SuspendLayout(); + this.flowLayoutPanel31.SuspendLayout(); + this.flowLayoutPanel32.SuspendLayout(); + this.flowLayoutPanel33.SuspendLayout(); + this.flowLayoutPanel34.SuspendLayout(); + this.flowLayoutPanel35.SuspendLayout(); + this.flowLayoutPanel36.SuspendLayout(); + this.groupBox2.SuspendLayout(); + this.flowLayoutPanel181.SuspendLayout(); + this.SuspendLayout(); + // + // label34 + // + label34.Location = new System.Drawing.Point(3, 2); + label34.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + label34.MaximumSize = new System.Drawing.Size(272, 26); + label34.MinimumSize = new System.Drawing.Size(272, 26); + label34.Name = "label34"; + label34.Size = new System.Drawing.Size(272, 26); + label34.TabIndex = 113; + label34.Text = "CLK125_FREQ - 0x2C"; + label34.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label6 + // + label6.Location = new System.Drawing.Point(3, 2); + label6.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + label6.MaximumSize = new System.Drawing.Size(272, 26); + label6.MinimumSize = new System.Drawing.Size(272, 26); + label6.Name = "label6"; + label6.Size = new System.Drawing.Size(272, 26); + label6.TabIndex = 113; + label6.Text = "GT_LOOPBACK_REG - 0x90"; + label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // ssh_connect + // + this.ssh_connect.Location = new System.Drawing.Point(3, 32); + this.ssh_connect.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.ssh_connect.Name = "ssh_connect"; + this.ssh_connect.Size = new System.Drawing.Size(111, 39); + this.ssh_connect.TabIndex = 3; + this.ssh_connect.Text = "Connect"; + this.ssh_connect.UseVisualStyleBackColor = true; + this.ssh_connect.Click += new System.EventHandler(this.Open_ssh_connection_Click); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Location = new System.Drawing.Point(0, 2); + this.tabControl1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.tabControl1.MinimumSize = new System.Drawing.Size(67, 68); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(1880, 857); + this.tabControl1.TabIndex = 16; + // + // tabPage1 + // + this.tabPage1.BackColor = System.Drawing.Color.Gainsboro; + this.tabPage1.Controls.Add(this.label20); + this.tabPage1.Controls.Add(this.label16); + this.tabPage1.Controls.Add(this.counters_rst); + this.tabPage1.Controls.Add(this.groupBox3); + this.tabPage1.Controls.Add(this.groupBox10); + this.tabPage1.Controls.Add(this.groupBox9); + this.tabPage1.Controls.Add(this.flowLayoutPanel10); + this.tabPage1.Controls.Add(this.cmac_init); + this.tabPage1.Controls.Add(this.pictureBox1); + this.tabPage1.Controls.Add(this.groupBox5); + this.tabPage1.Controls.Add(this.groupBox4); + this.tabPage1.Controls.Add(this.groupBox2); + this.tabPage1.Location = new System.Drawing.Point(4, 25); + this.tabPage1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3, 4, 3, 2); + this.tabPage1.Size = new System.Drawing.Size(1872, 828); + this.tabPage1.TabIndex = 0; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.flowLayoutPanel16); + this.groupBox3.Location = new System.Drawing.Point(913, 609); + this.groupBox3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox3.Size = new System.Drawing.Size(233, 159); + this.groupBox3.TabIndex = 115; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "Register Read/Write"; + // + // flowLayoutPanel16 + // + this.flowLayoutPanel16.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.flowLayoutPanel16.Controls.Add(this.flowLayoutPanel18); + this.flowLayoutPanel16.Controls.Add(this.flowLayoutPanel47); + this.flowLayoutPanel16.Controls.Add(this.reg_read); + this.flowLayoutPanel16.Controls.Add(this.reg_write); + this.flowLayoutPanel16.Location = new System.Drawing.Point(12, 23); + this.flowLayoutPanel16.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.flowLayoutPanel16.Name = "flowLayoutPanel16"; + this.flowLayoutPanel16.Size = new System.Drawing.Size(193, 123); + this.flowLayoutPanel16.TabIndex = 0; + // + // flowLayoutPanel18 + // + this.flowLayoutPanel18.Controls.Add(this.label18); + this.flowLayoutPanel18.Controls.Add(this.reg_addr); + this.flowLayoutPanel18.Location = new System.Drawing.Point(0, 0); + this.flowLayoutPanel18.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel18.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel18.Name = "flowLayoutPanel18"; + this.flowLayoutPanel18.Size = new System.Drawing.Size(191, 32); + this.flowLayoutPanel18.TabIndex = 127; + // + // label18 + // + this.label18.Location = new System.Drawing.Point(3, 2); + this.label18.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label18.MaximumSize = new System.Drawing.Size(272, 26); + this.label18.MinimumSize = new System.Drawing.Size(67, 26); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(67, 26); + this.label18.TabIndex = 113; + this.label18.Text = "Address"; + this.label18.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_addr + // + this.reg_addr.Location = new System.Drawing.Point(73, 4); + this.reg_addr.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_addr.Name = "reg_addr"; + this.reg_addr.Size = new System.Drawing.Size(105, 22); + this.reg_addr.TabIndex = 8; + this.reg_addr.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel47 + // + this.flowLayoutPanel47.Controls.Add(this.label19); + this.flowLayoutPanel47.Controls.Add(this.reg_data); + this.flowLayoutPanel47.Location = new System.Drawing.Point(0, 32); + this.flowLayoutPanel47.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel47.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel47.Name = "flowLayoutPanel47"; + this.flowLayoutPanel47.Size = new System.Drawing.Size(191, 32); + this.flowLayoutPanel47.TabIndex = 128; + // + // label19 + // + this.label19.Location = new System.Drawing.Point(3, 2); + this.label19.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label19.MaximumSize = new System.Drawing.Size(272, 26); + this.label19.MinimumSize = new System.Drawing.Size(67, 26); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(67, 26); + this.label19.TabIndex = 113; + this.label19.Text = "Data"; + this.label19.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_data + // + this.reg_data.Location = new System.Drawing.Point(73, 4); + this.reg_data.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_data.Name = "reg_data"; + this.reg_data.Size = new System.Drawing.Size(105, 22); + this.reg_data.TabIndex = 8; + this.reg_data.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // reg_read + // + this.reg_read.Location = new System.Drawing.Point(4, 68); + this.reg_read.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.reg_read.Name = "reg_read"; + this.reg_read.Size = new System.Drawing.Size(85, 52); + this.reg_read.TabIndex = 129; + this.reg_read.Text = "Read"; + this.reg_read.UseVisualStyleBackColor = true; + this.reg_read.Click += new System.EventHandler(this.reg_read_Click); + // + // reg_write + // + this.reg_write.Location = new System.Drawing.Point(97, 68); + this.reg_write.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.reg_write.Name = "reg_write"; + this.reg_write.Size = new System.Drawing.Size(85, 52); + this.reg_write.TabIndex = 130; + this.reg_write.Text = "Write"; + this.reg_write.UseVisualStyleBackColor = true; + this.reg_write.Click += new System.EventHandler(this.reg_write_Click); + // + // groupBox10 + // + this.groupBox10.Controls.Add(this.cmac_read_all_regs); + this.groupBox10.Controls.Add(this.label7); + this.groupBox10.Controls.Add(this.label17); + this.groupBox10.Controls.Add(this.flowLayoutPanel12); + this.groupBox10.Location = new System.Drawing.Point(1193, 60); + this.groupBox10.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox10.Name = "groupBox10"; + this.groupBox10.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox10.Size = new System.Drawing.Size(640, 624); + this.groupBox10.TabIndex = 114; + this.groupBox10.TabStop = false; + this.groupBox10.Text = "CMAC Registers"; + // + // cmac_read_all_regs + // + this.cmac_read_all_regs.Location = new System.Drawing.Point(73, 553); + this.cmac_read_all_regs.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.cmac_read_all_regs.Name = "cmac_read_all_regs"; + this.cmac_read_all_regs.Size = new System.Drawing.Size(100, 28); + this.cmac_read_all_regs.TabIndex = 117; + this.cmac_read_all_regs.Text = "Resfresh"; + this.cmac_read_all_regs.UseVisualStyleBackColor = true; + this.cmac_read_all_regs.Click += new System.EventHandler(this.cmac_reg_read_Click); + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(307, -1); + this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(62, 17); + this.label7.TabIndex = 115; + this.label7.Text = "CMAC_0"; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(407, -1); + this.label17.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(62, 17); + this.label17.TabIndex = 116; + this.label17.Text = "CMAC_4"; + // + // flowLayoutPanel12 + // + this.flowLayoutPanel12.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel13); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel14); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel17); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel20); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel24); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel29); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel37); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel38); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel39); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel40); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel41); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel42); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel43); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel44); + this.flowLayoutPanel12.Controls.Add(this.flowLayoutPanel45); + this.flowLayoutPanel12.Location = new System.Drawing.Point(5, 18); + this.flowLayoutPanel12.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.flowLayoutPanel12.Name = "flowLayoutPanel12"; + this.flowLayoutPanel12.Size = new System.Drawing.Size(502, 514); + this.flowLayoutPanel12.TabIndex = 94; + // + // flowLayoutPanel13 + // + this.flowLayoutPanel13.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.flowLayoutPanel13.Controls.Add(this.label1); + this.flowLayoutPanel13.Controls.Add(this.cmac_0_reg_0x10000); + this.flowLayoutPanel13.Controls.Add(this.cmac_4_reg_0x10000); + this.flowLayoutPanel13.Location = new System.Drawing.Point(0, 0); + this.flowLayoutPanel13.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel13.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel13.Name = "flowLayoutPanel13"; + this.flowLayoutPanel13.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel13.TabIndex = 102; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(3, 2); + this.label1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label1.MaximumSize = new System.Drawing.Size(272, 26); + this.label1.MinimumSize = new System.Drawing.Size(272, 26); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(272, 26); + this.label1.TabIndex = 113; + this.label1.Text = "GT_RESET_REG - 0x00"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x10000 + // + this.cmac_0_reg_0x10000.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x10000.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x10000.Name = "cmac_0_reg_0x10000"; + this.cmac_0_reg_0x10000.ReadOnly = true; + this.cmac_0_reg_0x10000.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x10000.TabIndex = 8; + this.cmac_0_reg_0x10000.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x10000 + // + this.cmac_4_reg_0x10000.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x10000.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x10000.Name = "cmac_4_reg_0x10000"; + this.cmac_4_reg_0x10000.ReadOnly = true; + this.cmac_4_reg_0x10000.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x10000.TabIndex = 114; + this.cmac_4_reg_0x10000.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel14 + // + this.flowLayoutPanel14.Controls.Add(this.label2); + this.flowLayoutPanel14.Controls.Add(this.cmac_0_reg_0x10004); + this.flowLayoutPanel14.Controls.Add(this.cmac_4_reg_0x10004); + this.flowLayoutPanel14.Location = new System.Drawing.Point(0, 32); + this.flowLayoutPanel14.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel14.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel14.Name = "flowLayoutPanel14"; + this.flowLayoutPanel14.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel14.TabIndex = 113; + // + // label2 + // + this.label2.Location = new System.Drawing.Point(3, 2); + this.label2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label2.MaximumSize = new System.Drawing.Size(272, 26); + this.label2.MinimumSize = new System.Drawing.Size(272, 26); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(272, 26); + this.label2.TabIndex = 113; + this.label2.Text = "RESET_REG - 0x04"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x10004 + // + this.cmac_0_reg_0x10004.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x10004.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x10004.Name = "cmac_0_reg_0x10004"; + this.cmac_0_reg_0x10004.ReadOnly = true; + this.cmac_0_reg_0x10004.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x10004.TabIndex = 8; + this.cmac_0_reg_0x10004.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x10004 + // + this.cmac_4_reg_0x10004.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x10004.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x10004.Name = "cmac_4_reg_0x10004"; + this.cmac_4_reg_0x10004.ReadOnly = true; + this.cmac_4_reg_0x10004.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x10004.TabIndex = 115; + this.cmac_4_reg_0x10004.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel17 + // + this.flowLayoutPanel17.Controls.Add(this.label3); + this.flowLayoutPanel17.Controls.Add(this.cmac_0_reg_0x1000C); + this.flowLayoutPanel17.Controls.Add(this.cmac_4_reg_0x1000C); + this.flowLayoutPanel17.Location = new System.Drawing.Point(0, 64); + this.flowLayoutPanel17.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel17.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel17.Name = "flowLayoutPanel17"; + this.flowLayoutPanel17.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel17.TabIndex = 131; + // + // label3 + // + this.label3.Location = new System.Drawing.Point(3, 2); + this.label3.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label3.MaximumSize = new System.Drawing.Size(272, 26); + this.label3.MinimumSize = new System.Drawing.Size(272, 26); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(272, 26); + this.label3.TabIndex = 113; + this.label3.Text = "CONFIGURATION_TX_REG1 - 0x0C"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x1000C + // + this.cmac_0_reg_0x1000C.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x1000C.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x1000C.Name = "cmac_0_reg_0x1000C"; + this.cmac_0_reg_0x1000C.ReadOnly = true; + this.cmac_0_reg_0x1000C.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x1000C.TabIndex = 8; + this.cmac_0_reg_0x1000C.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x1000C + // + this.cmac_4_reg_0x1000C.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x1000C.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x1000C.Name = "cmac_4_reg_0x1000C"; + this.cmac_4_reg_0x1000C.ReadOnly = true; + this.cmac_4_reg_0x1000C.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x1000C.TabIndex = 116; + this.cmac_4_reg_0x1000C.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel20 + // + this.flowLayoutPanel20.Controls.Add(this.label4); + this.flowLayoutPanel20.Controls.Add(this.cmac_0_reg_0x10014); + this.flowLayoutPanel20.Controls.Add(this.cmac_4_reg_0x10014); + this.flowLayoutPanel20.Location = new System.Drawing.Point(0, 96); + this.flowLayoutPanel20.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel20.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel20.Name = "flowLayoutPanel20"; + this.flowLayoutPanel20.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel20.TabIndex = 115; + // + // label4 + // + this.label4.Location = new System.Drawing.Point(3, 2); + this.label4.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label4.MaximumSize = new System.Drawing.Size(272, 26); + this.label4.MinimumSize = new System.Drawing.Size(272, 26); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(272, 26); + this.label4.TabIndex = 113; + this.label4.Text = "CONFIGURATION_RX_REG1 - 0x14"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x10014 + // + this.cmac_0_reg_0x10014.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x10014.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x10014.Name = "cmac_0_reg_0x10014"; + this.cmac_0_reg_0x10014.ReadOnly = true; + this.cmac_0_reg_0x10014.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x10014.TabIndex = 8; + this.cmac_0_reg_0x10014.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x10014 + // + this.cmac_4_reg_0x10014.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x10014.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x10014.Name = "cmac_4_reg_0x10014"; + this.cmac_4_reg_0x10014.ReadOnly = true; + this.cmac_4_reg_0x10014.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x10014.TabIndex = 116; + this.cmac_4_reg_0x10014.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel24 + // + this.flowLayoutPanel24.Controls.Add(this.label5); + this.flowLayoutPanel24.Controls.Add(this.cmac_0_reg_0x10024); + this.flowLayoutPanel24.Controls.Add(this.cmac_4_reg_0x10024); + this.flowLayoutPanel24.Location = new System.Drawing.Point(0, 128); + this.flowLayoutPanel24.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel24.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel24.Name = "flowLayoutPanel24"; + this.flowLayoutPanel24.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel24.TabIndex = 116; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(3, 2); + this.label5.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label5.MaximumSize = new System.Drawing.Size(272, 26); + this.label5.MinimumSize = new System.Drawing.Size(272, 26); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(272, 26); + this.label5.TabIndex = 113; + this.label5.Text = "CORE_VERSION_REG - 0x24"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x10024 + // + this.cmac_0_reg_0x10024.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x10024.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x10024.Name = "cmac_0_reg_0x10024"; + this.cmac_0_reg_0x10024.ReadOnly = true; + this.cmac_0_reg_0x10024.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x10024.TabIndex = 8; + this.cmac_0_reg_0x10024.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x10024 + // + this.cmac_4_reg_0x10024.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x10024.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x10024.Name = "cmac_4_reg_0x10024"; + this.cmac_4_reg_0x10024.ReadOnly = true; + this.cmac_4_reg_0x10024.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x10024.TabIndex = 116; + this.cmac_4_reg_0x10024.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel29 + // + this.flowLayoutPanel29.Controls.Add(label6); + this.flowLayoutPanel29.Controls.Add(this.cmac_0_reg_0x10090); + this.flowLayoutPanel29.Controls.Add(this.cmac_4_reg_0x10090); + this.flowLayoutPanel29.Location = new System.Drawing.Point(0, 160); + this.flowLayoutPanel29.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel29.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel29.Name = "flowLayoutPanel29"; + this.flowLayoutPanel29.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel29.TabIndex = 117; + // + // cmac_0_reg_0x10090 + // + this.cmac_0_reg_0x10090.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x10090.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x10090.Name = "cmac_0_reg_0x10090"; + this.cmac_0_reg_0x10090.ReadOnly = true; + this.cmac_0_reg_0x10090.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x10090.TabIndex = 8; + this.cmac_0_reg_0x10090.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x10090 + // + this.cmac_4_reg_0x10090.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x10090.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x10090.Name = "cmac_4_reg_0x10090"; + this.cmac_4_reg_0x10090.ReadOnly = true; + this.cmac_4_reg_0x10090.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x10090.TabIndex = 116; + this.cmac_4_reg_0x10090.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel37 + // + this.flowLayoutPanel37.Controls.Add(this.label21); + this.flowLayoutPanel37.Controls.Add(this.label22); + this.flowLayoutPanel37.Location = new System.Drawing.Point(0, 192); + this.flowLayoutPanel37.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel37.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel37.Name = "flowLayoutPanel37"; + this.flowLayoutPanel37.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel37.TabIndex = 119; + // + // flowLayoutPanel38 + // + this.flowLayoutPanel38.Controls.Add(this.label8); + this.flowLayoutPanel38.Controls.Add(this.cmac_0_reg_0x00); + this.flowLayoutPanel38.Controls.Add(this.cmac_4_reg_0x00); + this.flowLayoutPanel38.Location = new System.Drawing.Point(0, 224); + this.flowLayoutPanel38.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel38.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel38.Name = "flowLayoutPanel38"; + this.flowLayoutPanel38.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel38.TabIndex = 123; + // + // label8 + // + this.label8.Location = new System.Drawing.Point(3, 2); + this.label8.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label8.MaximumSize = new System.Drawing.Size(272, 26); + this.label8.MinimumSize = new System.Drawing.Size(272, 26); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(272, 26); + this.label8.TabIndex = 113; + this.label8.Text = "DEST_MAC_ADDR_LO - 0x00"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x00 + // + this.cmac_0_reg_0x00.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x00.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x00.Name = "cmac_0_reg_0x00"; + this.cmac_0_reg_0x00.ReadOnly = true; + this.cmac_0_reg_0x00.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x00.TabIndex = 8; + this.cmac_0_reg_0x00.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x00 + // + this.cmac_4_reg_0x00.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x00.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x00.Name = "cmac_4_reg_0x00"; + this.cmac_4_reg_0x00.ReadOnly = true; + this.cmac_4_reg_0x00.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x00.TabIndex = 116; + this.cmac_4_reg_0x00.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel39 + // + this.flowLayoutPanel39.Controls.Add(this.label9); + this.flowLayoutPanel39.Controls.Add(this.cmac_0_reg_0x04); + this.flowLayoutPanel39.Controls.Add(this.cmac_4_reg_0x04); + this.flowLayoutPanel39.Location = new System.Drawing.Point(0, 256); + this.flowLayoutPanel39.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel39.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel39.Name = "flowLayoutPanel39"; + this.flowLayoutPanel39.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel39.TabIndex = 120; + // + // label9 + // + this.label9.Location = new System.Drawing.Point(3, 2); + this.label9.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label9.MaximumSize = new System.Drawing.Size(272, 26); + this.label9.MinimumSize = new System.Drawing.Size(272, 26); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(272, 26); + this.label9.TabIndex = 113; + this.label9.Text = "DEST_MAC_ADDR_HI - 0x04"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x04 + // + this.cmac_0_reg_0x04.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x04.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x04.Name = "cmac_0_reg_0x04"; + this.cmac_0_reg_0x04.ReadOnly = true; + this.cmac_0_reg_0x04.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x04.TabIndex = 8; + this.cmac_0_reg_0x04.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x04 + // + this.cmac_4_reg_0x04.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x04.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x04.Name = "cmac_4_reg_0x04"; + this.cmac_4_reg_0x04.ReadOnly = true; + this.cmac_4_reg_0x04.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x04.TabIndex = 116; + this.cmac_4_reg_0x04.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel40 + // + this.flowLayoutPanel40.Controls.Add(this.label10); + this.flowLayoutPanel40.Controls.Add(this.cmac_0_reg_0x08); + this.flowLayoutPanel40.Controls.Add(this.cmac_4_reg_0x08); + this.flowLayoutPanel40.Location = new System.Drawing.Point(0, 288); + this.flowLayoutPanel40.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel40.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel40.Name = "flowLayoutPanel40"; + this.flowLayoutPanel40.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel40.TabIndex = 121; + // + // label10 + // + this.label10.Location = new System.Drawing.Point(3, 2); + this.label10.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label10.MaximumSize = new System.Drawing.Size(272, 26); + this.label10.MinimumSize = new System.Drawing.Size(272, 26); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(272, 26); + this.label10.TabIndex = 113; + this.label10.Text = "SRC_MAC_ADDR_LO - 0x08"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x08 + // + this.cmac_0_reg_0x08.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x08.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x08.Name = "cmac_0_reg_0x08"; + this.cmac_0_reg_0x08.ReadOnly = true; + this.cmac_0_reg_0x08.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x08.TabIndex = 8; + this.cmac_0_reg_0x08.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x08 + // + this.cmac_4_reg_0x08.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x08.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x08.Name = "cmac_4_reg_0x08"; + this.cmac_4_reg_0x08.ReadOnly = true; + this.cmac_4_reg_0x08.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x08.TabIndex = 116; + this.cmac_4_reg_0x08.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel41 + // + this.flowLayoutPanel41.Controls.Add(this.label11); + this.flowLayoutPanel41.Controls.Add(this.cmac_0_reg_0x0C); + this.flowLayoutPanel41.Controls.Add(this.cmac_4_reg_0x0C); + this.flowLayoutPanel41.Location = new System.Drawing.Point(0, 320); + this.flowLayoutPanel41.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel41.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel41.Name = "flowLayoutPanel41"; + this.flowLayoutPanel41.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel41.TabIndex = 122; + // + // label11 + // + this.label11.Location = new System.Drawing.Point(3, 2); + this.label11.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label11.MaximumSize = new System.Drawing.Size(272, 26); + this.label11.MinimumSize = new System.Drawing.Size(272, 26); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(272, 26); + this.label11.TabIndex = 113; + this.label11.Text = "SRC_MAC_ADDR_HI - 0x0C"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x0C + // + this.cmac_0_reg_0x0C.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x0C.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x0C.Name = "cmac_0_reg_0x0C"; + this.cmac_0_reg_0x0C.ReadOnly = true; + this.cmac_0_reg_0x0C.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x0C.TabIndex = 8; + this.cmac_0_reg_0x0C.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x0C + // + this.cmac_4_reg_0x0C.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x0C.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x0C.Name = "cmac_4_reg_0x0C"; + this.cmac_4_reg_0x0C.ReadOnly = true; + this.cmac_4_reg_0x0C.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x0C.TabIndex = 116; + this.cmac_4_reg_0x0C.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel42 + // + this.flowLayoutPanel42.Controls.Add(this.label12); + this.flowLayoutPanel42.Controls.Add(this.cmac_0_reg_0x10); + this.flowLayoutPanel42.Controls.Add(this.cmac_4_reg_0x10); + this.flowLayoutPanel42.Location = new System.Drawing.Point(0, 352); + this.flowLayoutPanel42.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel42.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel42.Name = "flowLayoutPanel42"; + this.flowLayoutPanel42.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel42.TabIndex = 132; + // + // label12 + // + this.label12.Location = new System.Drawing.Point(3, 2); + this.label12.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label12.MaximumSize = new System.Drawing.Size(272, 26); + this.label12.MinimumSize = new System.Drawing.Size(272, 26); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(272, 26); + this.label12.TabIndex = 113; + this.label12.Text = "ETHERNET_TYPE - 0x10"; + this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x10 + // + this.cmac_0_reg_0x10.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x10.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x10.Name = "cmac_0_reg_0x10"; + this.cmac_0_reg_0x10.ReadOnly = true; + this.cmac_0_reg_0x10.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x10.TabIndex = 8; + this.cmac_0_reg_0x10.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x10 + // + this.cmac_4_reg_0x10.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x10.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x10.Name = "cmac_4_reg_0x10"; + this.cmac_4_reg_0x10.ReadOnly = true; + this.cmac_4_reg_0x10.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x10.TabIndex = 116; + this.cmac_4_reg_0x10.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel43 + // + this.flowLayoutPanel43.Controls.Add(this.label13); + this.flowLayoutPanel43.Controls.Add(this.cmac_0_reg_0x14); + this.flowLayoutPanel43.Controls.Add(this.cmac_4_reg_0x14); + this.flowLayoutPanel43.Location = new System.Drawing.Point(0, 384); + this.flowLayoutPanel43.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel43.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel43.Name = "flowLayoutPanel43"; + this.flowLayoutPanel43.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel43.TabIndex = 124; + // + // label13 + // + this.label13.Location = new System.Drawing.Point(3, 2); + this.label13.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label13.MaximumSize = new System.Drawing.Size(272, 26); + this.label13.MinimumSize = new System.Drawing.Size(261, 26); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(272, 26); + this.label13.TabIndex = 113; + this.label13.Text = "PRO_FULL_MANUAL - 0x14"; + this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x14 + // + this.cmac_0_reg_0x14.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x14.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x14.Name = "cmac_0_reg_0x14"; + this.cmac_0_reg_0x14.ReadOnly = true; + this.cmac_0_reg_0x14.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x14.TabIndex = 8; + this.cmac_0_reg_0x14.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x14 + // + this.cmac_4_reg_0x14.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x14.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x14.Name = "cmac_4_reg_0x14"; + this.cmac_4_reg_0x14.ReadOnly = true; + this.cmac_4_reg_0x14.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x14.TabIndex = 116; + this.cmac_4_reg_0x14.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel44 + // + this.flowLayoutPanel44.Controls.Add(this.label14); + this.flowLayoutPanel44.Controls.Add(this.cmac_0_reg_0x18); + this.flowLayoutPanel44.Controls.Add(this.cmac_4_reg_0x18); + this.flowLayoutPanel44.Location = new System.Drawing.Point(0, 416); + this.flowLayoutPanel44.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel44.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel44.Name = "flowLayoutPanel44"; + this.flowLayoutPanel44.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel44.TabIndex = 125; + // + // label14 + // + this.label14.Location = new System.Drawing.Point(3, 2); + this.label14.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label14.MaximumSize = new System.Drawing.Size(272, 26); + this.label14.MinimumSize = new System.Drawing.Size(272, 26); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(272, 26); + this.label14.TabIndex = 113; + this.label14.Text = "PROG_FULL_OFF_THRESH - 0x18"; + this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x18 + // + this.cmac_0_reg_0x18.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x18.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x18.Name = "cmac_0_reg_0x18"; + this.cmac_0_reg_0x18.ReadOnly = true; + this.cmac_0_reg_0x18.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x18.TabIndex = 8; + this.cmac_0_reg_0x18.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x18 + // + this.cmac_4_reg_0x18.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x18.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x18.Name = "cmac_4_reg_0x18"; + this.cmac_4_reg_0x18.ReadOnly = true; + this.cmac_4_reg_0x18.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x18.TabIndex = 116; + this.cmac_4_reg_0x18.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel45 + // + this.flowLayoutPanel45.Controls.Add(this.label15); + this.flowLayoutPanel45.Controls.Add(this.cmac_0_reg_0x1C); + this.flowLayoutPanel45.Controls.Add(this.cmac_4_reg_0x1C); + this.flowLayoutPanel45.Location = new System.Drawing.Point(0, 448); + this.flowLayoutPanel45.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel45.MaximumSize = new System.Drawing.Size(499, 32); + this.flowLayoutPanel45.Name = "flowLayoutPanel45"; + this.flowLayoutPanel45.Size = new System.Drawing.Size(499, 32); + this.flowLayoutPanel45.TabIndex = 126; + // + // label15 + // + this.label15.Location = new System.Drawing.Point(3, 2); + this.label15.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label15.MaximumSize = new System.Drawing.Size(272, 26); + this.label15.MinimumSize = new System.Drawing.Size(272, 26); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(272, 26); + this.label15.TabIndex = 113; + this.label15.Text = "PROG_FULL_ON_THRESH - 0x1C"; + this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // cmac_0_reg_0x1C + // + this.cmac_0_reg_0x1C.Location = new System.Drawing.Point(278, 4); + this.cmac_0_reg_0x1C.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_0_reg_0x1C.Name = "cmac_0_reg_0x1C"; + this.cmac_0_reg_0x1C.ReadOnly = true; + this.cmac_0_reg_0x1C.Size = new System.Drawing.Size(105, 22); + this.cmac_0_reg_0x1C.TabIndex = 8; + this.cmac_0_reg_0x1C.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // cmac_4_reg_0x1C + // + this.cmac_4_reg_0x1C.Location = new System.Drawing.Point(383, 4); + this.cmac_4_reg_0x1C.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.cmac_4_reg_0x1C.Name = "cmac_4_reg_0x1C"; + this.cmac_4_reg_0x1C.ReadOnly = true; + this.cmac_4_reg_0x1C.Size = new System.Drawing.Size(105, 22); + this.cmac_4_reg_0x1C.TabIndex = 116; + this.cmac_4_reg_0x1C.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // groupBox9 + // + this.groupBox9.Controls.Add(this.flowLayoutPanel11); + this.groupBox9.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.groupBox9.Location = new System.Drawing.Point(700, 64); + this.groupBox9.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox9.Name = "groupBox9"; + this.groupBox9.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox9.Size = new System.Drawing.Size(173, 123); + this.groupBox9.TabIndex = 113; + this.groupBox9.TabStop = false; + this.groupBox9.Text = "DAC Data Source"; + // + // flowLayoutPanel11 + // + this.flowLayoutPanel11.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.flowLayoutPanel11.Controls.Add(this.dac_data_src_cmac); + this.flowLayoutPanel11.Controls.Add(this.dac_data_src_quadsend_rcv); + this.flowLayoutPanel11.Location = new System.Drawing.Point(8, 23); + this.flowLayoutPanel11.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.flowLayoutPanel11.Name = "flowLayoutPanel11"; + this.flowLayoutPanel11.Size = new System.Drawing.Size(145, 72); + this.flowLayoutPanel11.TabIndex = 0; + // + // dac_data_src_cmac + // + this.dac_data_src_cmac.Location = new System.Drawing.Point(8, 2); + this.dac_data_src_cmac.Margin = new System.Windows.Forms.Padding(8, 2, 3, 2); + this.dac_data_src_cmac.Name = "dac_data_src_cmac"; + this.dac_data_src_cmac.Size = new System.Drawing.Size(133, 30); + this.dac_data_src_cmac.TabIndex = 4; + this.dac_data_src_cmac.Text = "CMAC"; + this.dac_data_src_cmac.UseVisualStyleBackColor = true; + this.dac_data_src_cmac.Click += new System.EventHandler(this.dac_data_src_cmac_Click); + // + // dac_data_src_quadsend_rcv + // + this.dac_data_src_quadsend_rcv.Checked = true; + this.dac_data_src_quadsend_rcv.Location = new System.Drawing.Point(8, 36); + this.dac_data_src_quadsend_rcv.Margin = new System.Windows.Forms.Padding(8, 2, 3, 2); + this.dac_data_src_quadsend_rcv.Name = "dac_data_src_quadsend_rcv"; + this.dac_data_src_quadsend_rcv.Size = new System.Drawing.Size(133, 30); + this.dac_data_src_quadsend_rcv.TabIndex = 6; + this.dac_data_src_quadsend_rcv.TabStop = true; + this.dac_data_src_quadsend_rcv.Text = "QuadSendRcv"; + this.dac_data_src_quadsend_rcv.UseVisualStyleBackColor = true; + this.dac_data_src_quadsend_rcv.Click += new System.EventHandler(this.dac_data_src_quadsend_rcv_Click); + // + // flowLayoutPanel10 + // + this.flowLayoutPanel10.Controls.Add(this.groupBox1); + this.flowLayoutPanel10.Controls.Add(this.groupBox6); + this.flowLayoutPanel10.Controls.Add(this.groupBox8); + this.flowLayoutPanel10.Controls.Add(this.groupBox7); + this.flowLayoutPanel10.Location = new System.Drawing.Point(1007, 80); + this.flowLayoutPanel10.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.flowLayoutPanel10.Name = "flowLayoutPanel10"; + this.flowLayoutPanel10.Size = new System.Drawing.Size(145, 480); + this.flowLayoutPanel10.TabIndex = 112; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.flowLayoutPanel4); + this.groupBox1.Location = new System.Drawing.Point(4, 4); + this.groupBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox1.Size = new System.Drawing.Size(136, 110); + this.groupBox1.TabIndex = 109; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "QSFP1"; + // + // flowLayoutPanel4 + // + this.flowLayoutPanel4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.flowLayoutPanel4.Controls.Add(this.qsfp1_present); + this.flowLayoutPanel4.Controls.Add(this.qsfp1_intl); + this.flowLayoutPanel4.Location = new System.Drawing.Point(7, 20); + this.flowLayoutPanel4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.flowLayoutPanel4.Name = "flowLayoutPanel4"; + this.flowLayoutPanel4.Size = new System.Drawing.Size(115, 78); + this.flowLayoutPanel4.TabIndex = 110; + // + // qsfp1_present + // + this.qsfp1_present.BackColor = System.Drawing.Color.Red; + this.qsfp1_present.Location = new System.Drawing.Point(4, 4); + this.qsfp1_present.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.qsfp1_present.Name = "qsfp1_present"; + this.qsfp1_present.Size = new System.Drawing.Size(104, 28); + this.qsfp1_present.TabIndex = 110; + this.qsfp1_present.Text = "Present"; + this.qsfp1_present.UseVisualStyleBackColor = false; + // + // qsfp1_intl + // + this.qsfp1_intl.BackColor = System.Drawing.Color.LightGreen; + this.qsfp1_intl.Location = new System.Drawing.Point(4, 40); + this.qsfp1_intl.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.qsfp1_intl.Name = "qsfp1_intl"; + this.qsfp1_intl.Size = new System.Drawing.Size(104, 28); + this.qsfp1_intl.TabIndex = 111; + this.qsfp1_intl.Text = "Interrupt"; + this.qsfp1_intl.UseVisualStyleBackColor = false; + // + // groupBox6 + // + this.groupBox6.Controls.Add(this.flowLayoutPanel6); + this.groupBox6.Location = new System.Drawing.Point(4, 122); + this.groupBox6.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox6.Name = "groupBox6"; + this.groupBox6.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox6.Size = new System.Drawing.Size(136, 110); + this.groupBox6.TabIndex = 111; + this.groupBox6.TabStop = false; + this.groupBox6.Text = "QSFP2"; + // + // flowLayoutPanel6 + // + this.flowLayoutPanel6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.flowLayoutPanel6.Controls.Add(this.qsfp2_present); + this.flowLayoutPanel6.Controls.Add(this.qsfp2_intl); + this.flowLayoutPanel6.Location = new System.Drawing.Point(7, 20); + this.flowLayoutPanel6.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.flowLayoutPanel6.Name = "flowLayoutPanel6"; + this.flowLayoutPanel6.Size = new System.Drawing.Size(115, 78); + this.flowLayoutPanel6.TabIndex = 110; + // + // qsfp2_present + // + this.qsfp2_present.BackColor = System.Drawing.Color.Red; + this.qsfp2_present.Location = new System.Drawing.Point(4, 4); + this.qsfp2_present.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.qsfp2_present.Name = "qsfp2_present"; + this.qsfp2_present.Size = new System.Drawing.Size(104, 28); + this.qsfp2_present.TabIndex = 110; + this.qsfp2_present.Text = "Present"; + this.qsfp2_present.UseVisualStyleBackColor = false; + // + // qsfp2_intl + // + this.qsfp2_intl.BackColor = System.Drawing.Color.LightGreen; + this.qsfp2_intl.Location = new System.Drawing.Point(4, 40); + this.qsfp2_intl.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.qsfp2_intl.Name = "qsfp2_intl"; + this.qsfp2_intl.Size = new System.Drawing.Size(104, 28); + this.qsfp2_intl.TabIndex = 111; + this.qsfp2_intl.Text = "Interrupt"; + this.qsfp2_intl.UseVisualStyleBackColor = false; + // + // groupBox8 + // + this.groupBox8.Controls.Add(this.flowLayoutPanel8); + this.groupBox8.Location = new System.Drawing.Point(4, 240); + this.groupBox8.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox8.Name = "groupBox8"; + this.groupBox8.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox8.Size = new System.Drawing.Size(136, 110); + this.groupBox8.TabIndex = 111; + this.groupBox8.TabStop = false; + this.groupBox8.Text = "QSFP3"; + // + // flowLayoutPanel8 + // + this.flowLayoutPanel8.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.flowLayoutPanel8.Controls.Add(this.qsfp3_present); + this.flowLayoutPanel8.Controls.Add(this.qsfp3_intl); + this.flowLayoutPanel8.Location = new System.Drawing.Point(7, 20); + this.flowLayoutPanel8.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.flowLayoutPanel8.Name = "flowLayoutPanel8"; + this.flowLayoutPanel8.Size = new System.Drawing.Size(115, 78); + this.flowLayoutPanel8.TabIndex = 110; + // + // qsfp3_present + // + this.qsfp3_present.BackColor = System.Drawing.Color.Red; + this.qsfp3_present.Location = new System.Drawing.Point(4, 4); + this.qsfp3_present.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.qsfp3_present.Name = "qsfp3_present"; + this.qsfp3_present.Size = new System.Drawing.Size(104, 28); + this.qsfp3_present.TabIndex = 110; + this.qsfp3_present.Text = "Present"; + this.qsfp3_present.UseVisualStyleBackColor = false; + // + // qsfp3_intl + // + this.qsfp3_intl.BackColor = System.Drawing.Color.LightGreen; + this.qsfp3_intl.Location = new System.Drawing.Point(4, 40); + this.qsfp3_intl.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.qsfp3_intl.Name = "qsfp3_intl"; + this.qsfp3_intl.Size = new System.Drawing.Size(104, 28); + this.qsfp3_intl.TabIndex = 111; + this.qsfp3_intl.Text = "Interrupt"; + this.qsfp3_intl.UseVisualStyleBackColor = false; + // + // groupBox7 + // + this.groupBox7.Controls.Add(this.flowLayoutPanel7); + this.groupBox7.Location = new System.Drawing.Point(4, 358); + this.groupBox7.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox7.Name = "groupBox7"; + this.groupBox7.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox7.Size = new System.Drawing.Size(136, 110); + this.groupBox7.TabIndex = 111; + this.groupBox7.TabStop = false; + this.groupBox7.Text = "QSFP4"; + // + // flowLayoutPanel7 + // + this.flowLayoutPanel7.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.flowLayoutPanel7.Controls.Add(this.qsfp4_present); + this.flowLayoutPanel7.Controls.Add(this.qsfp4_intl); + this.flowLayoutPanel7.Location = new System.Drawing.Point(7, 20); + this.flowLayoutPanel7.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.flowLayoutPanel7.Name = "flowLayoutPanel7"; + this.flowLayoutPanel7.Size = new System.Drawing.Size(115, 78); + this.flowLayoutPanel7.TabIndex = 110; + // + // qsfp4_present + // + this.qsfp4_present.BackColor = System.Drawing.Color.Red; + this.qsfp4_present.Location = new System.Drawing.Point(4, 4); + this.qsfp4_present.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.qsfp4_present.Name = "qsfp4_present"; + this.qsfp4_present.Size = new System.Drawing.Size(104, 28); + this.qsfp4_present.TabIndex = 110; + this.qsfp4_present.Text = "Present"; + this.qsfp4_present.UseVisualStyleBackColor = false; + // + // qsfp4_intl + // + this.qsfp4_intl.BackColor = System.Drawing.Color.LightGreen; + this.qsfp4_intl.Location = new System.Drawing.Point(4, 40); + this.qsfp4_intl.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.qsfp4_intl.Name = "qsfp4_intl"; + this.qsfp4_intl.Size = new System.Drawing.Size(104, 28); + this.qsfp4_intl.TabIndex = 111; + this.qsfp4_intl.Text = "Interrupt"; + this.qsfp4_intl.UseVisualStyleBackColor = false; + // + // cmac_init + // + this.cmac_init.Location = new System.Drawing.Point(688, 353); + this.cmac_init.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.cmac_init.Name = "cmac_init"; + this.cmac_init.Size = new System.Drawing.Size(185, 78); + this.cmac_init.TabIndex = 110; + this.cmac_init.Text = "CMAC Init"; + this.cmac_init.UseVisualStyleBackColor = true; + this.cmac_init.Click += new System.EventHandler(this.cmac_init_Click); + // + // pictureBox1 + // + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(1695, 737); + this.pictureBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(168, 81); + this.pictureBox1.TabIndex = 96; + this.pictureBox1.TabStop = false; + // + // groupBox5 + // + this.groupBox5.Controls.Add(this.flowLayoutPanel5); + this.groupBox5.FlatStyle = System.Windows.Forms.FlatStyle.Popup; + this.groupBox5.Location = new System.Drawing.Point(31, 7); + this.groupBox5.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox5.Size = new System.Drawing.Size(141, 116); + this.groupBox5.TabIndex = 99; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "IP Address"; + // + // flowLayoutPanel5 + // + this.flowLayoutPanel5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.flowLayoutPanel5.Controls.Add(this.ipAddress); + this.flowLayoutPanel5.Controls.Add(this.ssh_connect); + this.flowLayoutPanel5.Location = new System.Drawing.Point(8, 17); + this.flowLayoutPanel5.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.flowLayoutPanel5.Name = "flowLayoutPanel5"; + this.flowLayoutPanel5.Size = new System.Drawing.Size(118, 78); + this.flowLayoutPanel5.TabIndex = 110; + // + // ipAddress + // + this.ipAddress.Location = new System.Drawing.Point(3, 4); + this.ipAddress.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4); + this.ipAddress.Name = "ipAddress"; + this.ipAddress.Size = new System.Drawing.Size(109, 22); + this.ipAddress.TabIndex = 109; + this.ipAddress.Text = "10.1.1.169"; + this.ipAddress.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.read_all_regs); + this.groupBox4.Controls.Add(this.flowLayoutPanel15); + this.groupBox4.Controls.Add(this.reboot_fpga); + this.groupBox4.Location = new System.Drawing.Point(180, 38); + this.groupBox4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox4.Size = new System.Drawing.Size(413, 727); + this.groupBox4.TabIndex = 95; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "FPGA Registers (0x8000_0000)"; + // + // read_all_regs + // + this.read_all_regs.Location = new System.Drawing.Point(33, 662); + this.read_all_regs.Margin = new System.Windows.Forms.Padding(29, 1, 4, 1); + this.read_all_regs.Name = "read_all_regs"; + this.read_all_regs.Size = new System.Drawing.Size(105, 28); + this.read_all_regs.TabIndex = 12; + this.read_all_regs.Text = "Refresh"; + this.read_all_regs.UseVisualStyleBackColor = true; + this.read_all_regs.Click += new System.EventHandler(this.read_all_regs_Click); + // + // flowLayoutPanel15 + // + this.flowLayoutPanel15.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel9); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel19); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel1); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel21); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel22); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel23); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel25); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel2); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel26); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel27); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel28); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel3); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel30); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel31); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel32); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel33); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel34); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel35); + this.flowLayoutPanel15.Controls.Add(this.flowLayoutPanel36); + this.flowLayoutPanel15.Location = new System.Drawing.Point(5, 26); + this.flowLayoutPanel15.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.flowLayoutPanel15.Name = "flowLayoutPanel15"; + this.flowLayoutPanel15.Size = new System.Drawing.Size(398, 620); + this.flowLayoutPanel15.TabIndex = 94; + // + // flowLayoutPanel9 + // + this.flowLayoutPanel9.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.flowLayoutPanel9.Controls.Add(this.label29); + this.flowLayoutPanel9.Controls.Add(this.reg_0x00); + this.flowLayoutPanel9.Location = new System.Drawing.Point(0, 0); + this.flowLayoutPanel9.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel9.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel9.Name = "flowLayoutPanel9"; + this.flowLayoutPanel9.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel9.TabIndex = 102; + // + // label29 + // + this.label29.Location = new System.Drawing.Point(3, 2); + this.label29.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label29.MaximumSize = new System.Drawing.Size(272, 26); + this.label29.MinimumSize = new System.Drawing.Size(272, 26); + this.label29.Name = "label29"; + this.label29.Size = new System.Drawing.Size(272, 26); + this.label29.TabIndex = 113; + this.label29.Text = "FPGA REV - 0x00"; + this.label29.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0x00 + // + this.reg_0x00.Location = new System.Drawing.Point(278, 4); + this.reg_0x00.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0x00.Name = "reg_0x00"; + this.reg_0x00.ReadOnly = true; + this.reg_0x00.Size = new System.Drawing.Size(105, 22); + this.reg_0x00.TabIndex = 8; + this.reg_0x00.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel19 + // + this.flowLayoutPanel19.Controls.Add(this.label30); + this.flowLayoutPanel19.Controls.Add(this.reg_0x04); + this.flowLayoutPanel19.Location = new System.Drawing.Point(0, 32); + this.flowLayoutPanel19.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel19.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel19.Name = "flowLayoutPanel19"; + this.flowLayoutPanel19.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel19.TabIndex = 113; + // + // label30 + // + this.label30.Location = new System.Drawing.Point(3, 2); + this.label30.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label30.MaximumSize = new System.Drawing.Size(272, 26); + this.label30.MinimumSize = new System.Drawing.Size(272, 26); + this.label30.Name = "label30"; + this.label30.Size = new System.Drawing.Size(272, 26); + this.label30.TabIndex = 113; + this.label30.Text = "CNTRL_REG1 - 0x04"; + this.label30.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0x04 + // + this.reg_0x04.Location = new System.Drawing.Point(278, 4); + this.reg_0x04.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0x04.Name = "reg_0x04"; + this.reg_0x04.ReadOnly = true; + this.reg_0x04.Size = new System.Drawing.Size(105, 22); + this.reg_0x04.TabIndex = 8; + this.reg_0x04.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.Controls.Add(this.label31); + this.flowLayoutPanel1.Controls.Add(this.reg_0x14); + this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 64); + this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel1.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel1.TabIndex = 131; + // + // label31 + // + this.label31.Location = new System.Drawing.Point(3, 2); + this.label31.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label31.MaximumSize = new System.Drawing.Size(272, 26); + this.label31.MinimumSize = new System.Drawing.Size(272, 26); + this.label31.Name = "label31"; + this.label31.Size = new System.Drawing.Size(272, 26); + this.label31.TabIndex = 113; + this.label31.Text = "CNTRL_REG5 - 0x14"; + this.label31.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0x14 + // + this.reg_0x14.Location = new System.Drawing.Point(278, 4); + this.reg_0x14.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0x14.Name = "reg_0x14"; + this.reg_0x14.ReadOnly = true; + this.reg_0x14.Size = new System.Drawing.Size(105, 22); + this.reg_0x14.TabIndex = 8; + this.reg_0x14.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel21 + // + this.flowLayoutPanel21.Controls.Add(this.label32); + this.flowLayoutPanel21.Controls.Add(this.reg_0x20); + this.flowLayoutPanel21.Location = new System.Drawing.Point(0, 96); + this.flowLayoutPanel21.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel21.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel21.Name = "flowLayoutPanel21"; + this.flowLayoutPanel21.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel21.TabIndex = 115; + // + // label32 + // + this.label32.Location = new System.Drawing.Point(3, 2); + this.label32.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label32.MaximumSize = new System.Drawing.Size(272, 26); + this.label32.MinimumSize = new System.Drawing.Size(272, 26); + this.label32.Name = "label32"; + this.label32.Size = new System.Drawing.Size(272, 26); + this.label32.TabIndex = 113; + this.label32.Text = "CNTRL_REG8 - 0x20"; + this.label32.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0x20 + // + this.reg_0x20.Location = new System.Drawing.Point(278, 4); + this.reg_0x20.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0x20.Name = "reg_0x20"; + this.reg_0x20.ReadOnly = true; + this.reg_0x20.Size = new System.Drawing.Size(105, 22); + this.reg_0x20.TabIndex = 8; + this.reg_0x20.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel22 + // + this.flowLayoutPanel22.Controls.Add(this.label33); + this.flowLayoutPanel22.Controls.Add(this.reg_0x28); + this.flowLayoutPanel22.Location = new System.Drawing.Point(0, 128); + this.flowLayoutPanel22.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel22.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel22.Name = "flowLayoutPanel22"; + this.flowLayoutPanel22.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel22.TabIndex = 116; + // + // label33 + // + this.label33.Location = new System.Drawing.Point(3, 2); + this.label33.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label33.MaximumSize = new System.Drawing.Size(272, 26); + this.label33.MinimumSize = new System.Drawing.Size(272, 26); + this.label33.Name = "label33"; + this.label33.Size = new System.Drawing.Size(272, 26); + this.label33.TabIndex = 113; + this.label33.Text = "CNTRL_REG10 - 0x28"; + this.label33.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0x28 + // + this.reg_0x28.Location = new System.Drawing.Point(278, 4); + this.reg_0x28.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0x28.Name = "reg_0x28"; + this.reg_0x28.ReadOnly = true; + this.reg_0x28.Size = new System.Drawing.Size(105, 22); + this.reg_0x28.TabIndex = 8; + this.reg_0x28.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel23 + // + this.flowLayoutPanel23.Controls.Add(label34); + this.flowLayoutPanel23.Controls.Add(this.reg_0x2C); + this.flowLayoutPanel23.Location = new System.Drawing.Point(0, 160); + this.flowLayoutPanel23.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel23.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel23.Name = "flowLayoutPanel23"; + this.flowLayoutPanel23.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel23.TabIndex = 117; + // + // reg_0x2C + // + this.reg_0x2C.Location = new System.Drawing.Point(278, 4); + this.reg_0x2C.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0x2C.Name = "reg_0x2C"; + this.reg_0x2C.ReadOnly = true; + this.reg_0x2C.Size = new System.Drawing.Size(105, 22); + this.reg_0x2C.TabIndex = 8; + this.reg_0x2C.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel25 + // + this.flowLayoutPanel25.Controls.Add(this.label35); + this.flowLayoutPanel25.Controls.Add(this.reg_0x30); + this.flowLayoutPanel25.Location = new System.Drawing.Point(0, 192); + this.flowLayoutPanel25.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel25.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel25.Name = "flowLayoutPanel25"; + this.flowLayoutPanel25.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel25.TabIndex = 119; + // + // label35 + // + this.label35.Location = new System.Drawing.Point(3, 2); + this.label35.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label35.MaximumSize = new System.Drawing.Size(272, 26); + this.label35.MinimumSize = new System.Drawing.Size(272, 26); + this.label35.Name = "label35"; + this.label35.Size = new System.Drawing.Size(272, 26); + this.label35.TabIndex = 113; + this.label35.Text = "CLK125_CNT - 0x30"; + this.label35.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0x30 + // + this.reg_0x30.Location = new System.Drawing.Point(278, 4); + this.reg_0x30.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0x30.Name = "reg_0x30"; + this.reg_0x30.ReadOnly = true; + this.reg_0x30.Size = new System.Drawing.Size(105, 22); + this.reg_0x30.TabIndex = 8; + this.reg_0x30.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel2 + // + this.flowLayoutPanel2.Controls.Add(this.label36); + this.flowLayoutPanel2.Controls.Add(this.reg_0x34); + this.flowLayoutPanel2.Location = new System.Drawing.Point(0, 224); + this.flowLayoutPanel2.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel2.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel2.Name = "flowLayoutPanel2"; + this.flowLayoutPanel2.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel2.TabIndex = 123; + // + // label36 + // + this.label36.Location = new System.Drawing.Point(3, 2); + this.label36.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label36.MaximumSize = new System.Drawing.Size(272, 26); + this.label36.MinimumSize = new System.Drawing.Size(272, 26); + this.label36.Name = "label36"; + this.label36.Size = new System.Drawing.Size(272, 26); + this.label36.TabIndex = 113; + this.label36.Text = "CLK250_FREQ - 0x34"; + this.label36.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0x34 + // + this.reg_0x34.Location = new System.Drawing.Point(278, 4); + this.reg_0x34.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0x34.Name = "reg_0x34"; + this.reg_0x34.ReadOnly = true; + this.reg_0x34.Size = new System.Drawing.Size(105, 22); + this.reg_0x34.TabIndex = 8; + this.reg_0x34.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel26 + // + this.flowLayoutPanel26.Controls.Add(this.label37); + this.flowLayoutPanel26.Controls.Add(this.reg_0x38); + this.flowLayoutPanel26.Location = new System.Drawing.Point(0, 256); + this.flowLayoutPanel26.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel26.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel26.Name = "flowLayoutPanel26"; + this.flowLayoutPanel26.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel26.TabIndex = 120; + // + // label37 + // + this.label37.Location = new System.Drawing.Point(3, 2); + this.label37.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label37.MaximumSize = new System.Drawing.Size(272, 26); + this.label37.MinimumSize = new System.Drawing.Size(272, 26); + this.label37.Name = "label37"; + this.label37.Size = new System.Drawing.Size(272, 26); + this.label37.TabIndex = 113; + this.label37.Text = "CLK250_CNT_0x38"; + this.label37.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0x38 + // + this.reg_0x38.Location = new System.Drawing.Point(278, 4); + this.reg_0x38.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0x38.Name = "reg_0x38"; + this.reg_0x38.ReadOnly = true; + this.reg_0x38.Size = new System.Drawing.Size(105, 22); + this.reg_0x38.TabIndex = 8; + this.reg_0x38.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel27 + // + this.flowLayoutPanel27.Controls.Add(this.label38); + this.flowLayoutPanel27.Controls.Add(this.reg_0x3C); + this.flowLayoutPanel27.Location = new System.Drawing.Point(0, 288); + this.flowLayoutPanel27.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel27.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel27.Name = "flowLayoutPanel27"; + this.flowLayoutPanel27.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel27.TabIndex = 121; + // + // label38 + // + this.label38.Location = new System.Drawing.Point(3, 2); + this.label38.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label38.MaximumSize = new System.Drawing.Size(272, 26); + this.label38.MinimumSize = new System.Drawing.Size(272, 26); + this.label38.Name = "label38"; + this.label38.Size = new System.Drawing.Size(272, 26); + this.label38.TabIndex = 113; + this.label38.Text = "JESD_RX_CLK - 0x3C"; + this.label38.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0x3C + // + this.reg_0x3C.Location = new System.Drawing.Point(278, 4); + this.reg_0x3C.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0x3C.Name = "reg_0x3C"; + this.reg_0x3C.ReadOnly = true; + this.reg_0x3C.Size = new System.Drawing.Size(105, 22); + this.reg_0x3C.TabIndex = 8; + this.reg_0x3C.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel28 + // + this.flowLayoutPanel28.Controls.Add(this.label39); + this.flowLayoutPanel28.Controls.Add(this.reg_0x40); + this.flowLayoutPanel28.Location = new System.Drawing.Point(0, 320); + this.flowLayoutPanel28.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel28.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel28.Name = "flowLayoutPanel28"; + this.flowLayoutPanel28.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel28.TabIndex = 122; + // + // label39 + // + this.label39.Location = new System.Drawing.Point(3, 2); + this.label39.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label39.MaximumSize = new System.Drawing.Size(272, 26); + this.label39.MinimumSize = new System.Drawing.Size(272, 26); + this.label39.Name = "label39"; + this.label39.Size = new System.Drawing.Size(272, 26); + this.label39.TabIndex = 113; + this.label39.Text = "JESD_TX_CLK - 0x40"; + this.label39.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0x40 + // + this.reg_0x40.Location = new System.Drawing.Point(278, 4); + this.reg_0x40.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0x40.Name = "reg_0x40"; + this.reg_0x40.ReadOnly = true; + this.reg_0x40.Size = new System.Drawing.Size(105, 22); + this.reg_0x40.TabIndex = 8; + this.reg_0x40.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel3 + // + this.flowLayoutPanel3.Controls.Add(this.label40); + this.flowLayoutPanel3.Controls.Add(this.reg_0xD4); + this.flowLayoutPanel3.Location = new System.Drawing.Point(0, 352); + this.flowLayoutPanel3.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel3.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel3.Name = "flowLayoutPanel3"; + this.flowLayoutPanel3.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel3.TabIndex = 132; + // + // label40 + // + this.label40.Location = new System.Drawing.Point(3, 2); + this.label40.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label40.MaximumSize = new System.Drawing.Size(272, 26); + this.label40.MinimumSize = new System.Drawing.Size(272, 26); + this.label40.Name = "label40"; + this.label40.Size = new System.Drawing.Size(272, 26); + this.label40.TabIndex = 113; + this.label40.Text = "ADC_VALID_CNT_256b - 0xD4"; + this.label40.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0xD4 + // + this.reg_0xD4.Location = new System.Drawing.Point(278, 4); + this.reg_0xD4.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0xD4.Name = "reg_0xD4"; + this.reg_0xD4.ReadOnly = true; + this.reg_0xD4.Size = new System.Drawing.Size(105, 22); + this.reg_0xD4.TabIndex = 8; + this.reg_0xD4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel30 + // + this.flowLayoutPanel30.Controls.Add(this.label41); + this.flowLayoutPanel30.Controls.Add(this.reg_0xD8); + this.flowLayoutPanel30.Location = new System.Drawing.Point(0, 384); + this.flowLayoutPanel30.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel30.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel30.Name = "flowLayoutPanel30"; + this.flowLayoutPanel30.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel30.TabIndex = 124; + // + // label41 + // + this.label41.Location = new System.Drawing.Point(3, 2); + this.label41.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label41.MaximumSize = new System.Drawing.Size(272, 26); + this.label41.MinimumSize = new System.Drawing.Size(261, 26); + this.label41.Name = "label41"; + this.label41.Size = new System.Drawing.Size(272, 26); + this.label41.TabIndex = 113; + this.label41.Text = "CMAC_0_TX_VALID_CNT_512b - 0xD8"; + this.label41.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0xD8 + // + this.reg_0xD8.Location = new System.Drawing.Point(278, 4); + this.reg_0xD8.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0xD8.Name = "reg_0xD8"; + this.reg_0xD8.ReadOnly = true; + this.reg_0xD8.Size = new System.Drawing.Size(105, 22); + this.reg_0xD8.TabIndex = 8; + this.reg_0xD8.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel31 + // + this.flowLayoutPanel31.Controls.Add(this.label42); + this.flowLayoutPanel31.Controls.Add(this.reg_0xDC); + this.flowLayoutPanel31.Location = new System.Drawing.Point(0, 416); + this.flowLayoutPanel31.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel31.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel31.Name = "flowLayoutPanel31"; + this.flowLayoutPanel31.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel31.TabIndex = 125; + // + // label42 + // + this.label42.Location = new System.Drawing.Point(3, 2); + this.label42.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label42.MaximumSize = new System.Drawing.Size(272, 26); + this.label42.MinimumSize = new System.Drawing.Size(272, 26); + this.label42.Name = "label42"; + this.label42.Size = new System.Drawing.Size(272, 26); + this.label42.TabIndex = 113; + this.label42.Text = "CMAC_4_TX_VALID_CNT_512b - 0xDC"; + this.label42.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0xDC + // + this.reg_0xDC.Location = new System.Drawing.Point(278, 4); + this.reg_0xDC.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0xDC.Name = "reg_0xDC"; + this.reg_0xDC.ReadOnly = true; + this.reg_0xDC.Size = new System.Drawing.Size(105, 22); + this.reg_0xDC.TabIndex = 8; + this.reg_0xDC.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel32 + // + this.flowLayoutPanel32.Controls.Add(this.label43); + this.flowLayoutPanel32.Controls.Add(this.reg_0xE0); + this.flowLayoutPanel32.Location = new System.Drawing.Point(0, 448); + this.flowLayoutPanel32.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel32.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel32.Name = "flowLayoutPanel32"; + this.flowLayoutPanel32.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel32.TabIndex = 126; + // + // label43 + // + this.label43.Location = new System.Drawing.Point(3, 2); + this.label43.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label43.MaximumSize = new System.Drawing.Size(272, 26); + this.label43.MinimumSize = new System.Drawing.Size(272, 26); + this.label43.Name = "label43"; + this.label43.Size = new System.Drawing.Size(272, 26); + this.label43.TabIndex = 113; + this.label43.Text = "CMAC_RX_VALID_256b - 0xE0"; + this.label43.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0xE0 + // + this.reg_0xE0.Location = new System.Drawing.Point(278, 4); + this.reg_0xE0.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0xE0.Name = "reg_0xE0"; + this.reg_0xE0.ReadOnly = true; + this.reg_0xE0.Size = new System.Drawing.Size(105, 22); + this.reg_0xE0.TabIndex = 8; + this.reg_0xE0.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel33 + // + this.flowLayoutPanel33.Controls.Add(this.label44); + this.flowLayoutPanel33.Controls.Add(this.reg_0xE4); + this.flowLayoutPanel33.Location = new System.Drawing.Point(0, 480); + this.flowLayoutPanel33.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel33.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel33.Name = "flowLayoutPanel33"; + this.flowLayoutPanel33.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel33.TabIndex = 127; + // + // label44 + // + this.label44.Location = new System.Drawing.Point(3, 2); + this.label44.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label44.MaximumSize = new System.Drawing.Size(272, 26); + this.label44.MinimumSize = new System.Drawing.Size(272, 26); + this.label44.Name = "label44"; + this.label44.Size = new System.Drawing.Size(272, 26); + this.label44.TabIndex = 113; + this.label44.Text = "MEM_XFER_TX_VALID_256b - 0xE4"; + this.label44.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0xE4 + // + this.reg_0xE4.Location = new System.Drawing.Point(278, 4); + this.reg_0xE4.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0xE4.Name = "reg_0xE4"; + this.reg_0xE4.ReadOnly = true; + this.reg_0xE4.Size = new System.Drawing.Size(105, 22); + this.reg_0xE4.TabIndex = 8; + this.reg_0xE4.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel34 + // + this.flowLayoutPanel34.Controls.Add(this.label45); + this.flowLayoutPanel34.Controls.Add(this.reg_0xE8); + this.flowLayoutPanel34.Location = new System.Drawing.Point(0, 512); + this.flowLayoutPanel34.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel34.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel34.Name = "flowLayoutPanel34"; + this.flowLayoutPanel34.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel34.TabIndex = 128; + // + // label45 + // + this.label45.Location = new System.Drawing.Point(3, 2); + this.label45.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label45.MaximumSize = new System.Drawing.Size(272, 26); + this.label45.MinimumSize = new System.Drawing.Size(272, 26); + this.label45.Name = "label45"; + this.label45.Size = new System.Drawing.Size(272, 26); + this.label45.TabIndex = 113; + this.label45.Text = "CMAC_0_RX_VALID_512b - 0xE8"; + this.label45.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0xE8 + // + this.reg_0xE8.Location = new System.Drawing.Point(278, 4); + this.reg_0xE8.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0xE8.Name = "reg_0xE8"; + this.reg_0xE8.ReadOnly = true; + this.reg_0xE8.Size = new System.Drawing.Size(105, 22); + this.reg_0xE8.TabIndex = 8; + this.reg_0xE8.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel35 + // + this.flowLayoutPanel35.Controls.Add(this.label46); + this.flowLayoutPanel35.Controls.Add(this.reg_0xEC); + this.flowLayoutPanel35.Location = new System.Drawing.Point(0, 544); + this.flowLayoutPanel35.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel35.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel35.Name = "flowLayoutPanel35"; + this.flowLayoutPanel35.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel35.TabIndex = 129; + // + // label46 + // + this.label46.Location = new System.Drawing.Point(3, 2); + this.label46.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label46.MaximumSize = new System.Drawing.Size(272, 26); + this.label46.MinimumSize = new System.Drawing.Size(272, 26); + this.label46.Name = "label46"; + this.label46.Size = new System.Drawing.Size(272, 26); + this.label46.TabIndex = 113; + this.label46.Text = "CMAC_4_RX_VALID_512b - 0xEC"; + this.label46.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0xEC + // + this.reg_0xEC.Location = new System.Drawing.Point(278, 4); + this.reg_0xEC.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0xEC.Name = "reg_0xEC"; + this.reg_0xEC.ReadOnly = true; + this.reg_0xEC.Size = new System.Drawing.Size(105, 22); + this.reg_0xEC.TabIndex = 8; + this.reg_0xEC.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // flowLayoutPanel36 + // + this.flowLayoutPanel36.Controls.Add(this.label47); + this.flowLayoutPanel36.Controls.Add(this.reg_0xF0); + this.flowLayoutPanel36.Location = new System.Drawing.Point(0, 576); + this.flowLayoutPanel36.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel36.MaximumSize = new System.Drawing.Size(393, 32); + this.flowLayoutPanel36.Name = "flowLayoutPanel36"; + this.flowLayoutPanel36.Size = new System.Drawing.Size(393, 32); + this.flowLayoutPanel36.TabIndex = 130; + // + // label47 + // + this.label47.Location = new System.Drawing.Point(3, 2); + this.label47.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.label47.MaximumSize = new System.Drawing.Size(272, 26); + this.label47.MinimumSize = new System.Drawing.Size(272, 26); + this.label47.Name = "label47"; + this.label47.Size = new System.Drawing.Size(272, 26); + this.label47.TabIndex = 113; + this.label47.Text = "DAC_VALID_256b - 0xF0"; + this.label47.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // reg_0xF0 + // + this.reg_0xF0.Location = new System.Drawing.Point(278, 4); + this.reg_0xF0.Margin = new System.Windows.Forms.Padding(0, 4, 0, 0); + this.reg_0xF0.Name = "reg_0xF0"; + this.reg_0xF0.ReadOnly = true; + this.reg_0xF0.Size = new System.Drawing.Size(105, 22); + this.reg_0xF0.TabIndex = 8; + this.reg_0xF0.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // reboot_fpga + // + this.reboot_fpga.Location = new System.Drawing.Point(241, 662); + this.reboot_fpga.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.reboot_fpga.Name = "reboot_fpga"; + this.reboot_fpga.Size = new System.Drawing.Size(148, 39); + this.reboot_fpga.TabIndex = 88; + this.reboot_fpga.Text = "Reboot FPGA"; + this.reboot_fpga.UseVisualStyleBackColor = true; + this.reboot_fpga.Click += new System.EventHandler(this.reboot_fpga_Click); + // + // groupBox2 + // + this.groupBox2.BackColor = System.Drawing.Color.Gainsboro; + this.groupBox2.Controls.Add(this.flowLayoutPanel181); + this.groupBox2.Location = new System.Drawing.Point(689, 498); + this.groupBox2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Padding = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.groupBox2.Size = new System.Drawing.Size(164, 183); + this.groupBox2.TabIndex = 64; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "CMAC Dataflow Cntrl"; + // + // flowLayoutPanel181 + // + this.flowLayoutPanel181.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.flowLayoutPanel181.Controls.Add(this.cmac_rx_en); + this.flowLayoutPanel181.Controls.Add(this.cmac_tx_en); + this.flowLayoutPanel181.Controls.Add(this.cmac_rxtx_en); + this.flowLayoutPanel181.Controls.Add(this.cmac_disable); + this.flowLayoutPanel181.Location = new System.Drawing.Point(11, 22); + this.flowLayoutPanel181.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.flowLayoutPanel181.Name = "flowLayoutPanel181"; + this.flowLayoutPanel181.Size = new System.Drawing.Size(151, 152); + this.flowLayoutPanel181.TabIndex = 63; + // + // cmac_rx_en + // + this.cmac_rx_en.Location = new System.Drawing.Point(8, 2); + this.cmac_rx_en.Margin = new System.Windows.Forms.Padding(8, 2, 3, 2); + this.cmac_rx_en.Name = "cmac_rx_en"; + this.cmac_rx_en.Size = new System.Drawing.Size(133, 30); + this.cmac_rx_en.TabIndex = 3; + this.cmac_rx_en.Text = "Rx Only"; + this.cmac_rx_en.UseVisualStyleBackColor = true; + this.cmac_rx_en.Click += new System.EventHandler(this.cmac_rx_en_Click); + // + // cmac_tx_en + // + this.cmac_tx_en.Location = new System.Drawing.Point(8, 36); + this.cmac_tx_en.Margin = new System.Windows.Forms.Padding(8, 2, 3, 2); + this.cmac_tx_en.Name = "cmac_tx_en"; + this.cmac_tx_en.Size = new System.Drawing.Size(133, 30); + this.cmac_tx_en.TabIndex = 2; + this.cmac_tx_en.Text = "Tx Only"; + this.cmac_tx_en.UseVisualStyleBackColor = true; + this.cmac_tx_en.Click += new System.EventHandler(this.cmac_tx_en_Click); + // + // cmac_rxtx_en + // + this.cmac_rxtx_en.Location = new System.Drawing.Point(8, 70); + this.cmac_rxtx_en.Margin = new System.Windows.Forms.Padding(8, 2, 3, 2); + this.cmac_rxtx_en.Name = "cmac_rxtx_en"; + this.cmac_rxtx_en.Size = new System.Drawing.Size(133, 30); + this.cmac_rxtx_en.TabIndex = 4; + this.cmac_rxtx_en.Text = "Tx/Rx"; + this.cmac_rxtx_en.UseVisualStyleBackColor = true; + this.cmac_rxtx_en.Click += new System.EventHandler(this.cmac_rxtx_en_Click); + // + // cmac_disable + // + this.cmac_disable.Checked = true; + this.cmac_disable.Location = new System.Drawing.Point(8, 104); + this.cmac_disable.Margin = new System.Windows.Forms.Padding(8, 2, 3, 2); + this.cmac_disable.Name = "cmac_disable"; + this.cmac_disable.Size = new System.Drawing.Size(133, 30); + this.cmac_disable.TabIndex = 5; + this.cmac_disable.TabStop = true; + this.cmac_disable.Text = "Off"; + this.cmac_disable.UseVisualStyleBackColor = true; + this.cmac_disable.Click += new System.EventHandler(this.cmac_disable_Click); + // + // counters_rst + // + this.counters_rst.Location = new System.Drawing.Point(661, 720); + this.counters_rst.Name = "counters_rst"; + this.counters_rst.Size = new System.Drawing.Size(87, 47); + this.counters_rst.TabIndex = 116; + this.counters_rst.Text = "Counters Reset"; + this.counters_rst.UseVisualStyleBackColor = true; + this.counters_rst.Click += new System.EventHandler(this.counters_rst_Click); + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(1478, 34); + this.label16.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(104, 17); + this.label16.TabIndex = 117; + this.label16.Text = "(0x8101_0000)"; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point(1590, 34); + this.label20.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(104, 17); + this.label20.TabIndex = 118; + this.label20.Text = "(0x8201_0000)"; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(4, 0); + this.label21.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label21.Name = "label21"; + this.label21.Padding = new System.Windows.Forms.Padding(270, 5, 0, 0); + this.label21.Size = new System.Drawing.Size(374, 22); + this.label21.TabIndex = 118; + this.label21.Text = "(0x8100_0000)"; + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(386, 0); + this.label22.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label22.Name = "label22"; + this.label22.Padding = new System.Windows.Forms.Padding(0, 5, 0, 0); + this.label22.Size = new System.Drawing.Size(104, 22); + this.label22.TabIndex = 119; + this.label22.Text = "(0x8200_0000)"; + // + // Form1 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoScroll = true; + this.ClientSize = new System.Drawing.Size(1895, 897); + this.Controls.Add(this.tabControl1); + this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); + this.Name = "Form1"; + this.Text = "quadRT_CMAC_TestGUI - 11-APR-2026"; + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + this.groupBox3.ResumeLayout(false); + this.flowLayoutPanel16.ResumeLayout(false); + this.flowLayoutPanel18.ResumeLayout(false); + this.flowLayoutPanel18.PerformLayout(); + this.flowLayoutPanel47.ResumeLayout(false); + this.flowLayoutPanel47.PerformLayout(); + this.groupBox10.ResumeLayout(false); + this.groupBox10.PerformLayout(); + this.flowLayoutPanel12.ResumeLayout(false); + this.flowLayoutPanel13.ResumeLayout(false); + this.flowLayoutPanel13.PerformLayout(); + this.flowLayoutPanel14.ResumeLayout(false); + this.flowLayoutPanel14.PerformLayout(); + this.flowLayoutPanel17.ResumeLayout(false); + this.flowLayoutPanel17.PerformLayout(); + this.flowLayoutPanel20.ResumeLayout(false); + this.flowLayoutPanel20.PerformLayout(); + this.flowLayoutPanel24.ResumeLayout(false); + this.flowLayoutPanel24.PerformLayout(); + this.flowLayoutPanel29.ResumeLayout(false); + this.flowLayoutPanel29.PerformLayout(); + this.flowLayoutPanel37.ResumeLayout(false); + this.flowLayoutPanel37.PerformLayout(); + this.flowLayoutPanel38.ResumeLayout(false); + this.flowLayoutPanel38.PerformLayout(); + this.flowLayoutPanel39.ResumeLayout(false); + this.flowLayoutPanel39.PerformLayout(); + this.flowLayoutPanel40.ResumeLayout(false); + this.flowLayoutPanel40.PerformLayout(); + this.flowLayoutPanel41.ResumeLayout(false); + this.flowLayoutPanel41.PerformLayout(); + this.flowLayoutPanel42.ResumeLayout(false); + this.flowLayoutPanel42.PerformLayout(); + this.flowLayoutPanel43.ResumeLayout(false); + this.flowLayoutPanel43.PerformLayout(); + this.flowLayoutPanel44.ResumeLayout(false); + this.flowLayoutPanel44.PerformLayout(); + this.flowLayoutPanel45.ResumeLayout(false); + this.flowLayoutPanel45.PerformLayout(); + this.groupBox9.ResumeLayout(false); + this.flowLayoutPanel11.ResumeLayout(false); + this.flowLayoutPanel10.ResumeLayout(false); + this.groupBox1.ResumeLayout(false); + this.flowLayoutPanel4.ResumeLayout(false); + this.groupBox6.ResumeLayout(false); + this.flowLayoutPanel6.ResumeLayout(false); + this.groupBox8.ResumeLayout(false); + this.flowLayoutPanel8.ResumeLayout(false); + this.groupBox7.ResumeLayout(false); + this.flowLayoutPanel7.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.groupBox5.ResumeLayout(false); + this.flowLayoutPanel5.ResumeLayout(false); + this.flowLayoutPanel5.PerformLayout(); + this.groupBox4.ResumeLayout(false); + this.flowLayoutPanel15.ResumeLayout(false); + this.flowLayoutPanel9.ResumeLayout(false); + this.flowLayoutPanel9.PerformLayout(); + this.flowLayoutPanel19.ResumeLayout(false); + this.flowLayoutPanel19.PerformLayout(); + this.flowLayoutPanel1.ResumeLayout(false); + this.flowLayoutPanel1.PerformLayout(); + this.flowLayoutPanel21.ResumeLayout(false); + this.flowLayoutPanel21.PerformLayout(); + this.flowLayoutPanel22.ResumeLayout(false); + this.flowLayoutPanel22.PerformLayout(); + this.flowLayoutPanel23.ResumeLayout(false); + this.flowLayoutPanel23.PerformLayout(); + this.flowLayoutPanel25.ResumeLayout(false); + this.flowLayoutPanel25.PerformLayout(); + this.flowLayoutPanel2.ResumeLayout(false); + this.flowLayoutPanel2.PerformLayout(); + this.flowLayoutPanel26.ResumeLayout(false); + this.flowLayoutPanel26.PerformLayout(); + this.flowLayoutPanel27.ResumeLayout(false); + this.flowLayoutPanel27.PerformLayout(); + this.flowLayoutPanel28.ResumeLayout(false); + this.flowLayoutPanel28.PerformLayout(); + this.flowLayoutPanel3.ResumeLayout(false); + this.flowLayoutPanel3.PerformLayout(); + this.flowLayoutPanel30.ResumeLayout(false); + this.flowLayoutPanel30.PerformLayout(); + this.flowLayoutPanel31.ResumeLayout(false); + this.flowLayoutPanel31.PerformLayout(); + this.flowLayoutPanel32.ResumeLayout(false); + this.flowLayoutPanel32.PerformLayout(); + this.flowLayoutPanel33.ResumeLayout(false); + this.flowLayoutPanel33.PerformLayout(); + this.flowLayoutPanel34.ResumeLayout(false); + this.flowLayoutPanel34.PerformLayout(); + this.flowLayoutPanel35.ResumeLayout(false); + this.flowLayoutPanel35.PerformLayout(); + this.flowLayoutPanel36.ResumeLayout(false); + this.flowLayoutPanel36.PerformLayout(); + this.groupBox2.ResumeLayout(false); + this.flowLayoutPanel181.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button ssh_connect; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel181; + private System.Windows.Forms.RadioButton cmac_tx_en; + private System.Windows.Forms.RadioButton cmac_rx_en; + private System.Windows.Forms.Button reboot_fpga; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel15; + private System.Windows.Forms.TextBox reg_0x00; + private System.Windows.Forms.Button read_all_regs; + private System.Windows.Forms.GroupBox groupBox4; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel9; + private System.Windows.Forms.Label label29; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel19; + private System.Windows.Forms.Label label30; + private System.Windows.Forms.TextBox reg_0x04; + private System.Windows.Forms.Label label31; + private System.Windows.Forms.TextBox reg_0x14; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel21; + private System.Windows.Forms.Label label32; + private System.Windows.Forms.TextBox reg_0x20; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel22; + private System.Windows.Forms.Label label33; + private System.Windows.Forms.TextBox reg_0x28; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel23; + private System.Windows.Forms.TextBox reg_0x2C; + private System.Windows.Forms.Label label35; + private System.Windows.Forms.TextBox reg_0x30; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel25; + private System.Windows.Forms.Label label36; + private System.Windows.Forms.TextBox reg_0x34; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel26; + private System.Windows.Forms.Label label37; + private System.Windows.Forms.TextBox reg_0x38; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel27; + private System.Windows.Forms.Label label38; + private System.Windows.Forms.TextBox reg_0x3C; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel28; + private System.Windows.Forms.Label label39; + private System.Windows.Forms.TextBox reg_0x40; + private System.Windows.Forms.Label label40; + private System.Windows.Forms.TextBox reg_0xD4; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel30; + private System.Windows.Forms.Label label41; + private System.Windows.Forms.TextBox reg_0xD8; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel31; + private System.Windows.Forms.Label label42; + private System.Windows.Forms.TextBox reg_0xDC; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel32; + private System.Windows.Forms.Label label43; + private System.Windows.Forms.TextBox reg_0xE0; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel33; + private System.Windows.Forms.Label label44; + private System.Windows.Forms.TextBox reg_0xE4; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel34; + private System.Windows.Forms.Label label45; + private System.Windows.Forms.TextBox reg_0xE8; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel35; + private System.Windows.Forms.Label label46; + private System.Windows.Forms.TextBox reg_0xEC; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel36; + private System.Windows.Forms.Label label47; + private System.Windows.Forms.TextBox reg_0xF0; + private System.Windows.Forms.TextBox ipAddress; + private System.Windows.Forms.GroupBox groupBox5; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3; + private System.Windows.Forms.GroupBox groupBox9; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel11; + private System.Windows.Forms.RadioButton dac_data_src_cmac; + private System.Windows.Forms.RadioButton dac_data_src_quadsend_rcv; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel10; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel4; + private System.Windows.Forms.Button qsfp1_present; + private System.Windows.Forms.Button qsfp1_intl; + private System.Windows.Forms.GroupBox groupBox6; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel6; + private System.Windows.Forms.Button qsfp2_present; + private System.Windows.Forms.Button qsfp2_intl; + private System.Windows.Forms.GroupBox groupBox8; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel8; + private System.Windows.Forms.Button qsfp3_present; + private System.Windows.Forms.Button qsfp3_intl; + private System.Windows.Forms.GroupBox groupBox7; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel7; + private System.Windows.Forms.Button qsfp4_present; + private System.Windows.Forms.Button qsfp4_intl; + private System.Windows.Forms.Button cmac_init; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel5; + private System.Windows.Forms.RadioButton cmac_rxtx_en; + private System.Windows.Forms.RadioButton cmac_disable; + private System.Windows.Forms.GroupBox groupBox10; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel12; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel13; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox cmac_0_reg_0x10000; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel14; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox cmac_0_reg_0x10004; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel17; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox cmac_0_reg_0x1000C; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel20; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox cmac_0_reg_0x10014; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel24; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.TextBox cmac_0_reg_0x10024; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel29; + private System.Windows.Forms.TextBox cmac_0_reg_0x10090; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel37; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel38; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.TextBox cmac_0_reg_0x00; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel39; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.TextBox cmac_0_reg_0x04; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel40; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.TextBox cmac_0_reg_0x08; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel41; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.TextBox cmac_0_reg_0x0C; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel42; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.TextBox cmac_0_reg_0x10; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel43; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.TextBox cmac_0_reg_0x14; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel44; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.TextBox cmac_0_reg_0x18; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel45; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.TextBox cmac_0_reg_0x1C; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.TextBox cmac_4_reg_0x10000; + private System.Windows.Forms.TextBox cmac_4_reg_0x10004; + private System.Windows.Forms.TextBox cmac_4_reg_0x1000C; + private System.Windows.Forms.TextBox cmac_4_reg_0x10014; + private System.Windows.Forms.TextBox cmac_4_reg_0x10024; + private System.Windows.Forms.TextBox cmac_4_reg_0x10090; + private System.Windows.Forms.TextBox cmac_4_reg_0x00; + private System.Windows.Forms.TextBox cmac_4_reg_0x04; + private System.Windows.Forms.TextBox cmac_4_reg_0x08; + private System.Windows.Forms.TextBox cmac_4_reg_0x0C; + private System.Windows.Forms.TextBox cmac_4_reg_0x10; + private System.Windows.Forms.TextBox cmac_4_reg_0x14; + private System.Windows.Forms.TextBox cmac_4_reg_0x18; + private System.Windows.Forms.TextBox cmac_4_reg_0x1C; + private System.Windows.Forms.Button cmac_read_all_regs; + private System.Windows.Forms.GroupBox groupBox3; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel16; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel18; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.TextBox reg_addr; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel47; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.TextBox reg_data; + private System.Windows.Forms.Button reg_read; + private System.Windows.Forms.Button reg_write; + private System.Windows.Forms.Button counters_rst; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.Label label22; + } +} + diff --git a/Form1.cs b/Form1.cs new file mode 100644 index 0000000..ebcc845 --- /dev/null +++ b/Form1.cs @@ -0,0 +1,581 @@ +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 System.IO.Ports; +using System.Threading; +using System.IO; +using Renci.SshNet; + +// Based on, see below +// https://www.codeproject.com/Articles/678025/Serial-Comms-in-Csharp-for-Beginners + + +namespace uartTestGUI +{ + public partial class Form1 : Form + { + + SshClient ssh_client; + + public Form1() + { + InitializeComponent(); +// ssh_client = new SshClient(ipAddress.Text, "root", ""); + + } + + public void backgroundTask() + { + // while (true == status_update_en.Checked) + while (true) + { + + ssh_connect.Invoke(new delegateRegDump(RegDump), + new object[] { }); + + + Thread.Sleep(1000); + } + + } + + public delegate void delegateRegDump(); + + + string ssh_ReadReg(string addr) + { + SshCommand cmd; + string str = String.Empty; + string str1 = String.Empty; + if (true == ssh_client.IsConnected) + { + str1 = "devmem " + addr; + Console.WriteLine("ssh_ReadReg(): Command: "+str1); + // Console.WriteLine(str1); + + + cmd = ssh_client.RunCommand(str1); + str = cmd.Result; + Console.WriteLine("ssh_ReadReg(): Response:"+str); +// Console.WriteLine(str); + return str.Substring(2, 8); + } + return "FFFFFFFF"; + } + + void ssh_WriteReg(string addr, string val) + { + SshCommand cmd; + string str = String.Empty; + + if (true == ssh_client.IsConnected) + { + str = "devmem " + addr + " 32 " + val; + Console.WriteLine("ssh_WriteReg(): Command:"+str); + // Console.WriteLine(str); // Get the command output + + cmd = ssh_client.RunCommand(str);// Execute a command + + Console.WriteLine("ssh_WriteReg(): Response:"+ cmd.Result); + // Console.WriteLine(cmd.Result); // Get the command output + } + } + + + + + + private void RegDump() + { + if (true == ssh_client.IsConnected) + { + string str; + + reg_0x00.Text = ""; + reg_0x04.Text = ""; + reg_0x14.Text = ""; + reg_0x20.Text = ""; + reg_0x28.Text = ""; + reg_0x2C.Text = ""; + reg_0x30.Text = ""; + reg_0x34.Text = ""; + reg_0x38.Text = ""; + reg_0x3C.Text = ""; + reg_0x40.Text = ""; + reg_0xD4.Text = ""; + reg_0xD8.Text = ""; + reg_0xDC.Text = ""; + reg_0xE0.Text = ""; + reg_0xE4.Text = ""; + reg_0xE8.Text = ""; + reg_0xEC.Text = ""; + reg_0xF0.Text = ""; + + reg_0x00.Text = ssh_ReadReg("0x80000000"); + // + str = ssh_ReadReg("0x80000004"); + uint val = (Convert.ToUInt32(str, 16)); + reg_0x04.Text = str; + if (0x2 == (val & 0x02)) + { + qsfp1_present.BackColor = Color.Red; + } + else + { + qsfp1_present.BackColor = Color.LightGreen; + } + + if (0x20 == (val & 0x020)) + { + qsfp2_present.BackColor = Color.Red; + } + else + { + qsfp2_present.BackColor = Color.LightGreen; + } + + if (0x200 == (val & 0x0200)) + { + qsfp3_present.BackColor = Color.Red; + } + else + { + qsfp3_present.BackColor = Color.LightGreen; + } + + if (0x2000 == (val & 0x02000)) + { + qsfp4_present.BackColor = Color.Red; + } + else + { + qsfp4_present.BackColor = Color.LightGreen; + } + + reg_0x14.Text = ssh_ReadReg("0x80000014"); + reg_0x20.Text = ssh_ReadReg("0x80000020"); + reg_0x28.Text = ssh_ReadReg("0x80000028"); +// + str = ssh_ReadReg("0x8000002C"); + val = (Convert.ToUInt32(str, 16)); + reg_0x2C.Text = val.ToString("D"); + + reg_0x30.Text = ssh_ReadReg("0x80000030"); +// + str = ssh_ReadReg("0x80000034"); + val = (Convert.ToUInt32(str, 16)); + reg_0x34.Text = val.ToString("D"); + + + + reg_0x38.Text = ssh_ReadReg("0x80000038"); +// + str = ssh_ReadReg("0x8000003C"); + val = (Convert.ToUInt32(str, 16)); + reg_0x3C.Text = val.ToString("D"); +// + str = ssh_ReadReg("0x80000040"); + val = (Convert.ToUInt32(str, 16)); + reg_0x40.Text = val.ToString("D"); + + + reg_0xD4.Text = ssh_ReadReg("0x800000D4"); + reg_0xD8.Text = ssh_ReadReg("0x800000D8"); + reg_0xDC.Text = ssh_ReadReg("0x800000DC"); + reg_0xE0.Text = ssh_ReadReg("0x800000E0"); + reg_0xE4.Text = ssh_ReadReg("0x800000E4"); + reg_0xE8.Text = ssh_ReadReg("0x800000E8"); + reg_0xEC.Text = ssh_ReadReg("0x800000EC"); + reg_0xF0.Text = ssh_ReadReg("0x800000F0"); + + + } + } + + + + + private void cmac_0_RegDump() + { + if (true == ssh_client.IsConnected) + { + + cmac_0_reg_0x10000.Text = ""; + cmac_0_reg_0x10004.Text = ""; + cmac_0_reg_0x1000C.Text = ""; + cmac_0_reg_0x10014.Text = ""; + cmac_0_reg_0x10024.Text = ""; + cmac_0_reg_0x10090.Text = ""; + + cmac_0_reg_0x00.Text = ""; + cmac_0_reg_0x04.Text = ""; + cmac_0_reg_0x08.Text = ""; + cmac_0_reg_0x0C.Text = ""; + cmac_0_reg_0x10.Text = ""; + cmac_0_reg_0x14.Text = ""; + cmac_0_reg_0x18.Text = ""; + cmac_0_reg_0x1C.Text = ""; + + cmac_0_reg_0x10000.Text = ssh_ReadReg("0x81010000"); + cmac_0_reg_0x10004.Text = ssh_ReadReg("0x81010004"); + cmac_0_reg_0x1000C.Text = ssh_ReadReg("0x8101000C"); + cmac_0_reg_0x10014.Text = ssh_ReadReg("0x81010014"); + cmac_0_reg_0x10024.Text = ssh_ReadReg("0x81010024"); + cmac_0_reg_0x10090.Text = ssh_ReadReg("0x81010090"); + + cmac_0_reg_0x00.Text = ssh_ReadReg("0x81000000"); + cmac_0_reg_0x04.Text = ssh_ReadReg("0x81000004"); + cmac_0_reg_0x08.Text = ssh_ReadReg("0x81000008"); + cmac_0_reg_0x0C.Text = ssh_ReadReg("0x8100000C"); + cmac_0_reg_0x10.Text = ssh_ReadReg("0x81000010"); + cmac_0_reg_0x14.Text = ssh_ReadReg("0x81000014"); + cmac_0_reg_0x18.Text = ssh_ReadReg("0x81000018"); + cmac_0_reg_0x1C.Text = ssh_ReadReg("0x8100001C"); + + } + } + + private void cmac_4_RegDump() + { + if (true == ssh_client.IsConnected) + { + + cmac_4_reg_0x10000.Text = ""; + cmac_4_reg_0x10004.Text = ""; + cmac_4_reg_0x1000C.Text = ""; + cmac_4_reg_0x10014.Text = ""; + cmac_4_reg_0x10024.Text = ""; + cmac_4_reg_0x10090.Text = ""; + + cmac_4_reg_0x00.Text = ""; + cmac_4_reg_0x04.Text = ""; + cmac_4_reg_0x08.Text = ""; + cmac_4_reg_0x0C.Text = ""; + cmac_4_reg_0x10.Text = ""; + cmac_4_reg_0x14.Text = ""; + cmac_4_reg_0x18.Text = ""; + cmac_4_reg_0x1C.Text = ""; + + cmac_4_reg_0x10000.Text = ssh_ReadReg("0x82010000"); + cmac_4_reg_0x10004.Text = ssh_ReadReg("0x82010004"); + cmac_4_reg_0x1000C.Text = ssh_ReadReg("0x8201000C"); + cmac_4_reg_0x10014.Text = ssh_ReadReg("0x82010014"); + cmac_4_reg_0x10024.Text = ssh_ReadReg("0x82010024"); + cmac_4_reg_0x10090.Text = ssh_ReadReg("0x82010090"); + + cmac_4_reg_0x00.Text = ssh_ReadReg("0x82000000"); + cmac_4_reg_0x04.Text = ssh_ReadReg("0x82000004"); + cmac_4_reg_0x08.Text = ssh_ReadReg("0x82000008"); + cmac_4_reg_0x0C.Text = ssh_ReadReg("0x8200000C"); + cmac_4_reg_0x10.Text = ssh_ReadReg("0x82000010"); + cmac_4_reg_0x14.Text = ssh_ReadReg("0x82000014"); + cmac_4_reg_0x18.Text = ssh_ReadReg("0x82000018"); + cmac_4_reg_0x1C.Text = ssh_ReadReg("0x8200001C"); + + } + } + + private void Open_ssh_connection_Click(object sender, EventArgs e) + { +// if (false == ssh_client.IsConnected) +// { + try + { + ssh_client = new SshClient(ipAddress.Text, "root", ""); + ssh_connect.Text = "Connecting..."; + ssh_client.Connect(); + Console.WriteLine($"Connected to {ssh_client.ConnectionInfo.Host} successfully."); + + ssh_connect.BackColor = Color.LightGreen; + // SshCommand cmd = ssh_client.RunCommand("devmem 0x80000000"); // Execute a command + // Console.WriteLine("Command Output:"); + // Console.WriteLine(cmd.Result); // Get the command output + // reg_0x00.Text = cmd.Result; +// read_all_regs.PerformClick(); +// cmac_read_all_regs.PerformClick(); + + reg_0x00.Text = ssh_ReadReg("0x80000000"); + cmac_0_reg_0x10024.Text = ssh_ReadReg("0x81010024"); + cmac_4_reg_0x10024.Text = ssh_ReadReg("0x82010024"); + ssh_connect.Text = "Connected"; + + // ssh_client.Disconnect(); + // Thread oThread = new Thread(new ThreadStart(backgroundTask)); + // oThread.IsBackground = true; + // oThread.Start(); + + } + catch (Exception ex) + { + Console.WriteLine($"An error occurred: {ex.Message}"); + ssh_connect.Text = "Connect"; + ssh_connect.BackColor = Color.Red; + } + // } + // else + // { + // + // } + } + + private void reboot_fpga_Click(object sender, EventArgs e) + { + string str = String.Empty; + + if (MessageBox.Show("Are you sure?", "", MessageBoxButtons.YesNo) == DialogResult.Yes) + { + str = String.Empty; + str += "XY"; + str += "\n"; + + + } + + } + + private void read_all_regs_Click(object sender, EventArgs e) + { + RegDump(); + } + + private void cmac_reg_read_Click(object sender, EventArgs e) + { + cmac_0_RegDump(); + cmac_4_RegDump(); + } + + private void dac_data_src_cmac_Click(object sender, EventArgs e) + { + reg_0x28.Text = ssh_ReadReg("0x80000028"); + uint cntrl_reg28 = (Convert.ToUInt32(reg_0x28.Text, 16)); + cntrl_reg28 |= 0x100; // bit8 = 1 <= CMAC + + ssh_WriteReg("0x80000028", "0x" + cntrl_reg28.ToString("X8")); + reg_0x28.Text = ssh_ReadReg("0x80000028"); + } + + private void dac_data_src_quadsend_rcv_Click(object sender, EventArgs e) + { + reg_0x28.Text = ssh_ReadReg("0x80000028"); + uint cntrl_reg28 = (Convert.ToUInt32(reg_0x28.Text, 16)); + cntrl_reg28 &= 0xFFFF_FEFF; // bit8 = 0 <= quadsendrecv + + ssh_WriteReg("0x80000028", "0x" + cntrl_reg28.ToString("X8")); + reg_0x28.Text = ssh_ReadReg("0x80000028"); + } + + private void cmac_rx_en_Click(object sender, EventArgs e) + { + reg_0x28.Text = ssh_ReadReg("0x80000028"); + uint cntrl_reg28 = (Convert.ToUInt32(reg_0x28.Text, 16)); + cntrl_reg28 &= 0xFFFF_FFFC; // bit1:0 = 0 <= cmac disabled + + cntrl_reg28 |= 0x02; // bit0 = 1 <= Rx enable + + ssh_WriteReg("0x80000028", "0x" + cntrl_reg28.ToString("X8")); + reg_0x28.Text = ssh_ReadReg("0x80000028"); + } + + private void cmac_tx_en_Click(object sender, EventArgs e) + { + reg_0x28.Text = ssh_ReadReg("0x80000028"); + uint cntrl_reg28 = (Convert.ToUInt32(reg_0x28.Text, 16)); + cntrl_reg28 &= 0xFFFF_FFFC; // bit1:0 = 0 <= cmac disabled + + cntrl_reg28 |= 0x01; // bit0 = 1 <= Tx enable + + ssh_WriteReg("0x80000028", "0x" + cntrl_reg28.ToString("X8")); + reg_0x28.Text = ssh_ReadReg("0x80000028"); + } + + private void cmac_rxtx_en_Click(object sender, EventArgs e) + { + reg_0x28.Text = ssh_ReadReg("0x80000028"); + uint cntrl_reg28 = (Convert.ToUInt32(reg_0x28.Text, 16)); + + cntrl_reg28 |= 0x03; // bit1:0 = 1 <= Rx and Tx enable + + ssh_WriteReg("0x80000028", "0x" + cntrl_reg28.ToString("X8")); + reg_0x28.Text = ssh_ReadReg("0x80000028"); + } + + private void cmac_disable_Click(object sender, EventArgs e) + { + reg_0x28.Text = ssh_ReadReg("0x80000028"); + uint cntrl_reg28 = (Convert.ToUInt32(reg_0x28.Text, 16)); + cntrl_reg28 &= 0xFFFF_FFFC; // bit1:0 = 0 <= cmac disabled + + ssh_WriteReg("0x80000028", "0x" + cntrl_reg28.ToString("X8")); + reg_0x28.Text = ssh_ReadReg("0x80000028"); + } + + private void cmac_init_Click(object sender, EventArgs e) + { + cmac_1_Init(); + cmac_4_Init(); + + cmac_init.Text = "CMACs Initialized"; + cmac_init.BackColor = Color.LightGreen; + cmac_read_all_regs.PerformClick(); + + } + + private void cmac_1_Init() + { + cmac_init.Text = "CMAC_1 Initializing..."; + // RESET + ssh_WriteReg("0x81010000", "0x1"); + cmac_0_reg_0x10000.Text = ssh_ReadReg("0x81010000"); + ssh_WriteReg("0x81010000", "0xFFFFFFFF"); + cmac_0_reg_0x10000.Text = ssh_ReadReg("0x81010000"); + Thread.Sleep(5000); + ssh_WriteReg("0x81010000", "0x0"); + cmac_0_reg_0x10000.Text = ssh_ReadReg("0x81010000"); + + //#:: RX ENABLE + //#:: offset 0x14 + //#:: Set bit(0) to 1 to enable, do not modify other bits + ssh_WriteReg("0x81010014", "0x1"); + cmac_0_reg_0x10014.Text = ssh_ReadReg("0x81010014"); + + //#:: TX ENABLE + //#:: offset 0xC + //#:: Set bit(0) to 1 to enable, do not modify other bits + ssh_WriteReg("0x8101000C", "0x1"); + cmac_0_reg_0x1000C.Text = ssh_ReadReg("0x8101000C"); + + //#:: LOOPBACK MODE + //#:: 1=LB, 0=No LB + ssh_WriteReg("0x81010090", "0x0"); + cmac_0_reg_0x10090.Text = ssh_ReadReg("0x81010090"); + + //#:: Set Destination MAC address + //#:: Broadcast (not multicast, but accepted everywhere): FF:FF:FF:FF:FF:FF + //#:: IPv4 multicast (All-hosts group): 01:00:5E:00:00:01 + //#:: IPv6 multicast (All-nodes group): 33:33:00:00:00:01 + ssh_WriteReg("0x81000000", "0x5E000001"); + cmac_0_reg_0x00.Text = ssh_ReadReg("0x81000000"); + + ssh_WriteReg("0x81000004", "0x00000100"); + cmac_0_reg_0x04.Text = ssh_ReadReg("0x81000004"); + + + //#:: Set Source MAC address 02:00:00:00:00:01 + ssh_WriteReg("0x81000008", "0x00000001"); + cmac_0_reg_0x08.Text = ssh_ReadReg("0x81000008"); + ssh_WriteReg("0x8100000C", "0x00000200"); + cmac_0_reg_0x0C.Text = ssh_ReadReg("0x8100000C"); + + + + //#:: Set EtherType + //#:: 0x88B5 – IEEE “local/experimental” Ethertype (commonly used for custom payloads) + //#:: 0x0800 – IPv4 (often whitelisted by other stacks, even if the payload isn’t fully IP) + ssh_WriteReg("0x81000010", "0x000088B5"); + cmac_0_reg_0x10.Text = ssh_ReadReg("0x81000010"); + + // PROG_FULL_ON_THRESH - 0x1C + ssh_WriteReg("0x8100001C", "0x00000100"); //256 + cmac_0_reg_0x1C.Text = ssh_ReadReg("0x8100001C"); + //PROG_FULL_OFF_THRESH - 0x18 + ssh_WriteReg("0x81000018", "0x00000300"); //768 + cmac_0_reg_0x18.Text = ssh_ReadReg("0x81000018"); + } + private void cmac_4_Init() + { + cmac_init.Text = "CMAC_4 Initializing..."; + // RESET + ssh_WriteReg("0x82010000", "0x1"); + cmac_4_reg_0x10090.Text = ssh_ReadReg("0x82010000"); + ssh_WriteReg("0x82010000", "0xFFFFFFFF"); + cmac_4_reg_0x10000.Text = ssh_ReadReg("0x82010000"); + Thread.Sleep(5000); + ssh_WriteReg("0x82010000", "0x0"); + cmac_4_reg_0x10000.Text = ssh_ReadReg("0x82010000"); + + //#:: RX ENABLE + //#:: offset 0x14 + //#:: Set bit(0) to 1 to enable, do not modify other bits + ssh_WriteReg("0x82010014", "0x1"); + cmac_4_reg_0x10014.Text = ssh_ReadReg("0x82010014"); + + + //#:: TX ENABLE + //#:: offset 0xC + //#:: Set bit(0) to 1 to enable, do not modify other bits + ssh_WriteReg("0x8201000C", "0x1"); + cmac_4_reg_0x1000C.Text = ssh_ReadReg("0x8201000C"); + + + //#:: LOOPBACK MODE + //#:: 1=LB, 0=No LB + ssh_WriteReg("0x82010090", "0x0"); + cmac_4_reg_0x10090.Text = ssh_ReadReg("0x82010090"); + + //#:: Set Destination MAC address + //#:: Broadcast (not multicast, but accepted everywhere): FF:FF:FF:FF:FF:FF + //#:: IPv4 multicast (All-hosts group): 01:00:5E:00:00:01 + //#:: IPv6 multicast (All-nodes group): 33:33:00:00:00:01 + ssh_WriteReg("0x82000000", "0x5E000001"); + cmac_4_reg_0x00.Text = ssh_ReadReg("0x82000000"); + ssh_WriteReg("0x82000004", "0x00000100"); + cmac_4_reg_0x04.Text = ssh_ReadReg("0x82000004"); + + + //#:: Set Source MAC address 02:00:00:00:00:01 + ssh_WriteReg("0x82000008", "0x00000001"); + cmac_4_reg_0x08.Text = ssh_ReadReg("0x82000008"); + ssh_WriteReg("0x8200000C", "0x00000200"); + cmac_4_reg_0x0C.Text = ssh_ReadReg("0x8200000c"); + + + + //#:: Set EtherType + //#:: 0x88B5 – IEEE “local/experimental” Ethertype (commonly used for custom payloads) + //#:: 0x0800 – IPv4 (often whitelisted by other stacks, even if the payload isn’t fully IP) + ssh_WriteReg("0x82000010", "0x000088B5"); + cmac_4_reg_0x10.Text = ssh_ReadReg("0x82000010"); + + // PROG_FULL_ON_THRESH - 0x1C + ssh_WriteReg("0x8200001C", "0x00000100"); //256 + cmac_4_reg_0x1C.Text = ssh_ReadReg("0x82000018"); + //PROG_FULL_OFF_THRESH - 0x18 + ssh_WriteReg("0x82000018", "0x00000300"); //768 + cmac_4_reg_0x18.Text = ssh_ReadReg("0x82000018"); + } + + private void reg_read_Click(object sender, EventArgs e) + { + reg_data.Text = ssh_ReadReg("0x"+reg_addr.Text); + } + + private void reg_write_Click(object sender, EventArgs e) + { + ssh_WriteReg("0x"+reg_addr.Text, "0x"+reg_data.Text); + } + + private void counters_rst_Click(object sender, EventArgs e) + { + reg_0x20.Text = ssh_ReadReg("0x80000020"); + uint cntrl_reg20 = (Convert.ToUInt32(reg_0x28.Text, 16)); + cntrl_reg20 |= 0x8000_0000; // bit31: 1 <= reset + + ssh_WriteReg("0x80000020", "0x" + cntrl_reg20.ToString("X8")); + reg_0x20.Text = ssh_ReadReg("0x80000020"); + + reg_0x20.Text = ssh_ReadReg("0x80000020"); + cntrl_reg20 = (Convert.ToUInt32(reg_0x28.Text, 16)); + cntrl_reg20 &= 0x7FFF_FFFF; // bit31: 0 <= normal + + ssh_WriteReg("0x80000020", "0x" + cntrl_reg20.ToString("X8")); + reg_0x20.Text = ssh_ReadReg("0x80000020"); + + } + } +} diff --git a/Form1.resx b/Form1.resx new file mode 100644 index 0000000..74704e1 --- /dev/null +++ b/Form1.resx @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + False + + + False + + + + + /9j/4AAQSkZJRgABAQEAeAB4AAD/4QDCRXhpZgAATU0AKgAAAAgAAwE7AAIAAAANAAAAModpAAQAAAAB + AAAAQJydAAEAAAAaAAAAoAAAAABOaWNrIFNhbnRhbmEAAAAEkAMAAgAAABQAAAB2kAQAAgAAABQAAACK + kpEAAgAAAAM1NQAAkpIAAgAAAAM1NQAAAAAAADIwMjQ6MDE6MDUgMTQ6MTc6MDkAMjAyNDowMTowNSAx + NDoxNzowOQAAAE4AaQBjAGsAIABTAGEAbgB0AGEAbgBhAAAA/9sAQwAHBQUGBQQHBgUGCAcHCAoRCwoJ + CQoVDxAMERgVGhkYFRgXGx4nIRsdJR0XGCIuIiUoKSssKxogLzMvKjInKisq/9sAQwEHCAgKCQoUCwsU + KhwYHCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq/8AAEQgA + PwB+AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMF + BQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2 + Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo + qaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEB + AQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXET + IjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2Rl + ZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT + 1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+gdb13T/AA7prX+r3At7ZWClz6mu + Z/4W/wCCf+g1F+VZ3x2/5Jfc/wDXeP8Amag+HngLwxqfw+0e8vtGtZria2RpJHjBLHHU11Qp01S5533s + c8pz9pyROx8PeM9C8UyTJod8t00IBcL2zVDUvid4T0jUp7C/1WOK5t32SIR90+laui+FtF8PPK+jadBa + NKMOYkC7vyrxXRdH0/Xf2kvEFnq1rHdW+2Z/LlUEbgyYP6minTpzcnrZK4TnUiorS7PVtO+J3hDVLpbe + 11q3MrHCqxxk11JkURmTcCmM5HpXkfxU+GXhmDwLe3+nafDZXNqodXiULnnkGuh+FGp3GqfCe0lu2LyR + RvFuY5LADj+dKdOHJ7SHe2o4zlz8kzo9B8W6N4lmuYtGvFuHtW2yhf4TUmv+J9I8MWYudbvY7ZD90MeW + +gryb9n/AP5DHif/AK7/ANaz9XtofF37Rg03XzvtLUBYoXPysAAcY9yTWn1ePtXG+iVyPbP2afVnoln8 + ZPBl7drbpqRiZ22qZU2gn610mt+KNJ8PabHqGq3aw2shAWXqDnpXL/ED4daNqngu9i0vRbZL6OMG3MES + o27I4zx2zWb4Z8K6prfwRbw74mtnt7sRukQkIJUgkoePTj8qjkotKSfXUrmqJuLPSdPv7bVNPhvbGVZr + eZd0br0YVT1/xJpXhjTxe63drbQFgoZu5Neb/AfXZP7IvfDF+St1pkp2K3XYeMfhj9azviLv8efFrSfB + 9sd9rZET3ZHKjjcc/wDAePrTVBKq4S2WvyB1v3akt2evLrentoq6s1ykdkyeYJXOBt9a5CT41eCo5zF/ + aLMAcb1jyv55rkPj9PJb6doGiRsYrCWQ+ZjgHbtA/LJ/OvQtO+HvhSHw/DYJpFnPCYgplaJSz8fe3evv + QqdOMFOd9Q55yk4x6G9pOsWGuael7pV1Hc279HQ5q7XkHwe8Na54W8UeIbS9sZbfSpHDWrOwKk7jyAD6 + ba9frGrBQnaLujSnJyjdo84+O3/JL7n/AK7x/wAzXJ+DPiJ4l0rwbpllY+BtSvoIYFVLmKJisgx1HFdZ + 8dv+SX3P/XeP+Zra+Fv/ACTHQv8Ar0T+VdMZRjh1dX1MGm67s7aEngrxRq3iWG5fWPD11orRMAi3KFfM + GByM14wmuX3h79oPxBe6XpFxrE+ZY/s1upZgCyktx2GB+dfSFeF+D/8Ak6DxB/1yn/8AQo6KEo++7aW2 + Csn7iv1Mv4g/ETxDr1hHoer6NN4ZsLx1EtzdwuCQDnjPbivZfCekWWheAbSx0ycXNulsSs4OfMyOvFc9 + 8cbOK6+F988kYZ4njZGxyvzirnwtmM3wh0wsclbZl5/GibUqCcVbXYcU41WnrocR+z//AMhjxP8A9d/6 + 1tfE/wCGl/q+qxeKPCUzQaxbqN0YIHmY5BHv/wDWrF/Z/wD+Qx4n/wCu/wDWu90n4jWWq+PLvwstpLFc + 2wJMjH5WwM8fnVVXONeUodCaahKkoy6nH+EPjU0d4uiePrRtM1BCI/OdCgJ/2geh9+BXsEciSxrJEwdH + AZWU5BB71wPxb8IaVrfgy/vriBUvbSPzIrgDBGCOD6ioPgZqt1qfw2txeOXNvI0SMepXOR/PFZVIwnT9 + rBW7o0hKUZ8ktTjPHZl+Gvxft/FNqjfYdRjcTqo4Ld/12/ka6P4KaPNcQ6l4w1FT9q1edzGWHIj3H/D8 + qP2hUU+AbZioLC+QA+nytXe+DkWPwToyxqFH2GHgD/YFaTqXw6fV6fcRGFqzXRa/eZfxG8CweO/DoszJ + 5F3A3mW8390+h9jx+VeY6F8QvEvwxu49A8d2Ek2np+7gugpyFHAw3Rhj8a9L8XfEWz8Ia5p+m3lpLK18 + cLIp4XnHNdBrWg6b4i02Sy1a2S4hkBHzDlfcHsazhNwgo1FeL/rQuUFKTlB2kh2ja1p/iDTI9Q0m5S5t + 5BwyHOD6H0NX68H+CEk2k/EHxF4filaSyiOUUnIUgnn8sD8K94rKtTVOfKi6U+eN2cZ8VPDuoeKfA02m + 6RGsly8qMFZsDA61wmkad8Y9D0e20zTksEtraMRxhljJAHvXtkj7ImbrtBNcXH4r1tPD8evXFrZmwYqW + jTcJArMAOScZ5Hap+teyjyNJrfY6aWAniW5wdnot7Xb2Q3wI/j9r65/4Tj7L9n2DyfJVQd3fpWJ4d8D6 + 3p3xy1fxJcwoum3SSrG4cEksyEcfga6j+39Z1DXr2y0mKzSK1VG3XAYltyg9iPWtXV9Wm0Tw1LqF1Gkk + 0SDcqcLknHfoOalYr4mlZbFyy+pGUIN3k7WV9ddr/eZ/xD0K68R+BtQ0zT1VriZR5YY4BIOap/DjQdT0 + D4eQ6Tq8ax3UQddqtkYI45rQ0/V9WS4jOrQW8llLCZRdWudkeBnDZJ7DrVaHW/EOo2J1PTLK0+xHLRRS + sfMlUd85wOh7VH1n3OT5mn9nT5+a67Xvpr09dGc38I/BWteE9R1yXWYUjS8l3RbXDZGapeN/h1r9v40T + xf4Elj+3HBlt3IG4+2eMEY4NdvaeLk1C70ZbSHEWoht2/wC9GVUkj65GKv6lq8llrul2KRqy3pkDMeq7 + QDx+darGNydRehjLLqkbUpKzs3917/kzynVrX4teNLL+xtS0y20iynIWebzUbcvX+Ek16h4O8L23g/wx + a6RaHeIQS8n99ick/rS3mr3a+Iv7Js44t7WjTo8mcbgyjBwenzGs/SNZ8QX2r3ttcRWCx2EyxzlA2Wyi + tlfm9GqamK5lyJWV+ncunl0+V1W1tfV9L2/Mzfi/4W1Txb4RhsNFjWSdbpJSGbb8oDD+tdZ4es5tP8M6 + bZ3ICzW9rHHIAc4YKAf5VhweL7m90/TUsbWN9S1BWdY2J2RopALH8x+dWYdd1Kx1NdO1yCHzJ4ne3mtw + djlVLFSCTg4BqPrKlBQ6f5mjy2tCTk99dL62W7/Mx/il8PX8b6XbyafMsGpWTFoHbgMDjIP5CuUi1D40 + QaeNO/sa3kdV8sXpljzjpuxnrXc6X42/tHwze3rW4ivLNSzwHOGXJAYexwfyNOfxJqV7qcVhpaWkU32V + bhzck/PkD5VAI9etXDGJQSsmugpZTX9pK/utb69v+HRlfC/4cy+DkvNR1a4W41bUCGmZeQgyTgfiTXoN + UtIvLi+01Jr21a1nyVeJh0IOMj2PWrtEqjqvnfU5PZexfs+wyYFoHA5JU4rzi18EfZvDenanDZsNVtHW + WS3bkTdiCPXBJH0r0qisJ04z3O7C46rhU1T6tX87X09Hc4q18MWur+LtVvdZ0sSQyrEYWlH+wuRwfXNd + FrUdxHociabbRzsoA8h+jr3H5Vp0U401FNLqKpjKlScJS2jay1tokvxsefafpMV9rSromlXukWTwSxXw + mARHDIQAFyckMQe1XdP1XUdE0ZdGuNFvJ72FTHFJAoMUg7HcSCOvPFdpRUKjy7M6KmY+10qQutN273V9 + W93vb0see/2ZfeHJPD89xaT3rW5ke6Fmgba7q2cZI4ya0tUuri/n0rXbbS73y7CaRZbeSMCUqwX5gM4P + T1rsKKFRsrJ6ClmLnJTnBOSur9073VvmzldJa51jxg+sGxns7SG1MCfaQFeRmZSTgZ4G31qxollcQa54 + ilmiZUuLpGiY/wAYEKDI/EGuioqlTtuzGeMcrqMbJpL0Saf6Hn2maTqWjW+iasLKSZrSCS3ubZP9ZtYg + 7lHcjb0960ZGvPEus215HYXFpZ2MUpH2lAryyMjLgAE8c9a7CipVFJWvobTzGU5ObiubVX7J3v8Amzzi + 78M6ivgmzudPt9upxQtDPCessZcnH1Hb6mruo26J9ng1/QJdQtFt0FvLbJukjfbghuRjviu6opewXQv+ + 1ajfvLq3u09fNdunloYXg+31C28Pomqbw+9jEkjZZI8/KD74rdooraMeWKR5taq61SVRq12f/9k= + + + \ No newline at end of file diff --git a/Program.cs b/Program.cs new file mode 100644 index 0000000..e0c049c --- /dev/null +++ b/Program.cs @@ -0,0 +1,22 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace uartTestGUI +{ + static class Program + { + /// + /// The main entry point for the application. + /// + [STAThread] + static void Main() + { + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Form1()); + } + } +} diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..d79d179 --- /dev/null +++ b/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("uartTestGUI")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("uartTestGUI")] +[assembly: AssemblyCopyright("Copyright © 2020")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("13b69149-489f-486c-a625-a0f8c3595025")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Properties/Resources.Designer.cs b/Properties/Resources.Designer.cs new file mode 100644 index 0000000..18430d7 --- /dev/null +++ b/Properties/Resources.Designer.cs @@ -0,0 +1,71 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace uartTestGUI.Properties +{ + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources + { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() + { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager + { + get + { + if ((resourceMan == null)) + { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("uartTestGUI.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture + { + get + { + return resourceCulture; + } + set + { + resourceCulture = value; + } + } + } +} diff --git a/Properties/Resources.resx b/Properties/Resources.resx new file mode 100644 index 0000000..af7dbeb --- /dev/null +++ b/Properties/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Properties/Settings.Designer.cs b/Properties/Settings.Designer.cs new file mode 100644 index 0000000..49085d1 --- /dev/null +++ b/Properties/Settings.Designer.cs @@ -0,0 +1,30 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace uartTestGUI.Properties +{ + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase + { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default + { + get + { + return defaultInstance; + } + } + } +} diff --git a/Properties/Settings.settings b/Properties/Settings.settings new file mode 100644 index 0000000..3964565 --- /dev/null +++ b/Properties/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/erisys_logo.jpg b/erisys_logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..79827215ac59783ef9adf785826c453aae8b081b GIT binary patch literal 5393 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 OSTiVX`qUwlKKwV>Wg0I4 literal 0 HcmV?d00001 diff --git a/packages.config b/packages.config new file mode 100644 index 0000000..d349f84 --- /dev/null +++ b/packages.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/quadRT_CMAC_TestGUI.csproj b/quadRT_CMAC_TestGUI.csproj new file mode 100644 index 0000000..97d6b44 --- /dev/null +++ b/quadRT_CMAC_TestGUI.csproj @@ -0,0 +1,163 @@ + + + + + Debug + AnyCPU + {13B69149-489F-486C-A625-A0F8C3595025} + WinExe + uartTestGUI + quadRT_CMAC_TestGUI + v4.7.2 + 512 + true + true + false + C:\erisys\Alinx_Z19_MISC\quadRT_TestGUI\publish\ + true + Disk + false + Foreground + 7 + Days + false + false + true + 1 + 1.0.0.%2a + false + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + 02D86ACA016F73FD78CB79BCDD9B8129DD453E3B + + + uartTestGUI_TemporaryKey.pfx + + + true + + + true + + + + packages\BouncyCastle.Cryptography.2.6.2\lib\net461\BouncyCastle.Cryptography.dll + + + packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + + packages\Microsoft.Extensions.DependencyInjection.Abstractions.8.0.2\lib\net462\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + + packages\Microsoft.Extensions.Logging.Abstractions.8.0.3\lib\net462\Microsoft.Extensions.Logging.Abstractions.dll + + + packages\SSH.NET.2025.1.0\lib\net462\Renci.SshNet.dll + + + + packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + + packages\System.Formats.Asn1.8.0.2\lib\net462\System.Formats.Asn1.dll + + + packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + + packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + packages\System.Runtime.CompilerServices.Unsafe.4.5.3\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + + + + + + + + + + + + + + + Form + + + Form1.cs + + + + + Form1.cs + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + + + False + Microsoft .NET Framework 4.7.2 %28x86 and x64%29 + true + + + False + .NET Framework 3.5 SP1 + false + + + + \ No newline at end of file diff --git a/quadRT_CMAC_TestGUI.sln b/quadRT_CMAC_TestGUI.sln new file mode 100644 index 0000000..e75c13f --- /dev/null +++ b/quadRT_CMAC_TestGUI.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29215.179 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "quadRT_CMAC_TestGUI", "quadRT_CMAC_TestGUI.csproj", "{13B69149-489F-486C-A625-A0F8C3595025}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {13B69149-489F-486C-A625-A0F8C3595025}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {13B69149-489F-486C-A625-A0F8C3595025}.Debug|Any CPU.Build.0 = Debug|Any CPU + {13B69149-489F-486C-A625-A0F8C3595025}.Release|Any CPU.ActiveCfg = Release|Any CPU + {13B69149-489F-486C-A625-A0F8C3595025}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {FC4A8BE8-072D-43F6-B98D-934EFB2AAE12} + EndGlobalSection +EndGlobal diff --git a/uartTestGUI_TemporaryKey.pfx b/uartTestGUI_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..994eb37ee62355a5cef74c66ce7c2f86331c7866 GIT binary patch literal 1700 zcmZXTeK^zWAIHC&8J1|;juLXhVOX~1xilM#JZsF;kjPkMM`=UaX}TPzg_@|7m^}P) z$V1Zdt2~@Ib;XPtjZRh`CpwZEDsjHK&cpS)e%F0{?)&|DeLkQ2y8pP}I3BzV3Q@uF z;B>f#MYc!w(ng3Hq>Kmmf$`w`K}^B%R7C$%Qn?P}sZ@Yi2u3k{!(UUH2ne){2NmIX z&?cNd9Pu{>FV}*pBUu8S@p6<13RUZe@u25j8l@hGbfApRR}>>(mrdmpmFXQ>b6OaE z8vUe>A4j(#Ni{UgCzum0STRV$>2Hk4H;moMdbC1_2BBq0?Bip;g zwU|>8iqzcl%_E_uYHfsjJX0^kfc^`4Kul)52^`XLP zqVRLA%+l?3#mY+k$>h0)l4#?jSkiax2IqqUZHgZ>v58{GP@*UI&J^SKJ2jyXl|OYnQJ%@G z&ph|$S1U$d&)WtEM6!zFW`bv|IkBeu!B2|?ck2}A@RPq;O$O{8);3Cv(A0ol3aiYztA~c;@-;3V&R@f5S)|jsPPO-v z;Px-QkRM*OKj+aM$ZzwUTLfFsl%hjB87q+z8H zxT^lMe6r7+NeV`CKTz1xQ^4+Iu0&jfFo_bA;X{KD>(`dkN>=0 z4Gx-<1ES+l2ml^Q|5hOXZ&x|hwt2>nWA)XpKk%R~vhwE%q_)y1`P~(JwM4LQKYB4UOKgiRqcVPQy5GZ-QAVsyKQ{n@Pb8r^4rS5S z!vV-|=nt9wiCleDO1Ec-_Q!1n!kb1*Ve(_X=!}x>oa+g7yD3MspoxPUf|u@%h`dVr6t)o^ZHy;r?3Ovwp3mdHGOq zvQRJPcuIelaC(PZSfAq#svrkpCl(nyww>6Mo9z4IKQob`%T5+%ImUy(n7|VU{2sr( z5}}>ZE4_L{TGZ0*uai)r$gRjYI2Y$N>GHnM{(BqOi97SI3hC74rUYvEY&|hghkZ}C ztBS7~k666Aq_;HfcbJH^T{@|4pS;Hlee(W?a^Q0m!Wl|b7)q}9p+=#h)E{a`PsL< zmXfRGhhM4=*!>*Q>UbgKHZ65m+UVnx*@H#~;;3t~rqYaQ2yQoSJ5CL*YN@3H)q|lT wfhtVf_7MhpujU!k{M0id^4=^Ms+HN;%SG6=+C62ONM}4O;u|Noef@xc0(bP`s{jB1 literal 0 HcmV?d00001 diff --git a/unhandled exception.JPG b/unhandled exception.JPG new file mode 100644 index 0000000000000000000000000000000000000000..ed1c4bd79ae627874491064a57bc4e0a145db2bb GIT binary patch literal 70473 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 #gpnD>{(4_D@*TW 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 literal 0 HcmV?d00001