initial commit

This commit is contained in:
2022-10-08 20:00:13 +02:00
parent 9a6543ba20
commit dbab0ff383
36 changed files with 642 additions and 0 deletions

326
MainForm.Designer.cs generated Normal file
View File

@@ -0,0 +1,326 @@
namespace RoboSpot_RSL_Editor
{
partial class MainForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.btnLoadShowFile = new System.Windows.Forms.Button();
this.dlgOpenRSL = new System.Windows.Forms.OpenFileDialog();
this.listAllShowfiles = new System.Windows.Forms.ListBox();
this.lblAllShowfileNames = new System.Windows.Forms.Label();
this.txtCamIP = new System.Windows.Forms.TextBox();
this.lblLastUsedCamera = new System.Windows.Forms.Label();
this.btnClearUI = new System.Windows.Forms.Button();
this.txtShowVersion = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.chkPosBtnShown = new System.Windows.Forms.CheckBox();
this.chkColorBtnShown = new System.Windows.Forms.CheckBox();
this.chkTargetCrossShown = new System.Windows.Forms.CheckBox();
this.chkTraceCursor = new System.Windows.Forms.CheckBox();
this.chkTracePanInvert = new System.Windows.Forms.CheckBox();
this.chkTraceTiltInvert = new System.Windows.Forms.CheckBox();
this.txtTraceType = new System.Windows.Forms.TextBox();
this.label2 = new System.Windows.Forms.Label();
this.label3 = new System.Windows.Forms.Label();
this.txtExportedFilename = new System.Windows.Forms.TextBox();
this.chkPosShowInScene = new System.Windows.Forms.CheckBox();
this.chkDmxDimmersShown = new System.Windows.Forms.CheckBox();
this.SuspendLayout();
//
// btnLoadShowFile
//
this.btnLoadShowFile.Location = new System.Drawing.Point(10, 9);
this.btnLoadShowFile.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnLoadShowFile.Name = "btnLoadShowFile";
this.btnLoadShowFile.Size = new System.Drawing.Size(432, 22);
this.btnLoadShowFile.TabIndex = 0;
this.btnLoadShowFile.Text = "Load .rsl";
this.btnLoadShowFile.UseVisualStyleBackColor = true;
this.btnLoadShowFile.Click += new System.EventHandler(this.btnLoadShowFile_Click);
//
// dlgOpenRSL
//
this.dlgOpenRSL.Filter = "RoboSpot Showfiles (*.rsl)|*.rsl";
//
// listAllShowfiles
//
this.listAllShowfiles.FormattingEnabled = true;
this.listAllShowfiles.ItemHeight = 15;
this.listAllShowfiles.Location = new System.Drawing.Point(10, 129);
this.listAllShowfiles.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.listAllShowfiles.Name = "listAllShowfiles";
this.listAllShowfiles.Size = new System.Drawing.Size(203, 199);
this.listAllShowfiles.TabIndex = 2;
//
// lblAllShowfileNames
//
this.lblAllShowfileNames.AutoSize = true;
this.lblAllShowfileNames.Location = new System.Drawing.Point(10, 112);
this.lblAllShowfileNames.Name = "lblAllShowfileNames";
this.lblAllShowfileNames.Size = new System.Drawing.Size(114, 15);
this.lblAllShowfileNames.TabIndex = 3;
this.lblAllShowfileNames.Text = "All Showfiles Names";
//
// txtCamIP
//
this.txtCamIP.Location = new System.Drawing.Point(140, 35);
this.txtCamIP.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.txtCamIP.Name = "txtCamIP";
this.txtCamIP.ReadOnly = true;
this.txtCamIP.Size = new System.Drawing.Size(302, 23);
this.txtCamIP.TabIndex = 4;
//
// lblLastUsedCamera
//
this.lblLastUsedCamera.AutoSize = true;
this.lblLastUsedCamera.Location = new System.Drawing.Point(20, 38);
this.lblLastUsedCamera.Name = "lblLastUsedCamera";
this.lblLastUsedCamera.Size = new System.Drawing.Size(114, 15);
this.lblLastUsedCamera.TabIndex = 5;
this.lblLastUsedCamera.Text = "Last Used Camera IP";
//
// btnClearUI
//
this.btnClearUI.Location = new System.Drawing.Point(448, 9);
this.btnClearUI.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.btnClearUI.Name = "btnClearUI";
this.btnClearUI.Size = new System.Drawing.Size(85, 22);
this.btnClearUI.TabIndex = 6;
this.btnClearUI.Text = "Clear";
this.btnClearUI.UseVisualStyleBackColor = true;
this.btnClearUI.Click += new System.EventHandler(this.btnClearUI_Click);
//
// txtShowVersion
//
this.txtShowVersion.Location = new System.Drawing.Point(140, 89);
this.txtShowVersion.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.txtShowVersion.Name = "txtShowVersion";
this.txtShowVersion.ReadOnly = true;
this.txtShowVersion.Size = new System.Drawing.Size(85, 23);
this.txtShowVersion.TabIndex = 7;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(57, 92);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(77, 15);
this.label1.TabIndex = 8;
this.label1.Text = "Show Version";
//
// chkPosBtnShown
//
this.chkPosBtnShown.AutoCheck = false;
this.chkPosBtnShown.AutoSize = true;
this.chkPosBtnShown.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.chkPosBtnShown.Location = new System.Drawing.Point(290, 91);
this.chkPosBtnShown.Name = "chkPosBtnShown";
this.chkPosBtnShown.Size = new System.Drawing.Size(152, 19);
this.chkPosBtnShown.TabIndex = 9;
this.chkPosBtnShown.Text = "Position Buttons Shown";
this.chkPosBtnShown.UseVisualStyleBackColor = true;
//
// chkColorBtnShown
//
this.chkColorBtnShown.AutoCheck = false;
this.chkColorBtnShown.AutoSize = true;
this.chkColorBtnShown.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.chkColorBtnShown.Location = new System.Drawing.Point(304, 158);
this.chkColorBtnShown.Name = "chkColorBtnShown";
this.chkColorBtnShown.Size = new System.Drawing.Size(138, 19);
this.chkColorBtnShown.TabIndex = 10;
this.chkColorBtnShown.Text = "Color Buttons Shown";
this.chkColorBtnShown.UseVisualStyleBackColor = true;
//
// chkTargetCrossShown
//
this.chkTargetCrossShown.AutoCheck = false;
this.chkTargetCrossShown.AutoSize = true;
this.chkTargetCrossShown.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.chkTargetCrossShown.Location = new System.Drawing.Point(313, 183);
this.chkTargetCrossShown.Name = "chkTargetCrossShown";
this.chkTargetCrossShown.Size = new System.Drawing.Size(129, 19);
this.chkTargetCrossShown.TabIndex = 11;
this.chkTargetCrossShown.Text = "Target Cross Shown";
this.chkTargetCrossShown.UseVisualStyleBackColor = true;
//
// chkTraceCursor
//
this.chkTraceCursor.AutoCheck = false;
this.chkTraceCursor.AutoSize = true;
this.chkTraceCursor.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.chkTraceCursor.Location = new System.Drawing.Point(351, 225);
this.chkTraceCursor.Name = "chkTraceCursor";
this.chkTraceCursor.Size = new System.Drawing.Size(91, 19);
this.chkTraceCursor.TabIndex = 12;
this.chkTraceCursor.Text = "Trace Cursor";
this.chkTraceCursor.UseVisualStyleBackColor = true;
//
// chkTracePanInvert
//
this.chkTracePanInvert.AutoCheck = false;
this.chkTracePanInvert.AutoSize = true;
this.chkTracePanInvert.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.chkTracePanInvert.Location = new System.Drawing.Point(363, 250);
this.chkTracePanInvert.Name = "chkTracePanInvert";
this.chkTracePanInvert.Size = new System.Drawing.Size(79, 19);
this.chkTracePanInvert.TabIndex = 13;
this.chkTracePanInvert.Text = "Pan Invert";
this.chkTracePanInvert.UseVisualStyleBackColor = true;
//
// chkTraceTiltInvert
//
this.chkTraceTiltInvert.AutoCheck = false;
this.chkTraceTiltInvert.AutoSize = true;
this.chkTraceTiltInvert.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.chkTraceTiltInvert.Location = new System.Drawing.Point(367, 275);
this.chkTraceTiltInvert.Name = "chkTraceTiltInvert";
this.chkTraceTiltInvert.Size = new System.Drawing.Size(75, 19);
this.chkTraceTiltInvert.TabIndex = 14;
this.chkTraceTiltInvert.Text = "Tilt Invert";
this.chkTraceTiltInvert.UseVisualStyleBackColor = true;
//
// txtTraceType
//
this.txtTraceType.Location = new System.Drawing.Point(357, 299);
this.txtTraceType.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.txtTraceType.Name = "txtTraceType";
this.txtTraceType.ReadOnly = true;
this.txtTraceType.Size = new System.Drawing.Size(85, 23);
this.txtTraceType.TabIndex = 15;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(290, 302);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(61, 15);
this.label2.TabIndex = 16;
this.label2.Text = "Trace Type";
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(29, 65);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(105, 15);
this.label3.TabIndex = 18;
this.label3.Text = "Exported Filename";
//
// txtExportedFilename
//
this.txtExportedFilename.Location = new System.Drawing.Point(140, 62);
this.txtExportedFilename.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.txtExportedFilename.Name = "txtExportedFilename";
this.txtExportedFilename.ReadOnly = true;
this.txtExportedFilename.Size = new System.Drawing.Size(302, 23);
this.txtExportedFilename.TabIndex = 17;
//
// chkPosShowInScene
//
this.chkPosShowInScene.AutoCheck = false;
this.chkPosShowInScene.AutoSize = true;
this.chkPosShowInScene.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.chkPosShowInScene.Location = new System.Drawing.Point(340, 116);
this.chkPosShowInScene.Name = "chkPosShowInScene";
this.chkPosShowInScene.Size = new System.Drawing.Size(102, 19);
this.chkPosShowInScene.TabIndex = 19;
this.chkPosShowInScene.Text = "Show in Scene";
this.chkPosShowInScene.UseVisualStyleBackColor = true;
//
// chkDmxDimmersShown
//
this.chkDmxDimmersShown.AutoCheck = false;
this.chkDmxDimmersShown.AutoSize = true;
this.chkDmxDimmersShown.CheckAlign = System.Drawing.ContentAlignment.MiddleRight;
this.chkDmxDimmersShown.Location = new System.Drawing.Point(300, 352);
this.chkDmxDimmersShown.Name = "chkDmxDimmersShown";
this.chkDmxDimmersShown.Size = new System.Drawing.Size(142, 19);
this.chkDmxDimmersShown.TabIndex = 20;
this.chkDmxDimmersShown.Text = "DMX Dimmers Shown";
this.chkDmxDimmersShown.UseVisualStyleBackColor = true;
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(543, 475);
this.Controls.Add(this.chkDmxDimmersShown);
this.Controls.Add(this.chkPosShowInScene);
this.Controls.Add(this.label3);
this.Controls.Add(this.txtExportedFilename);
this.Controls.Add(this.label2);
this.Controls.Add(this.txtTraceType);
this.Controls.Add(this.chkTraceTiltInvert);
this.Controls.Add(this.chkTracePanInvert);
this.Controls.Add(this.chkTraceCursor);
this.Controls.Add(this.chkTargetCrossShown);
this.Controls.Add(this.chkColorBtnShown);
this.Controls.Add(this.chkPosBtnShown);
this.Controls.Add(this.label1);
this.Controls.Add(this.txtShowVersion);
this.Controls.Add(this.btnClearUI);
this.Controls.Add(this.lblLastUsedCamera);
this.Controls.Add(this.txtCamIP);
this.Controls.Add(this.lblAllShowfileNames);
this.Controls.Add(this.listAllShowfiles);
this.Controls.Add(this.btnLoadShowFile);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
this.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.MaximizeBox = false;
this.Name = "MainForm";
this.Text = "RoboSpot RSL Editor";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private Button btnLoadShowFile;
private OpenFileDialog dlgOpenRSL;
private ListBox listAllShowfiles;
private Label lblAllShowfileNames;
private TextBox txtCamIP;
private Label lblLastUsedCamera;
private Button btnClearUI;
private TextBox txtShowVersion;
private Label label1;
private CheckBox chkPosBtnShown;
private CheckBox chkColorBtnShown;
private CheckBox chkTargetCrossShown;
private CheckBox chkTraceCursor;
private CheckBox chkTracePanInvert;
private CheckBox chkTraceTiltInvert;
private TextBox txtTraceType;
private Label label2;
private Label label3;
private TextBox txtExportedFilename;
private CheckBox chkPosShowInScene;
private CheckBox chkDmxDimmersShown;
}
}

186
MainForm.cs Normal file
View File

@@ -0,0 +1,186 @@
using System.Globalization;
using System.Text;
namespace RoboSpot_RSL_Editor
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void btnLoadShowFile_Click(object sender, EventArgs e)
{
if (dlgOpenRSL.ShowDialog() == DialogResult.OK)
{
clearUI();
FileStream fs = new FileStream(dlgOpenRSL.FileName, FileMode.Open);
List<String> showfileContents = new List<string>();
int hexIn;
for (int i = 0; (hexIn = fs.ReadByte()) != -1; i++)
{
String hex = string.Format("{0:X2}", hexIn);
showfileContents.Add(hex);
}
fs.Close();
String[] lines = showfileContents.ToArray();
if (lines.Length == 43438)
{
if (lines[0] != "02")
{
DialogResult result = MessageBox.Show("File header seems incorrect. Still try read the showfile ?", "Header incorrect", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
processFile(lines);
}
}
else
{
processFile(lines);
}
} else
{
DialogResult result = MessageBox.Show("File size seems incorrect. Still try read the showfile ?", "Size incorrect", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
if (result == DialogResult.Yes)
{
processFile(lines);
}
}
}
}
private String rawToString(string input)
{
int value = Convert.ToInt32(input, 16);
char charValue = (char)value;
return charValue.ToString();
}
private void clearUI()
{
txtCamIP.Clear();
listAllShowfiles.Items.Clear();
txtShowVersion.Clear();
this.Text = Application.ProductName;
chkPosBtnShown.Checked = false;
chkPosShowInScene.Checked = false;
chkColorBtnShown.Checked = false;
chkTargetCrossShown.Checked = false;
chkTraceCursor.Checked = false;
chkTracePanInvert.Checked = false;
chkTraceTiltInvert.Checked = false;
txtTraceType.Clear();
txtExportedFilename.Clear();
chkDmxDimmersShown.Checked = false;
}
private void btnClearUI_Click(object sender, EventArgs e)
{
clearUI();
}
private void processFile(string[] input)
{
List<String> all_showfile_chars_as_string = new List<string>();
foreach (string hx in input[58..71])
{
txtCamIP.AppendText(rawToString(hx));
}
foreach (string hx in input[32812..32971])
{
string value;
if (hx == "00")
{
value = rawToString("20");
}
else
{
value = rawToString(hx);
}
all_showfile_chars_as_string.Add(value);
}
if (input[2722].ToString() == "01")
{
chkPosBtnShown.Checked = true;
}
if (input[32976].ToString() == "01")
{
chkColorBtnShown.Checked = true;
}
if (input[32780].ToString() == "01")
{
chkTargetCrossShown.Checked = true;
}
if (input[2622].ToString() == "01")
{
chkTraceCursor.Checked = true;
}
if (input[2723].ToString() == "01")
{
chkPosShowInScene.Checked = true;
}
if (input[2623].ToString() == "01")
{
chkTracePanInvert.Checked = true;
}
if (input[2624].ToString() == "01")
{
chkTraceTiltInvert.Checked = true;
}
if (input[33248].ToString() == "01")
{
chkDmxDimmersShown.Checked = true;
}
if (input[2626].ToString() == "E7")
{
txtTraceType.AppendText("CAMERA");
} else
{
txtTraceType.AppendText("FOLLOWSPOT");
}
foreach (string hx in input[31712..31742])
{
txtExportedFilename.AppendText(rawToString(hx));
}
string all_showfiles = String.Join("", all_showfile_chars_as_string);
this.Text = Application.ProductName + " - " + dlgOpenRSL.FileName;
txtShowVersion.AppendText(input[2]);
for (int i = 0; i < 10; i++)
{
string showfile = all_showfiles.Substring(i * 16, 15);
listAllShowfiles.Items.Add(showfile);
}
}
}
}

63
MainForm.resx Normal file
View File

@@ -0,0 +1,63 @@
<root>
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="dlgOpenRSL.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

17
Program.cs Normal file
View File

@@ -0,0 +1,17 @@
namespace RoboSpot_RSL_Editor
{
internal static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// To customize application configuration such as set high DPI settings or default font,
// see https://aka.ms/applicationconfiguration.
ApplicationConfiguration.Initialize();
Application.Run(new MainForm());
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<ufwb version="1.17">
<grammar name="RSL grammar" start="id:1" author="Vincent" fileextension="rsl">
<description>Grammar for RSL files</description>
<structure name="RSL file" id="1" encoding="ISO_8859-1:1987" endian="big" signed="no">
<binary name="File identifier" id="2" fillcolor="AA0000" length="1"/>
<binary name="&lt;Binary Fill Bytes&gt;" id="3" unused="yes" length="1"/>
<binary name="Showfile version ?" id="4" fillcolor="AA0000" length="1"/>
<binary name="&lt;Binary Fill Bytes&gt;-1" id="5" unused="yes" length="32807"/>
<string name="Shows on Base" id="6" fillcolor="FF00FF" type="fixed-length" length="160" encoding="ISO_8859-1:1987"/>
</structure>
</grammar>
</ufwb>

View File

@@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<RootNamespace>RoboSpot_RSL_Editor</RootNamespace>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

25
RoboSpot RSL Editor.sln Normal file
View File

@@ -0,0 +1,25 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32602.215
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RoboSpot RSL Editor", "RoboSpot RSL Editor.csproj", "{BC40B8AD-56BA-4F37-89ED-3E5928BDE03B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{BC40B8AD-56BA-4F37-89ED-3E5928BDE03B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{BC40B8AD-56BA-4F37-89ED-3E5928BDE03B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BC40B8AD-56BA-4F37-89ED-3E5928BDE03B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BC40B8AD-56BA-4F37-89ED-3E5928BDE03B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AB13DC70-46BD-404F-B3DD-22907419708B}
EndGlobalSection
EndGlobal