diff --git a/01_DCS/Hooks/Perun.lua b/01_DCS/Hooks/Perun.lua index a4d3d97..a320d6d 100644 --- a/01_DCS/Hooks/Perun.lua +++ b/01_DCS/Hooks/Perun.lua @@ -14,13 +14,13 @@ Perun.UDPSourcePort = 48621 -- (int) UDP port to send data from Perun.Instance = 1 -- (int) Id number of instance (if multiple DCS instances are to run at the same PC) Perun.JsonStatusLocation = "Scripts\\Json\\" -- (string) folder relative do user's SaveGames DCS folder -> status file updated each RefreshMission Perun.MOTD_L1 = "Witamy na serwerze Gildia.org !" -- (string) Message send to players connecting the server - Line 1 -Perun.MOTD_L2 = "Wymagamy obecnosci DCS SRS - szczegoly na forum" -- (string) Message send to players connecting the server - Line 2 +Perun.MOTD_L2 = "Wymagamy obecnosci DCS SRS oraz TeamSpeak - szczegoly na forum" -- (string) Message send to players connecting the server - Line 2 -- ###################### END OF SETTINGS - DO NOT MODIFY OUTSIDE THIS SECTION ###################### -- Variable init -Perun.Version = "v0.6.0" +Perun.Version = "v0.7.0" Perun.StatusData = {} Perun.SlotsData = {} Perun.MissionData = {} diff --git a/02_Windows_App/Perun_v1/01_Classes/DatabaseController.cs b/02_Windows_App/Perun_v1/01_Classes/DatabaseController.cs index fd646d7..d48beb4 100644 --- a/02_Windows_App/Perun_v1/01_Classes/DatabaseController.cs +++ b/02_Windows_App/Perun_v1/01_Classes/DatabaseController.cs @@ -98,7 +98,7 @@ internal class DatabaseController Console.WriteLine(rdrMySQL[0] + " -- " + rdrMySQL[1]); } rdrMySQL.Close(); - PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "MySQL updated, package type: " + strUDPFrameType); + PerunHelper.LogHistoryAdd(ref Globals.arrLogHistory, "#"+strUDPFrameInstance + " > MySQL updated, package type: " + strUDPFrameType); } catch (ArgumentException a_ex) { diff --git a/02_Windows_App/Perun_v1/02_Forms/form_Main.Designer.cs b/02_Windows_App/Perun_v1/02_Forms/form_Main.Designer.cs index ba881ff..723b816 100644 --- a/02_Windows_App/Perun_v1/02_Forms/form_Main.Designer.cs +++ b/02_Windows_App/Perun_v1/02_Forms/form_Main.Designer.cs @@ -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; } } diff --git a/02_Windows_App/Perun_v1/02_Forms/form_Main.cs b/02_Windows_App/Perun_v1/02_Forms/form_Main.cs index d3d1a5f..cd002ff 100644 --- a/02_Windows_App/Perun_v1/02_Forms/form_Main.cs +++ b/02_Windows_App/Perun_v1/02_Forms/form_Main.cs @@ -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); } } } diff --git a/02_Windows_App/Perun_v1/Perun_v1.csproj b/02_Windows_App/Perun_v1/Perun_v1.csproj index d9fd713..56d316f 100644 --- a/02_Windows_App/Perun_v1/Perun_v1.csproj +++ b/02_Windows_App/Perun_v1/Perun_v1.csproj @@ -32,8 +32,8 @@ Perun true Perun.htm - 0 - 0.6.0.%2a + 6 + 0.7.0.%2a false true true @@ -144,6 +144,7 @@ + SettingsSingleFileGenerator diff --git a/02_Windows_App/Perun_v1/Properties/AssemblyInfo.cs b/02_Windows_App/Perun_v1/Properties/AssemblyInfo.cs index 3b6f2b3..315e778 100644 --- a/02_Windows_App/Perun_v1/Properties/AssemblyInfo.cs +++ b/02_Windows_App/Perun_v1/Properties/AssemblyInfo.cs @@ -33,7 +33,7 @@ using System.Runtime.InteropServices; // Możesz określić wszystkie wartości lub użyć domyślnych numerów kompilacji i poprawki // przy użyciu symbolu „*”, tak jak pokazano poniżej: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.6.0.0")] -[assembly: AssemblyFileVersion("0.6.0.0")] +[assembly: AssemblyVersion("0.7.0.0")] +[assembly: AssemblyFileVersion("0.7.0.0")] [assembly: NeutralResourcesLanguage("en")] diff --git a/02_Windows_App/Perun_v1/Properties/Settings.Designer.cs b/02_Windows_App/Perun_v1/Properties/Settings.Designer.cs index a94ba30..0e363a5 100644 --- a/02_Windows_App/Perun_v1/Properties/Settings.Designer.cs +++ b/02_Windows_App/Perun_v1/Properties/Settings.Designer.cs @@ -130,5 +130,53 @@ namespace Perun_v1.Properties { this["MYSQL_Port"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string OTHER_LOTATC_FILE2 { + get { + return ((string)(this["OTHER_LOTATC_FILE2"])); + } + set { + this["OTHER_LOTATC_FILE2"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("")] + public string OTHER_SRS_FILE2 { + get { + return ((string)(this["OTHER_SRS_FILE2"])); + } + set { + this["OTHER_SRS_FILE2"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool OTHER_LOTATC_USE2 { + get { + return ((bool)(this["OTHER_LOTATC_USE2"])); + } + set { + this["OTHER_LOTATC_USE2"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("False")] + public bool OTHER_SRS_USE2 { + get { + return ((bool)(this["OTHER_SRS_USE2"])); + } + set { + this["OTHER_SRS_USE2"] = value; + } + } } } diff --git a/02_Windows_App/Perun_v1/Properties/Settings.settings b/02_Windows_App/Perun_v1/Properties/Settings.settings index 7fa9c96..137835e 100644 --- a/02_Windows_App/Perun_v1/Properties/Settings.settings +++ b/02_Windows_App/Perun_v1/Properties/Settings.settings @@ -29,5 +29,17 @@ 3306 + + + + + + + + False + + + False + \ No newline at end of file diff --git a/02_Windows_App/Perun_v1/app.config b/02_Windows_App/Perun_v1/app.config new file mode 100644 index 0000000..72175de --- /dev/null +++ b/02_Windows_App/Perun_v1/app.config @@ -0,0 +1,51 @@ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + False + + + False + + + 3306 + + + + + + + + + False + + + False + + + + \ No newline at end of file