diff --git a/INT69DC_7C/DataStore.cs b/INT69DC_7C/DataStore.cs index b0541bc..40161d8 100644 --- a/INT69DC_7C/DataStore.cs +++ b/INT69DC_7C/DataStore.cs @@ -432,7 +432,7 @@ namespace INT69DC_7C None, History, Inspection, - Other, + Others, } public enum TrackingOperation { @@ -567,7 +567,7 @@ namespace INT69DC_7C DataStoragePeriod, } - public enum Trackingalarm + public enum TrackingAlarm { None, a1_PressureError, diff --git a/INT69DC_7C/DialogForms/DialogFormDataViewerFilter.cs b/INT69DC_7C/DialogForms/DialogFormDataViewerFilter.cs index 8067af9..1265c41 100644 --- a/INT69DC_7C/DialogForms/DialogFormDataViewerFilter.cs +++ b/INT69DC_7C/DialogForms/DialogFormDataViewerFilter.cs @@ -67,7 +67,7 @@ namespace INT69DC_7C.DialogForms this.Location = new Point(x, y); - this.Size = new Size(450, 165); + this.Size = new Size(710, 470); } private void DefaultSetting() { diff --git a/INT69DC_7C/DialogForms/DialogFormLogOn.cs b/INT69DC_7C/DialogForms/DialogFormLogOn.cs index 1e6a824..9cc9b9d 100644 --- a/INT69DC_7C/DialogForms/DialogFormLogOn.cs +++ b/INT69DC_7C/DialogForms/DialogFormLogOn.cs @@ -94,24 +94,34 @@ namespace INT69DC_7C.DialogForms } private void InitializeControl() { + int x = 0, y = 0; + + x = Screen.PrimaryScreen.Bounds.Width / 2 - this.Size.Width / 2; + y = Screen.PrimaryScreen.Bounds.Height / 2 - this.Size.Height / 2; + + this.Location = new Point(x, y); + this.Size = new Size(710, 470); + if (this.IsChangePassword == false) { this.labelTitle1.Text = "User Loigin"; this.labelTitle2.Text = "ID"; this.labelTitle3.Text = "Password"; + + this.textBoxID.PasswordChar = default(char); } else { this.labelTitle1.Text = "Change Password"; this.labelTitle2.Text = "New PW"; this.labelTitle3.Text = "Confirmation"; + + this.textBoxID.PasswordChar = '*'; } this.textBoxID.Text = ""; this.textBoxPassword.Text = ""; - this.Location = new Point(157, 150); - //this.smartKeyboard.HanYoungKeyToggle(); this.smartKeyboard.HanYoungKeyDisable = true; this.smartKeyboard.KeyboardType = SmartX.SmartKeyboard.KEYBOARDTYPES.NORMAL; @@ -363,25 +373,21 @@ namespace INT69DC_7C.DialogForms this.textBoxID.Text = "Intech"; this.textBoxPassword.Text = "I20090810!"; } - private void smartButtonAdmin_Click(object sender, EventArgs e) { this.textBoxID.Text = "admin00"; this.textBoxPassword.Text = "admin12!"; } - private void smartButtonIUser11_Click(object sender, EventArgs e) { this.textBoxID.Text = "user11"; this.textBoxPassword.Text = "user11!"; } - private void smartButtonUser22_Click(object sender, EventArgs e) { this.textBoxID.Text = "user22"; this.textBoxPassword.Text = "user22!"; } - private void smartButtonUser33_Click(object sender, EventArgs e) { this.textBoxID.Text = "user33"; diff --git a/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.cs b/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.cs index 486835d..cf743f7 100644 --- a/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.cs +++ b/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.cs @@ -83,5 +83,10 @@ namespace INT69DC_7C.DialogForms this.KeyActionEsc(); } #endregion + + private void smartKeyboard_Click(object sender, EventArgs e) + { + + } } } \ No newline at end of file diff --git a/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.designer.cs b/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.designer.cs index 20e82b6..31bd3d2 100644 --- a/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.designer.cs +++ b/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.designer.cs @@ -28,28 +28,39 @@ /// private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DialogFormUserEditorKeyboard)); this.textBox = new System.Windows.Forms.TextBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.smartKeyboard = new SmartX.SmartKeyboard(); + this.labelTitle = new SmartX.SmartLabel(); + this.pictureBoxImage = new System.Windows.Forms.PictureBox(); this.SuspendLayout(); // // textBox // this.textBox.Font = new System.Drawing.Font("Tahoma", 25F, System.Drawing.FontStyle.Regular); - this.textBox.Location = new System.Drawing.Point(201, 55); + this.textBox.Location = new System.Drawing.Point(143, 99); this.textBox.MaxLength = 20; this.textBox.Name = "textBox"; - this.textBox.Size = new System.Drawing.Size(400, 47); + this.textBox.Size = new System.Drawing.Size(489, 47); this.textBox.TabIndex = 0; this.textBox.Text = "ABCDE"; this.textBox.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.textBox_KeyPress); // + // pictureBox1 + // + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(0, 0); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(710, 470); + // // smartKeyboard // - this.smartKeyboard.BackColor = System.Drawing.SystemColors.ActiveCaption; + this.smartKeyboard.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30))))); this.smartKeyboard.ControlKeyDisable = false; this.smartKeyboard.DesignMinimize = false; this.smartKeyboard.FontColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); - this.smartKeyboard.HanYoungKeyDisable = false; + this.smartKeyboard.HanYoungKeyDisable = true; this.smartKeyboard.KeyboardType = SmartX.SmartKeyboard.KEYBOARDTYPES.NORMAL; this.smartKeyboard.KeyFillColor = System.Drawing.Color.Black; this.smartKeyboard.KeyOutLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); @@ -61,32 +72,61 @@ this.smartKeyboard.KeyUpImage2 = null; this.smartKeyboard.KeyUpImage3 = null; this.smartKeyboard.LeftMargin = 5; - this.smartKeyboard.Location = new System.Drawing.Point(27, 132); + this.smartKeyboard.Location = new System.Drawing.Point(12, 191); this.smartKeyboard.Name = "smartKeyboard"; this.smartKeyboard.PressFontColor = System.Drawing.Color.Olive; this.smartKeyboard.PressKeyFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(224)))), ((int)(((byte)(224)))), ((int)(((byte)(224))))); this.smartKeyboard.PressKeyOutLineColor = System.Drawing.Color.Green; this.smartKeyboard.RoundedCorners = true; this.smartKeyboard.SetBackimage = null; - this.smartKeyboard.Size = new System.Drawing.Size(751, 293); - this.smartKeyboard.TabIndex = 1; + this.smartKeyboard.Size = new System.Drawing.Size(692, 276); + this.smartKeyboard.TabIndex = 173; this.smartKeyboard.TABKeyDisable = false; this.smartKeyboard.TargetInputObject = null; this.smartKeyboard.Text = "smartKeyboard1"; this.smartKeyboard.ThemeStyle = SmartX.SmartKeyboard.KEYBOARDTHEMESTYLE.CUSTOMIZED_LITE; this.smartKeyboard.TopMargin = 5; - this.smartKeyboard.OnXKeyClick += new System.EventHandler(this.smartKeyboard_OnXKeyClick); - this.smartKeyboard.KeyDown += new System.Windows.Forms.KeyEventHandler(this.smartKeyboard_KeyDown); + // + // labelTitle + // + this.labelTitle.BackColor = System.Drawing.Color.White; + this.labelTitle.BackPictureBox = null; + this.labelTitle.BackPictureBox1 = null; + this.labelTitle.BackPictureBox2 = null; + this.labelTitle.BorderColor = System.Drawing.Color.Black; + this.labelTitle.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelTitle.Font = new System.Drawing.Font("새굴림", 20F, System.Drawing.FontStyle.Bold); + this.labelTitle.ForeColor = System.Drawing.Color.Gray; + this.labelTitle.InitVisible = true; + this.labelTitle.LineSpacing = 0F; + this.labelTitle.Location = new System.Drawing.Point(143, 43); + this.labelTitle.Name = "labelTitle"; + this.labelTitle.Size = new System.Drawing.Size(489, 50); + this.labelTitle.TabIndex = 180; + this.labelTitle.Text = "입력"; + this.labelTitle.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; + this.labelTitle.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelTitle.Wordwrap = false; + // + // pictureBoxImage + // + this.pictureBoxImage.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxImage.Image"))); + this.pictureBoxImage.Location = new System.Drawing.Point(40, 68); + this.pictureBoxImage.Name = "pictureBoxImage"; + this.pictureBoxImage.Size = new System.Drawing.Size(66, 72); // // DialogFormUserEditorKeyboard // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.BackColor = System.Drawing.SystemColors.ActiveCaption; - this.ClientSize = new System.Drawing.Size(800, 450); + this.ClientSize = new System.Drawing.Size(710, 470); this.ControlBox = false; + this.Controls.Add(this.pictureBoxImage); + this.Controls.Add(this.labelTitle); this.Controls.Add(this.smartKeyboard); this.Controls.Add(this.textBox); + this.Controls.Add(this.pictureBox1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Name = "DialogFormUserEditorKeyboard"; this.Text = "DialogFormUserEditorKeyboard"; @@ -97,6 +137,9 @@ #endregion private System.Windows.Forms.TextBox textBox; + private System.Windows.Forms.PictureBox pictureBox1; private SmartX.SmartKeyboard smartKeyboard; + private SmartX.SmartLabel labelTitle; + private System.Windows.Forms.PictureBox pictureBoxImage; } } \ No newline at end of file diff --git a/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.resx b/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.resx index a721046..7fe7172 100644 --- a/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.resx +++ b/INT69DC_7C/DialogForms/DialogFormUserEditorKeyboard.resx @@ -117,6 +117,260 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 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 + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUt + bBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtbBgDAJBW3MKGMQAAacUtPBjGAACQlWEMAADPMowB + AOC875X/BbCQQ/wald3NAAAAAElFTkSuQmCC + + + + + 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 + Vo7+A7thyQKe0TLeAAAAAElFTkSuQmCC + + WEBPAD diff --git a/INT69DC_7C/Forms/FormDataBackup_Part11.cs b/INT69DC_7C/Forms/FormDataBackup_Part11.cs index 6fbd9b1..4fb366a 100644 --- a/INT69DC_7C/Forms/FormDataBackup_Part11.cs +++ b/INT69DC_7C/Forms/FormDataBackup_Part11.cs @@ -131,19 +131,28 @@ namespace INT69DC_7C.Forms if (dataFolderPath == "") return; - - #region 백업 할 파일 리스트 - listSelectedFile = this.GetSeletedNodeList(view); - #endregion - + targetPath = "하드 디스크\\"; + listSelectedFile = this.GetSeletedNodeList(view); + #region USB 장착 유무 체크 + dir = new DirectoryInfo(targetPath); + if (dir.Exists == false) + { + // USB메모리가 장착되지 않았습니다 + DialogFormMessage msg = new DialogFormMessage(5, this.ParentForm.SystemConfig.Language); + msg.ShowDialog(); + return; + } + #endregion + #region 백업할 파일 유무 체크 if (listSelectedFile.Count == 0) { DialogFormMessage msg = new DialogFormMessage(4, this.ParentForm.SystemConfig.Language); msg.ShowDialog(); return; } + #endregion // Splash Start this.SplashStart(); @@ -154,19 +163,6 @@ namespace INT69DC_7C.Forms this.DirectoryFileDelete(this.ParentForm.PathHeaderFolder); #endregion - #region USB 장착 유무 체크 - // USB 장착 유무 체크 - dir = new DirectoryInfo(targetPath); - if (dir.Exists == false) - { - // USB메모리가 장착되지 않았습니다 - DialogFormMessage msg = new DialogFormMessage(5, this.ParentForm.SystemConfig.Language); - this.SplashFinish(); - msg.ShowDialog(); - return; - } - #endregion - try { #region Header 파일 생성 @@ -268,7 +264,7 @@ namespace INT69DC_7C.Forms } } - if (type == DataStore.E_DataType.Other) + if (type == DataStore.E_DataType.Others) { dir = new DirectoryInfo(this.ParentForm.PathDataBackupFolder); files = dir.GetFiles(); @@ -842,10 +838,6 @@ namespace INT69DC_7C.Forms #endregion #region Event Handler - private void buttonBackup_Click(object sender, EventArgs e) - { - this.DisplayRefresh(); - } private void buttonBack_Click(object sender, EventArgs e) { ((FormMain)(Owner)).smartForm.Show(2); @@ -884,7 +876,7 @@ namespace INT69DC_7C.Forms } private void buttonOtherBackup_Click(object sender, EventArgs e) { - this.SelecteDataType = DataStore.E_DataType.Other; + this.SelecteDataType = DataStore.E_DataType.Others; this.OtherBackup(); } diff --git a/INT69DC_7C/Forms/FormDataStatistics.cs b/INT69DC_7C/Forms/FormDataStatistics.cs index a7d15b4..fe30fe0 100644 --- a/INT69DC_7C/Forms/FormDataStatistics.cs +++ b/INT69DC_7C/Forms/FormDataStatistics.cs @@ -1063,39 +1063,39 @@ namespace INT69DC_7C.Forms #region 통계 데이터 생성 // ScreenCapture - //this.CreateScreenCapture(this.ParentForm.PathDataStatisticsFolder, time); + this.CreateScreenCapture(this.ParentForm.PathDataStatisticsFolder, time); // csv File this.FileBackup1(this.ParentForm.PathDataStatisticsFolder, time, this.CurrentDataCommonList, this.CollectionLaneData); #endregion - #region (안함) 메모리로 파일 복사 - //try - //{ - // filePath = "하드 디스크\\"; - // DirectoryInfo dir = new DirectoryInfo(this.ParentForm.PathDataStatisticsFolder); + #region 메모리로 파일 복사 + try + { + filePath = "하드 디스크\\"; + DirectoryInfo dir = new DirectoryInfo(this.ParentForm.PathDataStatisticsFolder); - // directoryCheck = dir.Exists; - // // 폴더 체크 - // if (directoryCheck == false) - // dir.Create(); + directoryCheck = dir.Exists; + // 폴더 체크 + if (directoryCheck == false) + dir.Create(); - // FileInfo[] files = dir.GetFiles(); + FileInfo[] files = dir.GetFiles(); - // foreach (FileInfo file in files) - // { - // this.FileCopy(file, filePath + file.Name); - // file.Delete(); - // } - // DialogFormMessage msg = new DialogFormMessage("2", this.ParentForm.SystemConfig.Language); - // msg.ShowDialog(); - //} - //catch - //{ - // DialogFormMessage msg = new DialogFormMessage(6, this.ParentForm.SystemConfig.Language); - // msg.ShowDialog(); - // ret = -1; - // return ret; - //} + foreach (FileInfo file in files) + { + this.FileCopy(file, filePath + file.Name); + file.Delete(); + } + DialogFormMessage msg = new DialogFormMessage("2", this.ParentForm.SystemConfig.Language); + msg.ShowDialog(); + } + catch + { + DialogFormMessage msg = new DialogFormMessage(6, this.ParentForm.SystemConfig.Language); + msg.ShowDialog(); + ret = -1; + return ret; + } #endregion return ret; @@ -1105,8 +1105,6 @@ namespace INT69DC_7C.Forms int ret = 0; DateTime time = DateTime.Now; - // ScreenCapture - this.CreateScreenCapture(this.ParentForm.PathDataStatisticsFolder, time); // csv File this.FileBackup2(this.ParentForm.PathDataBackupFolder, time, this.CurrentDataCommonList, this.CollectionLaneData); diff --git a/INT69DC_7C/Forms/FormDataViewer.cs b/INT69DC_7C/Forms/FormDataViewer.cs index 9e02845..2647e52 100644 --- a/INT69DC_7C/Forms/FormDataViewer.cs +++ b/INT69DC_7C/Forms/FormDataViewer.cs @@ -385,6 +385,8 @@ namespace INT69DC_7C.Forms } public void DisplayRefresh() { + this.ParentForm.SystemConfig.CurrentForm = DataStore.FormStore.FormDataViewer; + this.labelFileName.Text = ""; this.ClearData(); this.ListBoxItemsCount(); diff --git a/INT69DC_7C/Forms/FormEquipmentSetting.cs b/INT69DC_7C/Forms/FormEquipmentSetting.cs index 65d0131..cc18094 100644 --- a/INT69DC_7C/Forms/FormEquipmentSetting.cs +++ b/INT69DC_7C/Forms/FormEquipmentSetting.cs @@ -57,6 +57,7 @@ namespace INT69DC_7C.Forms this.labelStaticRejectCV.Text = "Reject conveyor"; this.labelStaticFeedingCV.Text = "Feeding conveyor"; this.labelStaticEquipmentID.Text = "Equipment ID"; + this.labelStaticDataStoragePeriod.Text = "Data storage period"; this.labelStaticImpellerBaudrate.Text = "Step motor buadrate"; this.labelStaticImpellerRotation.Text = "Step motor rotation"; this.labelStaticLanguage.Text = "Language"; @@ -94,6 +95,7 @@ namespace INT69DC_7C.Forms this.labelStaticRejectCV.Text = "筛选输送带"; this.labelStaticFeedingCV.Text = "进料输送带"; this.labelStaticEquipmentID.Text = "设备编号"; + this.labelStaticDataStoragePeriod.Text = "数据保存期限"; this.labelStaticImpellerBaudrate.Text = "波特率"; this.labelStaticImpellerRotation.Text = "排放输送带旋转方向"; this.labelStaticLanguage.Text = "语言"; @@ -150,6 +152,7 @@ namespace INT69DC_7C.Forms this.labelStaticRejectCV.Text = "Reject conveyor"; this.labelStaticFeedingCV.Text = "Feeding conveyor"; this.labelStaticEquipmentID.Text = "Equipment ID"; + this.labelStaticDataStoragePeriod.Text = "Doba uložení dat"; this.labelStaticImpellerBaudrate.Text = "Step motor buadrate"; this.labelStaticImpellerRotation.Text = "Step motor rotation"; this.labelStaticLanguage.Text = "Language"; @@ -408,6 +411,13 @@ namespace INT69DC_7C.Forms { if (this.buttonSave.Visible != true) this.buttonSave.Visible = true; + + SmartX.SmartButton button = sender as SmartX.SmartButton; + if (button == this.buttonLogin) + { + if (this.ParentForm.SystemConfig.IsPart11 == true) + this.buttonLogin.ButtonDown(); + } } private void labelEquipmentID_Click(object sender, EventArgs e) @@ -439,6 +449,9 @@ namespace INT69DC_7C.Forms else { this.labelDataStoragePeriod.Text = myKeyPad.StringValue; + + if (this.buttonSave.Visible != true) + this.buttonSave.Visible = true; } } } diff --git a/INT69DC_7C/Forms/FormMain.cs b/INT69DC_7C/Forms/FormMain.cs index 2afe764..d347cee 100644 --- a/INT69DC_7C/Forms/FormMain.cs +++ b/INT69DC_7C/Forms/FormMain.cs @@ -47,6 +47,7 @@ namespace INT69DC_7C.Forms private string m_PathDataFolder; private string m_PathDataHistoryFolder; private string m_PathDataInspectionFolder; + private string m_PathDataOthersFolder; private string m_PathEncryptionFolder; private string m_PathHeaderFolder; private static string m_PathBinFolder; @@ -200,6 +201,11 @@ namespace INT69DC_7C.Forms get { return this.m_PathDataInspectionFolder; } private set { this.m_PathDataInspectionFolder = value; } } + public string PathDataOthersFolder + { + get { return this.m_PathDataOthersFolder; } + private set { this.m_PathDataOthersFolder = value; } + } public string PathEncryptionFolder { get { return this.m_PathEncryptionFolder; } @@ -405,6 +411,7 @@ namespace INT69DC_7C.Forms this.PathDataFolder = this.PathLaunchFolder + "Data\\"; this.PathDataHistoryFolder = this.PathDataFolder + "History\\"; this.PathDataInspectionFolder = this.PathDataFolder + "Inspection\\"; + this.PathDataOthersFolder = this.PathDataFolder + "Others\\"; this.PathEncryptionFolder = this.PathLaunchFolder + "Encryption\\"; this.PathHeaderFolder = this.PathLaunchFolder + "Header\\"; PathBinFolder = this.PathLaunchFolder + "Bin\\"; @@ -11068,6 +11075,78 @@ namespace INT69DC_7C.Forms #endregion + #region Backup + public List GetSeletedNodeList(TreeView tree) + { + int yearCNT, monthCNT, dayCNT; + List listSelectedFile = new List(); + + yearCNT = tree.Nodes.Count; + if (yearCNT != 0) + { + for (int i = 0; i < yearCNT; i++) + { + monthCNT = tree.Nodes[i].Nodes.Count; + if (monthCNT != 0) + { + for (int j = 0; j < monthCNT; j++) + { + dayCNT = tree.Nodes[i].Nodes[j].Nodes.Count; + if (dayCNT != 0) + { + for (int k = 0; k < dayCNT; k++) + { + //if (tree.Nodes[i].Nodes[j].Nodes[k].Checked == true) + //{ + //listSelectedFile.Add(tree.Nodes[i].Nodes[j].Nodes[k].Text); + listSelectedFile.Add(string.Format("{0}\\{1}\\{2}", tree.Nodes[i].Text, tree.Nodes[i].Nodes[j].Text, tree.Nodes[i].Nodes[j].Nodes[k].Text)); + //} + } + } + } + } + } + } + + return listSelectedFile; + } + + private void DeleteLogFile(string path, DataStore.E_DataType type) + { + string dataFolderPath = ""; + + switch (type) + { + case DataStore.E_DataType.None: + break; + case DataStore.E_DataType.History: + dataFolderPath = this.PathDataHistoryFolder; + break; + case DataStore.E_DataType.Inspection: + dataFolderPath = this.PathDataInspectionFolder; + break; + case DataStore.E_DataType.Others: + dataFolderPath = this.PathDataOthersFolder; + break; + default: + break; + } + + foreach (string Folder in Directory.GetDirectories(path)) + { + this.DeleteLogFile(Folder, type); //재귀함수 호출 + if (Directory.GetDirectories(Folder).Count() == 0 && Directory.GetFiles(Folder).Count() == 0 && Folder != dataFolderPath) + Directory.Delete(Folder, true); + } + + foreach (string file in Directory.GetFiles(path)) + { + FileInfo fi = new FileInfo(file); + if (DateTime.ParseExact(fi.Name.Substring(1, 8), "yyyyMMdd", null) < DateTime.Now.AddMonths(-1 * this.SystemConfig.DataStoragePeriod)) + fi.Delete(); + } + } + #endregion #region Tracking Inspection data private void GetTrackingInspectionFolderPath(ref string folder, ref string fileName) { @@ -11194,23 +11273,28 @@ namespace INT69DC_7C.Forms try { - string dday = string.Format("{0:yyyyMMdd}", DateTime.Now.AddDays(-180)) + ".csv"; - - DirectoryInfo dir = new DirectoryInfo(this.PathDataInspectionFolder); - - directoryCheck = dir.Exists; - // 폴더 체크 - if (directoryCheck == false) - dir.Create(); - - FileInfo[] files = dir.GetFiles(); - foreach (FileInfo subfile in files) + if (this.SystemConfig.IsPart11 == true) + this.DeleteLogFile(this.PathDataInspectionFolder, DataStore.E_DataType.Inspection); + else { - if (subfile.Name.StartsWith("20")) // 날짜 비교하여 10일 지난화일은 삭제함 + string dday = string.Format("{0:yyyyMMdd}", DateTime.Now.AddDays(-180)) + ".csv"; + + DirectoryInfo dir = new DirectoryInfo(this.PathDataInspectionFolder); + + directoryCheck = dir.Exists; + // 폴더 체크 + if (directoryCheck == false) + dir.Create(); + + FileInfo[] files = dir.GetFiles(); + foreach (FileInfo subfile in files) { - if (subfile.Name.CompareTo(dday) < 0) + if (subfile.Name.StartsWith("20")) // 날짜 비교하여 10일 지난화일은 삭제함 { - subfile.Delete(); + if (subfile.Name.CompareTo(dday) < 0) + { + subfile.Delete(); + } } } } @@ -11236,7 +11320,7 @@ namespace INT69DC_7C.Forms this.TrackingHistoryData(data); } - public void SetTrackingHistoryData(DataStore.Trackingalarm type, string detail) + public void SetTrackingHistoryData(DataStore.TrackingAlarm type, string detail) { HistoryData data = new HistoryData(); @@ -11369,6 +11453,19 @@ namespace INT69DC_7C.Forms } } #endregion + #region Tracking Others data + private void RemoveOthersDataFile() + { + try + { + this.DeleteLogFile(this.PathDataOthersFolder, DataStore.E_DataType.Others); + } + catch + { + + } + } + #endregion #endregion #region Override Member