diff --git a/Client/View/NcWindow.cs b/Client/View/NcWindow.cs
index 9caa7712..7b8b21d5 100644
--- a/Client/View/NcWindow.cs
+++ b/Client/View/NcWindow.cs
@@ -437,8 +437,11 @@ namespace CMS_Client.View
//Show Nc Window
public static void ShowNcWindow()
{
- if (windowstarted)
- ShowWindow(ncprocess.MainWindowHandle, SW_SHOWNOACTIVATE);
+ if (windowstarted)
+ {
+ ShowWindow(ncprocess.MainWindowHandle, SW_SHOWNOACTIVATE);
+ ResizeAndMoveNcWindow(ncWindowX, ncWindowY, ncWindowWidth, ncWindowHeight);
+ }
}
//Show Prod Window
diff --git a/Libs/CMS_CORE_Library.dll b/Libs/CMS_CORE_Library.dll
index a0e99a96..dff8f077 100644
Binary files a/Libs/CMS_CORE_Library.dll and b/Libs/CMS_CORE_Library.dll differ
diff --git a/Step.Core/ThreadsFunctions.cs b/Step.Core/ThreadsFunctions.cs
index 6e95ad69..b77fa1e3 100644
--- a/Step.Core/ThreadsFunctions.cs
+++ b/Step.Core/ThreadsFunctions.cs
@@ -299,6 +299,11 @@ public static class ThreadsFunctions
else
// Send through signalR
MessageServices.Current.Publish(SEND_EXPIRED_MAINTENANCES_DATA, null, expiredMaintenances);
+
+ //Manage Candies
+ libraryError = ncHandler.ManageCandies();
+ if (libraryError.errorCode != 0)
+ ManageLibraryError(libraryError);
}
else
RestoreConnection();
diff --git a/Step.NC/NcHandler.cs b/Step.NC/NcHandler.cs
index ddf199cd..8cac606e 100644
--- a/Step.NC/NcHandler.cs
+++ b/Step.NC/NcHandler.cs
@@ -1162,6 +1162,91 @@ namespace Step.NC
return max;
}
+ public CmsError ManageCandies()
+ {
+ CmsError cmsError;
+ int NcCandy = 0;
+ int NCMatr, PCMatr;
+ long NCParam, PCParam,newParam;
+ bool bNC_OK, bPC_OK;
+ bool bNC_VALID, bPC_VALID;
+ String strMachNumber="0";
+ int machNumber;
+ bool bRewrite=false;
+
+
+ //Read Machine ID
+ cmsError = numericalControl.NC_RMachineNumber(ref strMachNumber);
+ if (cmsError.IsError())
+ return cmsError;
+ machNumber = Int32.Parse(strMachNumber);
+
+ //Read Data from NC & elaborate it
+ cmsError = numericalControl.PLC_RCandy(ref NcCandy);
+ if (cmsError.IsError())
+ return cmsError;
+ bNC_OK = CandiesController.getDataFromLincense(NcCandy, out NCMatr, out NCParam);
+ bNC_VALID = machNumber == NCMatr;
+
+ //Read Data from PC
+ bPC_OK = CandiesController.getPCLincense(out PCMatr, out PCParam);
+ bPC_VALID = machNumber == PCMatr;
+
+ if(bNC_VALID & bPC_VALID)
+ {
+ if(PCParam == NCParam)
+ {
+ newParam = PCParam + Utils.CandiesController.BASE_TIME;
+ bRewrite = false;
+ }
+ else if(PCParam < NCParam)
+ {
+ newParam = PCParam + Utils.CandiesController.BASE_TIME;
+ bRewrite = true;
+ }
+ else
+ {
+ newParam = NCParam + Utils.CandiesController.BASE_TIME;
+ bRewrite = true;
+ }
+ }
+ else if (bNC_VALID)
+ {
+ newParam = NCParam + Utils.CandiesController.BASE_TIME;
+ bRewrite = true;
+ }
+ else if (bPC_VALID)
+ {
+ newParam = PCParam + Utils.CandiesController.BASE_TIME;
+ bRewrite = true;
+ }
+ else
+ {
+ // tutto a zero? immagino sia la prima accensione
+ if ()
+ }
+
+ Else
+ 'tutto a zero? immagino sia la prima accensione
+ If nLicReg_X = 0 And nLicCnc_X = 0 Then
+ nData = BASETIME
+ bRewrite = True
+
+ 'ho creato il file? immagino sia la prima accensione con memorie cn sporche
+ ElseIf nLicReg_X = 0 And bFileCreated Then
+ bFileCreated = False
+ nData = BASETIME
+ bRewrite = True
+
+ Else
+ 'a questo punto blocco.. ipotizzo una forzatura
+ nData = 0
+ bRewrite = False
+ End If
+ End If
+ }
+
+
//DTOScadaModel scada = new DTOScadaModel
//{
// Layers = prodScada.Layers.Select(x => new DTOScadaLayerModel()
diff --git a/Step.UI/PasswordForm.Designer.cs b/Step.UI/PasswordForm.Designer.cs
new file mode 100644
index 00000000..6a533981
--- /dev/null
+++ b/Step.UI/PasswordForm.Designer.cs
@@ -0,0 +1,155 @@
+namespace Step.UI
+{
+ partial class PasswordForm
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ this.Panel1 = new System.Windows.Forms.Panel();
+ this.TextBox_Password = new System.Windows.Forms.TextBox();
+ this.Label_NewPassword = new System.Windows.Forms.Label();
+ this.TableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+ this.OK_Pwd_Button = new System.Windows.Forms.Button();
+ this.Cancel_Pwd_Button = new System.Windows.Forms.Button();
+ this.ErrorProvider1 = new System.Windows.Forms.ErrorProvider(this.components);
+ this.Panel1.SuspendLayout();
+ this.TableLayoutPanel1.SuspendLayout();
+ ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).BeginInit();
+ this.SuspendLayout();
+ //
+ // Panel1
+ //
+ this.Panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.Panel1.BackColor = System.Drawing.Color.White;
+ this.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
+ this.Panel1.Controls.Add(this.TextBox_Password);
+ this.Panel1.Controls.Add(this.Label_NewPassword);
+ this.Panel1.Location = new System.Drawing.Point(-6, -2);
+ this.Panel1.Name = "Panel1";
+ this.Panel1.Size = new System.Drawing.Size(354, 70);
+ this.Panel1.TabIndex = 4;
+ //
+ // TextBox_Password
+ //
+ this.TextBox_Password.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.TextBox_Password.Location = new System.Drawing.Point(114, 25);
+ this.TextBox_Password.Name = "TextBox_Password";
+ this.TextBox_Password.PasswordChar = '*';
+ this.TextBox_Password.Size = new System.Drawing.Size(186, 26);
+ this.TextBox_Password.TabIndex = 1;
+ this.TextBox_Password.UseSystemPasswordChar = true;
+ this.TextBox_Password.KeyDown += new System.Windows.Forms.KeyEventHandler(this.TextBox_Password_KeyDown);
+ //
+ // Label_NewPassword
+ //
+ this.Label_NewPassword.AutoSize = true;
+ this.Label_NewPassword.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.Label_NewPassword.Location = new System.Drawing.Point(31, 28);
+ this.Label_NewPassword.Name = "Label_NewPassword";
+ this.Label_NewPassword.Size = new System.Drawing.Size(69, 18);
+ this.Label_NewPassword.TabIndex = 7;
+ this.Label_NewPassword.Tag = "Password";
+ this.Label_NewPassword.Text = "Password";
+ //
+ // TableLayoutPanel1
+ //
+ this.TableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
+ this.TableLayoutPanel1.ColumnCount = 2;
+ this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.TableLayoutPanel1.Controls.Add(this.OK_Pwd_Button, 0, 0);
+ this.TableLayoutPanel1.Controls.Add(this.Cancel_Pwd_Button, 1, 0);
+ this.TableLayoutPanel1.Location = new System.Drawing.Point(106, 79);
+ this.TableLayoutPanel1.Name = "TableLayoutPanel1";
+ this.TableLayoutPanel1.RowCount = 1;
+ this.TableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.TableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 46F));
+ this.TableLayoutPanel1.Size = new System.Drawing.Size(219, 46);
+ this.TableLayoutPanel1.TabIndex = 3;
+ //
+ // OK_Pwd_Button
+ //
+ this.OK_Pwd_Button.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.OK_Pwd_Button.Location = new System.Drawing.Point(3, 3);
+ this.OK_Pwd_Button.Name = "OK_Pwd_Button";
+ this.OK_Pwd_Button.Size = new System.Drawing.Size(103, 39);
+ this.OK_Pwd_Button.TabIndex = 5;
+ this.OK_Pwd_Button.Text = "OK";
+ this.OK_Pwd_Button.Click += new System.EventHandler(this.OK_Pwd_Button_Click);
+ //
+ // Cancel_Pwd_Button
+ //
+ this.Cancel_Pwd_Button.Anchor = System.Windows.Forms.AnchorStyles.None;
+ this.Cancel_Pwd_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel;
+ this.Cancel_Pwd_Button.Location = new System.Drawing.Point(112, 3);
+ this.Cancel_Pwd_Button.Name = "Cancel_Pwd_Button";
+ this.Cancel_Pwd_Button.Size = new System.Drawing.Size(103, 39);
+ this.Cancel_Pwd_Button.TabIndex = 6;
+ this.Cancel_Pwd_Button.Tag = "Cancel";
+ this.Cancel_Pwd_Button.Text = "Cancel";
+ this.Cancel_Pwd_Button.Click += new System.EventHandler(this.Cancel_Pwd_Button_Click);
+ //
+ // ErrorProvider1
+ //
+ this.ErrorProvider1.ContainerControl = this;
+ //
+ // PasswordForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(337, 137);
+ this.ControlBox = false;
+ this.Controls.Add(this.Panel1);
+ this.Controls.Add(this.TableLayoutPanel1);
+ this.MaximizeBox = false;
+ this.MinimizeBox = false;
+ this.Name = "PasswordForm";
+ this.ShowInTaskbar = false;
+ this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
+ this.Text = "Password";
+ this.Load += new System.EventHandler(this.PasswordForm_Load);
+ this.Panel1.ResumeLayout(false);
+ this.Panel1.PerformLayout();
+ this.TableLayoutPanel1.ResumeLayout(false);
+ ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).EndInit();
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ internal System.Windows.Forms.Panel Panel1;
+ internal System.Windows.Forms.TextBox TextBox_Password;
+ internal System.Windows.Forms.Label Label_NewPassword;
+ internal System.Windows.Forms.TableLayoutPanel TableLayoutPanel1;
+ internal System.Windows.Forms.Button OK_Pwd_Button;
+ internal System.Windows.Forms.Button Cancel_Pwd_Button;
+ internal System.Windows.Forms.ErrorProvider ErrorProvider1;
+ }
+}
\ No newline at end of file
diff --git a/Step.UI/PasswordForm.cs b/Step.UI/PasswordForm.cs
new file mode 100644
index 00000000..9b9a5a1b
--- /dev/null
+++ b/Step.UI/PasswordForm.cs
@@ -0,0 +1,114 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace Step.UI
+{
+ public partial class PasswordForm : Form
+ {
+ public String Matricola;
+ private DateTime Licenza;
+ const long BASETIME = 730119; // 1/1/2000
+
+ public PasswordForm()
+ {
+ InitializeComponent();
+ }
+
+ public void setMatricola(String matr)
+ {
+ this.Matricola = matr;
+ this.Text = "Password - " + this.Matricola;
+ }
+
+ private void Cancel_Pwd_Button_Click(object sender, EventArgs e)
+ {
+ this.DialogResult = DialogResult.Cancel;
+ this.Close();
+ }
+
+ private void OK_Pwd_Button_Click(object sender, EventArgs e)
+ {
+ checkPSW(TextBox_Password.Text);
+ }
+
+ private void PasswordForm_Load(object sender, EventArgs e)
+ {
+ TextBox_Password.Text = "";
+ this.ActiveControl = TextBox_Password;
+ }
+
+ private void TextBox_Password_KeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.KeyCode == Keys.Enter)
+ {
+ checkPSW(TextBox_Password.Text);
+ }
+ }
+
+ private void checkPSW(String psw)
+ {
+ bool bValid = false;
+ long Parameter;
+ int Matr, Command;
+
+ //Password storica. Serve per abilitare funzionalità particolari
+ if (psw == "cmsserviceonly")
+ bValid = true;
+
+ else if (Utils.CandiesController.PasswordDecode(psw, out Matr, out Command, out Parameter))
+
+ //Controllo la matricola
+ if (this.Matricola != Matr.ToString())
+ bValid = false;
+ else
+ {
+ switch (Command)
+ {
+ //password del service
+ case 1: bValid = true;break;
+
+ //SET Licenza Temporanea
+ case 2:
+ Licenza = new DateTime(Parameter * TimeSpan.TicksPerDay);
+ bValid = false;
+ break;
+
+ //SET Licenza Illimitata
+ case 3:
+ Licenza = new DateTime(0);
+ bValid = false;
+ break;
+
+ }
+ bValid = false;
+ }
+ else
+ bValid = false;
+
+ if (!bValid)
+ {
+ long nLic = Licenza.Ticks / TimeSpan.TicksPerDay;
+ string szError;
+
+ if (nLic == BASETIME)
+ szError = "Error #H-OO";
+ else
+ szError = "Error #H-" + nLic.ToString();
+ ErrorProvider1.SetError(TextBox_Password, "INVALID PASSWORD" + Environment.NewLine + szError);
+ }
+ else
+ {
+ this.DialogResult = DialogResult.OK;
+ this.Close();
+ }
+ }
+
+ }
+}
diff --git a/Step.UI/PasswordForm.resx b/Step.UI/PasswordForm.resx
new file mode 100644
index 00000000..72c11b48
--- /dev/null
+++ b/Step.UI/PasswordForm.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
\ No newline at end of file
diff --git a/Step.UI/ServerControlWindow.Designer.cs b/Step.UI/ServerControlWindow.Designer.cs
index b5343c9b..9fafb368 100644
--- a/Step.UI/ServerControlWindow.Designer.cs
+++ b/Step.UI/ServerControlWindow.Designer.cs
@@ -35,20 +35,29 @@ namespace Step.UI
this.StepNotifyIcon = new System.Windows.Forms.NotifyIcon(this.components);
this.NotifyIconMenu = new System.Windows.Forms.ContextMenuStrip(this.components);
this.StopServerItem = new System.Windows.Forms.ToolStripMenuItem();
- this.openUiButton = new MetroFramework.Controls.MetroButton();
- this.metroTabControl1 = new MetroFramework.Controls.MetroTabControl();
- this.ThreadsInfo = new MetroFramework.Controls.MetroTabPage();
- this.LISTThreadStatus = new MetroFramework.Controls.MetroListView();
+ this.adminMachineToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.passwordToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.goBackToStandardModeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.toolStripSeparator = new System.Windows.Forms.ToolStripSeparator();
+ this.resetSpindleHoursToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
+ this.TXTstatus = new System.Windows.Forms.TextBox();
+ this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
+ this.stopServerButton = new System.Windows.Forms.Button();
+ this.openUiButton = new System.Windows.Forms.Button();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.label3 = new System.Windows.Forms.Label();
+ this.TXTVersion = new System.Windows.Forms.Label();
+ this.label1 = new System.Windows.Forms.Label();
+ this.TXTType = new System.Windows.Forms.Label();
+ this.CHNcConnected = new System.Windows.Forms.CheckBox();
+ this.label2 = new System.Windows.Forms.Label();
+ this.TXTMachId = new System.Windows.Forms.Label();
+ this.LISTThreadStatus = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.stopServerButton = new MetroFramework.Controls.MetroButton();
- this.TXTstatus = new MetroFramework.Controls.MetroTextBox();
- this.TXTType = new System.Windows.Forms.Label();
- this.CHNcConnected = new MetroFramework.Controls.MetroCheckBox();
- this.label1 = new System.Windows.Forms.Label();
this.NotifyIconMenu.SuspendLayout();
- this.metroTabControl1.SuspendLayout();
- this.ThreadsInfo.SuspendLayout();
+ this.tableLayoutPanel1.SuspendLayout();
+ this.panel1.SuspendLayout();
this.SuspendLayout();
//
// StepNotifyIcon
@@ -63,10 +72,11 @@ namespace Step.UI
// NotifyIconMenu
//
this.NotifyIconMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
- this.StopServerItem});
+ this.StopServerItem,
+ this.adminMachineToolStripMenuItem});
this.NotifyIconMenu.Name = "NotifyIconMenu";
this.NotifyIconMenu.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional;
- this.NotifyIconMenu.Size = new System.Drawing.Size(167, 26);
+ this.NotifyIconMenu.Size = new System.Drawing.Size(167, 48);
//
// StopServerItem
//
@@ -75,184 +85,239 @@ namespace Step.UI
this.StopServerItem.Text = "Close CMS Server";
this.StopServerItem.Click += new System.EventHandler(this.StopServerItem_Click);
//
- // openUiButton
+ // adminMachineToolStripMenuItem
//
- this.openUiButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.openUiButton.Location = new System.Drawing.Point(11, 371);
- this.openUiButton.Name = "openUiButton";
- this.openUiButton.Size = new System.Drawing.Size(151, 42);
- this.openUiButton.TabIndex = 1;
- this.openUiButton.TabStop = false;
- this.openUiButton.Text = "Open CMS-Active Client";
- this.openUiButton.UseSelectable = true;
- this.openUiButton.Click += new System.EventHandler(this.OpenUiButton_Click);
+ this.adminMachineToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.passwordToolStripMenuItem,
+ this.goBackToStandardModeToolStripMenuItem,
+ this.toolStripSeparator,
+ this.resetSpindleHoursToolStripMenuItem});
+ this.adminMachineToolStripMenuItem.Name = "adminMachineToolStripMenuItem";
+ this.adminMachineToolStripMenuItem.Size = new System.Drawing.Size(166, 22);
+ this.adminMachineToolStripMenuItem.Text = "Service";
//
- // metroTabControl1
+ // passwordToolStripMenuItem
//
- this.metroTabControl1.Controls.Add(this.ThreadsInfo);
- this.metroTabControl1.Location = new System.Drawing.Point(8, 26);
- this.metroTabControl1.Name = "metroTabControl1";
- this.metroTabControl1.SelectedIndex = 0;
- this.metroTabControl1.Size = new System.Drawing.Size(328, 323);
- this.metroTabControl1.TabIndex = 7;
- this.metroTabControl1.UseSelectable = true;
+ this.passwordToolStripMenuItem.Name = "passwordToolStripMenuItem";
+ this.passwordToolStripMenuItem.Size = new System.Drawing.Size(214, 22);
+ this.passwordToolStripMenuItem.Text = "Password";
+ this.passwordToolStripMenuItem.Click += new System.EventHandler(this.passwordToolStripMenuItem_Click);
//
- // ThreadsInfo
+ // goBackToStandardModeToolStripMenuItem
//
- this.ThreadsInfo.Controls.Add(this.LISTThreadStatus);
- this.ThreadsInfo.HorizontalScrollbarBarColor = true;
- this.ThreadsInfo.HorizontalScrollbarHighlightOnWheel = false;
- this.ThreadsInfo.HorizontalScrollbarSize = 10;
- this.ThreadsInfo.Location = new System.Drawing.Point(4, 38);
- this.ThreadsInfo.Name = "ThreadsInfo";
- this.ThreadsInfo.Size = new System.Drawing.Size(320, 281);
- this.ThreadsInfo.TabIndex = 1;
- this.ThreadsInfo.Text = "Active Threads Info";
- this.ThreadsInfo.VerticalScrollbarBarColor = true;
- this.ThreadsInfo.VerticalScrollbarHighlightOnWheel = false;
- this.ThreadsInfo.VerticalScrollbarSize = 10;
+ this.goBackToStandardModeToolStripMenuItem.Name = "goBackToStandardModeToolStripMenuItem";
+ this.goBackToStandardModeToolStripMenuItem.Size = new System.Drawing.Size(214, 22);
+ this.goBackToStandardModeToolStripMenuItem.Text = "Go back to standard mode";
+ this.goBackToStandardModeToolStripMenuItem.Visible = false;
+ this.goBackToStandardModeToolStripMenuItem.Click += new System.EventHandler(this.goBackToStandardModeToolStripMenuItem_Click);
//
- // LISTThreadStatus
+ // toolStripSeparator
//
- this.LISTThreadStatus.Alignment = System.Windows.Forms.ListViewAlignment.Default;
- this.LISTThreadStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
- | System.Windows.Forms.AnchorStyles.Left)
- | System.Windows.Forms.AnchorStyles.Right)));
- this.LISTThreadStatus.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.columnHeader1,
- this.columnHeader2});
- this.LISTThreadStatus.Font = new System.Drawing.Font("Segoe UI", 12F);
- this.LISTThreadStatus.FullRowSelect = true;
- this.LISTThreadStatus.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
- this.LISTThreadStatus.Location = new System.Drawing.Point(-4, 0);
- this.LISTThreadStatus.MultiSelect = false;
- this.LISTThreadStatus.Name = "LISTThreadStatus";
- this.LISTThreadStatus.OwnerDraw = true;
- this.LISTThreadStatus.Scrollable = false;
- this.LISTThreadStatus.ShowGroups = false;
- this.LISTThreadStatus.Size = new System.Drawing.Size(331, 275);
- this.LISTThreadStatus.TabIndex = 2;
- this.LISTThreadStatus.UseCompatibleStateImageBehavior = false;
- this.LISTThreadStatus.UseSelectable = true;
- this.LISTThreadStatus.UseStyleColors = true;
- this.LISTThreadStatus.View = System.Windows.Forms.View.Details;
+ this.toolStripSeparator.Name = "toolStripSeparator";
+ this.toolStripSeparator.Size = new System.Drawing.Size(211, 6);
+ this.toolStripSeparator.Visible = false;
//
- // columnHeader1
+ // resetSpindleHoursToolStripMenuItem
//
- this.columnHeader1.Text = "Name";
- this.columnHeader1.Width = 233;
- //
- // columnHeader2
- //
- this.columnHeader2.Text = "Exec. Time";
- this.columnHeader2.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
- this.columnHeader2.Width = 84;
- //
- // stopServerButton
- //
- this.stopServerButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
- this.stopServerButton.Location = new System.Drawing.Point(188, 371);
- this.stopServerButton.Name = "stopServerButton";
- this.stopServerButton.Size = new System.Drawing.Size(151, 42);
- this.stopServerButton.TabIndex = 3;
- this.stopServerButton.TabStop = false;
- this.stopServerButton.Text = "Close Active";
- this.stopServerButton.UseSelectable = true;
- this.stopServerButton.Click += new System.EventHandler(this.StopServerButton_Click);
+ this.resetSpindleHoursToolStripMenuItem.Name = "resetSpindleHoursToolStripMenuItem";
+ this.resetSpindleHoursToolStripMenuItem.Size = new System.Drawing.Size(214, 22);
+ this.resetSpindleHoursToolStripMenuItem.Text = "Reset Spindle Hours";
+ this.resetSpindleHoursToolStripMenuItem.Visible = false;
//
// TXTstatus
//
this.TXTstatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
- //
- //
- //
- this.TXTstatus.CustomButton.Image = null;
- this.TXTstatus.CustomButton.Location = new System.Drawing.Point(324, 2);
- this.TXTstatus.CustomButton.Name = "";
- this.TXTstatus.CustomButton.Size = new System.Drawing.Size(25, 25);
- this.TXTstatus.CustomButton.Style = MetroFramework.MetroColorStyle.Blue;
- this.TXTstatus.CustomButton.TabIndex = 1;
- this.TXTstatus.CustomButton.Theme = MetroFramework.MetroThemeStyle.Light;
- this.TXTstatus.CustomButton.UseSelectable = true;
- this.TXTstatus.CustomButton.Visible = false;
+ this.tableLayoutPanel1.SetColumnSpan(this.TXTstatus, 2);
this.TXTstatus.Enabled = false;
- this.TXTstatus.Lines = new string[] {
- "..."};
- this.TXTstatus.Location = new System.Drawing.Point(-1, 419);
- this.TXTstatus.MaxLength = 32767;
+ this.TXTstatus.Location = new System.Drawing.Point(3, 416);
this.TXTstatus.Name = "TXTstatus";
- this.TXTstatus.PasswordChar = '\0';
this.TXTstatus.ReadOnly = true;
- this.TXTstatus.ScrollBars = System.Windows.Forms.ScrollBars.None;
- this.TXTstatus.SelectedText = "";
- this.TXTstatus.SelectionLength = 0;
- this.TXTstatus.SelectionStart = 0;
- this.TXTstatus.ShortcutsEnabled = true;
- this.TXTstatus.Size = new System.Drawing.Size(352, 30);
+ this.TXTstatus.Size = new System.Drawing.Size(435, 20);
this.TXTstatus.TabIndex = 8;
this.TXTstatus.Text = "...";
- this.TXTstatus.UseSelectable = true;
- this.TXTstatus.WaterMarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(109)))), ((int)(((byte)(109)))), ((int)(((byte)(109)))));
- this.TXTstatus.WaterMarkFont = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Pixel);
//
- // TXTType
+ // tableLayoutPanel1
//
- this.TXTType.AutoSize = true;
- this.TXTType.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
- this.TXTType.Location = new System.Drawing.Point(179, 348);
- this.TXTType.Name = "TXTType";
- this.TXTType.Size = new System.Drawing.Size(51, 13);
- this.TXTType.TabIndex = 53;
- this.TXTType.Text = "NcType";
+ this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tableLayoutPanel1.ColumnCount = 2;
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
+ this.tableLayoutPanel1.Controls.Add(this.stopServerButton, 1, 2);
+ this.tableLayoutPanel1.Controls.Add(this.openUiButton, 0, 2);
+ this.tableLayoutPanel1.Controls.Add(this.TXTstatus, 0, 3);
+ this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 1);
+ this.tableLayoutPanel1.Controls.Add(this.LISTThreadStatus, 0, 0);
+ this.tableLayoutPanel1.Location = new System.Drawing.Point(12, 12);
+ this.tableLayoutPanel1.Name = "tableLayoutPanel1";
+ this.tableLayoutPanel1.RowCount = 3;
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 89F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 54F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F));
+ this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F));
+ this.tableLayoutPanel1.Size = new System.Drawing.Size(441, 438);
+ this.tableLayoutPanel1.TabIndex = 58;
//
- // CHNcConnected
+ // stopServerButton
//
- this.CHNcConnected.AutoCheck = false;
- this.CHNcConnected.ForeColor = System.Drawing.SystemColors.ControlText;
- this.CHNcConnected.Location = new System.Drawing.Point(246, 345);
- this.CHNcConnected.Name = "CHNcConnected";
- this.CHNcConnected.Size = new System.Drawing.Size(81, 20);
- this.CHNcConnected.TabIndex = 52;
- this.CHNcConnected.Text = "Connected";
- this.CHNcConnected.UseSelectable = true;
+ this.stopServerButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.stopServerButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.stopServerButton.Location = new System.Drawing.Point(223, 362);
+ this.stopServerButton.Name = "stopServerButton";
+ this.stopServerButton.Size = new System.Drawing.Size(215, 48);
+ this.stopServerButton.TabIndex = 3;
+ this.stopServerButton.TabStop = false;
+ this.stopServerButton.Text = "Close Active";
+ this.stopServerButton.Click += new System.EventHandler(this.StopServerButton_Click);
+ //
+ // openUiButton
+ //
+ this.openUiButton.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.openUiButton.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
+ this.openUiButton.Location = new System.Drawing.Point(3, 362);
+ this.openUiButton.Name = "openUiButton";
+ this.openUiButton.Size = new System.Drawing.Size(214, 48);
+ this.openUiButton.TabIndex = 58;
+ this.openUiButton.TabStop = false;
+ this.openUiButton.Text = "Open CMS-Active Client";
+ //
+ // panel1
+ //
+ this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
+ | System.Windows.Forms.AnchorStyles.Left)
+ | System.Windows.Forms.AnchorStyles.Right)));
+ this.tableLayoutPanel1.SetColumnSpan(this.panel1, 2);
+ this.panel1.Controls.Add(this.label3);
+ this.panel1.Controls.Add(this.TXTVersion);
+ this.panel1.Controls.Add(this.label1);
+ this.panel1.Controls.Add(this.TXTType);
+ this.panel1.Controls.Add(this.CHNcConnected);
+ this.panel1.Controls.Add(this.label2);
+ this.panel1.Controls.Add(this.TXTMachId);
+ this.panel1.Location = new System.Drawing.Point(3, 273);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(435, 83);
+ this.panel1.TabIndex = 9;
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(3, 49);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(104, 13);
+ this.label3.TabIndex = 59;
+ this.label3.Text = "CMS-Active Version:";
+ //
+ // TXTVersion
+ //
+ this.TXTVersion.AutoSize = true;
+ this.TXTVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.TXTVersion.Location = new System.Drawing.Point(113, 49);
+ this.TXTVersion.Name = "TXTVersion";
+ this.TXTVersion.Size = new System.Drawing.Size(19, 13);
+ this.TXTVersion.TabIndex = 58;
+ this.TXTVersion.Text = "---";
//
// label1
//
this.label1.AutoSize = true;
- this.label1.Location = new System.Drawing.Point(134, 348);
+ this.label1.Location = new System.Drawing.Point(3, 24);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(44, 13);
this.label1.TabIndex = 54;
this.label1.Text = "Vendor:";
//
+ // TXTType
+ //
+ this.TXTType.AutoSize = true;
+ this.TXTType.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.TXTType.Location = new System.Drawing.Point(48, 24);
+ this.TXTType.Name = "TXTType";
+ this.TXTType.Size = new System.Drawing.Size(19, 13);
+ this.TXTType.TabIndex = 53;
+ this.TXTType.Text = "---";
+ //
+ // CHNcConnected
+ //
+ this.CHNcConnected.AutoCheck = false;
+ this.CHNcConnected.ForeColor = System.Drawing.SystemColors.ControlText;
+ this.CHNcConnected.Location = new System.Drawing.Point(340, 24);
+ this.CHNcConnected.Name = "CHNcConnected";
+ this.CHNcConnected.Size = new System.Drawing.Size(81, 20);
+ this.CHNcConnected.TabIndex = 52;
+ this.CHNcConnected.Text = "Connected";
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(142, 24);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(63, 13);
+ this.label2.TabIndex = 57;
+ this.label2.Text = "Machine Id:";
+ //
+ // TXTMachId
+ //
+ this.TXTMachId.AutoSize = true;
+ this.TXTMachId.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.TXTMachId.Location = new System.Drawing.Point(240, 24);
+ this.TXTMachId.Name = "TXTMachId";
+ this.TXTMachId.Size = new System.Drawing.Size(19, 13);
+ this.TXTMachId.TabIndex = 56;
+ this.TXTMachId.Text = "---";
+ //
+ // LISTThreadStatus
+ //
+ this.LISTThreadStatus.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.columnHeader1,
+ this.columnHeader2});
+ this.tableLayoutPanel1.SetColumnSpan(this.LISTThreadStatus, 2);
+ this.LISTThreadStatus.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.LISTThreadStatus.Location = new System.Drawing.Point(3, 3);
+ this.LISTThreadStatus.Name = "LISTThreadStatus";
+ this.LISTThreadStatus.Size = new System.Drawing.Size(435, 264);
+ this.LISTThreadStatus.TabIndex = 59;
+ this.LISTThreadStatus.UseCompatibleStateImageBehavior = false;
+ this.LISTThreadStatus.View = System.Windows.Forms.View.Details;
+ //
+ // columnHeader1
+ //
+ this.columnHeader1.Text = "Thread Name";
+ this.columnHeader1.Width = 328;
+ //
+ // columnHeader2
+ //
+ this.columnHeader2.Text = "Time";
+ this.columnHeader2.Width = 78;
+ //
// ServerControlWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(350, 449);
- this.Controls.Add(this.label1);
- this.Controls.Add(this.TXTType);
- this.Controls.Add(this.CHNcConnected);
- this.Controls.Add(this.TXTstatus);
- this.Controls.Add(this.stopServerButton);
- this.Controls.Add(this.metroTabControl1);
- this.Controls.Add(this.openUiButton);
+ this.ClientSize = new System.Drawing.Size(465, 462);
+ this.Controls.Add(this.tableLayoutPanel1);
this.ForeColor = System.Drawing.SystemColors.ControlText;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(2);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "ServerControlWindow";
- this.Resizable = false;
- this.ShadowType = MetroFramework.Forms.MetroFormShadowType.AeroShadow;
this.ShowInTaskbar = false;
- this.Theme = MetroFramework.MetroThemeStyle.Default;
+ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ServerControlWindow_FormClosing);
+ this.Load += new System.EventHandler(this.ServerControlWindow_Load);
this.NotifyIconMenu.ResumeLayout(false);
- this.metroTabControl1.ResumeLayout(false);
- this.ThreadsInfo.ResumeLayout(false);
+ this.tableLayoutPanel1.ResumeLayout(false);
+ this.tableLayoutPanel1.PerformLayout();
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
this.ResumeLayout(false);
- this.PerformLayout();
}
@@ -260,16 +325,25 @@ namespace Step.UI
private System.Windows.Forms.NotifyIcon StepNotifyIcon;
private System.Windows.Forms.ContextMenuStrip NotifyIconMenu;
private System.Windows.Forms.ToolStripMenuItem StopServerItem;
- private MetroFramework.Controls.MetroButton openUiButton;
- private MetroFramework.Controls.MetroTabControl metroTabControl1;
- private MetroFramework.Controls.MetroButton stopServerButton;
- private MetroFramework.Controls.MetroTabPage ThreadsInfo;
- private MetroFramework.Controls.MetroListView LISTThreadStatus;
- private System.Windows.Forms.ColumnHeader columnHeader1;
- private System.Windows.Forms.ColumnHeader columnHeader2;
- private MetroFramework.Controls.MetroTextBox TXTstatus;
- private Label TXTType;
- private MetroFramework.Controls.MetroCheckBox CHNcConnected;
+ private System.Windows.Forms.TextBox TXTstatus;
+ private ToolStripMenuItem adminMachineToolStripMenuItem;
+ private ToolStripMenuItem passwordToolStripMenuItem;
+ private TableLayoutPanel tableLayoutPanel1;
+ private Button stopServerButton;
+ private Button openUiButton;
+ private Panel panel1;
+ private Label label3;
+ private Label TXTVersion;
private Label label1;
+ private Label TXTType;
+ private CheckBox CHNcConnected;
+ private Label label2;
+ private Label TXTMachId;
+ private ListView LISTThreadStatus;
+ private ColumnHeader columnHeader1;
+ private ColumnHeader columnHeader2;
+ private ToolStripMenuItem goBackToStandardModeToolStripMenuItem;
+ private ToolStripSeparator toolStripSeparator;
+ private ToolStripMenuItem resetSpindleHoursToolStripMenuItem;
}
}
\ No newline at end of file
diff --git a/Step.UI/ServerControlWindow.cs b/Step.UI/ServerControlWindow.cs
index a4167629..79b7be62 100644
--- a/Step.UI/ServerControlWindow.cs
+++ b/Step.UI/ServerControlWindow.cs
@@ -1,9 +1,12 @@
using Step.Model;
+using Step.Model.DTOModels;
+using Step.NC;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.IO;
+using System.Reflection;
using System.Threading;
using System.Windows.Forms;
using TeamDev.SDK.MVVM;
@@ -12,15 +15,20 @@ using static Step.Model.Constants;
namespace Step.UI
{
- public partial class ServerControlWindow : MetroFramework.Forms.MetroForm
+ public partial class ServerControlWindow : Form
{
private bool ncStatus = false;
private bool isUpdatingThreads = false;
private List MVVMListeners;
+ private static ServerControlWindow ctrlwindow = null;
+ PasswordForm PswForm;
public ServerControlWindow()
{
- InitializeComponent();
+ InitializeComponent();
+
+ if (ServerStartupConfig.AutoOpenCmsClient)
+ this.Opacity = 0;
//Begin the update
LISTThreadStatus.BeginUpdate();
@@ -29,7 +37,14 @@ namespace Step.UI
//Add all items
LISTThreadStatus.Items.Add(new ListViewItem(new string[] { "TryNcConnection", "---" }));
//End the update
- LISTThreadStatus.EndUpdate();
+ LISTThreadStatus.EndUpdate();
+
+ Version v = Assembly.GetEntryAssembly().GetName().Version;
+ DateTime buildDate = new DateTime(2000, 1, 1).AddDays(v.Build).AddSeconds(v.Revision * 2);
+ this.Text = "CMS-Active Control Window";
+ TXTVersion.Text = "V" + v + " ("+ buildDate.ToString("d") + ")";
+
+ PswForm = new PasswordForm();
if (NcConfig != null && NcConfig.NcVendor != null)
TXTType.Text = NcConfig.NcVendor;
@@ -39,10 +54,32 @@ namespace Step.UI
MessageServices.Current.Subscribe(SHOW_MSG_UI, (a, b) =>
{
Invoke((MethodInvoker)delegate () { Focus(); MessageBox.Show(a.ToString()); });
- });
- }
+ });
- private static ServerControlWindow ctrlwindow = null;
+ }
+
+
+ private void ServerControlWindow_FormClosing(object sender, FormClosingEventArgs e)
+ {
+ if (!_closing)
+ {
+ e.Cancel = true;
+ this.Opacity = 0;
+ Hide();
+ }
+ }
+
+
+ private void ServerControlWindow_Load(object sender, EventArgs e)
+ {
+ if (ServerStartupConfig.AutoOpenCmsClient)
+ {
+ BeginInvoke(new MethodInvoker(delegate
+ {
+ Hide();
+ }));
+ }
+ }
public static void Start()
{ // Open WinForm
@@ -73,15 +110,6 @@ namespace Step.UI
private bool _closing = false;
- // Avoid closing the window
- protected override void OnClosing(CancelEventArgs e)
- {
- if (!_closing)
- {
- e.Cancel = true;
- Hide();
- }
- }
private void OpenUiButton_Click(object sender, EventArgs e)
{
@@ -96,10 +124,15 @@ namespace Step.UI
}
private void NotifyIcon_Click(object sender, EventArgs e)
- {
- this.Show();
- this.TopMost = true;
- this.TopMost = false;
+ {
+ if((e as MouseEventArgs).Button == MouseButtons.Left)
+ {
+ Show();
+ this.Opacity = 1;
+ this.WindowState = FormWindowState.Normal;
+ this.TopMost = true;
+ this.TopMost = false;
+ }
}
private void StopServerItem_Click(object sender, EventArgs e)
@@ -198,19 +231,34 @@ namespace Step.UI
});
}
- if (ncStatus)
+ if (ncStatus)
+ {
+ NcHandler nc = new NcHandler();
+ DTONcGenericDataModel model;
+ nc.Connect();
+ nc.GetNcGenericData(out model);
if (!IsDisposed)
Invoke((MethodInvoker)delegate ()
{
StepNotifyIcon.Icon = Properties.Resources.CMS_Icon;
- });
+ TXTMachId.Text = model.CmsMachineIdNumber;
+ CHNcConnected.Checked = true;
+ PswForm.setMatricola(model.CmsMachineIdNumber);
+ passwordToolStripMenuItem.Enabled = true;
+ });
+ }
+ else
+ {
+ if (!IsDisposed)
+ Invoke((MethodInvoker)delegate ()
+ {
+ StepNotifyIcon.Icon = Properties.Resources.CMS_Disconnected;
+ TXTMachId.Text = "---";
+ CHNcConnected.Checked = false;
+ passwordToolStripMenuItem.Enabled = false;
+ });
+ }
- //Other type
- if (!IsDisposed)
- Invoke((MethodInvoker)delegate ()
- {
- CHNcConnected.Checked = ncStatus;
- });
}),
// Threads status handler
MessageServices.Current.Subscribe(SEND_THREADS_STATUS, (a, b) =>
@@ -229,7 +277,7 @@ namespace Step.UI
LISTThreadStatus.Items.Clear();
//Add all items
foreach (KeyValuePair Thr in Threads)
- LISTThreadStatus.Items.Add(new ListViewItem(new string[] { Thr.Key, Thr.Value }));
+ LISTThreadStatus.Items.Add(new ListViewItem(new String[]{Thr.Key,Thr.Value }));
//End the update
LISTThreadStatus.EndUpdate();
isUpdatingThreads = false;
@@ -245,6 +293,32 @@ namespace Step.UI
if (p.Length > 0)
return true;
return false;
- }
+ }
+
+ private void adminMachineToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ }
+
+ private void passwordToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ DialogResult dr = PswForm.ShowDialog();
+ if (dr == DialogResult.OK)
+ {
+ resetSpindleHoursToolStripMenuItem.Visible = true;
+ goBackToStandardModeToolStripMenuItem.Visible = true;
+ toolStripSeparator.Visible = true;
+ passwordToolStripMenuItem.Enabled = false;
+ MessageBox.Show("Machine Unlocked for administrator use", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
+ }
+
+ private void goBackToStandardModeToolStripMenuItem_Click(object sender, EventArgs e)
+ {
+ resetSpindleHoursToolStripMenuItem.Visible = false;
+ goBackToStandardModeToolStripMenuItem.Visible = false;
+ toolStripSeparator.Visible = false;
+ passwordToolStripMenuItem.Enabled = true;
+ MessageBox.Show("Machine Locked for standard use", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
+ }
}
}
\ No newline at end of file
diff --git a/Step.UI/Step.UI.csproj b/Step.UI/Step.UI.csproj
index 3be98fb7..46d4ba8c 100644
--- a/Step.UI/Step.UI.csproj
+++ b/Step.UI/Step.UI.csproj
@@ -34,15 +34,7 @@
Resources\CMS_Icon.ico
-
- ..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.dll
-
-
- ..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.Design.dll
-
-
- ..\packages\MetroModernUI.1.4.0.0\lib\net\MetroFramework.Fonts.dll
-
+
@@ -63,6 +55,12 @@
+
+ Form
+
+
+ PasswordForm.cs
+
True
True
@@ -87,6 +85,9 @@
+
+ PasswordForm.cs
+
ResXFileCodeGenerator
Resources.Designer.cs
@@ -107,6 +108,10 @@
{631375DD-06D3-49BB-8130-D9DDB34C429D}
Step.Model
+
+ {b2366b08-96bd-4f6b-b748-b45089b87a14}
+ Step.NC
+
{cbeb631b-abfa-4042-9779-c0060b0dfefe}
Step.Utils
diff --git a/Step.UI/Views/OpeningLayer.Designer.cs b/Step.UI/Views/OpeningLayer.Designer.cs
index 48655ead..02edc0b3 100644
--- a/Step.UI/Views/OpeningLayer.Designer.cs
+++ b/Step.UI/Views/OpeningLayer.Designer.cs
@@ -28,18 +28,6 @@
///
private void InitializeComponent()
{
- this.metroProgressSpinner = new MetroFramework.Controls.MetroProgressSpinner();
- this.statusLabel = new MetroFramework.Controls.MetroLabel();
- this.SuspendLayout();
- //
- // metroProgressSpinner
- //
- this.metroProgressSpinner.Location = new System.Drawing.Point(120, 224);
- this.metroProgressSpinner.Maximum = 100;
- this.metroProgressSpinner.Name = "metroProgressSpinner";
- this.metroProgressSpinner.Size = new System.Drawing.Size(110, 110);
- this.metroProgressSpinner.TabIndex = 0;
- this.metroProgressSpinner.UseSelectable = true;
//
// statusLabel
//
@@ -57,7 +45,6 @@
this.AutoSize = true;
this.BackColor = System.Drawing.Color.Black;
this.Controls.Add(this.statusLabel);
- this.Controls.Add(this.metroProgressSpinner);
this.Name = "OpeningLayer";
this.Size = new System.Drawing.Size(350, 565);
this.Load += new System.EventHandler(this.OpeningLayer_Load);
@@ -68,7 +55,6 @@
#endregion
- private MetroFramework.Controls.MetroProgressSpinner metroProgressSpinner;
- private MetroFramework.Controls.MetroLabel statusLabel;
+ private System.Windows.Forms.Label statusLabel;
}
}
diff --git a/Step.UI/Views/OpeningLayer.cs b/Step.UI/Views/OpeningLayer.cs
index e854901e..25b6d333 100644
--- a/Step.UI/Views/OpeningLayer.cs
+++ b/Step.UI/Views/OpeningLayer.cs
@@ -18,7 +18,7 @@ namespace Step.UI.Views
{
for (int i = 0; i <= 100; i++)
{
- metroProgressSpinner.Value = i;
+ //metroProgressSpinner.Value = i;
if (i == 100)
i = 0;
diff --git a/Step.Utils/CandiesController.cs b/Step.Utils/CandiesController.cs
new file mode 100644
index 00000000..8f04f20d
--- /dev/null
+++ b/Step.Utils/CandiesController.cs
@@ -0,0 +1,218 @@
+using Microsoft.Win32;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Step.Utils
+{
+ public static class CandiesController
+ {
+
+ private const String BASE36 = "4K6IJZL1M27PQRSNOVWXTU80FGH39ABCDEY5";
+ private const String BASE10 = "0431786295";
+ private const String KEY_NAME = "HKEY_LOCAL_MACHINE\\SOFTWARE\\CMS\\ACTIVE";
+ private const String KEY_VALUE_NAME = "cil";
+ private const int BASE_TIME = 730119; // 1/1/2000
+
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ #region PUBLIC_METHODS
+
+ // Decodifica password esportando i dati. Ereditata da CMS-Control
+ public static bool PasswordDecode(String Password, out int Matricola, out int Command, out long Parameter)
+ {
+ String szVal;
+ int nChk = 0;
+
+ Matricola = 0;
+ Command = 0;
+ Parameter = 0;
+
+ try
+ {
+ szVal = AlgoritmoService_Back(Password).ToString();
+
+ for (int i = 0; i <= szVal.Length - 1 - 1; i++)
+ {
+ nChk += (int)char.GetNumericValue(szVal[i]);
+ }
+
+ //inserita password con checksum errato
+ if (szVal.Last() != nChk.ToString().Last())
+ return false;
+
+ Matricola = Int16.Parse(szVal.Substring(1, 5));
+ Command = Int16.Parse(szVal.Substring(0, 1));
+ Parameter = long.Parse(szVal.Substring(6, szVal.Length - 6 - 1));
+ }
+ catch (Exception e)
+ {
+ return false;
+ }
+ return true;
+ }
+
+
+ // Lettura della licenza da registro. Ereditata da CMS-Control
+ public static bool getPCLincense(out int Matricola, out long Parameter)
+ {
+ string szLicReg_X = String.Empty;
+ int nLicReg_X = 0;
+ Matricola = 0;
+ Parameter = 0;
+
+ //Leggo nel Registro
+ Licenza_Registry_RW(false, ref szLicReg_X);
+
+ nLicReg_X = Int32.Parse(szLicReg_X);
+ return getDataFromLincense(nLicReg_X, out Matricola, out Parameter);
+
+ }
+
+
+
+ // Scrittura della licenza nel registro. Ereditata da CMS-Control
+ public static void setPCLincense(int Matricola, long Parameter)
+ {
+ int nLic;
+ int days;
+
+ if (Parameter > BASE_TIME)
+ days = (int) (Parameter - BASE_TIME);
+ else if (Parameter > Int32.MaxValue)
+ days = Int32.MaxValue;
+ else
+ days = 0;
+
+ nLic = (Matricola << 16) + days;
+ string Licenza = AlgoritmoLicence(nLic);
+ Licenza_Registry_RW(true, ref Licenza);
+ }
+
+ public static bool getDataFromLincense(int Lincence, out int Matricola,out long Parameter)
+ {
+ Matricola = 0;
+ Parameter = 0;
+
+ if (Lincence == 0)
+ return false;
+
+ long szLic = AlgoritmoLicence_Back(Lincence.ToString());
+ Parameter = szLic & 0xFFFF;
+ Matricola = (int) ((szLic >> 16) & 0xFFFF);
+
+ if (Matricola > 0)
+ return true;
+ else
+ return false;
+ }
+
+ #endregion
+
+ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ #region PRIVATE_METHODS
+
+ private static long AlgoritmoService_Back(String val)
+ {
+ //Base36ToDec
+ long lVal = 0;
+ int ChrPos;
+ const int BASE = 36;
+
+ val = val.ToUpper();
+ while (val.Length > 0)
+ {
+ lVal = lVal * BASE;
+ ChrPos = BASE36.IndexOf(Left(val, 1));
+ if (ChrPos >= 0)
+ lVal = lVal + ChrPos;
+ val = Mid(val, 2);
+ }
+ return lVal;
+ }
+
+
+ private static long AlgoritmoLicence_Back(String val)
+ {
+ long lVal = 0;
+ int ChrPos;
+ const int BASE = 10;
+
+ val = val.ToUpper();
+ while (val.Length > 0)
+ {
+ lVal = lVal * BASE;
+ ChrPos = BASE10.IndexOf(Left(val, 1));
+ if (ChrPos >= 0)
+ lVal = lVal + ChrPos;
+ val = Mid(val, 2);
+ }
+ return lVal;
+ }
+
+
+ private static string AlgoritmoLicence(int lVal)
+ {
+ String sVal = "";
+ while(lVal >= 10)
+ {
+ sVal = sVal + AlgoritmoLicence(lVal/10);
+ lVal = lVal - 10 * (lVal/10);
+ }
+ sVal = sVal + Mid(BASE10, lVal + 1, 1);
+ return sVal;
+ }
+
+
+ private static string Left(string value, int size)
+ {
+ if (string.IsNullOrEmpty(value))
+ return value;
+
+ size = (size >= value.Length ? value.Length : size);
+ string newValue = value.Substring(0, size);
+ return newValue;
+ }
+
+
+ private static string Mid(string value, int index)
+ {
+ if (string.IsNullOrEmpty(value))
+ return value;
+
+ index = index - 1;
+ if (index >= value.Length)
+ return "";
+
+ string newValue = value.Substring(index);
+ return newValue;
+ }
+
+
+ private static string Mid(string value, int index,int lenght)
+ {
+ value = Mid(value, index);
+ if (lenght <= value.Length)
+ value = value.Substring(0, lenght);
+ return value;
+ }
+
+ private static void Licenza_Registry_RW(bool bWrite, ref string Licenza)
+ {
+ Object objLicence;
+
+ //KEY_NAME
+ if (bWrite)
+ Registry.SetValue(KEY_NAME, KEY_VALUE_NAME, Licenza, RegistryValueKind.String);
+
+ objLicence = Registry.GetValue(KEY_NAME, KEY_VALUE_NAME,0);
+ if (objLicence == null) objLicence = 0;
+ Licenza = objLicence.ToString();
+ }
+
+
+ #endregion
+ }
+}
diff --git a/Step.Utils/Step.Utils.csproj b/Step.Utils/Step.Utils.csproj
index 1463258c..4043d5bf 100644
--- a/Step.Utils/Step.Utils.csproj
+++ b/Step.Utils/Step.Utils.csproj
@@ -68,6 +68,7 @@
+