From 5a8b9e291de440a31cb7ac22ce4d46054b51eb99 Mon Sep 17 00:00:00 2001 From: Dirk Wieschebrock Date: Wed, 2 Oct 2019 14:34:18 +0200 Subject: [PATCH 1/2] Possible Bugfix: Unable Bug: Unable to save c file with different file name #157to save c file with different file name #157 The filename is extracted from dialog without extension. Extenions ".c" ".h" used as standard extensions --- EDSTest/Form1.Designer.cs | 547 ++-- EDSTest/Form1.cs | 4 +- EDSTest/Form1.resx | 592 ++-- libEDSsharp/CanOpenNodeExporter.cs | 39 +- libEDSsharp/docs/libEDSsharp.xml | 4853 ++++++++++++++-------------- 5 files changed, 3019 insertions(+), 3016 deletions(-) diff --git a/EDSTest/Form1.Designer.cs b/EDSTest/Form1.Designer.cs index 80db1dda..2bbb3209 100644 --- a/EDSTest/Form1.Designer.cs +++ b/EDSTest/Form1.Designer.cs @@ -28,280 +28,277 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ODEditor_MainForm)); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openCanOpenNodeXMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveProjectXMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportDeviceFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); - this.loadNetworkXmlToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveNetworkXmlToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); - this.mnuRecentlyUsed = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.saveExportAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportCanOpenNodeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); - this.closeFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); - this.quitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.insertToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.reportsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.documentationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.networkPDOToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.insertToolStripMenuItem, - this.reportsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Padding = new System.Windows.Forms.Padding(8, 2, 0, 2); - this.menuStrip1.Size = new System.Drawing.Size(1599, 28); - this.menuStrip1.TabIndex = 1; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.newToolStripMenuItem, - this.openCanOpenNodeXMLToolStripMenuItem, - this.saveProjectXMLToolStripMenuItem, - this.saveAsToolStripMenuItem, - this.exportDeviceFileToolStripMenuItem, - this.toolStripSeparator3, - this.toolStripSeparator5, - this.loadNetworkXmlToolStripMenuItem, - this.saveNetworkXmlToolStripMenuItem, - this.toolStripSeparator6, - this.mnuRecentlyUsed, - this.toolStripSeparator1, - this.saveExportAllToolStripMenuItem, - this.exportCanOpenNodeToolStripMenuItem, - this.toolStripSeparator2, - this.toolStripSeparator7, - this.closeFileToolStripMenuItem, - this.toolStripSeparator4, - this.quitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(44, 24); - this.fileToolStripMenuItem.Text = "File"; - // - // newToolStripMenuItem - // - this.newToolStripMenuItem.Image = global::ODEditor.Properties.Resources.NewFile_6276; - this.newToolStripMenuItem.Name = "newToolStripMenuItem"; - this.newToolStripMenuItem.Size = new System.Drawing.Size(288, 26); - this.newToolStripMenuItem.Text = "&New"; - this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); - // - // openCanOpenNodeXMLToolStripMenuItem - // - this.openCanOpenNodeXMLToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Open_6529; - this.openCanOpenNodeXMLToolStripMenuItem.Name = "openCanOpenNodeXMLToolStripMenuItem"; - this.openCanOpenNodeXMLToolStripMenuItem.Size = new System.Drawing.Size(288, 26); - this.openCanOpenNodeXMLToolStripMenuItem.Text = "&Open"; - this.openCanOpenNodeXMLToolStripMenuItem.Click += new System.EventHandler(this.openCanOpenNodeXMLToolStripMenuItem_Click); - // - // saveProjectXMLToolStripMenuItem - // - this.saveProjectXMLToolStripMenuItem.Enabled = false; - this.saveProjectXMLToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Save_6530; - this.saveProjectXMLToolStripMenuItem.Name = "saveProjectXMLToolStripMenuItem"; - this.saveProjectXMLToolStripMenuItem.Size = new System.Drawing.Size(288, 26); - this.saveProjectXMLToolStripMenuItem.Text = "&Save"; - this.saveProjectXMLToolStripMenuItem.Click += new System.EventHandler(this.saveProjectXMLToolStripMenuItem_Click); - // - // exportDeviceFileToolStripMenuItem - // - this.exportDeviceFileToolStripMenuItem.Enabled = false; - this.exportDeviceFileToolStripMenuItem.Name = "exportDeviceFileToolStripMenuItem"; - this.exportDeviceFileToolStripMenuItem.Size = new System.Drawing.Size(288, 26); - this.exportDeviceFileToolStripMenuItem.Text = "Export Device File"; - this.exportDeviceFileToolStripMenuItem.Click += new System.EventHandler(this.exportDeviceFileToolStripMenuItem_Click); - // - // toolStripSeparator3 - // - this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(285, 6); - // - // toolStripSeparator5 - // - this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(285, 6); - // - // loadNetworkXmlToolStripMenuItem - // - this.loadNetworkXmlToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Open_6529; - this.loadNetworkXmlToolStripMenuItem.Name = "loadNetworkXmlToolStripMenuItem"; - this.loadNetworkXmlToolStripMenuItem.Size = new System.Drawing.Size(288, 26); - this.loadNetworkXmlToolStripMenuItem.Text = "Open Network XML"; - this.loadNetworkXmlToolStripMenuItem.Click += new System.EventHandler(this.loadNetworkXmlToolStripMenuItem_Click); - // - // saveNetworkXmlToolStripMenuItem - // - this.saveNetworkXmlToolStripMenuItem.Enabled = false; - this.saveNetworkXmlToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Save_6530; - this.saveNetworkXmlToolStripMenuItem.Name = "saveNetworkXmlToolStripMenuItem"; - this.saveNetworkXmlToolStripMenuItem.Size = new System.Drawing.Size(288, 26); - this.saveNetworkXmlToolStripMenuItem.Text = "Save Network XML"; - this.saveNetworkXmlToolStripMenuItem.Click += new System.EventHandler(this.saveNetworkXmlToolStripMenuItem_Click); - // - // toolStripSeparator6 - // - this.toolStripSeparator6.Name = "toolStripSeparator6"; - this.toolStripSeparator6.Size = new System.Drawing.Size(285, 6); - // - // mnuRecentlyUsed - // - this.mnuRecentlyUsed.Name = "mnuRecentlyUsed"; - this.mnuRecentlyUsed.Size = new System.Drawing.Size(288, 26); - this.mnuRecentlyUsed.Text = "Recent Files"; - // - // toolStripSeparator1 - // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(285, 6); - // - // saveExportAllToolStripMenuItem - // - this.saveExportAllToolStripMenuItem.Enabled = false; - this.saveExportAllToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Save_6530; - this.saveExportAllToolStripMenuItem.Name = "saveExportAllToolStripMenuItem"; - this.saveExportAllToolStripMenuItem.Size = new System.Drawing.Size(288, 26); - this.saveExportAllToolStripMenuItem.Text = "Save eds + xml+ Export device"; - this.saveExportAllToolStripMenuItem.Click += new System.EventHandler(this.saveExportAllToolStripMenuItem_Click); - // - // exportCanOpenNodeToolStripMenuItem - // - this.exportCanOpenNodeToolStripMenuItem.Enabled = false; - this.exportCanOpenNodeToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Compile_191; - this.exportCanOpenNodeToolStripMenuItem.Name = "exportCanOpenNodeToolStripMenuItem"; - this.exportCanOpenNodeToolStripMenuItem.Size = new System.Drawing.Size(288, 26); - this.exportCanOpenNodeToolStripMenuItem.Text = "Export CanOpenNode c/h"; - this.exportCanOpenNodeToolStripMenuItem.Click += new System.EventHandler(this.exportCanOpenNodeToolStripMenuItem_Click); - // - // toolStripSeparator2 - // - this.toolStripSeparator2.Name = "toolStripSeparator2"; - this.toolStripSeparator2.Size = new System.Drawing.Size(285, 6); - // - // toolStripSeparator7 - // - this.toolStripSeparator7.Name = "toolStripSeparator7"; - this.toolStripSeparator7.Size = new System.Drawing.Size(285, 6); - // - // closeFileToolStripMenuItem - // - this.closeFileToolStripMenuItem.Enabled = false; - this.closeFileToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Close_6519; - this.closeFileToolStripMenuItem.Name = "closeFileToolStripMenuItem"; - this.closeFileToolStripMenuItem.Size = new System.Drawing.Size(288, 26); - this.closeFileToolStripMenuItem.Text = "Close file"; - this.closeFileToolStripMenuItem.Click += new System.EventHandler(this.closeFileToolStripMenuItem_Click); - // - // toolStripSeparator4 - // - this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(285, 6); - // - // quitToolStripMenuItem - // - this.quitToolStripMenuItem.Image = global::ODEditor.Properties.Resources._305_Close_16x16_72; - this.quitToolStripMenuItem.Name = "quitToolStripMenuItem"; - this.quitToolStripMenuItem.Size = new System.Drawing.Size(288, 26); - this.quitToolStripMenuItem.Text = "Quit"; - this.quitToolStripMenuItem.Click += new System.EventHandler(this.quitToolStripMenuItem_Click); - // - // insertToolStripMenuItem - // - this.insertToolStripMenuItem.Name = "insertToolStripMenuItem"; - this.insertToolStripMenuItem.Size = new System.Drawing.Size(104, 24); - this.insertToolStripMenuItem.Text = "Insert Profile"; - // - // reportsToolStripMenuItem - // - this.reportsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.documentationToolStripMenuItem, - this.networkPDOToolStripMenuItem}); - this.reportsToolStripMenuItem.Name = "reportsToolStripMenuItem"; - this.reportsToolStripMenuItem.Size = new System.Drawing.Size(72, 24); - this.reportsToolStripMenuItem.Text = "Reports"; - // - // documentationToolStripMenuItem - // - this.documentationToolStripMenuItem.Enabled = false; - this.documentationToolStripMenuItem.Image = global::ODEditor.Properties.Resources.ExporttoScript_9881; - this.documentationToolStripMenuItem.Name = "documentationToolStripMenuItem"; - this.documentationToolStripMenuItem.Size = new System.Drawing.Size(187, 26); - this.documentationToolStripMenuItem.Text = "Documentation"; - this.documentationToolStripMenuItem.Click += new System.EventHandler(this.documentationToolStripMenuItem_Click); - // - // networkPDOToolStripMenuItem - // - this.networkPDOToolStripMenuItem.Enabled = false; - this.networkPDOToolStripMenuItem.Image = global::ODEditor.Properties.Resources.ExporttoScript_9881; - this.networkPDOToolStripMenuItem.Name = "networkPDOToolStripMenuItem"; - this.networkPDOToolStripMenuItem.Size = new System.Drawing.Size(187, 26); - this.networkPDOToolStripMenuItem.Text = "Network PDO"; - this.networkPDOToolStripMenuItem.Click += new System.EventHandler(this.networkPDOToolStripMenuItem_Click); - // - // tabControl1 - // - this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left; - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed; - this.tabControl1.ItemSize = new System.Drawing.Size(24, 120); - this.tabControl1.Location = new System.Drawing.Point(0, 28); - this.tabControl1.Margin = new System.Windows.Forms.Padding(4); - this.tabControl1.Multiline = true; - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(1599, 909); - this.tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; - this.tabControl1.TabIndex = 2; - this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tabControl1_DrawItem); - this.tabControl1.ControlAdded += new System.Windows.Forms.ControlEventHandler(this.tabControl1_ControlsChanged); - this.tabControl1.ControlRemoved += new System.Windows.Forms.ControlEventHandler(this.tabControl1_Controlsremoved); - // - // saveAsToolStripMenuItem - // - this.saveAsToolStripMenuItem.Enabled = false; - this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; - this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(288, 26); - this.saveAsToolStripMenuItem.Text = "Save As"; - this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); - // - // ODEditor_MainForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1599, 937); - this.Controls.Add(this.tabControl1); - this.Controls.Add(this.menuStrip1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Margin = new System.Windows.Forms.Padding(4); - this.Name = "ODEditor_MainForm"; - this.Text = "Object Dictionary Editor "; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ODEditor_MainForm_FormClosing); - this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.ODEditor_MainForm_FormClosed); - this.Load += new System.EventHandler(this.ODEditor_MainForm_Load); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ODEditor_MainForm)); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.openCanOpenNodeXMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveProjectXMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.exportDeviceFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + this.loadNetworkXmlToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.saveNetworkXmlToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator6 = new System.Windows.Forms.ToolStripSeparator(); + this.mnuRecentlyUsed = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.saveExportAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.exportCanOpenNodeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); + this.closeFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.quitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.insertToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.reportsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.documentationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.networkPDOToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.menuStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // menuStrip1 + // + this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.fileToolStripMenuItem, + this.insertToolStripMenuItem, + this.reportsToolStripMenuItem}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(1199, 24); + this.menuStrip1.TabIndex = 1; + this.menuStrip1.Text = "menuStrip1"; + // + // fileToolStripMenuItem + // + this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.newToolStripMenuItem, + this.openCanOpenNodeXMLToolStripMenuItem, + this.saveProjectXMLToolStripMenuItem, + this.saveAsToolStripMenuItem, + this.exportDeviceFileToolStripMenuItem, + this.toolStripSeparator3, + this.toolStripSeparator5, + this.loadNetworkXmlToolStripMenuItem, + this.saveNetworkXmlToolStripMenuItem, + this.toolStripSeparator6, + this.mnuRecentlyUsed, + this.toolStripSeparator1, + this.saveExportAllToolStripMenuItem, + this.exportCanOpenNodeToolStripMenuItem, + this.toolStripSeparator2, + this.toolStripSeparator7, + this.closeFileToolStripMenuItem, + this.toolStripSeparator4, + this.quitToolStripMenuItem}); + this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; + this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); + this.fileToolStripMenuItem.Text = "File"; + // + // newToolStripMenuItem + // + this.newToolStripMenuItem.Image = global::ODEditor.Properties.Resources.NewFile_6276; + this.newToolStripMenuItem.Name = "newToolStripMenuItem"; + this.newToolStripMenuItem.Size = new System.Drawing.Size(237, 26); + this.newToolStripMenuItem.Text = "&New"; + this.newToolStripMenuItem.Click += new System.EventHandler(this.newToolStripMenuItem_Click); + // + // openCanOpenNodeXMLToolStripMenuItem + // + this.openCanOpenNodeXMLToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Open_6529; + this.openCanOpenNodeXMLToolStripMenuItem.Name = "openCanOpenNodeXMLToolStripMenuItem"; + this.openCanOpenNodeXMLToolStripMenuItem.Size = new System.Drawing.Size(237, 26); + this.openCanOpenNodeXMLToolStripMenuItem.Text = "&Open"; + this.openCanOpenNodeXMLToolStripMenuItem.Click += new System.EventHandler(this.openCanOpenNodeXMLToolStripMenuItem_Click); + // + // saveProjectXMLToolStripMenuItem + // + this.saveProjectXMLToolStripMenuItem.Enabled = false; + this.saveProjectXMLToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Save_6530; + this.saveProjectXMLToolStripMenuItem.Name = "saveProjectXMLToolStripMenuItem"; + this.saveProjectXMLToolStripMenuItem.Size = new System.Drawing.Size(237, 26); + this.saveProjectXMLToolStripMenuItem.Text = "&Save"; + this.saveProjectXMLToolStripMenuItem.Click += new System.EventHandler(this.saveProjectXMLToolStripMenuItem_Click); + // + // saveAsToolStripMenuItem + // + this.saveAsToolStripMenuItem.Enabled = false; + this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; + this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(237, 26); + this.saveAsToolStripMenuItem.Text = "Save As"; + this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); + // + // exportDeviceFileToolStripMenuItem + // + this.exportDeviceFileToolStripMenuItem.Enabled = false; + this.exportDeviceFileToolStripMenuItem.Name = "exportDeviceFileToolStripMenuItem"; + this.exportDeviceFileToolStripMenuItem.Size = new System.Drawing.Size(237, 26); + this.exportDeviceFileToolStripMenuItem.Text = "Export Device File"; + this.exportDeviceFileToolStripMenuItem.Click += new System.EventHandler(this.exportDeviceFileToolStripMenuItem_Click); + // + // toolStripSeparator3 + // + this.toolStripSeparator3.Name = "toolStripSeparator3"; + this.toolStripSeparator3.Size = new System.Drawing.Size(234, 6); + // + // toolStripSeparator5 + // + this.toolStripSeparator5.Name = "toolStripSeparator5"; + this.toolStripSeparator5.Size = new System.Drawing.Size(234, 6); + // + // loadNetworkXmlToolStripMenuItem + // + this.loadNetworkXmlToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Open_6529; + this.loadNetworkXmlToolStripMenuItem.Name = "loadNetworkXmlToolStripMenuItem"; + this.loadNetworkXmlToolStripMenuItem.Size = new System.Drawing.Size(237, 26); + this.loadNetworkXmlToolStripMenuItem.Text = "Open Network XML"; + this.loadNetworkXmlToolStripMenuItem.Click += new System.EventHandler(this.loadNetworkXmlToolStripMenuItem_Click); + // + // saveNetworkXmlToolStripMenuItem + // + this.saveNetworkXmlToolStripMenuItem.Enabled = false; + this.saveNetworkXmlToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Save_6530; + this.saveNetworkXmlToolStripMenuItem.Name = "saveNetworkXmlToolStripMenuItem"; + this.saveNetworkXmlToolStripMenuItem.Size = new System.Drawing.Size(237, 26); + this.saveNetworkXmlToolStripMenuItem.Text = "Save Network XML"; + this.saveNetworkXmlToolStripMenuItem.Click += new System.EventHandler(this.saveNetworkXmlToolStripMenuItem_Click); + // + // toolStripSeparator6 + // + this.toolStripSeparator6.Name = "toolStripSeparator6"; + this.toolStripSeparator6.Size = new System.Drawing.Size(234, 6); + // + // mnuRecentlyUsed + // + this.mnuRecentlyUsed.Name = "mnuRecentlyUsed"; + this.mnuRecentlyUsed.Size = new System.Drawing.Size(237, 26); + this.mnuRecentlyUsed.Text = "Recent Files"; + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(234, 6); + // + // saveExportAllToolStripMenuItem + // + this.saveExportAllToolStripMenuItem.Enabled = false; + this.saveExportAllToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Save_6530; + this.saveExportAllToolStripMenuItem.Name = "saveExportAllToolStripMenuItem"; + this.saveExportAllToolStripMenuItem.Size = new System.Drawing.Size(237, 26); + this.saveExportAllToolStripMenuItem.Text = "Save eds + xml+ Export device"; + this.saveExportAllToolStripMenuItem.Click += new System.EventHandler(this.saveExportAllToolStripMenuItem_Click); + // + // exportCanOpenNodeToolStripMenuItem + // + this.exportCanOpenNodeToolStripMenuItem.Enabled = false; + this.exportCanOpenNodeToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Compile_191; + this.exportCanOpenNodeToolStripMenuItem.Name = "exportCanOpenNodeToolStripMenuItem"; + this.exportCanOpenNodeToolStripMenuItem.Size = new System.Drawing.Size(237, 26); + this.exportCanOpenNodeToolStripMenuItem.Text = "Export CanOpenNode c/h"; + this.exportCanOpenNodeToolStripMenuItem.Click += new System.EventHandler(this.exportCanOpenNodeToolStripMenuItem_Click); + // + // toolStripSeparator2 + // + this.toolStripSeparator2.Name = "toolStripSeparator2"; + this.toolStripSeparator2.Size = new System.Drawing.Size(234, 6); + // + // toolStripSeparator7 + // + this.toolStripSeparator7.Name = "toolStripSeparator7"; + this.toolStripSeparator7.Size = new System.Drawing.Size(234, 6); + // + // closeFileToolStripMenuItem + // + this.closeFileToolStripMenuItem.Enabled = false; + this.closeFileToolStripMenuItem.Image = global::ODEditor.Properties.Resources.Close_6519; + this.closeFileToolStripMenuItem.Name = "closeFileToolStripMenuItem"; + this.closeFileToolStripMenuItem.Size = new System.Drawing.Size(237, 26); + this.closeFileToolStripMenuItem.Text = "Close file"; + this.closeFileToolStripMenuItem.Click += new System.EventHandler(this.closeFileToolStripMenuItem_Click); + // + // toolStripSeparator4 + // + this.toolStripSeparator4.Name = "toolStripSeparator4"; + this.toolStripSeparator4.Size = new System.Drawing.Size(234, 6); + // + // quitToolStripMenuItem + // + this.quitToolStripMenuItem.Image = global::ODEditor.Properties.Resources._305_Close_16x16_72; + this.quitToolStripMenuItem.Name = "quitToolStripMenuItem"; + this.quitToolStripMenuItem.Size = new System.Drawing.Size(237, 26); + this.quitToolStripMenuItem.Text = "Quit"; + this.quitToolStripMenuItem.Click += new System.EventHandler(this.quitToolStripMenuItem_Click); + // + // insertToolStripMenuItem + // + this.insertToolStripMenuItem.Name = "insertToolStripMenuItem"; + this.insertToolStripMenuItem.Size = new System.Drawing.Size(85, 20); + this.insertToolStripMenuItem.Text = "Insert Profile"; + // + // reportsToolStripMenuItem + // + this.reportsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.documentationToolStripMenuItem, + this.networkPDOToolStripMenuItem}); + this.reportsToolStripMenuItem.Name = "reportsToolStripMenuItem"; + this.reportsToolStripMenuItem.Size = new System.Drawing.Size(59, 20); + this.reportsToolStripMenuItem.Text = "Reports"; + // + // documentationToolStripMenuItem + // + this.documentationToolStripMenuItem.Enabled = false; + this.documentationToolStripMenuItem.Image = global::ODEditor.Properties.Resources.ExporttoScript_9881; + this.documentationToolStripMenuItem.Name = "documentationToolStripMenuItem"; + this.documentationToolStripMenuItem.Size = new System.Drawing.Size(157, 22); + this.documentationToolStripMenuItem.Text = "Documentation"; + this.documentationToolStripMenuItem.Click += new System.EventHandler(this.documentationToolStripMenuItem_Click); + // + // networkPDOToolStripMenuItem + // + this.networkPDOToolStripMenuItem.Enabled = false; + this.networkPDOToolStripMenuItem.Image = global::ODEditor.Properties.Resources.ExporttoScript_9881; + this.networkPDOToolStripMenuItem.Name = "networkPDOToolStripMenuItem"; + this.networkPDOToolStripMenuItem.Size = new System.Drawing.Size(157, 22); + this.networkPDOToolStripMenuItem.Text = "Network PDO"; + this.networkPDOToolStripMenuItem.Click += new System.EventHandler(this.networkPDOToolStripMenuItem_Click); + // + // tabControl1 + // + this.tabControl1.Alignment = System.Windows.Forms.TabAlignment.Left; + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.DrawMode = System.Windows.Forms.TabDrawMode.OwnerDrawFixed; + this.tabControl1.ItemSize = new System.Drawing.Size(24, 120); + this.tabControl1.Location = new System.Drawing.Point(0, 24); + this.tabControl1.Multiline = true; + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(1199, 737); + this.tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; + this.tabControl1.TabIndex = 2; + this.tabControl1.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.tabControl1_DrawItem); + this.tabControl1.ControlAdded += new System.Windows.Forms.ControlEventHandler(this.tabControl1_ControlsChanged); + this.tabControl1.ControlRemoved += new System.Windows.Forms.ControlEventHandler(this.tabControl1_Controlsremoved); + // + // ODEditor_MainForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1199, 761); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.menuStrip1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "ODEditor_MainForm"; + this.Text = "Object Dictionary Editor "; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ODEditor_MainForm_FormClosing); + this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.ODEditor_MainForm_FormClosed); + this.Load += new System.EventHandler(this.ODEditor_MainForm_Load); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + } #endregion @@ -331,7 +328,7 @@ private void InitializeComponent() private System.Windows.Forms.ToolStripMenuItem saveExportAllToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator7; private System.Windows.Forms.ToolStripMenuItem exportDeviceFileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem saveAsToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem saveAsToolStripMenuItem; } } diff --git a/EDSTest/Form1.cs b/EDSTest/Form1.cs index 8e4831be..88b23b0f 100644 --- a/EDSTest/Form1.cs +++ b/EDSTest/Form1.cs @@ -218,7 +218,7 @@ private void exportCanOpenNodeToolStripMenuItem_Click(object sender, EventArgs e Warnings.warning_list.Clear(); CanOpenNodeExporter cone = new CanOpenNodeExporter(); - cone.export(savePath, this.gitVersion, dv.eds); + cone.export(savePath, Path.GetFileNameWithoutExtension(sfd.FileName), this.gitVersion, dv.eds); if (Warnings.warning_list.Count != 0) { @@ -1036,7 +1036,7 @@ private void saveExportAllToolStripMenuItem_Click(object sender, EventArgs e) try { - cone.export(dv.eds.fi.exportFolder, this.gitVersion, dv.eds); + cone.export(dv.eds.fi.exportFolder, "", this.gitVersion, dv.eds); } catch(Exception ex) { diff --git a/EDSTest/Form1.resx b/EDSTest/Form1.resx index bce08f35..45e9a4bd 100644 --- a/EDSTest/Form1.resx +++ b/EDSTest/Form1.resx @@ -1,297 +1,297 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - 17, 17 - - - - - AAABAAYAEBAQAAEABAAoAQAAZgAAABAQAAABAAgAaAUAAI4BAAAQEAAAAQAgAGgEAAD2BgAAICAQAAEA - BADoAgAAXgsAACAgAAABAAgAqAgAAEYOAAAgIAAAAQAgAKgQAADuFgAAKAAAABAAAAAgAAAAAQAEAAAA - AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA - /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAA//////////D3d/93f/d38Pf3/39/9/fw93 - f/d3/3d/D/f//3//9/8A9///f//38AD3d3d3d3fwAP///3////AAAAAPfwAAAAAAD/9//wAAAAAPd3d/ - AAAAAA9//38AAAAAD3//fwAAAAAPd3d/AAAAAA////8AAP//AACAAAAAgAAAAIAAAACAAAAAgAAAAMAB - AADAAQAAwAEAAP4/AAD4DwAA+A8AAPgPAAD4DwAA+A8AAPgPAAAoAAAAEAAAACAAAAABAAgAAAAAAAAB - AAAAAAAAAAAAAAABAAAAAQAAAAAAAEJCQgDx7/AA9vb2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAAMBAQED - AwEBAQMDAQEBAwADAQIBAwMBAgEDAwECAQMAAwEBAQMDAQEBAwMBAQEDAAMDAQMDAwMBAwMDAwEDAwAA - AwEDAwMDAQMDAwMBAwAAAAMBAQEBAQEBAQEBAQMAAAADAwMDAwMBAwMDAwMDAAAAAAAAAAADAQMAAAAA - AAAAAAAAAAMDAwEDAwMAAAAAAAAAAAADAQEBAQEDAAAAAAAAAAAAAwECAgIBAwAAAAAAAAAAAAMBAgIC - AQMAAAAAAAAAAAADAQEBAQEDAAAAAAAAAAAAAwMDAwMDAwAAAAD//wAAgAAAAIAAAACAAAAAgAAAAIAA - AADAAQAAwAEAAMABAAD+PwAA+A8AAPgPAAD4DwAA+A8AAPgPAAD4DwAAKAAAABAAAAAgAAAAAQAgAAAA - AABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b2 - 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/AAAAAPb29v9CQkL/QkJC/0JCQv/29vb/9vb2/0JC - Qv9CQkL/QkJC//b29v/29vb/QkJC/0JCQv9CQkL/9vb2/wAAAAD29vb/QkJC//Hv8P9CQkL/9vb2//b2 - 9v9CQkL/8e/w/0JCQv/29vb/9vb2/0JCQv/x7/D/QkJC//b29v8AAAAA9vb2/0JCQv9CQkL/QkJC//b2 - 9v/29vb/QkJC/0JCQv9CQkL/9vb2//b29v9CQkL/QkJC/0JCQv/29vb/AAAAAPb29v/29vb/QkJC//b2 - 9v/29vb/9vb2//b29v9CQkL/9vb2//b29v/29vb/9vb2/0JCQv/29vb/9vb2/wAAAAAAAAAA9vb2/0JC - Qv/29vb/9vb2//b29v/29vb/QkJC//b29v/29vb/9vb2//b29v9CQkL/9vb2/wAAAAAAAAAAAAAAAPb2 - 9v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC//b29v8AAAAAAAAAAAAA - AAD29vb/9vb2//b29v/29vb/9vb2//b29v9CQkL/9vb2//b29v/29vb/9vb2//b29v/29vb/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/QkJC//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v/29vb/9vb2/0JCQv/29vb/9vb2//b29v8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2/0JCQv/x7/D/8e/w//Hv8P9CQkL/9vb2/wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v9CQkL/8e/w//Hv8P/x7/D/QkJC//b2 - 9v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/QkJC/0JCQv9CQkL/QkJC/0JC - Qv/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v/29vb/9vb2//b2 - 9v/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAD//wAAgAAAAIAAAACAAAAAgAAAAIAAAADAAQAAwAEAAMAB - AAD+PwAA+A8AAPgPAAD4DwAA+A8AAPgPAAD4DwAAKAAAACAAAABAAAAAAQAEAAAAAAAAAgAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A - AAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAD///////////////////8A////////////////// - //AP93d3f//3d3d///d3d3/wD/d3d3//93d3f//3d3d/8A/3f/d///d/93//93/3f/AP93/3f//3f/d/ - //d/93/wD/d3d3//93d3f//3d3d/8A/3d3d///d3d3//93d3f/AP//d/////93/////3f//wD//3f/// - //d/////93//8AAP93/////3f/////d/8AAAD/d/////93/////3f/AAAA/3d3d3d3d3d3d3d3/wAAAP - 93d3d3d3d3d3d3d/8AAAD///////93////////AAAA////////d////////wAAAAAAAAAA/3f/AAAAAA - AAAAAAAAAAAP93/wAAAAAAAAAAAAAA////d////wAAAAAAAAAAAP///3f///8AAAAAAAAAAAD/d3d3d3 - f/AAAAAAAAAAAA/3d3d3d3/wAAAAAAAAAAAP93////d/8AAAAAAAAAAAD/d////3f/AAAAAAAAAAAA/3 - f///93/wAAAAAAAAAAAP93////d/8AAAAAAAAAAAD/d3d3d3f/AAAAAAAAAAAA/3d3d3d3/wAAAAAAAA - AAAP////////8AAAAAAAAAAAD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAP////+AAAABgAAAAYAA - AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH//gf///4 - H///gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//+AAf//////KAAAACAA - AABAAAAAAQAIAAAAAAAABAAAAAAAAAAAAAAAAQAAAAEAAAAAAABCQkIA8e/wAPb29gAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAMDAwMDAwMDAwMDAwMDAwMD - AwMDAwMDAwMDAwMDAwAAAwMBAQEBAQEDAwMDAQEBAQEBAwMDAwEBAQEBAQMDAAADAwEBAQEBAQMDAwMB - AQEBAQEDAwMDAQEBAQEBAwMAAAMDAQECAgEBAwMDAwEBAgIBAQMDAwMBAQICAQEDAwAAAwMBAQICAQED - AwMDAQECAgEBAwMDAwEBAgIBAQMDAAADAwEBAQEBAQMDAwMBAQEBAQEDAwMDAQEBAQEBAwMAAAMDAQEB - AQEBAwMDAwEBAQEBAQMDAwMBAQEBAQEDAwAAAwMDAwEBAwMDAwMDAwMBAQMDAwMDAwMDAQEDAwMDAAAD - AwMDAQEDAwMDAwMDAwEBAwMDAwMDAwMBAQMDAwMAAAAAAwMBAQMDAwMDAwMDAQEDAwMDAwMDAwEBAwMA - AAAAAAADAwEBAwMDAwMDAwMBAQMDAwMDAwMDAQEDAwAAAAAAAAMDAQEBAQEBAQEBAQEBAQEBAQEBAQEB - AQMDAAAAAAAAAwMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwMAAAAAAAADAwMDAwMDAwMDAwMBAQMDAwMD - AwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwEBAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAMDAQED - AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMBAQMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMD - AwEBAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAQEDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAD - AwEBAQEBAQEBAQEDAwAAAAAAAAAAAAAAAAAAAAAAAAMDAQEBAQEBAQEBAQMDAAAAAAAAAAAAAAAAAAAA - AAAAAwMBAQICAgICAgEBAwMAAAAAAAAAAAAAAAAAAAAAAAADAwEBAgICAgICAQEDAwAAAAAAAAAAAAAA - AAAAAAAAAAMDAQECAgICAgIBAQMDAAAAAAAAAAAAAAAAAAAAAAAAAwMBAQICAgICAgEBAwMAAAAAAAAA - AAAAAAAAAAAAAAADAwEBAQEBAQEBAQEDAwAAAAAAAAAAAAAAAAAAAAAAAAMDAQEBAQEBAQEBAQMDAAAA - AAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMD - AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////4AAAAGAAAABgAAAAYAA - AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAf/+B////gf//+A - Af//gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//////8oAAAAIAAAAEAA - AAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v/29vb/9vb2//b2 - 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b2 - 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/AAAAAAAAAAD29vb/9vb2//b2 - 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b2 - 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v8AAAAAAAAAAPb2 - 9v/29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v/29vb/9vb2/0JCQv9CQkL/QkJC/0JC - Qv9CQkL/QkJC//b29v/29vb/9vb2//b29v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2/wAA - AAAAAAAA9vb2//b29v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2//b29v/29vb/QkJC/0JC - Qv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v/29vb/9vb2/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC//b2 - 9v/29vb/AAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/8e/w//Hv8P9CQkL/QkJC//b29v/29vb/9vb2//b2 - 9v9CQkL/QkJC//Hv8P/x7/D/QkJC/0JCQv/29vb/9vb2//b29v/29vb/QkJC/0JCQv/x7/D/8e/w/0JC - Qv9CQkL/9vb2//b29v8AAAAAAAAAAPb29v/29vb/QkJC/0JCQv/x7/D/8e/w/0JCQv9CQkL/9vb2//b2 - 9v/29vb/9vb2/0JCQv9CQkL/8e/w//Hv8P9CQkL/QkJC//b29v/29vb/9vb2//b29v9CQkL/QkJC//Hv - 8P/x7/D/QkJC/0JCQv/29vb/9vb2/wAAAAAAAAAA9vb2//b29v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC - Qv/29vb/9vb2//b29v/29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v/29vb/9vb2/0JC - Qv9CQkL/QkJC/0JCQv9CQkL/QkJC//b29v/29vb/AAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/QkJC/0JC - Qv9CQkL/QkJC//b29v/29vb/9vb2//b29v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2//b2 - 9v/29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v8AAAAAAAAAAPb29v/29vb/9vb2//b2 - 9v9CQkL/QkJC//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/QkJC/0JCQv/29vb/9vb2//b2 - 9v/29vb/9vb2//b29v/29vb/9vb2/0JCQv9CQkL/9vb2//b29v/29vb/9vb2/wAAAAAAAAAA9vb2//b2 - 9v/29vb/9vb2/0JCQv9CQkL/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v9CQkL/QkJC//b2 - 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/QkJC/0JCQv/29vb/9vb2//b29v/29vb/AAAAAAAA - AAAAAAAAAAAAAPb29v/29vb/QkJC/0JCQv/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2/0JC - Qv9CQkL/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v9CQkL/QkJC//b29v/29vb/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v9CQkL/QkJC//b29v/29vb/9vb2//b29v/29vb/9vb2//b2 - 9v/29vb/QkJC/0JCQv/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2/0JCQv9CQkL/9vb2//b2 - 9v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC - Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC - Qv/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v/29vb/QkJC/0JCQv9CQkL/QkJC/0JC - Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC - Qv9CQkL/QkJC//b29v/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v/29vb/9vb2//b2 - 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/QkJC/0JCQv/29vb/9vb2//b29v/29vb/9vb2//b2 - 9v/29vb/9vb2//b29v/29vb/9vb2//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2//b2 - 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v9CQkL/QkJC//b29v/29vb/9vb2//b2 - 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/9vb2//b2 - 9v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v/29vb/QkJC/0JC - Qv/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2//b29v/29vb/9vb2//b2 - 9v9CQkL/QkJC//b29v/29vb/9vb2//b29v/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v/29vb/9vb2//b2 - 9v/29vb/9vb2/0JCQv9CQkL/9vb2//b29v/29vb/9vb2//b29v/29vb/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b2 - 9v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAD29vb/9vb2/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2/wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAPb29v/29vb/QkJC/0JCQv/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv8P9CQkL/QkJC//b2 - 9v/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v9CQkL/QkJC//Hv8P/x7/D/8e/w//Hv8P/x7/D/8e/w/0JC - Qv9CQkL/9vb2//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/8e/w//Hv8P/x7/D/8e/w//Hv - 8P/x7/D/QkJC/0JCQv/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v/29vb/QkJC/0JCQv/x7/D/8e/w//Hv - 8P/x7/D/8e/w//Hv8P9CQkL/QkJC//b29v/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v9CQkL/QkJC/0JC - Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JC - Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2/wAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb2 - 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b2 - 9v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////+AAAABgAAAAYAA - AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH//gf///4 - H///gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//+AAf////// - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 + + + 17, 17 + + + + + AAABAAYAEBAQAAEABAAoAQAAZgAAABAQAAABAAgAaAUAAI4BAAAQEAAAAQAgAGgEAAD2BgAAICAQAAEA + BADoAgAAXgsAACAgAAABAAgAqAgAAEYOAAAgIAAAAQAgAKgQAADuFgAAKAAAABAAAAAgAAAAAQAEAAAA + AACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA + /wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAA//////////D3d/93f/d38Pf3/39/9/fw93 + f/d3/3d/D/f//3//9/8A9///f//38AD3d3d3d3fwAP///3////AAAAAPfwAAAAAAD/9//wAAAAAPd3d/ + AAAAAA9//38AAAAAD3//fwAAAAAPd3d/AAAAAA////8AAP//AACAAAAAgAAAAIAAAACAAAAAgAAAAMAB + AADAAQAAwAEAAP4/AAD4DwAA+A8AAPgPAAD4DwAA+A8AAPgPAAAoAAAAEAAAACAAAAABAAgAAAAAAAAB + AAAAAAAAAAAAAAABAAAAAQAAAAAAAEJCQgDx7/AA9vb2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMDAAMBAQED + AwEBAQMDAQEBAwADAQIBAwMBAgEDAwECAQMAAwEBAQMDAQEBAwMBAQEDAAMDAQMDAwMBAwMDAwEDAwAA + AwEDAwMDAQMDAwMBAwAAAAMBAQEBAQEBAQEBAQMAAAADAwMDAwMBAwMDAwMDAAAAAAAAAAADAQMAAAAA + AAAAAAAAAAMDAwEDAwMAAAAAAAAAAAADAQEBAQEDAAAAAAAAAAAAAwECAgIBAwAAAAAAAAAAAAMBAgIC + AQMAAAAAAAAAAAADAQEBAQEDAAAAAAAAAAAAAwMDAwMDAwAAAAD//wAAgAAAAIAAAACAAAAAgAAAAIAA + AADAAQAAwAEAAMABAAD+PwAA+A8AAPgPAAD4DwAA+A8AAPgPAAD4DwAAKAAAABAAAAAgAAAAAQAgAAAA + AABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/AAAAAPb29v9CQkL/QkJC/0JCQv/29vb/9vb2/0JC + Qv9CQkL/QkJC//b29v/29vb/QkJC/0JCQv9CQkL/9vb2/wAAAAD29vb/QkJC//Hv8P9CQkL/9vb2//b2 + 9v9CQkL/8e/w/0JCQv/29vb/9vb2/0JCQv/x7/D/QkJC//b29v8AAAAA9vb2/0JCQv9CQkL/QkJC//b2 + 9v/29vb/QkJC/0JCQv9CQkL/9vb2//b29v9CQkL/QkJC/0JCQv/29vb/AAAAAPb29v/29vb/QkJC//b2 + 9v/29vb/9vb2//b29v9CQkL/9vb2//b29v/29vb/9vb2/0JCQv/29vb/9vb2/wAAAAAAAAAA9vb2/0JC + Qv/29vb/9vb2//b29v/29vb/QkJC//b29v/29vb/9vb2//b29v9CQkL/9vb2/wAAAAAAAAAAAAAAAPb2 + 9v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC//b29v8AAAAAAAAAAAAA + AAD29vb/9vb2//b29v/29vb/9vb2//b29v9CQkL/9vb2//b29v/29vb/9vb2//b29v/29vb/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/QkJC//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v/29vb/9vb2/0JCQv/29vb/9vb2//b29v8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2/0JCQv/x7/D/8e/w//Hv8P9CQkL/9vb2/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v9CQkL/8e/w//Hv8P/x7/D/QkJC//b2 + 9v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/QkJC/0JCQv9CQkL/QkJC/0JC + Qv/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAD//wAAgAAAAIAAAACAAAAAgAAAAIAAAADAAQAAwAEAAMAB + AAD+PwAA+A8AAPgPAAD4DwAA+A8AAPgPAAD4DwAAKAAAACAAAABAAAAAAQAEAAAAAAAAAgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICAAACAgIAAwMDAAAAA/wAA/wAAAP//AP8A + AAD/AP8A//8AAP///wAAAAAAAAAAAAAAAAAAAAAAD///////////////////8A////////////////// + //AP93d3f//3d3d///d3d3/wD/d3d3//93d3f//3d3d/8A/3f/d///d/93//93/3f/AP93/3f//3f/d/ + //d/93/wD/d3d3//93d3f//3d3d/8A/3d3d///d3d3//93d3f/AP//d/////93/////3f//wD//3f/// + //d/////93//8AAP93/////3f/////d/8AAAD/d/////93/////3f/AAAA/3d3d3d3d3d3d3d3/wAAAP + 93d3d3d3d3d3d3d/8AAAD///////93////////AAAA////////d////////wAAAAAAAAAA/3f/AAAAAA + AAAAAAAAAAAP93/wAAAAAAAAAAAAAA////d////wAAAAAAAAAAAP///3f///8AAAAAAAAAAAD/d3d3d3 + f/AAAAAAAAAAAA/3d3d3d3/wAAAAAAAAAAAP93////d/8AAAAAAAAAAAD/d////3f/AAAAAAAAAAAA/3 + f///93/wAAAAAAAAAAAP93////d/8AAAAAAAAAAAD/d3d3d3f/AAAAAAAAAAAA/3d3d3d3/wAAAAAAAA + AAAP////////8AAAAAAAAAAAD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAP////+AAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH//gf///4 + H///gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//+AAf//////KAAAACAA + AABAAAAAAQAIAAAAAAAABAAAAAAAAAAAAAAAAQAAAAEAAAAAAABCQkIA8e/wAPb29gAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAADAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAAAMDAwMDAwMDAwMDAwMDAwMD + AwMDAwMDAwMDAwMDAwAAAwMBAQEBAQEDAwMDAQEBAQEBAwMDAwEBAQEBAQMDAAADAwEBAQEBAQMDAwMB + AQEBAQEDAwMDAQEBAQEBAwMAAAMDAQECAgEBAwMDAwEBAgIBAQMDAwMBAQICAQEDAwAAAwMBAQICAQED + AwMDAQECAgEBAwMDAwEBAgIBAQMDAAADAwEBAQEBAQMDAwMBAQEBAQEDAwMDAQEBAQEBAwMAAAMDAQEB + AQEBAwMDAwEBAQEBAQMDAwMBAQEBAQEDAwAAAwMDAwEBAwMDAwMDAwMBAQMDAwMDAwMDAQEDAwMDAAAD + AwMDAQEDAwMDAwMDAwEBAwMDAwMDAwMBAQMDAwMAAAAAAwMBAQMDAwMDAwMDAQEDAwMDAwMDAwEBAwMA + AAAAAAADAwEBAwMDAwMDAwMBAQMDAwMDAwMDAQEDAwAAAAAAAAMDAQEBAQEBAQEBAQEBAQEBAQEBAQEB + AQMDAAAAAAAAAwMBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAwMAAAAAAAADAwMDAwMDAwMDAwMBAQMDAwMD + AwMDAwMDAwAAAAAAAAMDAwMDAwMDAwMDAwEBAwMDAwMDAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAMDAQED + AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMBAQMDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMD + AwEBAwMDAwMDAAAAAAAAAAAAAAAAAAAAAAAAAwMDAwMDAQEDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAAD + AwEBAQEBAQEBAQEDAwAAAAAAAAAAAAAAAAAAAAAAAAMDAQEBAQEBAQEBAQMDAAAAAAAAAAAAAAAAAAAA + AAAAAwMBAQICAgICAgEBAwMAAAAAAAAAAAAAAAAAAAAAAAADAwEBAgICAgICAQEDAwAAAAAAAAAAAAAA + AAAAAAAAAAMDAQECAgICAgIBAQMDAAAAAAAAAAAAAAAAAAAAAAAAAwMBAQICAgICAgEBAwMAAAAAAAAA + AAAAAAAAAAAAAAADAwEBAQEBAQEBAQEDAwAAAAAAAAAAAAAAAAAAAAAAAAMDAQEBAQEBAQEBAQMDAAAA + AAAAAAAAAAAAAAAAAAAAAwMDAwMDAwMDAwMDAwMAAAAAAAAAAAAAAAAAAAAAAAADAwMDAwMDAwMDAwMD + AwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////4AAAAGAAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAHgAAAH4AAAB+AAAAfgAAAH4AAAB+AAAAf/+B////gf//+A + Af//gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//////8oAAAAIAAAAEAA + AAABACAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/AAAAAAAAAAD29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v8AAAAAAAAAAPb2 + 9v/29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v/29vb/9vb2/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC//b29v/29vb/9vb2//b29v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2/wAA + AAAAAAAA9vb2//b29v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2//b29v/29vb/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v/29vb/9vb2/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC//b2 + 9v/29vb/AAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/8e/w//Hv8P9CQkL/QkJC//b29v/29vb/9vb2//b2 + 9v9CQkL/QkJC//Hv8P/x7/D/QkJC/0JCQv/29vb/9vb2//b29v/29vb/QkJC/0JCQv/x7/D/8e/w/0JC + Qv9CQkL/9vb2//b29v8AAAAAAAAAAPb29v/29vb/QkJC/0JCQv/x7/D/8e/w/0JCQv9CQkL/9vb2//b2 + 9v/29vb/9vb2/0JCQv9CQkL/8e/w//Hv8P9CQkL/QkJC//b29v/29vb/9vb2//b29v9CQkL/QkJC//Hv + 8P/x7/D/QkJC/0JCQv/29vb/9vb2/wAAAAAAAAAA9vb2//b29v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv/29vb/9vb2//b29v/29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v/29vb/9vb2/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC//b29v/29vb/AAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC//b29v/29vb/9vb2//b29v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2//b2 + 9v/29vb/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v8AAAAAAAAAAPb29v/29vb/9vb2//b2 + 9v9CQkL/QkJC//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/QkJC/0JCQv/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2/0JCQv9CQkL/9vb2//b29v/29vb/9vb2/wAAAAAAAAAA9vb2//b2 + 9v/29vb/9vb2/0JCQv9CQkL/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v9CQkL/QkJC//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/QkJC/0JCQv/29vb/9vb2//b29v/29vb/AAAAAAAA + AAAAAAAAAAAAAPb29v/29vb/QkJC/0JCQv/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2/0JC + Qv9CQkL/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v9CQkL/QkJC//b29v/29vb/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v9CQkL/QkJC//b29v/29vb/9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/QkJC/0JCQv/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2/0JCQv9CQkL/9vb2//b2 + 9v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v/29vb/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JC + Qv9CQkL/QkJC//b29v/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/QkJC/0JCQv/29vb/9vb2//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v9CQkL/QkJC//b29v/29vb/9vb2//b2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/9vb2//b2 + 9v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v/29vb/QkJC/0JC + Qv/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2//b29v/29vb/9vb2//b2 + 9v9CQkL/QkJC//b29v/29vb/9vb2//b29v/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v/29vb/9vb2//b2 + 9v/29vb/9vb2/0JCQv9CQkL/9vb2//b29v/29vb/9vb2//b29v/29vb/AAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b2 + 9v9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v8AAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD29vb/9vb2/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2/wAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAPb29v/29vb/QkJC/0JCQv/x7/D/8e/w//Hv8P/x7/D/8e/w//Hv8P9CQkL/QkJC//b2 + 9v/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v9CQkL/QkJC//Hv8P/x7/D/8e/w//Hv8P/x7/D/8e/w/0JC + Qv9CQkL/9vb2//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JCQv9CQkL/8e/w//Hv8P/x7/D/8e/w//Hv + 8P/x7/D/QkJC/0JCQv/29vb/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29v/29vb/QkJC/0JCQv/x7/D/8e/w//Hv + 8P/x7/D/8e/w//Hv8P9CQkL/QkJC//b29v/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2//b29v9CQkL/QkJC/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/9vb2//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/9vb2/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv/29vb/9vb2/wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb2 + 9v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAA9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/29vb/9vb2//b2 + 9v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////+AAAABgAAAAYAA + AAGAAAABgAAAAYAAAAGAAAABgAAAAYAAAAGAAAAB4AAAB+AAAAfgAAAH4AAAB+AAAAfgAAAH//gf///4 + H///gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//+AAf//gAH//4AB//+AAf////// + + \ No newline at end of file diff --git a/libEDSsharp/CanOpenNodeExporter.cs b/libEDSsharp/CanOpenNodeExporter.cs index 84aecbe2..034ed93a 100644 --- a/libEDSsharp/CanOpenNodeExporter.cs +++ b/libEDSsharp/CanOpenNodeExporter.cs @@ -46,7 +46,7 @@ public class CanOpenNodeExporter List closings = new List(); - public void export(string folderpath, string gitVersion, EDSsharp eds) + public void export(string folderpath, string filename, string gitVersion, EDSsharp eds) { this.folderpath = folderpath; this.gitVersion = gitVersion; @@ -62,15 +62,15 @@ public void export(string folderpath, string gitVersion, EDSsharp eds) prewalkArrays(); - export_h(); - export_c(); + export_h(filename); + export_c(filename); } - private bool compatfixed = false; + //private bool compatfixed = false; private void fixcompatentry() { - compatfixed = false; + // compatfixed = false; // Handle the TPDO communication parameters in a special way, because of @@ -86,7 +86,7 @@ private void fixcompatentry() if (!od.Containssubindex(0x04)) { - compatfixed = true; + //compatfixed = true; ODentry compatability = new ODentry("comparability Entry", 0x05, DataType.UNSIGNED8, "0", EDSsharp.AccessType.ro, PDOMappingType.no); od.subobjects.Add(0x04, compatability); } @@ -376,10 +376,12 @@ not derived from or based on this library. If you modify this } - private void export_h() - { + private void export_h(string filename) + { + if (filename == "") + filename = "CO_OD.c"; - StreamWriter file = new StreamWriter(folderpath + Path.DirectorySeparatorChar + "CO_OD.h"); + StreamWriter file = new StreamWriter(folderpath + Path.DirectorySeparatorChar + filename); addGPLheader(file); @@ -771,21 +773,22 @@ ALIASES FOR OBJECT DICTIONARY VARIABLES } - private void export_c() + private void export_c(string filename) { - StreamWriter file = new StreamWriter(folderpath + Path.DirectorySeparatorChar + "CO_OD.c"); - - addGPLheader(file); + if (filename == "") + filename = "CO_OD.c"; + StreamWriter file = new StreamWriter(folderpath + Path.DirectorySeparatorChar + filename + ".c"); + addGPLheader(file); + file.WriteLine(@"#include ""CO_driver.h"" -#include ""CO_OD.h"" +#include " + filename + @".h"" #include ""CO_SDO.h"" - - + /******************************************************************************* DEFINITION AND INITIALIZATION OF OBJECT DICTIONARY VARIABLES -*******************************************************************************/ - +*******************************************************************************/ + "); foreach (string location in eds.storageLocation) { diff --git a/libEDSsharp/docs/libEDSsharp.xml b/libEDSsharp/docs/libEDSsharp.xml index 2c8bed69..ffc0cd2a 100644 --- a/libEDSsharp/docs/libEDSsharp.xml +++ b/libEDSsharp/docs/libEDSsharp.xml @@ -1,2425 +1,2428 @@ - - - - libEDSsharp - - - - - Get the CanOpenNode specific flags, these flags are used internally in CanOpenNode to determine details about the object variable - - An odentry to access - byte containing the flag value - - - - Export the record type objects in the CO_OD.c file - - string - - - - Exports a sub object line in a record object - - sub ODentry object to export - string forming current array level or empty string for none - string forming one line of CO_OD.c record objects - - - - The index of the object in the Object Dictionary - This cannot be set for child objects, if you read a child object you get the parents index - - - - - Used when writing out objects to know if we are writing the normal or the module parts out - Two module parts subext and fixed are available. - - - - - Empty object constructor - - - - - ODentry constructor for a simple VAR type - - Name of Object Dictionary Entry - Index of object in object dictionary - Type of this objects data - Default value (always set as a string) - Allowed CanOpen access permissions - Allowed PDO mapping options - - - - ODConstructor useful for subobjects - - - NOT USED - - - - - - - - - ODEntry constructor for array subobjects - - - - - - - - Provide a simple string representation of the object, only parameters index, no subindexes/subindex parameter name and data type are included - Useful for debug and also appears in debugger when you inspect this object - - string summary of object - - - - If data type is an octet string we must remove all spaces when writing out to a EDS/DCF file - - Value to be processed - value if not octet string or value with spaces removed if octet string - - - - Write out this Object dictionary entry to an EDS/DCF file using correct formatting - - Handle to the stream writer to write to - File type being written - - - - - Returns a c compatible string that represents the name of the object, - is replaced with _ - words separated by a space are replaced with _ for a separator eg ONE TWO becomes ONE_TWO - - - - - - Return the size in bytes for the given CanOpen datatype of this object, eg the size of what ever the datatype field is set to - - no of bytes - - - - This is the no of subindexes present in the object, it is NOT the maximum subobject index - - - - - This function scans the PDO list and compares it to NrOfRXPDO and NrOfTXPDO - if these do not match in count then implicit PDOs are present and they are - filled in with default values from the lowest possible index - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + libEDSsharp + + + + + Get the CanOpenNode specific flags, these flags are used internally in CanOpenNode to determine details about the object variable + + An odentry to access + byte containing the flag value + + + + Export the record type objects in the CO_OD.c file + + string + + + + Exports a sub object line in a record object + + sub ODentry object to export + string forming current array level or empty string for none + string forming one line of CO_OD.c record objects + + + + The index of the object in the Object Dictionary + This cannot be set for child objects, if you read a child object you get the parents index + + + + + Used when writing out objects to know if we are writing the normal or the module parts out + Two module parts subext and fixed are available. + + + + + Empty object constructor + + + + + ODentry constructor for a simple VAR type + + Name of Object Dictionary Entry + Index of object in object dictionary + Type of this objects data + Default value (always set as a string) + Allowed CanOpen access permissions + Allowed PDO mapping options + + + + ODConstructor useful for subobjects + + + NOT USED + + + + + + + + + ODEntry constructor for array subobjects + + + + + + + + Provide a simple string representation of the object, only parameters index, no subindexes/subindex parameter name and data type are included + Useful for debug and also appears in debugger when you inspect this object + + string summary of object + + + + If data type is an octet string we must remove all spaces when writing out to a EDS/DCF file + + Value to be processed + value if not octet string or value with spaces removed if octet string + + + + Write out this Object dictionary entry to an EDS/DCF file using correct formatting + + Handle to the stream writer to write to + File type being written + + + + + Returns a c compatible string that represents the name of the object, - is replaced with _ + words separated by a space are replaced with _ for a separator eg ONE TWO becomes ONE_TWO + + + + + + Return the size in bytes for the given CanOpen datatype of this object, eg the size of what ever the datatype field is set to + + no of bytes + + + + This is the no of subindexes present in the object, it is NOT the maximum subobject index + + + + + This function scans the PDO list and compares it to NrOfRXPDO and NrOfTXPDO + if these do not match in count then implicit PDOs are present and they are + filled in with default values from the lowest possible index + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From f357804cf96f70e363089343fe1fa8dc1abe5c6c Mon Sep 17 00:00:00 2001 From: Dirk Wieschebrock Date: Tue, 8 Oct 2019 16:14:34 +0200 Subject: [PATCH 2/2] - update different spelling to "CANopen" in comments and strings - missing """ at in CO_OD.c file - corrected typo "comparability Entry" to "compatibility entry" --- EDSTest/DeviceInfoView.Designer.cs | 2 +- EDSTest/DeviceODView.cs | 4 +-- EDSTest/Form1.cs | 12 +++---- libEDSsharp/Bridge.cs | 6 ++-- libEDSsharp/CanOpenNodeExporter.cs | 50 +++++++++++++++--------------- libEDSsharp/CanOpenXDD.cs | 6 ++-- libEDSsharp/docs/libEDSsharp.xml | 6 ++-- libEDSsharp/eds.cs | 6 ++-- 8 files changed, 46 insertions(+), 46 deletions(-) diff --git a/EDSTest/DeviceInfoView.Designer.cs b/EDSTest/DeviceInfoView.Designer.cs index 2820112d..60f116b2 100644 --- a/EDSTest/DeviceInfoView.Designer.cs +++ b/EDSTest/DeviceInfoView.Designer.cs @@ -208,7 +208,7 @@ private void InitializeComponent() this.checkBox_canopenmanager.Name = "checkBox_canopenmanager"; this.checkBox_canopenmanager.Size = new System.Drawing.Size(154, 21); this.checkBox_canopenmanager.TabIndex = 5; - this.checkBox_canopenmanager.Text = "Can Open manager"; + this.checkBox_canopenmanager.Text = "CANopen manager"; this.checkBox_canopenmanager.UseVisualStyleBackColor = false; // // label8 diff --git a/EDSTest/DeviceODView.cs b/EDSTest/DeviceODView.cs index 5974bca1..85935645 100644 --- a/EDSTest/DeviceODView.cs +++ b/EDSTest/DeviceODView.cs @@ -220,7 +220,7 @@ private void button_save_changes_Click(object sender, EventArgs e) // Propagate changes through sub objects // We only really need to do this for PDOMapping to fix bug #13 see report // on git hub for discussion why other parameters are not propagated here - // tl;dr; Limitations of CanOpenNode object dictionary perms for sub array objects + // tl;dr; Limitations of CANopenNode object dictionary perms for sub array objects foreach (KeyValuePairkvp in selectedobject.subobjects) { @@ -1112,7 +1112,7 @@ private void changeMaxSubIndexToolStripMenuItem_Click(object sender, EventArgs e { //Change the max subindex, it is allowed to have a different max subindex to the physical array size //as depending on implementation it might not be a simple array behind the scenes. Even 0x1010,0x1011 - //do this on their implementation in CanopenNode + //do this on their implementation in CANopenNode if (selecteditemsub.Tag != null) { diff --git a/EDSTest/Form1.cs b/EDSTest/Form1.cs index 88b23b0f..38d97ad6 100644 --- a/EDSTest/Form1.cs +++ b/EDSTest/Form1.cs @@ -236,7 +236,7 @@ private void openCanOpenNodeXMLToolStripMenuItem_Click(object sender, EventArgs { OpenFileDialog odf = new OpenFileDialog(); - odf.Filter = "All supported files (*.eds;*.xml;*.xdd;*.dcf)|*.eds;*.xml;*.xdd;*.dcf|Electronic Data Sheets (*.eds)|*.eds|Device Configuration Files (*.dcf)|*.dcf|CanOpen Xml Data sheet (*.xdd)|*.xdd|CanOpenNode XML (*.xml)|*.xml"; + odf.Filter = "All supported files (*.eds;*.xml;*.xdd;*.dcf)|*.eds;*.xml;*.xdd;*.dcf|Electronic Data Sheets (*.eds)|*.eds|Device Configuration Files (*.dcf)|*.dcf|CANopen Xml Data sheet (*.xdd)|*.xdd|CANopenNode XML (*.xml)|*.xml"; if (odf.ShowDialog() == DialogResult.OK) { @@ -484,7 +484,7 @@ private void exportDeviceFileToolStripMenuItem_Click(object sender, EventArgs e) DeviceView dv = (DeviceView)tabControl1.SelectedTab.Controls[0]; SaveFileDialog sfd = new SaveFileDialog(); - sfd.Filter = "Canopen Node XML (*.xml)|*.xml|Electronic Data Sheets (*.eds)|*.eds|Device Configuration Files (*.dcf)|*.dcf"; + sfd.Filter = "CANopen Node XML (*.xml)|*.xml|Electronic Data Sheets (*.eds)|*.eds|Device Configuration Files (*.dcf)|*.dcf"; sfd.InitialDirectory = Path.GetDirectoryName(dv.eds.xmlfilename); sfd.RestoreDirectory = true; @@ -522,7 +522,7 @@ private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) DeviceView dv = (DeviceView)tabControl1.SelectedTab.Controls[0]; SaveFileDialog sfd = new SaveFileDialog(); - sfd.Filter = "CanOpen XDD (*.xdd)|*.xdd"; + sfd.Filter = "CANopen XDD (*.xdd)|*.xdd"; sfd.InitialDirectory = Path.GetDirectoryName(dv.eds.xmlfilename); sfd.RestoreDirectory = true; @@ -733,7 +733,7 @@ private void saveNetworkXmlToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog(); - sfd.Filter = "CanOpen Network XDD (*.nxdd)|*.nxdd|CanOpen network XML (*.nxml)|*.nxml"; + sfd.Filter = "CANopen Network XDD (*.nxdd)|*.nxdd|CANopen network XML (*.nxml)|*.nxml"; sfd.InitialDirectory = Path.GetDirectoryName(networkfilename); sfd.RestoreDirectory = true; @@ -765,7 +765,7 @@ private void loadNetworkXmlToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog odf = new OpenFileDialog(); - odf.Filter = "CanOpen Network XDD (*.nxdd)|*.nxdd|CanOpen network XML (*.nxml)|*.nxml"; + odf.Filter = "CANopen Network XDD (*.nxdd)|*.nxdd|CANopen network XML (*.nxml)|*.nxml"; if (odf.ShowDialog() == DialogResult.OK) { switch (Path.GetExtension(odf.FileName).ToLower()) @@ -967,7 +967,7 @@ private void documentationToolStripMenuItem_Click(object sender, EventArgs e) private void saveExportAllToolStripMenuItem_Click(object sender, EventArgs e) { string temp; - //Attempt to save EDS,XML and export the CanOpen dictionary + //Attempt to save EDS,XML and export the CANopen dictionary if (tabControl1.SelectedTab != null) { diff --git a/libEDSsharp/Bridge.cs b/libEDSsharp/Bridge.cs index f4558b21..2bd5c04f 100644 --- a/libEDSsharp/Bridge.cs +++ b/libEDSsharp/Bridge.cs @@ -27,7 +27,7 @@ You should have received a copy of the GNU General Public License /* I know I'm going to regret this * * I quite like my eds class as it trys to validate the EDS using typing and enums etc - * but i also want the XML wrappers for the CanOpenXML + * but i also want the XML wrappers for the CANOpenXML * so I'm going to make a converter outside of both classes hence this bridge * which is more code to manage ;-( * */ @@ -286,7 +286,7 @@ public EDSsharp convert(Device dev) } else { - //CanOpenNode Project XML did not correctly set DataTypes for record sets + //CANopenNode Project XML did not correctly set DataTypes for record sets if (entry.Index == 0x1018) entry.datatype = DataType.IDENTITY; @@ -542,7 +542,7 @@ public EDSsharp convert(Device dev) { if (dev.Other.File != null) { - // CanOpenNode default project.xml contains - for fileversion, its suppose to be a byte field according to DS306 + // CANopenNode default project.xml contains - for fileversion, its suppose to be a byte field according to DS306 if (dev.Other.File.FileVersion == "-") { dev.Other.File.FileVersion = "0"; diff --git a/libEDSsharp/CanOpenNodeExporter.cs b/libEDSsharp/CanOpenNodeExporter.cs index 034ed93a..01fa43b4 100644 --- a/libEDSsharp/CanOpenNodeExporter.cs +++ b/libEDSsharp/CanOpenNodeExporter.cs @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with libEDSsharp. If not, see . Copyright(c) 2016 - 2019 Robin Cornelius - based heavily on the files CO_OD.h and CO_OD.c from CanOpenNode which are + based heavily on the files CO_OD.h and CO_OD.c from CANopenNode which are Copyright(c) 2010 - 2016 Janez Paternoster */ @@ -69,15 +69,15 @@ public void export(string folderpath, string filename, string gitVersion, EDSsha //private bool compatfixed = false; private void fixcompatentry() - { - // compatfixed = false; - - - // Handle the TPDO communication parameters in a special way, because of - // sizeof(OD_TPDOCommunicationParameter_t) != sizeof(CO_TPDOCommPar_t) in CanOpen.c - // the existing CO_TPDOCommPar_t has a compatibility entry so we must export one regardless - // of if its in the OD or not - + { + // compatfixed = false; + + + // Handle the TPDO communication parameters in a special way, because of + // sizeof(OD_TPDOCommunicationParameter_t) != sizeof(CO_TPDOCommPar_t) in CANopen.c + // the existing CO_TPDOCommPar_t has a compatibility entry so we must export one regardless + // of if its in the OD or not + for (UInt16 idx = 0x1800; idx < 0x1900; idx++) { if (eds.ods.ContainsKey(idx)) @@ -85,10 +85,10 @@ private void fixcompatentry() ODentry od = eds.ods[idx]; if (!od.Containssubindex(0x04)) - { - //compatfixed = true; - ODentry compatability = new ODentry("comparability Entry", 0x05, DataType.UNSIGNED8, "0", EDSsharp.AccessType.ro, PDOMappingType.no); - od.subobjects.Add(0x04, compatability); + { + //compatfixed = true; + ODentry compatibility = new ODentry("compatibility entry", idx, DataType.UNSIGNED8, "0", EDSsharp.AccessType.ro, PDOMappingType.no, od); + od.subobjects.Add(0x04, compatibility); } } } @@ -379,9 +379,9 @@ not derived from or based on this library. If you modify this private void export_h(string filename) { if (filename == "") - filename = "CO_OD.c"; + filename = "CO_OD"; - StreamWriter file = new StreamWriter(folderpath + Path.DirectorySeparatorChar + filename); + StreamWriter file = new StreamWriter(folderpath + Path.DirectorySeparatorChar + filename + ".h"); addGPLheader(file); @@ -509,7 +509,7 @@ TYPE DEFINITIONS FOR RECORDS *******************************************************************************/"); //We need to identify all the record types used and generate a struct for each one - //FIXME the original CanOpenNode exporter said how many items used this struct in the comments + //FIXME the original CANopenNode exporter said how many items used this struct in the comments List structnamelist = new List(); @@ -776,13 +776,13 @@ ALIASES FOR OBJECT DICTIONARY VARIABLES private void export_c(string filename) { if (filename == "") - filename = "CO_OD.c"; + filename = "CO_OD"; StreamWriter file = new StreamWriter(folderpath + Path.DirectorySeparatorChar + filename + ".c"); addGPLheader(file); file.WriteLine(@"#include ""CO_driver.h"" -#include " + filename + @".h"" +#include """ + filename + @".h"" #include ""CO_SDO.h"" /******************************************************************************* @@ -929,14 +929,14 @@ protected string write_od_line(ODentry od) { if ((od.Getmaxsubindex() != nosubindexs)) { - if (od.Index != 0x1003 && od.Index != 0x1011)//ignore 0x1003, it is a special case as per canopen specs, and ignore 0x1011 canopennode uses special sub indexes for eeprom resets + if (od.Index != 0x1003 && od.Index != 0x1011)//ignore 0x1003, it is a special case as per CANopen specs, and ignore 0x1011 CANopenNode uses special sub indexes for eeprom resets { Warnings.warning_list.Add(String.Format("Subindex discrepancy on object 0x{0:x4} arraysize: {1} vs max sub-index: {2}", od.Index, nosubindexs, od.Getmaxsubindex())); } - //0x1003 is a special case for CanOpenNode + //0x1003 is a special case for CANopenNode //SubIndex 0 will probably be 0 for no errors - //so we cannot read that to determine max subindex size, which is required to set up CanOpenNode so we leave it alone here + //so we cannot read that to determine max subindex size, which is required to set up CANopenNode so we leave it alone here //as its already set to subod.count if (od.Index != 0x1003) { @@ -977,7 +977,7 @@ protected string write_od_line(ODentry od) } /// - /// Get the CanOpenNode specific flags, these flags are used internally in CanOpenNode to determine details about the object variable + /// Get the CANopenNode specific flags, these flags are used internally in CanOpenNode to determine details about the object variable /// /// An odentry to access /// byte containing the flag value @@ -1326,7 +1326,7 @@ protected string export_record_types() if(od.Index>=0x1400 && od.Index<0x1600) { - count = 3; //CanOpenNode Fudging. Its only 3 parameters for RX PDOS in the c code despite being a PDO_COMMUNICATION_PARAMETER + count = 3; //CANopenNode Fudging. Its only 3 parameters for RX PDOS in the c code despite being a PDO_COMMUNICATION_PARAMETER } returndata.AppendLine($"/*0x{od.Index:x4}*/ const CO_OD_entryRecord_t OD_record{od.Index:x4}[{count}] = {{"); @@ -1382,7 +1382,7 @@ protected string export_one_record_type(ODentry sub,string arrayaccess) } else { - //Domain type MUST have its data pointer set to 0 for CanOpenNode + //Domain type MUST have its data pointer set to 0 for CANopenNode sb.AppendLine($" {{(void*)0, 0x{getflags(sub):x2}, 0x{datasize:x} }},"); } diff --git a/libEDSsharp/CanOpenXDD.cs b/libEDSsharp/CanOpenXDD.cs index a6a1aeb1..ffff5d0e 100644 --- a/libEDSsharp/CanOpenXDD.cs +++ b/libEDSsharp/CanOpenXDD.cs @@ -15,7 +15,7 @@ You should have received a copy of the GNU General Public License along with libEDSsharp. If not, see . Copyright(c) 2016 - 2019 Robin Cornelius - based heavily on the files CO_OD.h and CO_OD.c from CanOpenNode which are + based heavily on the files CO_OD.h and CO_OD.c from CANopenNode which are Copyright(c) 2010 - 2016 Janez Paternoster */ @@ -206,7 +206,7 @@ public ISO15745ProfileContainer convert(EDSsharp eds) dev.ISO15745Profile[0].ProfileHeader.ISO15745Reference = new ISO15745Reference_DataType(); dev.ISO15745Profile[0].ProfileHeader.ISO15745Reference.ISO15745Part = "1"; dev.ISO15745Profile[0].ProfileHeader.ISO15745Reference.ISO15745Edition = "1"; - dev.ISO15745Profile[0].ProfileHeader.ISO15745Reference.ProfileTechnology = "Canopen"; + dev.ISO15745Profile[0].ProfileHeader.ISO15745Reference.ProfileTechnology = "CANopen"; dev.ISO15745Profile[0].ProfileBody = new ProfileBody_Device_CANopen(); @@ -363,7 +363,7 @@ public ISO15745ProfileContainer convert(EDSsharp eds) dev.ISO15745Profile[1].ProfileHeader.ISO15745Reference = new ISO15745Reference_DataType(); dev.ISO15745Profile[1].ProfileHeader.ISO15745Reference.ISO15745Part = "1"; dev.ISO15745Profile[1].ProfileHeader.ISO15745Reference.ISO15745Edition = "1"; - dev.ISO15745Profile[1].ProfileHeader.ISO15745Reference.ProfileTechnology = "Canopen"; + dev.ISO15745Profile[1].ProfileHeader.ISO15745Reference.ProfileTechnology = "CANopen"; dev.ISO15745Profile[1].ProfileBody = new ProfileBody_CommunicationNetwork_CANopen(); ProfileBody_CommunicationNetwork_CANopen comnet = (ProfileBody_CommunicationNetwork_CANopen)dev.ISO15745Profile[1].ProfileBody; diff --git a/libEDSsharp/docs/libEDSsharp.xml b/libEDSsharp/docs/libEDSsharp.xml index ffc0cd2a..ad015268 100644 --- a/libEDSsharp/docs/libEDSsharp.xml +++ b/libEDSsharp/docs/libEDSsharp.xml @@ -6,7 +6,7 @@ - Get the CanOpenNode specific flags, these flags are used internally in CanOpenNode to determine details about the object variable + Get the CANopenNode specific flags, these flags are used internally in CanOpenNode to determine details about the object variable An odentry to access byte containing the flag value @@ -50,7 +50,7 @@ Index of object in object dictionary Type of this objects data Default value (always set as a string) - Allowed CanOpen access permissions + Allowed CANopen access permissions Allowed PDO mapping options @@ -104,7 +104,7 @@ - Return the size in bytes for the given CanOpen datatype of this object, eg the size of what ever the datatype field is set to + Return the size in bytes for the given CANopen datatype of this object, eg the size of what ever the datatype field is set to no of bytes diff --git a/libEDSsharp/eds.cs b/libEDSsharp/eds.cs index 27cf8f4a..76a05e4e 100644 --- a/libEDSsharp/eds.cs +++ b/libEDSsharp/eds.cs @@ -992,7 +992,7 @@ public bool PDOMapping public PDOMappingType PDOtype; - //CanOpenNode specific extra storage + //CANopenNode specific extra storage public string Label = ""; public string Description = ""; @@ -1036,7 +1036,7 @@ public ODentry() /// Index of object in object dictionary /// Type of this objects data /// Default value (always set as a string) - /// Allowed CanOpen access permissions + /// Allowed CANopen access permissions /// Allowed PDO mapping options public ODentry(string parameter_name,UInt16 index, DataType datatype, string defaultvalue, EDSsharp.AccessType accesstype, PDOMappingType PDOMapping) { @@ -1252,7 +1252,7 @@ public string Paramater_cname() } /// - /// Return the size in bytes for the given CanOpen datatype of this object, eg the size of what ever the datatype field is set to + /// Return the size in bytes for the given CANopen datatype of this object, eg the size of what ever the datatype field is set to /// /// no of bytes public int Sizeofdatatype()