From 6982ceb90885cf87a2834a11404c7cfff3754e9a Mon Sep 17 00:00:00 2001 From: Evan Langlais Date: Tue, 28 Feb 2017 14:40:34 -0500 Subject: [PATCH] Fixed InterCOM system with advanced syntax. Created demo on how it works and how to register, listen, interact with, and send messages amongst other stations. --- Enigma/DebugForm.Designer.cs | 27 ++++++ Enigma/DebugForm.cs | 24 +++++- Enigma/Enigma.csproj | 6 ++ EnigmaX/Classes/DBConnect.cs | 2 +- EnigmaX/Classes/ICMessage.cs | 32 +++++++ EnigmaX/Classes/Intercom.cs | 162 +++++++++++++++++++++++++++++++++++ EnigmaX/Classes/Station.cs | 58 +++++++++++++ EnigmaX/EnigmaX.csproj | 3 + 8 files changed, 312 insertions(+), 2 deletions(-) create mode 100644 EnigmaX/Classes/ICMessage.cs create mode 100644 EnigmaX/Classes/Intercom.cs create mode 100644 EnigmaX/Classes/Station.cs diff --git a/Enigma/DebugForm.Designer.cs b/Enigma/DebugForm.Designer.cs index 0a5d856..0e9d3d1 100644 --- a/Enigma/DebugForm.Designer.cs +++ b/Enigma/DebugForm.Designer.cs @@ -28,13 +28,37 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { + this.metroButton1 = new MetroFramework.Controls.MetroButton(); + this.metroButton2 = new MetroFramework.Controls.MetroButton(); this.SuspendLayout(); // + // metroButton1 + // + this.metroButton1.Location = new System.Drawing.Point(23, 606); + this.metroButton1.Name = "metroButton1"; + this.metroButton1.Size = new System.Drawing.Size(363, 23); + this.metroButton1.TabIndex = 0; + this.metroButton1.Text = "register"; + this.metroButton1.UseSelectable = true; + this.metroButton1.Click += new System.EventHandler(this.metroButton1_Click); + // + // metroButton2 + // + this.metroButton2.Location = new System.Drawing.Point(439, 606); + this.metroButton2.Name = "metroButton2"; + this.metroButton2.Size = new System.Drawing.Size(160, 22); + this.metroButton2.TabIndex = 1; + this.metroButton2.Text = "send dummy stuff"; + this.metroButton2.UseSelectable = true; + this.metroButton2.Click += new System.EventHandler(this.metroButton2_Click); + // // DebugForm // this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 20F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1094, 652); + this.Controls.Add(this.metroButton2); + this.Controls.Add(this.metroButton1); this.Name = "DebugForm"; this.Text = "Debug Form"; this.Load += new System.EventHandler(this.Form1_Load); @@ -43,6 +67,9 @@ private void InitializeComponent() } #endregion + + private MetroFramework.Controls.MetroButton metroButton1; + private MetroFramework.Controls.MetroButton metroButton2; } } diff --git a/Enigma/DebugForm.cs b/Enigma/DebugForm.cs index 942f47b..54a5a15 100644 --- a/Enigma/DebugForm.cs +++ b/Enigma/DebugForm.cs @@ -8,6 +8,7 @@ using System.Threading.Tasks; using System.Windows.Forms; using MetroFramework.Forms; +using EnigmaX.Classes; namespace Enigma { @@ -17,10 +18,31 @@ public DebugForm() { InitializeComponent(); } - + private Station station; private void Form1_Load(object sender, EventArgs e) { + station = new Station(StationTypeDef.host, "test"); + + } + + private void InterCom_onReceive(ICMessage message, EventArgs e) + { + XMessageBox messageBox = new XMessageBox(message.messageId + ": From " + message.fromId + " To " + message.toId, message.message, "Ok"); + messageBox.showMessage(); + } + private void metroButton1_Click(object sender, EventArgs e) + { + station.registerStation(); + station.interCom.onReceive += InterCom_onReceive; + station.interCom.listen(); + } + + private void metroButton2_Click(object sender, EventArgs e) + { + if (station.Registered) { + station.interCom.send("%HOST%|-test", "This is a test dummy ping"); + } } } } diff --git a/Enigma/Enigma.csproj b/Enigma/Enigma.csproj index 5640412..c87a889 100644 --- a/Enigma/Enigma.csproj +++ b/Enigma/Enigma.csproj @@ -96,6 +96,12 @@ + + + {9c277a65-39fe-466d-8ae9-4b3a12a5e61e} + EnigmaX + +