Added support for 2 instances.

This commit is contained in:
Szymon Porwolik
2019-08-24 22:03:32 +02:00
parent ad299b227b
commit 073b9a72e2
9 changed files with 334 additions and 22 deletions

View File

@@ -60,9 +60,15 @@
this.tim_10000ms = new System.Windows.Forms.Timer(this.components);
this.tim_200ms = new System.Windows.Forms.Timer(this.components);
this.notifyIcon1 = new System.Windows.Forms.NotifyIcon(this.components);
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.con_txt_3rd_lotatc2 = new System.Windows.Forms.MaskedTextBox();
this.con_txt_3rd_srs2 = new System.Windows.Forms.MaskedTextBox();
this.con_check_3rd_lotatc2 = new System.Windows.Forms.CheckBox();
this.con_check_3rd_srs2 = new System.Windows.Forms.CheckBox();
this.con_GroupBox_1.SuspendLayout();
this.con_GroupBox_2.SuspendLayout();
this.con_GroupBox_3.SuspendLayout();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
// con_List_Received
@@ -73,12 +79,12 @@
"Welcome to Perun for DCS World!"});
this.con_List_Received.Location = new System.Drawing.Point(6, 19);
this.con_List_Received.Name = "con_List_Received";
this.con_List_Received.Size = new System.Drawing.Size(307, 134);
this.con_List_Received.Size = new System.Drawing.Size(307, 147);
this.con_List_Received.TabIndex = 0;
//
// con_Button_Listen_ON
//
this.con_Button_Listen_ON.Location = new System.Drawing.Point(12, 434);
this.con_Button_Listen_ON.Location = new System.Drawing.Point(12, 517);
this.con_Button_Listen_ON.Name = "con_Button_Listen_ON";
this.con_Button_Listen_ON.Size = new System.Drawing.Size(86, 39);
this.con_Button_Listen_ON.TabIndex = 2;
@@ -89,7 +95,7 @@
// con_Button_Listen_OFF
//
this.con_Button_Listen_OFF.Enabled = false;
this.con_Button_Listen_OFF.Location = new System.Drawing.Point(104, 434);
this.con_Button_Listen_OFF.Location = new System.Drawing.Point(104, 517);
this.con_Button_Listen_OFF.Name = "con_Button_Listen_OFF";
this.con_Button_Listen_OFF.Size = new System.Drawing.Size(86, 39);
this.con_Button_Listen_OFF.TabIndex = 3;
@@ -100,9 +106,9 @@
// con_GroupBox_1
//
this.con_GroupBox_1.Controls.Add(this.con_List_Received);
this.con_GroupBox_1.Location = new System.Drawing.Point(12, 261);
this.con_GroupBox_1.Location = new System.Drawing.Point(12, 335);
this.con_GroupBox_1.Name = "con_GroupBox_1";
this.con_GroupBox_1.Size = new System.Drawing.Size(324, 167);
this.con_GroupBox_1.Size = new System.Drawing.Size(324, 176);
this.con_GroupBox_1.TabIndex = 4;
this.con_GroupBox_1.TabStop = false;
this.con_GroupBox_1.Text = "UDP log";
@@ -224,7 +230,7 @@
this.con_GroupBox_3.Size = new System.Drawing.Size(324, 68);
this.con_GroupBox_3.TabIndex = 6;
this.con_GroupBox_3.TabStop = false;
this.con_GroupBox_3.Text = "3rd Party";
this.con_GroupBox_3.Text = "Instance #1";
//
// con_txt_3rd_lotatc
//
@@ -264,7 +270,7 @@
//
// con_Button_Quit
//
this.con_Button_Quit.Location = new System.Drawing.Point(250, 434);
this.con_Button_Quit.Location = new System.Drawing.Point(251, 517);
this.con_Button_Quit.Name = "con_Button_Quit";
this.con_Button_Quit.Size = new System.Drawing.Size(86, 39);
this.con_Button_Quit.TabIndex = 7;
@@ -324,11 +330,61 @@
this.notifyIcon1.Text = "notifyIcon1";
this.notifyIcon1.Visible = true;
//
// groupBox1
//
this.groupBox1.Controls.Add(this.con_txt_3rd_lotatc2);
this.groupBox1.Controls.Add(this.con_txt_3rd_srs2);
this.groupBox1.Controls.Add(this.con_check_3rd_lotatc2);
this.groupBox1.Controls.Add(this.con_check_3rd_srs2);
this.groupBox1.Location = new System.Drawing.Point(12, 261);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(324, 68);
this.groupBox1.TabIndex = 7;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Instance #2";
//
// con_txt_3rd_lotatc2
//
this.con_txt_3rd_lotatc2.Location = new System.Drawing.Point(123, 39);
this.con_txt_3rd_lotatc2.Name = "con_txt_3rd_lotatc2";
this.con_txt_3rd_lotatc2.Size = new System.Drawing.Size(190, 20);
this.con_txt_3rd_lotatc2.TabIndex = 4;
this.con_txt_3rd_lotatc2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.con_txt_3rd_lotatc2_Click);
//
// con_txt_3rd_srs2
//
this.con_txt_3rd_srs2.Location = new System.Drawing.Point(123, 16);
this.con_txt_3rd_srs2.Name = "con_txt_3rd_srs2";
this.con_txt_3rd_srs2.Size = new System.Drawing.Size(190, 20);
this.con_txt_3rd_srs2.TabIndex = 3;
this.con_txt_3rd_srs2.MouseClick += new System.Windows.Forms.MouseEventHandler(this.con_txt_3rd_srs2_Click);
//
// con_check_3rd_lotatc2
//
this.con_check_3rd_lotatc2.AutoSize = true;
this.con_check_3rd_lotatc2.Location = new System.Drawing.Point(6, 42);
this.con_check_3rd_lotatc2.Name = "con_check_3rd_lotatc2";
this.con_check_3rd_lotatc2.Size = new System.Drawing.Size(100, 17);
this.con_check_3rd_lotatc2.TabIndex = 1;
this.con_check_3rd_lotatc2.Text = "LotATC json file";
this.con_check_3rd_lotatc2.UseVisualStyleBackColor = true;
//
// con_check_3rd_srs2
//
this.con_check_3rd_srs2.AutoSize = true;
this.con_check_3rd_srs2.Location = new System.Drawing.Point(6, 19);
this.con_check_3rd_srs2.Name = "con_check_3rd_srs2";
this.con_check_3rd_srs2.Size = new System.Drawing.Size(111, 17);
this.con_check_3rd_srs2.TabIndex = 0;
this.con_check_3rd_srs2.Text = "DCS SRS json file";
this.con_check_3rd_srs2.UseVisualStyleBackColor = true;
//
// form_Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(349, 483);
this.ClientSize = new System.Drawing.Size(349, 558);
this.Controls.Add(this.groupBox1);
this.Controls.Add(this.label5);
this.Controls.Add(this.con_lab_github);
this.Controls.Add(this.con_Button_Quit);
@@ -351,6 +407,8 @@
this.con_GroupBox_2.PerformLayout();
this.con_GroupBox_3.ResumeLayout(false);
this.con_GroupBox_3.PerformLayout();
this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@@ -388,6 +446,11 @@
private System.Windows.Forms.TextBox con_txt_mysql_port;
private System.Windows.Forms.Timer tim_200ms;
private System.Windows.Forms.NotifyIcon notifyIcon1;
private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.MaskedTextBox con_txt_3rd_lotatc2;
private System.Windows.Forms.MaskedTextBox con_txt_3rd_srs2;
private System.Windows.Forms.CheckBox con_check_3rd_lotatc2;
private System.Windows.Forms.CheckBox con_check_3rd_srs2;
}
}

View File

@@ -41,6 +41,10 @@ namespace Perun_v1
con_txt_3rd_srs.Text = Properties.Settings.Default.OTHER_SRS_FILE;
con_check_3rd_lotatc.Checked = Properties.Settings.Default.OTHER_LOTATC_USE;
con_check_3rd_srs.Checked = Properties.Settings.Default.OTHER_SRS_USE;
con_txt_3rd_lotatc2.Text = Properties.Settings.Default.OTHER_LOTATC_FILE2;
con_txt_3rd_srs2.Text = Properties.Settings.Default.OTHER_SRS_FILE2;
con_check_3rd_lotatc2.Checked = Properties.Settings.Default.OTHER_LOTATC_USE2;
con_check_3rd_srs2.Checked = Properties.Settings.Default.OTHER_SRS_USE2;
}
private void form_Main_SaveSettings()
@@ -57,6 +61,10 @@ namespace Perun_v1
Properties.Settings.Default.OTHER_SRS_FILE = con_txt_3rd_srs.Text;
Properties.Settings.Default.OTHER_LOTATC_USE = con_check_3rd_lotatc.Checked;
Properties.Settings.Default.OTHER_SRS_USE = con_check_3rd_srs.Checked;
Properties.Settings.Default.OTHER_LOTATC_FILE2 = con_txt_3rd_lotatc2.Text;
Properties.Settings.Default.OTHER_SRS_FILE2 = con_txt_3rd_srs2.Text;
Properties.Settings.Default.OTHER_LOTATC_USE2 = con_check_3rd_lotatc2.Checked;
Properties.Settings.Default.OTHER_SRS_USE2 = con_check_3rd_srs2.Checked;
Properties.Settings.Default.Save();
}
@@ -75,6 +83,10 @@ namespace Perun_v1
con_txt_3rd_srs.Enabled = false;
con_check_3rd_lotatc.Enabled = false;
con_check_3rd_srs.Enabled = false;
con_txt_3rd_lotatc2.Enabled = false;
con_txt_3rd_srs2.Enabled = false;
con_check_3rd_lotatc2.Enabled = false;
con_check_3rd_srs2.Enabled = false;
}
private void form_Main_EnableControls()
@@ -92,6 +104,10 @@ namespace Perun_v1
con_txt_3rd_srs.Enabled = true;
con_check_3rd_lotatc.Enabled = true;
con_check_3rd_srs.Enabled = true;
con_txt_3rd_lotatc2.Enabled = true;
con_txt_3rd_srs2.Enabled = true;
con_check_3rd_lotatc2.Enabled = true;
con_check_3rd_srs2.Enabled = true;
}
// ################################ User input ################################
@@ -172,6 +188,36 @@ namespace Perun_v1
}
}
private void con_txt_3rd_srs2_Click(object sender, MouseEventArgs e)
{
// Chose SRS Json file
if (openFileDialog_SRS.ShowDialog() == DialogResult.OK)
{
con_txt_3rd_srs2.Text = openFileDialog_SRS.FileName;
con_check_3rd_srs2.Checked = true;
}
else
{
con_txt_3rd_srs2.Text = "";
con_check_3rd_srs2.Checked = false;
}
}
private void con_txt_3rd_lotatc2_Click(object sender, MouseEventArgs e)
{
// Chose LotATC Json file
if (openFileDialog_LotATC.ShowDialog() == DialogResult.OK)
{
con_txt_3rd_lotatc2.Text = openFileDialog_LotATC.FileName;
con_check_3rd_lotatc2.Checked = true;
}
else
{
con_txt_3rd_lotatc2.Text = "";
con_check_3rd_lotatc2.Checked = false;
}
}
// ################################ Form state ################################
private void con_Button_Quit_Click(object sender, EventArgs e)
{
@@ -277,11 +323,15 @@ namespace Perun_v1
// Main timer to send JSON files to MySQL
string strSRSJson = "";
string strLotATCJson = "";
string strSRSJson2 = "";
string strLotATCJson2 = "";
bool boolSRSdefault = true;
bool boolLotATCdefault = true;
bool boolSRSdefault2 = true;
bool boolLotATCdefault2 = true;
// Handle SRS
// Handle SRS - TBD clean code for multiinstance
if (con_check_3rd_srs.Checked)
{
try
@@ -330,12 +380,12 @@ namespace Perun_v1
strSRSJson = "{'type':'100','instance':'1','payload':{'ignore':'false'}}"; // No SRS clients connected
}
boolSRSdefault = false;
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "SRS data loaded");
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "#1 > SRS data loaded");
}
catch
{
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "SRS data ERROR");
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "#1 > SRS data ERROR");
}
@@ -346,7 +396,71 @@ namespace Perun_v1
}
DatabaseController.SendToMySql(strSRSJson);
// Handle LotATC
if (con_check_3rd_srs2.Checked)
{
try
{
strSRSJson2 = System.IO.File.ReadAllText(con_txt_3rd_srs2.Text);
dynamic raw_lotatc = JsonConvert.DeserializeObject(strSRSJson2);
for (int i = 0; i < raw_lotatc.Count; i++)
{
if (raw_lotatc[i].RadioInfo != null)
{
int temp = raw_lotatc[i].RadioInfo.radios.Count - 1;
for (int j = temp; j >= 0; j--)
{
raw_lotatc[i].RadioInfo.radios[j].enc.Parent.Remove();
raw_lotatc[i].RadioInfo.radios[j].encKey.Parent.Remove();
raw_lotatc[i].RadioInfo.radios[j].encMode.Parent.Remove();
raw_lotatc[i].RadioInfo.radios[j].freqMax.Parent.Remove();
raw_lotatc[i].RadioInfo.radios[j].freqMin.Parent.Remove();
raw_lotatc[i].RadioInfo.radios[j].modulation.Parent.Remove();
raw_lotatc[i].RadioInfo.radios[j].freqMode.Parent.Remove();
raw_lotatc[i].RadioInfo.radios[j].volMode.Parent.Remove();
raw_lotatc[i].RadioInfo.radios[j].expansion.Parent.Remove();
raw_lotatc[i].RadioInfo.radios[j].channel.Parent.Remove();
raw_lotatc[i].RadioInfo.radios[j].simul.Parent.Remove();
if (raw_lotatc[i].RadioInfo.radios[j].name == "No Radio")
{
raw_lotatc[i].RadioInfo.radios[j].Remove();
}
}
raw_lotatc[i].ClientChannelId.Parent.Remove();
raw_lotatc[i].RadioInfo.simultaneousTransmission.Parent.Remove();
}
}
if (raw_lotatc.Count > 0)
{
strSRSJson2 = JsonConvert.SerializeObject(raw_lotatc);
strSRSJson2 = "{'type':'100','instance':'2','payload':'" + strSRSJson2 + "'}";
}
else
{
strSRSJson2 = "{'type':'100','instance':'2','payload':{'ignore':'false'}}"; // No SRS clients connected
}
boolSRSdefault2 = false;
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "#2 > SRS data loaded");
}
catch
{
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "#2 > SRS data ERROR");
}
}
if (boolSRSdefault2)
{
strSRSJson = "{'type':'100','instance':'2','payload':{'ignore':'true'}}";
}
DatabaseController.SendToMySql(strSRSJson2);
// Handle LotATC - TBD clean code for multiinstance
if (con_check_3rd_lotatc.Checked)
{
try
@@ -356,21 +470,44 @@ namespace Perun_v1
strLotATCJson = "{'type':'101','instance':'1','payload':'" + strLotATCJson + "'}";
boolLotATCdefault = false;
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "LotATC data loaded");
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "#1 > LotATC data loaded");
}
catch
{
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "LotATC data ERROR");
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "#1 > LotATC data ERROR");
}
}
if (boolLotATCdefault)
{
strLotATCJson = "{'type':'101','instance':'1','payload':{'ignore':'true'}}"; // No LotATC controller connected
}
DatabaseController.SendToMySql(strLotATCJson);
if (con_check_3rd_lotatc2.Checked)
{
try
{
strLotATCJson2 = System.IO.File.ReadAllText(con_txt_3rd_lotatc2.Text);
dynamic raw_srs = JsonConvert.DeserializeObject(strLotATCJson2);
strLotATCJson2 = "{'type':'101','instance':'2','payload':'" + strLotATCJson2 + "'}";
boolLotATCdefault2 = false;
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "#2 > LotATC data loaded");
}
catch
{
PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "#2 > LotATC data ERROR");
}
}
if (boolLotATCdefault2)
{
strLotATCJson = "{'type':'101','instance':'2','payload':{'ignore':'true'}}"; // No LotATC controller connected
}
DatabaseController.SendToMySql(strLotATCJson2);
}
}
}