diff --git a/Document/DLL/InModbus.dll b/Document/DLL/InModbus.dll index 17c332e..74b80b0 100644 Binary files a/Document/DLL/InModbus.dll and b/Document/DLL/InModbus.dll differ diff --git a/INT89DB_26.suo b/INT89DB_26.suo index 64b4ae0..72b493e 100644 Binary files a/INT89DB_26.suo and b/INT89DB_26.suo differ diff --git a/INT89DB_26/DataStore.cs b/INT89DB_26/DataStore.cs index 1fff49f..71e7cd4 100644 --- a/INT89DB_26/DataStore.cs +++ b/INT89DB_26/DataStore.cs @@ -16,6 +16,13 @@ namespace INT89DB_26 Start = 1, }; + public enum FeedbackBoardDataTransfer + { + None, + Step1_6203, + Step2_6208, + } + public enum FormStore { FormNone = 0, @@ -44,8 +51,18 @@ namespace INT89DB_26 Czech, German, Russian, + Japanese, }; + public enum MessageBoxIcon + { + None, + Hand, + Question, + Exclamation, + Asterisk, + } + public enum UserGroup { None = 0, @@ -97,6 +114,7 @@ namespace INT89DB_26 f0_None, f1_OPT1, f2_OPT2, + f99_Modbus, } #endregion } @@ -356,6 +374,8 @@ namespace INT89DB_26 private DataStore.FormStore m_CurrentForm; private User m_CurrentUser; + private int m_FeedbackSampleCount; + private int m_FeedbackIgnorePackages; private int m_EthernetLocalPort; private int m_EthernetServerPort; private int m_EthernetMode; @@ -476,6 +496,16 @@ namespace INT89DB_26 set { this.m_CurrentUser = value; } } + public int FeedbackSampleCount + { + get { return this.m_FeedbackSampleCount; } + set { this.m_FeedbackSampleCount = value; } + } + public int FeedbackIgnorePackages + { + get { return this.m_FeedbackIgnorePackages; } + set { this.m_FeedbackIgnorePackages = value; } + } public bool IsEthernetEnable { get @@ -539,13 +569,15 @@ namespace INT89DB_26 this.InverterQTY = 2; this.Unit = "g"; - this.SerialNumber = "20B0000"; + this.SerialNumber = "26A0000"; this.Language = DataStore.LanguageID.Korean; this.CurrentForm = DataStore.FormStore.FormMainDisplay; this.CurrentUser = new User(); this.CurrentUser.Group = DataStore.UserGroup.LogOff; + this.FeedbackSampleCount = 10; + this.FeedbackIgnorePackages = 5; this.EthernetLocalPort = 5001; this.EthernetServerPort = 5002; this.EthernetMode = 0; @@ -597,8 +629,8 @@ namespace INT89DB_26 public bool DummyBool3; public bool DummyBool4; - public int DummyInt1; - public int DummyInt2; + public int FeedbackSampleCount; + public int FeedbackIgnorePackages; public int ModbusTcpStartAddress; [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 40)] @@ -1850,4 +1882,104 @@ namespace INT89DB_26 #endregion } #endregion + + #region FeedbackItem + public class FeedbackConfiguration + { + #region Field + private bool m_IsBootingComplete; + private int m_RetryCount; + + private DataStore.FeedbackBoardDataTransfer m_DataTransfer; + + private string m_HighLimit; + private string m_LowLimit; + private string m_DeadZone; + #endregion + + #region Constructor + public FeedbackConfiguration() + { + this.Initialization(); + this.DefaultSetting(); + } + #endregion + + #region Property + public bool IsBootingComplete + { + get { return this.m_IsBootingComplete; } + set { this.m_IsBootingComplete = value; } + } + public int RetryCount + { + get { return this.m_RetryCount; } + set { this.m_RetryCount = value; } + } + public DataStore.FeedbackBoardDataTransfer DataTransfer + { + get { return this.m_DataTransfer; } + set { this.m_DataTransfer = value; } + } + + public string HighLimit + { + get { return this.m_HighLimit; } + set { this.m_HighLimit = value; } + } + public string LowLimit + { + get { return this.m_LowLimit; } + set { this.m_LowLimit = value; } + } + public string DeadZone + { + get { return this.m_DeadZone; } + set { this.m_DeadZone = value; } + } + #endregion + + #region Method + public void Initialization() + { + this.HighLimit = "3000"; + this.LowLimit = "1000"; + this.DeadZone = "0"; + } + private void DefaultSetting() + { + this.IsBootingComplete = false; + this.RetryCount = 0; + this.DataTransfer = DataStore.FeedbackBoardDataTransfer.None; + } + #endregion + } + #endregion + #region Struct FeedbackItem + [StructLayout(LayoutKind.Sequential)] + public struct StructFeedbackConfiguration + { + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] + public string HightLimit; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] + public string LowLimit; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] + public string DeadZone; + + public bool DummyBool1; + public bool DummyBool2; + public bool DummyBool3; + + public int DummyInt1; + public int DummyInt2; + public int DummyInt3; + + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] + public string DummyString1; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] + public string DummyString2; + [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] + public string DummyString3; + } + #endregion } diff --git a/INT89DB_26/DialogForms/DialogFormMessage.cs b/INT89DB_26/DialogForms/DialogFormMessage.cs index 8619b8d..edd9882 100644 --- a/INT89DB_26/DialogForms/DialogFormMessage.cs +++ b/INT89DB_26/DialogForms/DialogFormMessage.cs @@ -53,6 +53,979 @@ namespace INT89DB_26.DialogForms } } + public DialogFormMessage(int code, DataStore.LanguageID language) + { + InitializeComponent(); + + this.labelErrorCode.Text = ""; + this.labelMessage1.Text = ""; + this.labelMessage2.Text = ""; + + switch (language) + { + case DataStore.LanguageID.Korean: + #region 한글 + switch (code) + { + case 1: + this.labelErrorCode.Text = "Error 01"; + this.labelMessage1.Text = "입력범위를 확인하세요."; + break; + case 2: + this.labelErrorCode.Text = "Error 02"; + this.labelMessage1.Text = "최신 프로그램입니다."; + break; + case 3: + this.labelErrorCode.Text = "Error 03"; + this.labelMessage1.Text = "연속으로 불량이 발생했습니다"; + break; + case 4: + this.labelErrorCode.Text = "Error 04"; + this.labelMessage1.Text = "백업할 파일이 없습니다"; + break; + case 5: + this.labelErrorCode.Text = "Error 05"; + this.labelMessage1.Text = "USB메모리가 장착되지 않았습니다"; + break; + case 6: + this.labelErrorCode.Text = "Error 06"; + this.labelMessage1.Text = "제조사에 문의하세요"; + break; + case 7: + this.labelErrorCode.Text = "Error 07"; + this.labelMessage1.Text = "USB에 업데이트 할 파일이 없습니다"; + break; + case 8: + this.labelErrorCode.Text = "Error 08"; + this.labelMessage1.Text = "업데이트 할 실행파일 개수가 많습니다"; + break; + case 9: + this.labelErrorCode.Text = "Error 09"; + this.labelMessage1.Text = "USB에 업데이트 폴더가 없습니다"; + break; + case 10: + this.labelErrorCode.Text = "Error 10"; + this.labelMessage1.Text = "해당 메모리가 장착되지 않았습니다"; + break; + case 11: + this.labelErrorCode.Text = "Error 11"; + this.labelMessage1.Text = "입력센서 에러에 의해 정지하였습니다"; + break; + case 12: + this.labelErrorCode.Text = "Warning 12"; + this.labelMessage1.Text = "피드백 설정 확인하세요!"; + this.labelMessage2.Text = "DeadZone Range"; + break; + case 13: + this.labelErrorCode.Text = "Error 13"; + this.labelMessage1.Text = "이 파일은 지원이 되지 않습니다"; + break; + case 14: + this.labelErrorCode.Text = "Warning 14"; + this.labelMessage1.Text = "피드백 설정 확인하세요!"; + this.labelMessage2.Text = "High Limit Range"; + break; + case 15: + this.labelErrorCode.Text = "Warning 15"; + this.labelMessage1.Text = "피드백 설정 확인하세요!"; + this.labelMessage2.Text = "Low Limit Range"; + break; + case 16: + this.labelErrorCode.Text = "Error 16"; + this.labelMessage1.Text = "현재 Modbus는 Client만 지원됩니다."; + this.labelMessage2.Text = "Client 모드로 전환됩니다."; + break; + case 17: + this.labelErrorCode.Text = "Error 17"; + this.labelMessage1.Text = "초기화를 실행해 주세요"; + break; + case 18: + this.labelErrorCode.Text = "Info 18"; + this.labelMessage1.Text = "전원을 끄고 다시 켜주세요"; + break; + case 19: + break; + case 20: + break; + case 31: + this.labelErrorCode.Text = "Error 31"; + this.labelMessage1.Text = "유저 파일 에러"; + this.labelMessage2.Text = ""; + break; + case 32: + this.labelErrorCode.Text = "Error 32"; + this.labelMessage1.Text = "ID 확인하세요"; + this.labelMessage2.Text = ""; + break; + case 33: + this.labelErrorCode.Text = "Error 33"; + this.labelMessage1.Text = "Password 확인하세요"; + this.labelMessage2.Text = ""; + break; + case 34: + this.labelErrorCode.Text = "Error 34"; + this.labelMessage1.Text = "ID : 동일한 ID가 있습니다"; + this.labelMessage2.Text = ""; + break; + case 35: + this.labelErrorCode.Text = "Error 35"; + this.labelMessage1.Text = "ID : 6~20자 입력 하세요"; + this.labelMessage2.Text = ""; + break; + case 36: + this.labelErrorCode.Text = "Error 36"; + this.labelMessage1.Text = "ID : 동일한 문자(111,222,aaa...)를"; + this.labelMessage2.Text = "3번 이상 사용할 수 없습니다"; + break; + case 37: + this.labelErrorCode.Text = "Error 37"; + this.labelMessage1.Text = "ID : 연속된 문자(123,321,abc,cba...)를"; + this.labelMessage2.Text = "사용할 수 없습니다"; + break; + case 38: + this.labelErrorCode.Text = "Error 38"; + this.labelMessage1.Text = "PASSWORD : 6~20자 입력 하세요"; + this.labelMessage2.Text = ""; + break; + case 39: + this.labelErrorCode.Text = "Error 39"; + this.labelMessage1.Text = "PASSWORD : 동일한 문자(111,222,aaa...)를"; + this.labelMessage2.Text = "3번 이상 사용할 수 없습니다"; + break; + case 40: + this.labelErrorCode.Text = "Error 40"; + this.labelMessage1.Text = "PASSWORD : 연속된 문자(123,321,abc,cba...)를"; + this.labelMessage2.Text = "사용할 수 없습니다"; + break; + case 41: + this.labelErrorCode.Text = "Error 41"; + this.labelMessage1.Text = "PASSWORD : 영문1이상, 숫자1이상, 특수문자1이상"; + this.labelMessage2.Text = "포함하여 주십시오"; + break; + case 42: + this.labelErrorCode.Text = "Error 42"; + this.labelMessage1.Text = "PASSWORD : 이전에 설정한 패스워드입니다"; + this.labelMessage2.Text = ""; + break; + case 43: + this.labelErrorCode.Text = "Notice 43"; + this.labelMessage1.Text = "자동 로그아웃 됩니다"; + this.labelMessage2.Text = ""; + break; + default: + this.labelErrorCode.Text = "Error 99"; + this.labelMessage1.Text = "제조사에 문의하세요"; + break; + } + #endregion + break; + case DataStore.LanguageID.English: + #region 영문 + switch (code) + { + case 1: + this.labelErrorCode.Text = "Error 01"; + this.labelMessage1.Text = "Confirm input range"; + break; + case 2: + this.labelErrorCode.Text = "Error 02"; + this.labelMessage1.Text = "Application is the lastest"; + break; + case 3: + this.labelErrorCode.Text = "Error 03"; + this.labelMessage1.Text = "Detect Continuous N.G !!"; + break; + case 4: + this.labelErrorCode.Text = "Error 04"; + this.labelMessage1.Text = "There are no Backup files"; + break; + case 5: + this.labelErrorCode.Text = "Error 05"; + this.labelMessage1.Text = "No USB Memory"; + break; + case 6: + this.labelErrorCode.Text = "Error 06"; + this.labelMessage1.Text = "Please contact a manufacturer"; + break; + case 7: + this.labelErrorCode.Text = "Error 07"; + this.labelMessage1.Text = "There are no update files in USB"; + break; + case 8: + this.labelErrorCode.Text = "Error 08"; + this.labelMessage1.Text = "Too much file for update"; + break; + case 9: + this.labelErrorCode.Text = "Error 09"; + this.labelMessage1.Text = "There is no folder has update files in USB"; + break; + case 10: + this.labelErrorCode.Text = "Error 10"; + this.labelMessage1.Text = "There is no MEMORY"; + break; + case 11: + this.labelErrorCode.Text = "Error 11"; + this.labelMessage1.Text = "Emergency stop due to entry sensor error"; + break; + case 12: + this.labelErrorCode.Text = "Warning 12"; + this.labelMessage1.Text = "Check your feedback settings!"; + this.labelMessage2.Text = "DeadZone Range"; + break; + case 13: + this.labelErrorCode.Text = "Error 13"; + this.labelMessage1.Text = "This file is not supported"; + break; + case 14: + this.labelErrorCode.Text = "Warning 14"; + this.labelMessage1.Text = "Check your feedback settings!"; + this.labelMessage2.Text = "High Limit Range"; + break; + case 15: + this.labelErrorCode.Text = "Warning 15"; + this.labelMessage1.Text = "Check your feedback settings!"; + this.labelMessage2.Text = "Low Limit Range"; + break; + case 16: + this.labelErrorCode.Text = "Error 16"; + this.labelMessage1.Text = "Currently, only the 'Client' is supported for Modbus."; + this.labelMessage2.Text = "Switches to 'Client' mode."; + break; + case 17: + this.labelErrorCode.Text = "Error 17"; + this.labelMessage1.Text = "Please run the initialization"; + break; + case 18: + this.labelErrorCode.Text = "Error 18"; + this.labelMessage1.Text = "Turn the power off and back on."; + break; + case 19: + break; + case 20: + break; + case 31: + this.labelErrorCode.Text = "Error 31"; + this.labelMessage1.Text = "User files error"; + this.labelMessage2.Text = ""; + break; + case 32: + this.labelErrorCode.Text = "Error 32"; + this.labelMessage1.Text = "Check the ID"; + this.labelMessage2.Text = ""; + break; + case 33: + this.labelErrorCode.Text = "Error 33"; + this.labelMessage1.Text = "Check the password"; + this.labelMessage2.Text = ""; + break; + case 34: + this.labelErrorCode.Text = "Error 34"; + this.labelMessage1.Text = "The system already has the same ID"; + this.labelMessage2.Text = ""; + break; + case 35: + this.labelErrorCode.Text = "Error 35"; + this.labelMessage1.Text = "Please enter 4-10 characters"; + this.labelMessage2.Text = ""; + break; + case 36: + this.labelErrorCode.Text = "Error 36"; + this.labelMessage1.Text = "ID: The same character (111,222,aaa...)"; + this.labelMessage2.Text = "cannot be used more than 3 times"; + break; + case 37: + this.labelErrorCode.Text = "Error 37"; + this.labelMessage1.Text = "ID: Consecutive characters (123,321,abc,cba...)"; + this.labelMessage2.Text = "cannot be used"; + break; + case 38: + this.labelErrorCode.Text = "Error 38"; + this.labelMessage1.Text = "PASSWORD: Enter 6~20 characters"; + this.labelMessage2.Text = ""; + break; + case 39: + this.labelErrorCode.Text = "Error 39"; + this.labelMessage1.Text = "PASSWORD: The same character (111,222,aaa...)"; + this.labelMessage2.Text = "cannot be used more than 3 times"; + break; + case 40: + this.labelErrorCode.Text = "Error 40"; + this.labelMessage1.Text = "PASSWORD: Consecutive characters"; + this.labelMessage2.Text = "(123,321,abc,cba...) cannot be used"; + break; + case 41: + this.labelErrorCode.Text = "Error 41"; + this.labelMessage1.Text = "PASSWORD: Include at least 1 English letter,"; + this.labelMessage2.Text = "at least 1 number, and at least 1 special character"; + break; + case 42: + this.labelErrorCode.Text = "Error 42"; + this.labelMessage1.Text = "PASSWORD: This is the password you set previously"; + this.labelMessage2.Text = ""; + break; + case 43: + this.labelErrorCode.Text = "Notice 43"; + this.labelMessage1.Text = "You will be automatically logged out"; + this.labelMessage2.Text = ""; + break; + default: + this.labelErrorCode.Text = "Error 99"; + this.labelMessage1.Text = "Please contact a manufacturer"; + break; + } + #endregion + break; + case DataStore.LanguageID.Chinese: + #region 중문 + this.buttonOK.Text = "好"; + + switch (code) + { + case 1: + this.labelErrorCode.Text = "錯誤 01"; + this.labelMessage1.Text = "确认输入范围"; + break; + case 2: + this.labelErrorCode.Text = "錯誤 02"; + this.labelMessage1.Text = "最近应用"; + break; + case 3: + this.labelErrorCode.Text = "錯誤 03"; + this.labelMessage1.Text = "测试连续NG"; + break; + case 4: + this.labelErrorCode.Text = "錯誤 04"; + this.labelMessage1.Text = "无支持文件"; + break; + case 5: + this.labelErrorCode.Text = "錯誤 05"; + this.labelMessage1.Text = "无USB存储卡"; + break; + case 6: + this.labelErrorCode.Text = "錯誤 06"; + this.labelMessage1.Text = "请联系厂商"; + break; + case 7: + this.labelErrorCode.Text = "錯誤 07"; + this.labelMessage1.Text = "USB无更新文件"; + break; + case 8: + this.labelErrorCode.Text = "錯誤 08"; + this.labelMessage1.Text = "太多文件需更新"; + break; + case 9: + this.labelErrorCode.Text = "錯誤 09"; + this.labelMessage1.Text = "USB没有文件夹需要更新文件다"; + break; + case 10: + this.labelErrorCode.Text = "錯誤 10"; + this.labelMessage1.Text = "无存储"; + break; + case 11: + this.labelErrorCode.Text = "錯誤 11"; + this.labelMessage1.Text = "由于入口传感器错误导致紧急停止"; + break; + case 12: + this.labelErrorCode.Text = "注意 12"; + this.labelMessage1.Text = "检查您的反馈设置!死区范围"; + this.labelMessage2.Text = ""; + break; + case 13: + this.labelErrorCode.Text = "錯誤 13"; + this.labelMessage1.Text = "不支援这个档案"; + break; + case 14: + this.labelErrorCode.Text = "注意 14"; + this.labelMessage1.Text = "检查您的反馈设置!上限范围"; + this.labelMessage2.Text = ""; + break; + case 15: + this.labelErrorCode.Text = "注意 15"; + this.labelMessage1.Text = "检查您的反馈设置!下限范围"; + this.labelMessage2.Text = ""; + break; + case 16: + this.labelErrorCode.Text = "錯誤 16"; + this.labelMessage1.Text = "目前,Modbus 仅支持“客户端”。"; + this.labelMessage2.Text = "切换到“客户端”模式。"; + break; + case 17: + this.labelErrorCode.Text = "錯誤 17"; + this.labelMessage1.Text = "运行初始化"; + break; + case 18: + this.labelErrorCode.Text = "錯誤 18"; + this.labelMessage1.Text = "关掉电源,然后在打开电源"; + break; + case 19: + break; + case 20: + break; + case 31: + this.labelErrorCode.Text = "錯誤 31"; + this.labelMessage1.Text = "用户文件错误"; + this.labelMessage2.Text = ""; + break; + case 32: + this.labelErrorCode.Text = "錯誤 32"; + this.labelMessage1.Text = "检查身份证"; + this.labelMessage2.Text = ""; + break; + case 33: + this.labelErrorCode.Text = "錯誤 33"; + this.labelMessage1.Text = "检查密码"; + this.labelMessage2.Text = ""; + break; + case 34: + this.labelErrorCode.Text = "錯誤 34"; + this.labelMessage1.Text = "系统已具有相同的ID"; + this.labelMessage2.Text = ""; + break; + case 35: + this.labelErrorCode.Text = "錯誤 35"; + this.labelMessage1.Text = "请输入4-10个字符"; + this.labelMessage2.Text = ""; + break; + case 36: + this.labelErrorCode.Text = "錯誤 36"; + this.labelMessage1.Text = "ID:相同字符(111、222、aaa……)不能使用超过3次"; + this.labelMessage2.Text = ""; + break; + case 37: + this.labelErrorCode.Text = "錯誤 37"; + this.labelMessage1.Text = "ID:连续字符(123、321、abc、cba……)不能使用"; + this.labelMessage2.Text = ""; + break; + case 38: + this.labelErrorCode.Text = "錯誤 38"; + this.labelMessage1.Text = "密码:请输入6至20个字符"; + this.labelMessage2.Text = ""; + break; + case 39: + this.labelErrorCode.Text = "錯誤 39"; + this.labelMessage1.Text = "密码:相同字符(111、222、aaa……)不能使用超过3次"; + this.labelMessage2.Text = ""; + break; + case 40: + this.labelErrorCode.Text = "錯誤 40"; + this.labelMessage1.Text = "密码:连续字符(123、321、abc、cba……)不能使用"; + this.labelMessage2.Text = ""; + break; + case 41: + this.labelErrorCode.Text = "錯誤 41"; + this.labelMessage1.Text = "密码:至少包含1个英文字母、1个数字和1个特殊字符"; + this.labelMessage2.Text = ""; + break; + case 42: + this.labelErrorCode.Text = "錯誤 42"; + this.labelMessage1.Text = "密码:这是您之前设置的密码"; + this.labelMessage2.Text = ""; + break; + case 43: + this.labelErrorCode.Text = "注意 43"; + this.labelMessage1.Text = "您将自动退出"; + this.labelMessage2.Text = ""; + break; + default: + this.labelErrorCode.Text = "錯誤 99"; + this.labelMessage1.Text = "请联系厂商"; + break; + } + #endregion + break; + case DataStore.LanguageID.Czech: + #region 체코어 + switch (code) + { + case 1: + this.labelErrorCode.Text = "Chyba 01"; + this.labelMessage1.Text = "Potvrďte zadanou hodnotu"; + this.labelMessage2.Text = ""; + break; + case 2: + this.labelErrorCode.Text = "Chyba 02"; + this.labelMessage1.Text = "Software je aktuální"; + this.labelMessage2.Text = ""; + break; + case 3: + this.labelErrorCode.Text = "Chyba 03"; + this.labelMessage1.Text = "Detekovat neustále chybějící produkt"; + this.labelMessage2.Text = ""; + break; + case 4: + this.labelErrorCode.Text = "Chyba 04"; + this.labelMessage1.Text = "Chybí zálohové soubory"; + this.labelMessage2.Text = ""; + break; + case 5: + this.labelErrorCode.Text = "Chyba 05"; + this.labelMessage1.Text = "USB nepřipojeno"; + this.labelMessage2.Text = ""; + break; + case 6: + this.labelErrorCode.Text = "Chyba 06"; + this.labelMessage1.Text = "Kontaktujte výrobce"; + this.labelMessage2.Text = ""; + break; + case 7: + this.labelErrorCode.Text = "Chyba 07"; + this.labelMessage1.Text = "Na USB chybí aktualizační soubory"; + this.labelMessage2.Text = ""; + break; + case 8: + this.labelErrorCode.Text = "Chyba 08"; + this.labelMessage1.Text = "Příliš mnoho souboru k aktualizaci"; + this.labelMessage2.Text = ""; + break; + case 9: + this.labelErrorCode.Text = "Chyba 09"; + this.labelMessage1.Text = "Na USB disku není žádná složka s aktualizačními soubory."; + this.labelMessage2.Text = ""; + break; + case 10: + this.labelErrorCode.Text = "Chyba 10"; + this.labelMessage1.Text = "Chybí paměť"; + this.labelMessage2.Text = ""; + break; + case 11: + this.labelErrorCode.Text = "Chyba 11"; + this.labelMessage1.Text = "Nouzové zastavení z důvodu chyby vstupního senzoru"; + break; + case 12: + this.labelErrorCode.Text = "Varování 12"; + this.labelMessage1.Text = "Zkontrolujte nastavení zpětné vazby!"; + this.labelMessage2.Text = "Rozsah mrtvé zóny"; + break; + case 13: + this.labelErrorCode.Text = "Chybě 13"; + this.labelMessage1.Text = "Tento soubor není podporován"; + break; + case 14: + this.labelErrorCode.Text = "Varování 14"; + this.labelMessage1.Text = "Zkontrolujte nastavení zpětné vazby!"; + this.labelMessage2.Text = "Rozsah horního limitu"; + break; + case 15: + this.labelErrorCode.Text = "Varování 15"; + this.labelMessage1.Text = "Zkontrolujte nastavení zpětné vazby!"; + this.labelMessage2.Text = "Rozsah dolního limitu"; + break; + case 16: + this.labelErrorCode.Text = "Chyba 16"; + this.labelMessage1.Text = "V současné době je pro Modbus podporován"; + this.labelMessage2.Text = "pouze režim „Klient“. Přepne do režimu „Klient“."; + break; + case 17: + this.labelErrorCode.Text = "Chybě 17"; + this.labelMessage1.Text = "Prosím proveďte spuštění"; + this.labelMessage2.Text = ""; + break; + case 18: + this.labelErrorCode.Text = "Chybě 18"; + this.labelMessage1.Text = "Vypněte a zapněte hlavním vypínačem"; + this.labelMessage2.Text = ""; + break; + case 19: + break; + case 20: + break; + case 31: + this.labelErrorCode.Text = "Chybě 31"; + this.labelMessage1.Text = "Chyba souborů uživatele"; + this.labelMessage2.Text = ""; + break; + case 32: + this.labelErrorCode.Text = "Chybě 32"; + this.labelMessage1.Text = "Zkontrolujte ID"; + this.labelMessage2.Text = ""; + break; + case 33: + this.labelErrorCode.Text = "Chybě 33"; + this.labelMessage1.Text = "Zkontrolujte heslo"; + this.labelMessage2.Text = ""; + break; + case 34: + this.labelErrorCode.Text = "Chybě 34"; + this.labelMessage1.Text = "Systém již má stejné ID"; + this.labelMessage2.Text = ""; + break; + case 35: + this.labelErrorCode.Text = "Chybě 35"; + this.labelMessage1.Text = "Zadejte 4–10 znaků"; + this.labelMessage2.Text = ""; + break; + case 36: + this.labelErrorCode.Text = "Chybě 36"; + this.labelMessage1.Text = "ID: Stejný znak (111, 222, aaa...) nelze použít více"; + this.labelMessage2.Text = "než 3krát"; + break; + case 37: + this.labelErrorCode.Text = "Chybě 37"; + this.labelMessage1.Text = "ID: Nelze použít po sobě jdoucí znaky"; + this.labelMessage2.Text = "(123, 321, abc, cba...)"; + break; + case 38: + this.labelErrorCode.Text = "Chybě 38"; + this.labelMessage1.Text = "HESLO: Zadejte 6–20 znaků"; + this.labelMessage2.Text = ""; + break; + case 39: + this.labelErrorCode.Text = "Chybě 39"; + this.labelMessage1.Text = "HESLO: Stejný znak (111, 222, aaa...)"; + this.labelMessage2.Text = "nelze použít více než 3krát"; + break; + case 40: + this.labelErrorCode.Text = "Chybě 40"; + this.labelMessage1.Text = "HESLO: Nelze použít po sobě jdoucí znaky"; + this.labelMessage2.Text = "(123, 321, abc, cba...)"; + break; + case 41: + this.labelErrorCode.Text = "Chybě 41"; + this.labelMessage1.Text = "HESLO: Obsahuje alespoň 1 anglické písmeno,"; + this.labelMessage2.Text = "alespoň 1 číslici a alespoň 1 speciální znak"; + break; + case 42: + this.labelErrorCode.Text = "Chybě 42"; + this.labelMessage1.Text = "HESLO: Toto je heslo, které jste si nastavili dříve"; + this.labelMessage2.Text = ""; + break; + case 43: + this.labelErrorCode.Text = "Upozornění 43"; + this.labelMessage1.Text = "Budete automaticky odhlášeni"; + this.labelMessage2.Text = ""; + break; + default: + this.labelErrorCode.Text = "Chybě 99"; + this.labelMessage1.Text = "Kontaktujte výrobce"; + this.labelMessage2.Text = ""; + break; + } + #endregion + break; + case DataStore.LanguageID.German: + #region 독일어 + switch (code) + { + case 1: + this.labelErrorCode.Text = "Fehler 01"; + this.labelMessage1.Text = "Den eingegebenen Wert bestätigen"; + break; + case 2: + this.labelErrorCode.Text = "Fehler 02"; + this.labelMessage1.Text = "Software ist up-to-date"; + break; + case 3: + this.labelErrorCode.Text = "Fehler 03"; + this.labelMessage1.Text = "Fehlendes Produkt dauerhaft detektieren"; + break; + case 4: + this.labelErrorCode.Text = "Fehler 04"; + this.labelMessage1.Text = "Sicherungsdateien fehlen"; + break; + case 5: + this.labelErrorCode.Text = "Fehler 05"; + this.labelMessage1.Text = "USB nicht angeschlossen"; + break; + case 6: + this.labelErrorCode.Text = "Fehler 06"; + this.labelMessage1.Text = "Hersteller kontaktieren"; + break; + case 7: + this.labelErrorCode.Text = "Fehler 07"; + this.labelMessage1.Text = "Auf USB fehlen Aktualisierungsdateien"; + break; + case 8: + this.labelErrorCode.Text = "Fehler 08"; + this.labelMessage1.Text = "Zu viele ausführbare Dateien"; + this.labelMessage2.Text = "zum Aktualisieren"; + break; + case 9: + this.labelErrorCode.Text = "Fehler 09"; + this.labelMessage1.Text = "Ordner mit den Aktualisierungsdateien"; + this.labelMessage2.Text = "fehlt auf dem USB"; + break; + case 10: + this.labelErrorCode.Text = "Fehler 10"; + this.labelMessage1.Text = "Speicher/ Datenspeicher fehlt"; + break; + case 11: + this.labelErrorCode.Text = "Fehler 11"; + this.labelMessage1.Text = "Notstopp aufgrund eines Eingangssensorfehlers"; + break; + case 12: + this.labelErrorCode.Text = "Warnung 12"; + this.labelMessage1.Text = "Überprüfen Sie Ihre Feedback-Einstellungen!"; + this.labelMessage2.Text = "Totzonenbereich"; + break; + case 13: + this.labelErrorCode.Text = "Fehler 13"; + this.labelMessage1.Text = "Diese Datei wird nicht unterstützt"; + break; + case 14: + this.labelErrorCode.Text = "Warnung 14"; + this.labelMessage1.Text = "Überprüfen Sie Ihre Feedback-Einstellungen!"; + this.labelMessage2.Text = "Oberer Grenzwertbereich"; + break; + case 15: + this.labelErrorCode.Text = "Warnung 15"; + this.labelMessage1.Text = "Überprüfen Sie Ihre Feedback-Einstellungen!"; + this.labelMessage2.Text = "Unterer Grenzwertbereich"; + break; + case 16: + this.labelErrorCode.Text = "Fehler 16"; + this.labelMessage1.Text = "Derzeit wird nur der „Client“-Modus für Modbus unterstützt."; + this.labelMessage2.Text = "Wechselt in den „Client“-Modus."; + break; + case 17: + this.labelErrorCode.Text = "Fehler 17"; + this.labelMessage1.Text = "Bitte starten"; + break; + case 18: + this.labelErrorCode.Text = "Fehler 18"; + this.labelMessage1.Text = "Mit dem Hauptschalter"; + this.labelMessage2.Text = "aus- und einschalten"; + break; + case 19: + break; + case 20: + break; + case 31: + this.labelErrorCode.Text = "Fehler 31"; + this.labelMessage1.Text = "Fehler der Benutzerdateien"; + this.labelMessage2.Text = ""; + break; + case 32: + this.labelErrorCode.Text = "Fehler 32"; + this.labelMessage1.Text = "Überprüfen Sie die ID"; + this.labelMessage2.Text = ""; + break; + case 33: + this.labelErrorCode.Text = "Fehler 33"; + this.labelMessage1.Text = "Überprüfen Sie das Passwort"; + this.labelMessage2.Text = ""; + break; + case 34: + this.labelErrorCode.Text = "Fehler 34"; + this.labelMessage1.Text = "Das System hat bereits die gleiche ID"; + this.labelMessage2.Text = ""; + break; + case 35: + this.labelErrorCode.Text = "Fehler 35"; + this.labelMessage1.Text = "Bitte geben Sie 4-10 Zeichen ein"; + this.labelMessage2.Text = ""; + break; + case 36: + this.labelErrorCode.Text = "Fehler 36"; + this.labelMessage1.Text = "ID: Dasselbe Zeichen (111, 222, aaa…) darf"; + this.labelMessage2.Text = "maximal dreimal verwendet werden."; + break; + case 37: + this.labelErrorCode.Text = "Fehler 37"; + this.labelMessage1.Text = "ID: Aufeinanderfolgende Zeichen (123, 321, abc, cba…)"; + this.labelMessage2.Text = "dürfen nicht verwendet werden."; + break; + case 38: + this.labelErrorCode.Text = "Fehler 38"; + this.labelMessage1.Text = "PASSWORT: Geben Sie 6–20 Zeichen ein."; + this.labelMessage2.Text = ""; + break; + case 39: + this.labelErrorCode.Text = "Fehler 39"; + this.labelMessage1.Text = "PASSWORT: Dasselbe Zeichen (111, 222, aaa…)"; + this.labelMessage2.Text = "darf maximal dreimal verwendet werden."; + break; + case 40: + this.labelErrorCode.Text = "Fehler 40"; + this.labelMessage1.Text = "PASSWORT: Aufeinanderfolgende Zeichen"; + this.labelMessage2.Text = "(123, 321, abc, cba…) dürfen nicht verwendet werden."; + break; + case 41: + this.labelErrorCode.Text = "Fehler 41"; + this.labelMessage1.Text = "PASSWORT: Mindestens ein englischer Buchstabe,"; + this.labelMessage2.Text = "mindestens eine Zahl und mindestens ein Sonderzeichen."; + break; + case 42: + this.labelErrorCode.Text = "Fehler 42"; + this.labelMessage1.Text = "PASSWORT: Dies ist das zuvor von Ihnen festgelegte"; + this.labelMessage2.Text = "Passwort."; + break; + case 43: + this.labelErrorCode.Text = "Hinweis 43"; + this.labelMessage1.Text = "Sie werden automatisch abgemeldet."; + this.labelMessage2.Text = ""; + break; + default: + this.labelErrorCode.Text = "Fehler 99"; + this.labelMessage1.Text = "Hersteller kontaktieren"; + break; + } + #endregion + break; + case DataStore.LanguageID.Japanese: + #region Japanese + switch (code) + { + case 1: + this.labelErrorCode.Text = "エラㅡ 01"; + this.labelMessage1.Text = "入力範囲を確認する"; + break; + case 2: + this.labelErrorCode.Text = "エラㅡ 02"; + this.labelMessage1.Text = "アプリケㅡションは最新である"; + break; + case 3: + this.labelErrorCode.Text = "エラㅡ 03"; + this.labelMessage1.Text = "連続NGを検出する"; + break; + case 4: + this.labelErrorCode.Text = "エラㅡ 04"; + this.labelMessage1.Text = "バックアップファイルがない"; + break; + case 5: + this.labelErrorCode.Text = "エラㅡ 05"; + this.labelMessage1.Text = "USBメモリなし"; + break; + case 6: + this.labelErrorCode.Text = "エラㅡ 06"; + this.labelMessage1.Text = "メㅡカㅡにお問い合わせください"; + break; + case 7: + this.labelErrorCode.Text = "エラㅡ 07"; + this.labelMessage1.Text = "USBに更新ファイルがない"; + break; + case 8: + this.labelErrorCode.Text = "エラㅡ 08"; + this.labelMessage1.Text = "更新用ファイルが多すぎる"; + break; + case 9: + this.labelErrorCode.Text = "エラㅡ 09"; + this.labelMessage1.Text = "USBに更新ファイルが入ったフォルダㅡがない"; + break; + case 10: + this.labelErrorCode.Text = "エラㅡ 10"; + this.labelMessage1.Text = "メモリㅡがない"; + break; + case 11: + this.labelErrorCode.Text = "注意 11"; + this.labelMessage1.Text = "重量制限設定を確認してください!"; + break; + case 12: + this.labelErrorCode.Text = "警告 12"; + this.labelMessage1.Text = "フィードバック設定を確認してください!"; + this.labelMessage2.Text = "デッドゾーン範囲"; + break; + case 13: + this.labelErrorCode.Text = "エラㅡ 13"; + this.labelMessage1.Text = "このファイルはサポートされていません"; + break; + case 14: + this.labelErrorCode.Text = "警告 14"; + this.labelMessage1.Text = "フィードバック設定を確認してください!"; + this.labelMessage2.Text = "上限範囲"; + break; + case 15: + this.labelErrorCode.Text = "警告 15"; + this.labelMessage1.Text = "フィードバック設定を確認してください!"; + this.labelMessage2.Text = "下限範囲"; + break; + case 16: + this.labelErrorCode.Text = "エラㅡ 16"; + this.labelMessage1.Text = "現在、ModbusはClientのみサポートされています。"; + this.labelMessage2.Text = "Client モードに切り替わります。"; + break; + case 17: + this.labelErrorCode.Text = "エラㅡ 17"; + this.labelMessage1.Text = "初期化を実行してください"; + break; + case 18: + this.labelErrorCode.Text = "注意 18"; + this.labelMessage1.Text = "電源をOFFにしてから電源をONにする"; + break; + case 19: + break; + case 20: + break; + case 23: + this.labelErrorCode.Text = "エラㅡ 23"; + this.labelMessage1.Text = "通信接続状態を確認する"; + this.labelMessage2.Text = ""; + break; + case 31: + this.labelErrorCode.Text = "エラㅡ 31"; + this.labelMessage1.Text = "ユㅡザㅡファイルエラㅡ"; + this.labelMessage2.Text = ""; + break; + case 32: + this.labelErrorCode.Text = "エラㅡ 32"; + this.labelMessage1.Text = "IDを確認する"; + this.labelMessage2.Text = ""; + break; + case 33: + this.labelErrorCode.Text = "エラㅡ 33"; + this.labelMessage1.Text = "パスワㅡドを確認する"; + this.labelMessage2.Text = ""; + break; + case 34: + this.labelErrorCode.Text = "エラㅡ 34"; + this.labelMessage1.Text = "システムに既に同じIDがある"; + this.labelMessage2.Text = ""; + break; + case 35: + this.labelErrorCode.Text = "エラㅡ 35"; + this.labelMessage1.Text = "4~10文字を入力してください"; + this.labelMessage2.Text = ""; + break; + case 36: + this.labelErrorCode.Text = "エラㅡ 36"; + this.labelMessage1.Text = "ID: 同じ文字 (111,222,aaa...) は3回以上"; + this.labelMessage2.Text = "使用できません"; + break; + case 37: + this.labelErrorCode.Text = "エラㅡ 37"; + this.labelMessage1.Text = "ID: 連続する文字 (123,321,abc,cba...) は"; + this.labelMessage2.Text = "使用できません"; + break; + case 38: + this.labelErrorCode.Text = "エラㅡ 38"; + this.labelMessage1.Text = "パスワード: 6~20文字を入力してください"; + this.labelMessage2.Text = ""; + break; + case 39: + this.labelErrorCode.Text = "エラㅡ 39"; + this.labelMessage1.Text = "パスワード: 同じ文字 (111,222,aaa...) は"; + this.labelMessage2.Text = "3回以上使用できません"; + break; + case 40: + this.labelErrorCode.Text = "エラㅡ 40"; + this.labelMessage1.Text = "パスワード: 連続する文字 (123,321,abc,cba...) は"; + this.labelMessage2.Text = "使用できません"; + break; + case 41: + this.labelErrorCode.Text = "エラㅡ 41"; + this.labelMessage1.Text = "パスワード: 英字、数字、特殊文字を"; + this.labelMessage2.Text = "それぞれ1文字以上含めてください"; + break; + case 42: + this.labelErrorCode.Text = "エラㅡ 42"; + this.labelMessage1.Text = "パスワード: 以前に設定したパスワードです"; + this.labelMessage2.Text = ""; + break; + case 43: + this.labelErrorCode.Text = "お知らせ 43"; + this.labelMessage1.Text = "自動的にログアウトされます"; + this.labelMessage2.Text = ""; + break; + default: + this.labelErrorCode.Text = "エラㅡ 99"; + this.labelMessage1.Text = "メㅡカㅡにお問い合わせください"; + break; + } + #endregion + break; + default: + break; + } + } public DialogFormMessage(int code, DataStore.LanguageID language, string msg) { InitializeComponent(); @@ -465,6 +1438,499 @@ namespace INT89DB_26.DialogForms } } + public DialogFormMessage(object dll, int code, DataStore.LanguageID language) + { + InitializeComponent(); + + this.labelErrorCode.Text = ""; + this.labelMessage1.Text = ""; + this.labelMessage2.Text = ""; + + switch (language) + { + case DataStore.LanguageID.Korean: + #region 한글 + switch (code) + { + case 1: + this.labelErrorCode.Text = "Error 04_01"; + this.labelMessage1.Text = "ID를 찾을 수 없습니다"; + break; + case 2: + this.labelErrorCode.Text = "Error 04_02"; + this.labelMessage1.Text = "ID : 동일한 ID가 있습니다"; + break; + case 3: + this.labelErrorCode.Text = "Error 04_03"; + this.labelMessage1.Text = "ID : 6~20자 입력하세요"; + break; + case 4: + this.labelErrorCode.Text = "Error 04_04"; + this.labelMessage1.Text = "ID : 6~20자 입력하세요"; + break; + case 5: + this.labelErrorCode.Text = "Error 04_05"; + this.labelMessage1.Text = "ID : 연속된 문자(123,321,abc,cba...)또는"; + this.labelMessage2.Text = "동일한 문자(111,222,aaa...) 사용 할 수 없습니다"; + break; + case 6: + this.labelErrorCode.Text = "Error 04_06"; + this.labelMessage1.Text = "ID : 사용할 수 없는 문자가 포함되어 있습니다"; + break; + case 7: + this.labelErrorCode.Text = "Error 04_07"; + this.labelMessage1.Text = "ID : 사용자 계정이 만료 되었습니다"; + break; + case 8: + this.labelErrorCode.Text = "Error 04_08"; + this.labelMessage1.Text = "PASSWORD : 이전 패스워드 입니다"; + break; + case 9: + this.labelErrorCode.Text = "Error 04_09"; + this.labelMessage1.Text = "PASSWORD : 6~20자 입력하세요"; + break; + case 10: + this.labelErrorCode.Text = "Error 04_10"; + this.labelMessage1.Text = "PASSWORD : 6~20자 입력하세요"; + break; + case 11: + this.labelErrorCode.Text = "Error 04_11"; + this.labelMessage1.Text = "PASSWORD : 연속된 문자(123,321,abc,cba...)또는"; + this.labelMessage2.Text = "동일한 문자(111,222,aaa...) 사용 할 수 없습니다"; + break; + case 12: + this.labelErrorCode.Text = "Error 04_12"; + this.labelMessage1.Text = "PASSWORD : 사용할 수 없는 문자가 포함되어 있습니다"; + this.labelMessage2.Text = "사용 가능 특수문자 : !@#$%^&*+-."; + break; + case 13: + this.labelErrorCode.Text = "Error 04_13"; + this.labelMessage1.Text = "PASSWORD : 영문1이상, 숫자1이상, 특수문자1이상"; + this.labelMessage2.Text = "포함하여 주십시오"; + break; + case 14: + this.labelErrorCode.Text = "Error 04_14"; + this.labelMessage1.Text = "비밀번호를 확인하세요"; + break; + case 15: + this.labelErrorCode.Text = "Error 04_15"; + this.labelMessage1.Text = "PASSWORD : 비밀번호가 만료 되었습니다"; + break; + case 16: + this.labelErrorCode.Text = "Error 04_16"; + this.labelMessage1.Text = ""; + break; + case 17: + this.labelErrorCode.Text = "Error 04_17"; + this.labelMessage1.Text = ""; + break; + case 18: + this.labelErrorCode.Text = "Error 04_18"; + this.labelMessage1.Text = ""; + break; + default: + this.labelErrorCode.Text = "Error 04_99"; + this.labelMessage1.Text = "제조사에 문의하세요"; + break; + } + #endregion + break; + case DataStore.LanguageID.English: + #region 영문 + switch (code) + { + case 1: + this.labelErrorCode.Text = "Error 04_01"; + this.labelMessage1.Text = "ID not found"; + break; + case 2: + this.labelErrorCode.Text = "Error 04_02"; + this.labelMessage1.Text = "ID : ID already exists"; + break; + case 3: + this.labelErrorCode.Text = "Error 04_03"; + this.labelMessage1.Text = "ID : Please enter 6~20 characters"; + break; + case 4: + this.labelErrorCode.Text = "Error 04_04"; + this.labelMessage1.Text = "ID : Please enter 6~20 characters"; + break; + case 5: + this.labelErrorCode.Text = "Error 04_05"; + this.labelMessage1.Text = "ID : Consecutive(123,321,abc,cba...) or"; + this.labelMessage2.Text = "identical(111,222,aaa...) characters cannot be used."; + break; + case 6: + this.labelErrorCode.Text = "Error 04_06"; + this.labelMessage1.Text = "ID : Contains invalid characters"; + break; + case 7: + this.labelErrorCode.Text = "Error 04_07"; + this.labelMessage1.Text = "ID : User account has expired"; + break; + case 8: + this.labelErrorCode.Text = "Error 04_08"; + this.labelMessage1.Text = "PASSWORD : This is the old password"; + break; + case 9: + this.labelErrorCode.Text = "Error 04_09"; + this.labelMessage1.Text = "PASSWORD : Please enter 6~20 characters"; + break; + case 10: + this.labelErrorCode.Text = "Error 04_10"; + this.labelMessage1.Text = "PASSWORD : Please enter 6~20 characters"; + break; + case 11: + this.labelErrorCode.Text = "Error 04_11"; + this.labelMessage1.Text = "PASSWORD : Consecutive(123,321,abc,cba...) or"; + this.labelMessage2.Text = "identical(111,222,aaa...) characters cannot be used."; + break; + case 12: + this.labelErrorCode.Text = "Error 04_12"; + this.labelMessage1.Text = "PASSWORD : Contains invalid characters"; + this.labelMessage2.Text = "Special characters allowed : !@#$%^&*+-."; + break; + case 13: + this.labelErrorCode.Text = "Error 04_13"; + this.labelMessage1.Text = "PASSWORD : Please include at least one English letter,"; + this.labelMessage2.Text = "at least one number, and at least one special character"; + break; + case 14: + this.labelErrorCode.Text = "Error 04_14"; + this.labelMessage1.Text = "Check your password"; + break; + case 15: + this.labelErrorCode.Text = "Error 04_15"; + this.labelMessage1.Text = "PASSWORD : Password has expired"; + break; + case 16: + this.labelErrorCode.Text = "Error 04_16"; + this.labelMessage1.Text = ""; + break; + case 17: + this.labelErrorCode.Text = "Error 04_17"; + this.labelMessage1.Text = ""; + break; + case 18: + this.labelErrorCode.Text = "Error 04_18"; + this.labelMessage1.Text = ""; + break; + default: + this.labelErrorCode.Text = "Error 04_99"; + this.labelMessage1.Text = "Please contact a manufacturer"; + break; + } + #endregion + break; + case DataStore.LanguageID.Chinese: + #region 중문 + this.buttonOK.Text = "确认"; + + switch (code) + { + case 1: + this.labelErrorCode.Text = "错误 04_01"; + this.labelMessage1.Text = "未找到 ID"; + break; + case 2: + this.labelErrorCode.Text = "错误 04_02"; + this.labelMessage1.Text = "ID : ID已存在"; + break; + case 3: + this.labelErrorCode.Text = "错误 04_03"; + this.labelMessage1.Text = "ID : 请输入6~20个字符"; + break; + case 4: + this.labelErrorCode.Text = "错误 04_04"; + this.labelMessage1.Text = "ID : 请输入6~20个字符"; + break; + case 5: + this.labelErrorCode.Text = "错误 04_05"; + this.labelMessage1.Text = "ID : 不能使用连续的 (123,321,abc,cba...)"; + this.labelMessage2.Text = "或相同的 (111,222,aaa...) 字符。"; + break; + case 6: + this.labelErrorCode.Text = "错误 04_06"; + this.labelMessage1.Text = "ID : 它包含无效字符"; + break; + case 7: + this.labelErrorCode.Text = "错误 04_07"; + this.labelMessage1.Text = "ID : 用户帐号已过期"; + break; + case 8: + this.labelErrorCode.Text = "错误 04_08"; + this.labelMessage1.Text = "密码 : 这是旧密码"; + break; + case 9: + this.labelErrorCode.Text = "错误 04_09"; + this.labelMessage1.Text = "密码 : 请输入6~20个字符"; + break; + case 10: + this.labelErrorCode.Text = "错误 04_10"; + this.labelMessage1.Text = "密码 : 请输入6~20个字符"; + break; + case 11: + this.labelErrorCode.Text = "错误 04_11"; + this.labelMessage1.Text = "密码 : 不能使用连续的 (123,321,abc,cba...)"; + this.labelMessage2.Text = "或相同的 (111,222,aaa...) 字符。"; + break; + case 12: + this.labelErrorCode.Text = "错误 04_12"; + this.labelMessage1.Text = "密码 : 它包含无效字符"; + this.labelMessage2.Text = "允许使用特殊字符 : !@#$%^&*+-."; + break; + case 13: + this.labelErrorCode.Text = "错误 04_13"; + this.labelMessage1.Text = "密码 : 请至少包含一个英文字母,"; + this.labelMessage2.Text = "至少一个数字,至少一个特殊字符"; + break; + case 14: + this.labelErrorCode.Text = "错误 04_14"; + this.labelMessage1.Text = "检查您的密码"; + break; + case 15: + this.labelErrorCode.Text = "错误 04_15"; + this.labelMessage1.Text = "密码 : 密码已过期"; + break; + case 16: + this.labelErrorCode.Text = "错误 04_16"; + this.labelMessage1.Text = ""; + break; + case 17: + this.labelErrorCode.Text = "错误 04_17"; + this.labelMessage1.Text = ""; + break; + case 18: + this.labelErrorCode.Text = "错误 04_18"; + this.labelMessage1.Text = ""; + break; + default: + this.labelErrorCode.Text = "错误 04_99"; + this.labelMessage1.Text = "请联系制造商"; + break; + } + #endregion + break; + case DataStore.LanguageID.Czech: + #region 체코어 + switch (code) + { + case 1: + this.labelErrorCode.Text = "Chybě 04_01"; + this.labelMessage1.Text = ""; + break; + case 2: + this.labelErrorCode.Text = "Chybě 04_02"; + this.labelMessage1.Text = ""; + break; + case 3: + this.labelErrorCode.Text = "Chybě 04_03"; + this.labelMessage1.Text = ""; + break; + case 4: + this.labelErrorCode.Text = "Chybě 04_04"; + this.labelMessage1.Text = ""; + break; + case 5: + this.labelErrorCode.Text = "Chybě 04_05"; + this.labelMessage1.Text = ""; + break; + case 6: + this.labelErrorCode.Text = "Chybě 04_06"; + this.labelMessage1.Text = ""; + break; + case 7: + this.labelErrorCode.Text = "Chybě 04_07"; + this.labelMessage1.Text = ""; + break; + case 8: + this.labelErrorCode.Text = "Chybě 04_08"; + this.labelMessage1.Text = ""; + break; + case 9: + this.labelErrorCode.Text = "Chybě 04_09"; + this.labelMessage1.Text = ""; + break; + case 10: + this.labelErrorCode.Text = "Chybě 04_10"; + this.labelMessage1.Text = ""; + break; + case 11: + this.labelErrorCode.Text = "Chybě 04_11"; + this.labelMessage1.Text = ""; + break; + case 12: + this.labelErrorCode.Text = "Chybě 04_12"; + this.labelMessage1.Text = ""; + break; + case 13: + this.labelErrorCode.Text = "Chybě 04_13"; + this.labelMessage1.Text = ""; + break; + case 14: + this.labelErrorCode.Text = "Chybě 04_14"; + this.labelMessage1.Text = ""; + break; + case 15: + this.labelErrorCode.Text = "Chybě 04_15"; + this.labelMessage1.Text = ""; + break; + case 16: + this.labelErrorCode.Text = "Chybě 04_16"; + this.labelMessage1.Text = ""; + break; + case 17: + this.labelErrorCode.Text = "Chybě 04_17"; + this.labelMessage1.Text = ""; + break; + case 18: + this.labelErrorCode.Text = "Chybě 04_18"; + this.labelMessage1.Text = ""; + break; + default: + this.labelErrorCode.Text = "Chybě 04_99"; + this.labelMessage1.Text = "Kontaktujte výrobce"; + this.labelMessage2.Text = ""; + break; + } + #endregion + break; + case DataStore.LanguageID.German: + #region 독일어 + this.buttonOK.Text = "Bestätigen"; + + switch (code) + { + case 1: + this.labelErrorCode.Text = "Fehler 04_01"; + this.labelMessage1.Text = "ID nicht gefunden"; + break; + case 2: + this.labelErrorCode.Text = "Fehler 04_02"; + this.labelMessage1.Text = "ID : ID existiert bereits"; + break; + case 3: + this.labelErrorCode.Text = "Fehler 04_03"; + this.labelMessage1.Text = "ID : Bitte geben Sie 6~20 Zeichen ein"; + break; + case 4: + this.labelErrorCode.Text = "Fehler 04_04"; + this.labelMessage1.Text = "ID : Bitte geben Sie 6~20 Zeichen ein"; + break; + case 5: + this.labelErrorCode.Text = "Fehler 04_05"; + this.labelMessage1.Text = "ID : Aufeinanderfolgende (123,321,abc,cba...)"; + this.labelMessage2.Text = "oder identische (111,222,aaa...) Zeichen können nicht verwendet werden."; + break; + case 6: + this.labelErrorCode.Text = "Fehler 04_06"; + this.labelMessage1.Text = "ID : Es enthält ungültige Zeichen"; + break; + case 7: + this.labelErrorCode.Text = "Fehler 04_07"; + this.labelMessage1.Text = "ID : Benutzerkonto ist abgelaufen"; + break; + case 8: + this.labelErrorCode.Text = "Fehler 04_08"; + this.labelMessage1.Text = "Passwort : Dies ist das alte Passwort"; + break; + case 9: + this.labelErrorCode.Text = "Fehler 04_09"; + this.labelMessage1.Text = "Passwort : Bitte geben Sie 6~20 Zeichen ein"; + break; + case 10: + this.labelErrorCode.Text = "Fehler 04_10"; + this.labelMessage1.Text = "Passwort : Bitte geben Sie 6~20 Zeichen ein"; + break; + case 11: + this.labelErrorCode.Text = "Fehler 04_11"; + this.labelMessage1.Text = "Passwort : Aufeinanderfolgende (123,321,abc,cba...)"; + this.labelMessage2.Text = "oder identische (111,222,aaa...) Zeichen können nicht verwendet werden."; + break; + case 12: + this.labelErrorCode.Text = "Fehler 04_12"; + this.labelMessage1.Text = "Passwort : Es enthält ungültige Zeichen"; + this.labelMessage2.Text = "Sonderzeichen erlaubt : !@#$%^&*+-."; + break; + case 13: + this.labelErrorCode.Text = "Fehler 04_13"; + this.labelMessage1.Text = "Passwort : Bitte geben Sie mindestens einen"; + this.labelMessage2.Text = "englischen Buchstaben, mindestens eine Ziffer und mindestens ein Sonderzeichen an"; + break; + case 14: + this.labelErrorCode.Text = "Fehler 04_14"; + this.labelMessage1.Text = "Überprüfen Sie Ihr Passwort"; + break; + case 15: + this.labelErrorCode.Text = "Fehler 04_15"; + this.labelMessage1.Text = "Passwort : Passwort ist abgelaufen"; + break; + case 16: + this.labelErrorCode.Text = "Fehler 04_16"; + this.labelMessage1.Text = ""; + break; + case 17: + this.labelErrorCode.Text = "Fehler 04_17"; + this.labelMessage1.Text = ""; + break; + case 18: + this.labelErrorCode.Text = "Fehler 04_18"; + this.labelMessage1.Text = ""; + break; + default: + this.labelErrorCode.Text = "Fehler 04_99"; + this.labelMessage1.Text = "Bitte wenden Sie sich an einen Hersteller"; + break; + } + #endregion + break; + default: + break; + } + } + public DialogFormMessage(DataStore.MessageBoxIcon icon, string code, string message1, string message2, int autoClose_sec) + { + InitializeComponent(); + + this.timerAutoClose.Enabled = false; + + this.pictureBoxAsterisk.Visible = false; + this.pictureBoxExclamation.Visible = false; + this.pictureBoxHand.Visible = false; + this.pictureBoxQuestion.Visible = false; + + switch (icon) + { + case DataStore.MessageBoxIcon.Hand: + this.pictureBoxHand.Visible = true; + this.pictureBoxHand.BringToFront(); + break; + case DataStore.MessageBoxIcon.Question: + this.pictureBoxQuestion.Visible = true; + this.pictureBoxQuestion.BringToFront(); + break; + case DataStore.MessageBoxIcon.Exclamation: + this.pictureBoxExclamation.Visible = true; + this.pictureBoxExclamation.BringToFront(); + break; + case DataStore.MessageBoxIcon.Asterisk: + this.pictureBoxAsterisk.Visible = true; + this.pictureBoxAsterisk.BringToFront(); + break; + default: + break; + } + + this.labelErrorCode.Text = code; + this.labelMessage1.Text = message1; + this.labelMessage2.Text = message2; + + if (autoClose_sec != 0) + { + this.timerAutoClose.Interval = autoClose_sec * 1000; + this.timerAutoClose.Enabled = true; + } + } #endregion #region Property @@ -500,6 +1966,12 @@ namespace INT89DB_26.DialogForms this.DialogResult = DialogResult.OK; this.Close(); } + private void timerAutoClose_Tick(object sender, EventArgs e) + { + this.timerAutoClose.Enabled = false; + this.DialogResult = DialogResult.OK; + this.Close(); + } #endregion } } \ No newline at end of file diff --git a/INT89DB_26/DialogForms/DialogFormMessage.designer.cs b/INT89DB_26/DialogForms/DialogFormMessage.designer.cs index ddbc34f..fe2ebec 100644 --- a/INT89DB_26/DialogForms/DialogFormMessage.designer.cs +++ b/INT89DB_26/DialogForms/DialogFormMessage.designer.cs @@ -29,53 +29,24 @@ private void InitializeComponent() { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DialogFormMessage)); - this.panel1 = new System.Windows.Forms.Panel(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.labelMessage2 = new System.Windows.Forms.Label(); - this.labelMessage1 = new System.Windows.Forms.Label(); this.buttonOK = new System.Windows.Forms.Button(); - this.labelErrorCode = new System.Windows.Forms.Label(); - this.panel1.SuspendLayout(); + this.smartForm1 = new SmartX.SmartForm(); + this.labelErrorCode = new SmartX.SmartLabel(); + this.pictureBoxAsterisk = new System.Windows.Forms.PictureBox(); + this.pictureBoxHand = new System.Windows.Forms.PictureBox(); + this.pictureBoxExclamation = new System.Windows.Forms.PictureBox(); + this.labelMessage2 = new SmartX.SmartLabel(); + this.labelMessage1 = new SmartX.SmartLabel(); + this.pictureBoxQuestion = new System.Windows.Forms.PictureBox(); + this.timerAutoClose = new System.Windows.Forms.Timer(); + ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).BeginInit(); this.SuspendLayout(); // - // panel1 - // - this.panel1.BackColor = System.Drawing.Color.White; - this.panel1.Controls.Add(this.pictureBox1); - this.panel1.Controls.Add(this.labelMessage2); - this.panel1.Controls.Add(this.labelMessage1); - this.panel1.Location = new System.Drawing.Point(15, 34); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(420, 95); - // - // pictureBox1 - // - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(11, 20); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(50, 50); - // - // labelMessage2 - // - this.labelMessage2.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); - this.labelMessage2.Location = new System.Drawing.Point(67, 51); - this.labelMessage2.Name = "labelMessage2"; - this.labelMessage2.Size = new System.Drawing.Size(350, 20); - this.labelMessage2.Text = "COM2 port problem. Please contact a manufacturer."; - // - // labelMessage1 - // - this.labelMessage1.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); - this.labelMessage1.Location = new System.Drawing.Point(67, 20); - this.labelMessage1.Name = "labelMessage1"; - this.labelMessage1.Size = new System.Drawing.Size(350, 20); - this.labelMessage1.Text = "COM2 port problem. Please contact a manufacturer."; - // // buttonOK // - this.buttonOK.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.buttonOK.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); - this.buttonOK.ForeColor = System.Drawing.Color.White; + this.buttonOK.BackColor = System.Drawing.Color.WhiteSmoke; + this.buttonOK.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); + this.buttonOK.ForeColor = System.Drawing.Color.Black; this.buttonOK.Location = new System.Drawing.Point(335, 135); this.buttonOK.Name = "buttonOK"; this.buttonOK.Size = new System.Drawing.Size(100, 25); @@ -84,13 +55,117 @@ this.buttonOK.Text = "OK"; this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click); // + // smartForm1 + // + this.smartForm1.CenterLocation = false; + this.smartForm1.Image = ((System.Drawing.Image)(resources.GetObject("smartForm1.Image"))); + this.smartForm1.LCDDirection = SmartX.SmartForm.LCDDIRECTIONS.HORIZONTAL; + this.smartForm1.LCDSize = SmartX.SmartForm.LCDRESOLUTION.CUSTOMIZING; + this.smartForm1.Location = new System.Drawing.Point(0, 0); + this.smartForm1.MainForm = null; + this.smartForm1.Mode = SmartX.SmartForm.RUNMODE.RUNTIME; + this.smartForm1.MouseCursor = SmartX.SmartForm.OnOff.OFF; + this.smartForm1.Name = "smartForm1"; + this.smartForm1.Size = new System.Drawing.Size(450, 170); + this.smartForm1.SpecialFunctionClickPointSize = 100; + this.smartForm1.SuspendLayoutInterval = 1; + // // labelErrorCode // - this.labelErrorCode.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); - this.labelErrorCode.Location = new System.Drawing.Point(15, 11); + this.labelErrorCode.BackColor = System.Drawing.Color.Gainsboro; + this.labelErrorCode.BackPictureBox = this.smartForm1; + this.labelErrorCode.BackPictureBox1 = null; + this.labelErrorCode.BackPictureBox2 = null; + this.labelErrorCode.BorderColor = System.Drawing.Color.Black; + this.labelErrorCode.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelErrorCode.InitVisible = true; + this.labelErrorCode.LineSpacing = 0F; + this.labelErrorCode.Location = new System.Drawing.Point(12, 0); this.labelErrorCode.Name = "labelErrorCode"; - this.labelErrorCode.Size = new System.Drawing.Size(350, 20); - this.labelErrorCode.Text = "Error 0"; + this.labelErrorCode.Size = new System.Drawing.Size(438, 32); + this.labelErrorCode.TabIndex = 10; + this.labelErrorCode.Text = " Error 0"; + this.labelErrorCode.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left; + this.labelErrorCode.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelErrorCode.Wordwrap = false; + // + // pictureBoxAsterisk + // + this.pictureBoxAsterisk.BackColor = System.Drawing.Color.Silver; + this.pictureBoxAsterisk.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxAsterisk.Image"))); + this.pictureBoxAsterisk.Location = new System.Drawing.Point(22, 60); + this.pictureBoxAsterisk.Name = "pictureBoxAsterisk"; + this.pictureBoxAsterisk.Size = new System.Drawing.Size(50, 50); + this.pictureBoxAsterisk.Visible = false; + // + // pictureBoxHand + // + this.pictureBoxHand.BackColor = System.Drawing.Color.Silver; + this.pictureBoxHand.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxHand.Image"))); + this.pictureBoxHand.Location = new System.Drawing.Point(22, 60); + this.pictureBoxHand.Name = "pictureBoxHand"; + this.pictureBoxHand.Size = new System.Drawing.Size(50, 50); + this.pictureBoxHand.Visible = false; + // + // pictureBoxExclamation + // + this.pictureBoxExclamation.BackColor = System.Drawing.Color.Silver; + this.pictureBoxExclamation.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxExclamation.Image"))); + this.pictureBoxExclamation.Location = new System.Drawing.Point(22, 60); + this.pictureBoxExclamation.Name = "pictureBoxExclamation"; + this.pictureBoxExclamation.Size = new System.Drawing.Size(50, 50); + // + // labelMessage2 + // + this.labelMessage2.BackPictureBox = this.smartForm1; + this.labelMessage2.BackPictureBox1 = null; + this.labelMessage2.BackPictureBox2 = null; + this.labelMessage2.BorderColor = System.Drawing.Color.Black; + this.labelMessage2.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelMessage2.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); + this.labelMessage2.InitVisible = true; + this.labelMessage2.LineSpacing = 0F; + this.labelMessage2.Location = new System.Drawing.Point(78, 90); + this.labelMessage2.Name = "labelMessage2"; + this.labelMessage2.Size = new System.Drawing.Size(350, 20); + this.labelMessage2.TabIndex = 35; + this.labelMessage2.Text = "COM2 port problem. Please contact a manufacturer."; + this.labelMessage2.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left; + this.labelMessage2.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelMessage2.Wordwrap = false; + // + // labelMessage1 + // + this.labelMessage1.BackPictureBox = this.smartForm1; + this.labelMessage1.BackPictureBox1 = null; + this.labelMessage1.BackPictureBox2 = null; + this.labelMessage1.BorderColor = System.Drawing.Color.Black; + this.labelMessage1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelMessage1.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); + this.labelMessage1.InitVisible = true; + this.labelMessage1.LineSpacing = 0F; + this.labelMessage1.Location = new System.Drawing.Point(78, 60); + this.labelMessage1.Name = "labelMessage1"; + this.labelMessage1.Size = new System.Drawing.Size(350, 20); + this.labelMessage1.TabIndex = 34; + this.labelMessage1.Text = "COM2 port problem. Please contact a manufacturer."; + this.labelMessage1.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left; + this.labelMessage1.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelMessage1.Wordwrap = false; + // + // pictureBoxQuestion + // + this.pictureBoxQuestion.BackColor = System.Drawing.Color.Silver; + this.pictureBoxQuestion.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxQuestion.Image"))); + this.pictureBoxQuestion.Location = new System.Drawing.Point(22, 60); + this.pictureBoxQuestion.Name = "pictureBoxQuestion"; + this.pictureBoxQuestion.Size = new System.Drawing.Size(50, 50); + this.pictureBoxQuestion.Visible = false; + // + // timerAutoClose + // + this.timerAutoClose.Interval = 1000; + this.timerAutoClose.Tick += new System.EventHandler(this.timerAutoClose_Tick); // // DialogFormMessage // @@ -99,24 +174,34 @@ this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(130)))), ((int)(((byte)(200)))), ((int)(((byte)(250))))); this.ClientSize = new System.Drawing.Size(450, 170); this.ControlBox = false; - this.Controls.Add(this.panel1); - this.Controls.Add(this.buttonOK); + this.Controls.Add(this.pictureBoxAsterisk); + this.Controls.Add(this.pictureBoxHand); + this.Controls.Add(this.pictureBoxExclamation); + this.Controls.Add(this.labelMessage2); + this.Controls.Add(this.labelMessage1); + this.Controls.Add(this.pictureBoxQuestion); this.Controls.Add(this.labelErrorCode); + this.Controls.Add(this.buttonOK); + this.Controls.Add(this.smartForm1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Name = "DialogFormMessage"; this.Text = "DialogFormMessage1"; - this.panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).EndInit(); this.ResumeLayout(false); } #endregion - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.Label labelMessage2; - private System.Windows.Forms.Label labelMessage1; private System.Windows.Forms.Button buttonOK; - private System.Windows.Forms.Label labelErrorCode; + private SmartX.SmartForm smartForm1; + private SmartX.SmartLabel labelErrorCode; + private System.Windows.Forms.PictureBox pictureBoxAsterisk; + private System.Windows.Forms.PictureBox pictureBoxHand; + private System.Windows.Forms.PictureBox pictureBoxExclamation; + private SmartX.SmartLabel labelMessage2; + private SmartX.SmartLabel labelMessage1; + private System.Windows.Forms.PictureBox pictureBoxQuestion; + private System.Windows.Forms.Timer timerAutoClose; } } \ No newline at end of file diff --git a/INT89DB_26/DialogForms/DialogFormMessage.resx b/INT89DB_26/DialogForms/DialogFormMessage.resx index bd0aa44..6a4bbad 100644 --- a/INT89DB_26/DialogForms/DialogFormMessage.resx +++ b/INT89DB_26/DialogForms/DialogFormMessage.resx @@ -118,75 +118,376 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + + 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 + gg== + + + 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 + 0AAAAABJRU5ErkJggg== + + + + + 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 + AAAAAElFTkSuQmCC + + + + 17, 17 + WEBPAD diff --git a/INT89DB_26/DialogForms/DialogFormNumKeyPad.designer.cs b/INT89DB_26/DialogForms/DialogFormNumKeyPad.designer.cs index 094548c..5e0099c 100644 --- a/INT89DB_26/DialogForms/DialogFormNumKeyPad.designer.cs +++ b/INT89DB_26/DialogForms/DialogFormNumKeyPad.designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DialogFormNumKeyPad)); this.labelScreen = new System.Windows.Forms.Label(); this.buttonEnter = new System.Windows.Forms.Button(); this.buttonCancel = new System.Windows.Forms.Button(); @@ -43,6 +44,8 @@ this.buttonNumber4 = new System.Windows.Forms.Button(); this.buttonNumber1 = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); + this.smartForm1 = new SmartX.SmartForm(); + ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).BeginInit(); this.SuspendLayout(); // // labelScreen @@ -226,13 +229,29 @@ // // label1 // + this.label1.BackColor = System.Drawing.Color.Silver; this.label1.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); this.label1.Location = new System.Drawing.Point(3, 3); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(100, 20); this.label1.Text = "keypad"; // - // DialogFormNumKeyPad1 + // smartForm1 + // + this.smartForm1.CenterLocation = false; + this.smartForm1.Image = ((System.Drawing.Image)(resources.GetObject("smartForm1.Image"))); + this.smartForm1.LCDDirection = SmartX.SmartForm.LCDDIRECTIONS.HORIZONTAL; + this.smartForm1.LCDSize = SmartX.SmartForm.LCDRESOLUTION.CUSTOMIZING; + this.smartForm1.Location = new System.Drawing.Point(0, 0); + this.smartForm1.MainForm = null; + this.smartForm1.Mode = SmartX.SmartForm.RUNMODE.RUNTIME; + this.smartForm1.MouseCursor = SmartX.SmartForm.OnOff.OFF; + this.smartForm1.Name = "smartForm1"; + this.smartForm1.Size = new System.Drawing.Size(250, 443); + this.smartForm1.SpecialFunctionClickPointSize = 100; + this.smartForm1.SuspendLayoutInterval = 1; + // + // DialogFormNumKeyPad // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; @@ -254,9 +273,11 @@ this.Controls.Add(this.buttonNumber4); this.Controls.Add(this.buttonNumber1); this.Controls.Add(this.label1); + this.Controls.Add(this.smartForm1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Name = "DialogFormNumKeyPad1"; + this.Name = "DialogFormNumKeyPad"; this.Text = "DialogFormNumKeyPad1"; + ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).EndInit(); this.ResumeLayout(false); } @@ -278,5 +299,6 @@ private System.Windows.Forms.Button buttonNumber4; private System.Windows.Forms.Button buttonNumber1; private System.Windows.Forms.Label label1; + private SmartX.SmartForm smartForm1; } } \ No newline at end of file diff --git a/INT89DB_26/DialogForms/DialogFormNumKeyPad.resx b/INT89DB_26/DialogForms/DialogFormNumKeyPad.resx index a721046..d34edcc 100644 --- a/INT89DB_26/DialogForms/DialogFormNumKeyPad.resx +++ b/INT89DB_26/DialogForms/DialogFormNumKeyPad.resx @@ -117,6 +117,88 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 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 + j3ofuz55f3q4kLyw8Bv3hPP74uYdwgAAAAlwSFlzAAAOxAAADsQBlSsOGwAABwVJREFUeF7t0kEBgDAA + xDCETxzSeNxU0ERDngMZuhNyu7/wa3uuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXt+u0OB7mSc8wEowgfcz9GVkAAAAABJRU5E + rkJggg== + + WEBPAD diff --git a/INT89DB_26/DialogForms/DialogFormPasswordKeyPad1.designer.cs b/INT89DB_26/DialogForms/DialogFormPasswordKeyPad1.designer.cs index ba01e0d..fe60f8e 100644 --- a/INT89DB_26/DialogForms/DialogFormPasswordKeyPad1.designer.cs +++ b/INT89DB_26/DialogForms/DialogFormPasswordKeyPad1.designer.cs @@ -28,6 +28,7 @@ /// private void InitializeComponent() { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DialogFormPasswordKeyPad1)); this.labelScreen = new System.Windows.Forms.Label(); this.buttonEnter = new System.Windows.Forms.Button(); this.buttonNumber9 = new System.Windows.Forms.Button(); @@ -42,6 +43,8 @@ this.buttonNumber4 = new System.Windows.Forms.Button(); this.buttonNumber1 = new System.Windows.Forms.Button(); this.labelSubject = new System.Windows.Forms.Label(); + this.smartForm1 = new SmartX.SmartForm(); + ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).BeginInit(); this.SuspendLayout(); // // labelScreen @@ -212,12 +215,28 @@ // // labelSubject // + this.labelSubject.BackColor = System.Drawing.Color.Silver; this.labelSubject.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); this.labelSubject.Location = new System.Drawing.Point(3, 3); this.labelSubject.Name = "labelSubject"; this.labelSubject.Size = new System.Drawing.Size(100, 20); this.labelSubject.Text = "Password"; // + // smartForm1 + // + this.smartForm1.CenterLocation = false; + this.smartForm1.Image = ((System.Drawing.Image)(resources.GetObject("smartForm1.Image"))); + this.smartForm1.LCDDirection = SmartX.SmartForm.LCDDIRECTIONS.HORIZONTAL; + this.smartForm1.LCDSize = SmartX.SmartForm.LCDRESOLUTION.CUSTOMIZING; + this.smartForm1.Location = new System.Drawing.Point(0, 0); + this.smartForm1.MainForm = null; + this.smartForm1.Mode = SmartX.SmartForm.RUNMODE.RUNTIME; + this.smartForm1.MouseCursor = SmartX.SmartForm.OnOff.OFF; + this.smartForm1.Name = "smartForm1"; + this.smartForm1.Size = new System.Drawing.Size(250, 390); + this.smartForm1.SpecialFunctionClickPointSize = 100; + this.smartForm1.SuspendLayoutInterval = 1; + // // DialogFormPasswordKeyPad1 // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); @@ -239,9 +258,11 @@ this.Controls.Add(this.buttonNumber4); this.Controls.Add(this.buttonNumber1); this.Controls.Add(this.labelSubject); + this.Controls.Add(this.smartForm1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Name = "DialogFormPasswordKeyPad1"; this.Text = "DialogFormPasswordKeyPad1"; + ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).EndInit(); this.ResumeLayout(false); } @@ -262,5 +283,6 @@ private System.Windows.Forms.Button buttonNumber4; private System.Windows.Forms.Button buttonNumber1; private System.Windows.Forms.Label labelSubject; + private SmartX.SmartForm smartForm1; } } \ No newline at end of file diff --git a/INT89DB_26/DialogForms/DialogFormPasswordKeyPad1.resx b/INT89DB_26/DialogForms/DialogFormPasswordKeyPad1.resx index a721046..142d49b 100644 --- a/INT89DB_26/DialogForms/DialogFormPasswordKeyPad1.resx +++ b/INT89DB_26/DialogForms/DialogFormPasswordKeyPad1.resx @@ -117,6 +117,84 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + 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 + j3ofuz55f3q4kLyw8Bv3hPP74uYdwgAAAAlwSFlzAAAOxAAADsQBlSsOGwAABjFJREFUeF7t0kEBgDAA + xDCETxzSeNxU0ERDngMZuhNyu7/wa3uuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuuOwl7rjsJe647CXuu + Owl7frtDge5knPMB9Ug1gPIHoDoAAAAASUVORK5CYII= + + WEBPAD diff --git a/INT89DB_26/DialogForms/DialogFormYesNo.designer.cs b/INT89DB_26/DialogForms/DialogFormYesNo.designer.cs index 1ef4000..4d3012e 100644 --- a/INT89DB_26/DialogForms/DialogFormYesNo.designer.cs +++ b/INT89DB_26/DialogForms/DialogFormYesNo.designer.cs @@ -30,20 +30,23 @@ { System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DialogFormYesNo)); this.buttonNo = new System.Windows.Forms.Button(); - this.labelErrorCode = new System.Windows.Forms.Label(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.panel1 = new System.Windows.Forms.Panel(); this.buttonYes = new System.Windows.Forms.Button(); - this.labelMessage2 = new System.Windows.Forms.Label(); - this.labelMessage1 = new System.Windows.Forms.Label(); - this.panel1.SuspendLayout(); + this.pictureBoxAsterisk = new System.Windows.Forms.PictureBox(); + this.pictureBoxExclamation = new System.Windows.Forms.PictureBox(); + this.pictureBoxHand = new System.Windows.Forms.PictureBox(); + this.labelMessage2 = new SmartX.SmartLabel(); + this.smartForm1 = new SmartX.SmartForm(); + this.labelMessage1 = new SmartX.SmartLabel(); + this.pictureBoxQuestion = new System.Windows.Forms.PictureBox(); + this.labelErrorCode = new SmartX.SmartLabel(); + ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).BeginInit(); this.SuspendLayout(); // // buttonNo // - this.buttonNo.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.buttonNo.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); - this.buttonNo.ForeColor = System.Drawing.Color.White; + this.buttonNo.BackColor = System.Drawing.Color.WhiteSmoke; + this.buttonNo.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); + this.buttonNo.ForeColor = System.Drawing.Color.Black; this.buttonNo.Location = new System.Drawing.Point(335, 135); this.buttonNo.Name = "buttonNo"; this.buttonNo.Size = new System.Drawing.Size(100, 25); @@ -52,36 +55,11 @@ this.buttonNo.Text = "No"; this.buttonNo.Click += new System.EventHandler(this.buttonNo_Click); // - // labelErrorCode - // - this.labelErrorCode.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); - this.labelErrorCode.Location = new System.Drawing.Point(15, 11); - this.labelErrorCode.Name = "labelErrorCode"; - this.labelErrorCode.Size = new System.Drawing.Size(350, 20); - this.labelErrorCode.Text = "Error 0"; - // - // pictureBox1 - // - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(11, 20); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(50, 50); - // - // panel1 - // - this.panel1.BackColor = System.Drawing.Color.White; - this.panel1.Controls.Add(this.labelMessage2); - this.panel1.Controls.Add(this.labelMessage1); - this.panel1.Controls.Add(this.pictureBox1); - this.panel1.Location = new System.Drawing.Point(15, 34); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(420, 95); - // // buttonYes // - this.buttonYes.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(40)))), ((int)(((byte)(40)))), ((int)(((byte)(40))))); - this.buttonYes.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); - this.buttonYes.ForeColor = System.Drawing.Color.White; + this.buttonYes.BackColor = System.Drawing.Color.WhiteSmoke; + this.buttonYes.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); + this.buttonYes.ForeColor = System.Drawing.Color.Black; this.buttonYes.Location = new System.Drawing.Point(229, 135); this.buttonYes.Name = "buttonYes"; this.buttonYes.Size = new System.Drawing.Size(100, 25); @@ -90,21 +68,112 @@ this.buttonYes.Text = "Yes"; this.buttonYes.Click += new System.EventHandler(this.buttonYes_Click); // + // pictureBoxAsterisk + // + this.pictureBoxAsterisk.BackColor = System.Drawing.Color.Silver; + this.pictureBoxAsterisk.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxAsterisk.Image"))); + this.pictureBoxAsterisk.Location = new System.Drawing.Point(22, 60); + this.pictureBoxAsterisk.Name = "pictureBoxAsterisk"; + this.pictureBoxAsterisk.Size = new System.Drawing.Size(50, 50); + this.pictureBoxAsterisk.Visible = false; + // + // pictureBoxExclamation + // + this.pictureBoxExclamation.BackColor = System.Drawing.Color.Silver; + this.pictureBoxExclamation.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxExclamation.Image"))); + this.pictureBoxExclamation.Location = new System.Drawing.Point(22, 60); + this.pictureBoxExclamation.Name = "pictureBoxExclamation"; + this.pictureBoxExclamation.Size = new System.Drawing.Size(50, 50); + // + // pictureBoxHand + // + this.pictureBoxHand.BackColor = System.Drawing.Color.Silver; + this.pictureBoxHand.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxHand.Image"))); + this.pictureBoxHand.Location = new System.Drawing.Point(22, 60); + this.pictureBoxHand.Name = "pictureBoxHand"; + this.pictureBoxHand.Size = new System.Drawing.Size(50, 50); + this.pictureBoxHand.Visible = false; + // // labelMessage2 // - this.labelMessage2.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); - this.labelMessage2.Location = new System.Drawing.Point(67, 50); + this.labelMessage2.BackPictureBox = this.smartForm1; + this.labelMessage2.BackPictureBox1 = null; + this.labelMessage2.BackPictureBox2 = null; + this.labelMessage2.BorderColor = System.Drawing.Color.Black; + this.labelMessage2.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelMessage2.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); + this.labelMessage2.InitVisible = true; + this.labelMessage2.LineSpacing = 0F; + this.labelMessage2.Location = new System.Drawing.Point(78, 90); this.labelMessage2.Name = "labelMessage2"; this.labelMessage2.Size = new System.Drawing.Size(350, 20); + this.labelMessage2.TabIndex = 45; this.labelMessage2.Text = "COM2 port problem. Please contact a manufacturer."; + this.labelMessage2.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left; + this.labelMessage2.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelMessage2.Wordwrap = false; + // + // smartForm1 + // + this.smartForm1.CenterLocation = false; + this.smartForm1.Image = ((System.Drawing.Image)(resources.GetObject("smartForm1.Image"))); + this.smartForm1.LCDDirection = SmartX.SmartForm.LCDDIRECTIONS.HORIZONTAL; + this.smartForm1.LCDSize = SmartX.SmartForm.LCDRESOLUTION.CUSTOMIZING; + this.smartForm1.Location = new System.Drawing.Point(0, 0); + this.smartForm1.MainForm = null; + this.smartForm1.Mode = SmartX.SmartForm.RUNMODE.RUNTIME; + this.smartForm1.MouseCursor = SmartX.SmartForm.OnOff.OFF; + this.smartForm1.Name = "smartForm1"; + this.smartForm1.Size = new System.Drawing.Size(450, 170); + this.smartForm1.SpecialFunctionClickPointSize = 100; + this.smartForm1.SuspendLayoutInterval = 1; // // labelMessage1 // - this.labelMessage1.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); - this.labelMessage1.Location = new System.Drawing.Point(67, 20); + this.labelMessage1.BackPictureBox = this.smartForm1; + this.labelMessage1.BackPictureBox1 = null; + this.labelMessage1.BackPictureBox2 = null; + this.labelMessage1.BorderColor = System.Drawing.Color.Black; + this.labelMessage1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelMessage1.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); + this.labelMessage1.InitVisible = true; + this.labelMessage1.LineSpacing = 0F; + this.labelMessage1.Location = new System.Drawing.Point(78, 60); this.labelMessage1.Name = "labelMessage1"; this.labelMessage1.Size = new System.Drawing.Size(350, 20); + this.labelMessage1.TabIndex = 44; this.labelMessage1.Text = "COM2 port problem. Please contact a manufacturer."; + this.labelMessage1.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left; + this.labelMessage1.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelMessage1.Wordwrap = false; + // + // pictureBoxQuestion + // + this.pictureBoxQuestion.BackColor = System.Drawing.Color.Silver; + this.pictureBoxQuestion.Image = ((System.Drawing.Image)(resources.GetObject("pictureBoxQuestion.Image"))); + this.pictureBoxQuestion.Location = new System.Drawing.Point(22, 60); + this.pictureBoxQuestion.Name = "pictureBoxQuestion"; + this.pictureBoxQuestion.Size = new System.Drawing.Size(50, 50); + this.pictureBoxQuestion.Visible = false; + // + // labelErrorCode + // + this.labelErrorCode.BackColor = System.Drawing.Color.Gainsboro; + this.labelErrorCode.BackPictureBox = this.smartForm1; + this.labelErrorCode.BackPictureBox1 = null; + this.labelErrorCode.BackPictureBox2 = null; + this.labelErrorCode.BorderColor = System.Drawing.Color.Black; + this.labelErrorCode.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelErrorCode.InitVisible = true; + this.labelErrorCode.LineSpacing = 0F; + this.labelErrorCode.Location = new System.Drawing.Point(12, 0); + this.labelErrorCode.Name = "labelErrorCode"; + this.labelErrorCode.Size = new System.Drawing.Size(438, 32); + this.labelErrorCode.TabIndex = 43; + this.labelErrorCode.Text = " Error 0"; + this.labelErrorCode.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left; + this.labelErrorCode.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelErrorCode.Wordwrap = false; // // DialogFormYesNo // @@ -113,14 +182,20 @@ this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(130)))), ((int)(((byte)(200)))), ((int)(((byte)(250))))); this.ClientSize = new System.Drawing.Size(450, 170); this.ControlBox = false; - this.Controls.Add(this.buttonNo); + this.Controls.Add(this.pictureBoxAsterisk); + this.Controls.Add(this.pictureBoxExclamation); + this.Controls.Add(this.pictureBoxHand); + this.Controls.Add(this.labelMessage2); + this.Controls.Add(this.labelMessage1); + this.Controls.Add(this.pictureBoxQuestion); this.Controls.Add(this.labelErrorCode); - this.Controls.Add(this.panel1); + this.Controls.Add(this.buttonNo); this.Controls.Add(this.buttonYes); + this.Controls.Add(this.smartForm1); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Name = "DialogFormYesNo"; this.Text = "DialogFormYesNo1"; - this.panel1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).EndInit(); this.ResumeLayout(false); } @@ -128,11 +203,14 @@ #endregion private System.Windows.Forms.Button buttonNo; - private System.Windows.Forms.Label labelErrorCode; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.Panel panel1; private System.Windows.Forms.Button buttonYes; - private System.Windows.Forms.Label labelMessage2; - private System.Windows.Forms.Label labelMessage1; + private System.Windows.Forms.PictureBox pictureBoxAsterisk; + private System.Windows.Forms.PictureBox pictureBoxExclamation; + private System.Windows.Forms.PictureBox pictureBoxHand; + private SmartX.SmartLabel labelMessage2; + private SmartX.SmartForm smartForm1; + private SmartX.SmartLabel labelMessage1; + private System.Windows.Forms.PictureBox pictureBoxQuestion; + private SmartX.SmartLabel labelErrorCode; } } \ No newline at end of file diff --git a/INT89DB_26/DialogForms/DialogFormYesNo.resx b/INT89DB_26/DialogForms/DialogFormYesNo.resx index bd0aa44..989d493 100644 --- a/INT89DB_26/DialogForms/DialogFormYesNo.resx +++ b/INT89DB_26/DialogForms/DialogFormYesNo.resx @@ -118,73 +118,371 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + 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 + 0AAAAABJRU5ErkJggg== + + + + + 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 + gg== + + + + + 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 + AAAAAElFTkSuQmCC diff --git a/INT89DB_26/Forms/FormCommunication.cs b/INT89DB_26/Forms/FormCommunication.cs index 3db6e38..668a8c4 100644 --- a/INT89DB_26/Forms/FormCommunication.cs +++ b/INT89DB_26/Forms/FormCommunication.cs @@ -292,6 +292,25 @@ namespace INT89DB_26.Forms } } + private void UpdateDisplaySettingData(int index) + { + switch (index) + { + case 99: // Modbus + if (this.ParentForm.SystemConfig.EthernetOperationMode == 2) // Client일 때만 Start Address 사용 + { + this.labelTitleStartAddress.Visible = true; + this.labelStartAddress.Visible = true; + this.labelStartAddress.Text = this.ParentForm.SystemConfig.ModbusTcpStartAddress.ToString(); + } + break; + default: + this.labelTitleStartAddress.Visible = false; + this.labelStartAddress.Visible = false; + break; + } + } + private void ConnectedIPStatusOut(string value) { this.labelConnectedIP.Text = value; @@ -409,7 +428,7 @@ namespace INT89DB_26.Forms this.comboBoxMode.SelectedIndexChanged -= new EventHandler(this.comboBoxMode_SelectedIndexChanged); this.comboBoxOperationMode.SelectedIndexChanged -= new EventHandler(this.comboBoxOperationMode_SelectedIndexChanged); - if (this.ParentForm.SystemConfig.EthernetMode == 99) + if (this.ParentForm.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) this.comboBoxMode.SelectedText = "Modbus"; else this.comboBoxMode.SelectedIndex = this.ParentForm.SystemConfig.EthernetMode; @@ -580,10 +599,12 @@ namespace INT89DB_26.Forms private void comboBoxMode_SelectedIndexChanged(object sender, EventArgs e) { if (this.comboBoxMode.SelectedText == "Modbus") - this.ParentForm.SystemConfig.EquipmentMode = 99; + this.ParentForm.SystemConfig.EthernetMode = (int)DataStore.CommunicationMode.f99_Modbus; else this.ParentForm.SystemConfig.EthernetMode = this.comboBoxMode.SelectedIndex; + this.UpdateDisplaySettingData(this.ParentForm.SystemConfig.EthernetMode); + this.ParentForm.SaveSystemConfigurationFile(this.ParentForm.SystemConfig); this.UpdateProtocolDescriptionEthernet(); } @@ -840,6 +861,32 @@ namespace INT89DB_26.Forms } } } + private void labelStartAddress_Click(object sender, EventArgs e) + { + string before = "", after = ""; + + before = this.labelStartAddress.Text; + + DialogFormNumKeyPad myKeyPad = new DialogFormNumKeyPad(this.labelStartAddress.Text, 5, 0, false, this.ParentForm.SystemConfig.Language); + + if (myKeyPad.ShowDialog() == DialogResult.OK) + { + if (myKeyPad.doubleValue < 0 || myKeyPad.doubleValue > 65535) + { + // 입력범위를 확인하세요 + DialogFormMessage myMsg = new DialogFormMessage(1, this.ParentForm.SystemConfig.Language); + myMsg.ShowDialog(); + } + else + { + this.labelStartAddress.Text = myKeyPad.StringValue; + this.ParentForm.SystemConfig.ModbusTcpStartAddress = myKeyPad.IntValue; + after = this.labelStartAddress.Text; + + this.ParentForm.SaveSystemConfigurationFile(this.ParentForm.SystemConfig); + } + } + } private void buttonTcpSave1_Click(object sender, EventArgs e) { this.buttonTcpSave1.Enabled = false; diff --git a/INT89DB_26/Forms/FormCommunication.designer.cs b/INT89DB_26/Forms/FormCommunication.designer.cs index f7ab948..697891a 100644 --- a/INT89DB_26/Forms/FormCommunication.designer.cs +++ b/INT89DB_26/Forms/FormCommunication.designer.cs @@ -44,6 +44,8 @@ this.smartLabel4 = new SmartX.SmartLabel(); this.labelStaticBaudrate = new SmartX.SmartLabel(); this.groupBoxEthernet = new SmartX.SmartGroupBox(); + this.labelStartAddress = new SmartX.SmartLabel(); + this.labelTitleStartAddress = new SmartX.SmartLabel(); this.buttonEthernetSend = new System.Windows.Forms.Button(); this.buttonEthernetStop = new System.Windows.Forms.Button(); this.buttonEthernetStart = new System.Windows.Forms.Button(); @@ -87,8 +89,6 @@ this.labelHostIP4 = new SmartX.SmartLabel(); this.labelTitleClientServerPort = new SmartX.SmartLabel(); this.timerServer = new System.Windows.Forms.Timer(); - this.labelStartAddress = new SmartX.SmartLabel(); - this.labelTitleStartAddress = new SmartX.SmartLabel(); ((System.ComponentModel.ISupportInitialize)(this.smartForm1)).BeginInit(); this.groupBoxSerial.SuspendLayout(); this.groupBoxEthernet.SuspendLayout(); @@ -156,7 +156,7 @@ 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("New Gulim", 23F, System.Drawing.FontStyle.Bold); + this.labelTitle.Font = new System.Drawing.Font("새굴림", 23F, System.Drawing.FontStyle.Bold); this.labelTitle.ForeColor = System.Drawing.Color.White; this.labelTitle.InitVisible = true; this.labelTitle.LineSpacing = 0F; @@ -182,7 +182,7 @@ this.groupBoxSerial.Controls.Add(this.comboBoxSerial3BaudRate); this.groupBoxSerial.Controls.Add(this.smartLabel4); this.groupBoxSerial.Controls.Add(this.labelStaticBaudrate); - this.groupBoxSerial.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.groupBoxSerial.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.groupBoxSerial.FrameLineColor1 = System.Drawing.Color.Black; this.groupBoxSerial.FrameLineColor2 = System.Drawing.Color.Black; this.groupBoxSerial.FrameLineThickness = 1; @@ -200,7 +200,7 @@ // buttonSerialSend // this.buttonSerialSend.Enabled = false; - this.buttonSerialSend.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); + this.buttonSerialSend.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); this.buttonSerialSend.Location = new System.Drawing.Point(203, 127); this.buttonSerialSend.Name = "buttonSerialSend"; this.buttonSerialSend.Size = new System.Drawing.Size(165, 30); @@ -215,7 +215,7 @@ this.labelProtocolDescriptionCOM3_2.BackPictureBox2 = null; this.labelProtocolDescriptionCOM3_2.BorderColor = System.Drawing.Color.Black; this.labelProtocolDescriptionCOM3_2.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelProtocolDescriptionCOM3_2.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Bold); + this.labelProtocolDescriptionCOM3_2.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Bold); this.labelProtocolDescriptionCOM3_2.InitVisible = true; this.labelProtocolDescriptionCOM3_2.LineSpacing = 0F; this.labelProtocolDescriptionCOM3_2.Location = new System.Drawing.Point(26, 103); @@ -234,7 +234,7 @@ this.labelProtocolDescriptionCOM3_1.BackPictureBox2 = null; this.labelProtocolDescriptionCOM3_1.BorderColor = System.Drawing.Color.Black; this.labelProtocolDescriptionCOM3_1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelProtocolDescriptionCOM3_1.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Bold); + this.labelProtocolDescriptionCOM3_1.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Bold); this.labelProtocolDescriptionCOM3_1.InitVisible = true; this.labelProtocolDescriptionCOM3_1.LineSpacing = 0F; this.labelProtocolDescriptionCOM3_1.Location = new System.Drawing.Point(26, 79); @@ -268,7 +268,7 @@ // buttonSave2 // this.buttonSave2.Enabled = false; - this.buttonSave2.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); + this.buttonSave2.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); this.buttonSave2.Location = new System.Drawing.Point(26, 127); this.buttonSave2.Name = "buttonSave2"; this.buttonSave2.Size = new System.Drawing.Size(165, 30); @@ -278,7 +278,7 @@ // // comboBoxSerial3Mode // - this.comboBoxSerial3Mode.Font = new System.Drawing.Font("New Gulim", 15F, System.Drawing.FontStyle.Bold); + this.comboBoxSerial3Mode.Font = new System.Drawing.Font("새굴림", 15F, System.Drawing.FontStyle.Bold); this.comboBoxSerial3Mode.Location = new System.Drawing.Point(198, 46); this.comboBoxSerial3Mode.Name = "comboBoxSerial3Mode"; this.comboBoxSerial3Mode.Size = new System.Drawing.Size(170, 29); @@ -287,7 +287,7 @@ // // comboBoxSerial3BaudRate // - this.comboBoxSerial3BaudRate.Font = new System.Drawing.Font("New Gulim", 15F, System.Drawing.FontStyle.Bold); + this.comboBoxSerial3BaudRate.Font = new System.Drawing.Font("새굴림", 15F, System.Drawing.FontStyle.Bold); this.comboBoxSerial3BaudRate.Location = new System.Drawing.Point(91, 46); this.comboBoxSerial3BaudRate.Name = "comboBoxSerial3BaudRate"; this.comboBoxSerial3BaudRate.Size = new System.Drawing.Size(100, 29); @@ -301,7 +301,7 @@ this.smartLabel4.BackPictureBox2 = null; this.smartLabel4.BorderColor = System.Drawing.Color.Black; this.smartLabel4.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.smartLabel4.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.smartLabel4.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.smartLabel4.InitVisible = true; this.smartLabel4.LineSpacing = 0F; this.smartLabel4.Location = new System.Drawing.Point(198, 20); @@ -320,7 +320,7 @@ this.labelStaticBaudrate.BackPictureBox2 = null; this.labelStaticBaudrate.BorderColor = System.Drawing.Color.Black; this.labelStaticBaudrate.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelStaticBaudrate.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.labelStaticBaudrate.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.labelStaticBaudrate.InitVisible = true; this.labelStaticBaudrate.LineSpacing = 0F; this.labelStaticBaudrate.Location = new System.Drawing.Point(92, 21); @@ -364,7 +364,7 @@ this.groupBoxEthernet.Controls.Add(this.labelStaticTcpOperationMode); this.groupBoxEthernet.Controls.Add(this.comboBoxOperationMode); this.groupBoxEthernet.Controls.Add(this.comboBoxMode); - this.groupBoxEthernet.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.groupBoxEthernet.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.groupBoxEthernet.FrameLineColor1 = System.Drawing.Color.Black; this.groupBoxEthernet.FrameLineColor2 = System.Drawing.Color.Black; this.groupBoxEthernet.FrameLineThickness = 1; @@ -379,10 +379,53 @@ this.groupBoxEthernet.Text = "TCP_Local"; this.groupBoxEthernet.TextColor = System.Drawing.Color.Black; // + // labelStartAddress + // + this.labelStartAddress.BackColor = System.Drawing.SystemColors.Window; + this.labelStartAddress.BackPictureBox = null; + this.labelStartAddress.BackPictureBox1 = null; + this.labelStartAddress.BackPictureBox2 = null; + this.labelStartAddress.BorderColor = System.Drawing.Color.Black; + this.labelStartAddress.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.labelStartAddress.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); + this.labelStartAddress.InitVisible = true; + this.labelStartAddress.LineSpacing = 0F; + this.labelStartAddress.Location = new System.Drawing.Point(166, 261); + this.labelStartAddress.Name = "labelStartAddress"; + this.labelStartAddress.Size = new System.Drawing.Size(106, 28); + this.labelStartAddress.TabIndex = 266; + this.labelStartAddress.Text = "100"; + this.labelStartAddress.TextHAlign = SmartX.SmartLabel.TextHorAlign.Right; + this.labelStartAddress.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelStartAddress.Visible = false; + this.labelStartAddress.Wordwrap = false; + this.labelStartAddress.Click += new System.EventHandler(this.labelStartAddress_Click); + // + // labelTitleStartAddress + // + this.labelTitleStartAddress.BackPictureBox = this.smartForm1; + this.labelTitleStartAddress.BackPictureBox1 = null; + this.labelTitleStartAddress.BackPictureBox2 = null; + this.labelTitleStartAddress.BorderColor = System.Drawing.Color.Black; + this.labelTitleStartAddress.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.labelTitleStartAddress.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); + this.labelTitleStartAddress.ForeColor = System.Drawing.Color.Black; + this.labelTitleStartAddress.InitVisible = true; + this.labelTitleStartAddress.LineSpacing = 0F; + this.labelTitleStartAddress.Location = new System.Drawing.Point(20, 261); + this.labelTitleStartAddress.Name = "labelTitleStartAddress"; + this.labelTitleStartAddress.Size = new System.Drawing.Size(140, 28); + this.labelTitleStartAddress.TabIndex = 265; + this.labelTitleStartAddress.Text = "Start Address"; + this.labelTitleStartAddress.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; + this.labelTitleStartAddress.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; + this.labelTitleStartAddress.Visible = false; + this.labelTitleStartAddress.Wordwrap = false; + // // buttonEthernetSend // this.buttonEthernetSend.Enabled = false; - this.buttonEthernetSend.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); + this.buttonEthernetSend.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); this.buttonEthernetSend.Location = new System.Drawing.Point(260, 400); this.buttonEthernetSend.Name = "buttonEthernetSend"; this.buttonEthernetSend.Size = new System.Drawing.Size(100, 30); @@ -393,7 +436,7 @@ // buttonEthernetStop // this.buttonEthernetStop.Enabled = false; - this.buttonEthernetStop.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); + this.buttonEthernetStop.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); this.buttonEthernetStop.Location = new System.Drawing.Point(154, 400); this.buttonEthernetStop.Name = "buttonEthernetStop"; this.buttonEthernetStop.Size = new System.Drawing.Size(100, 30); @@ -404,7 +447,7 @@ // buttonEthernetStart // this.buttonEthernetStart.Enabled = false; - this.buttonEthernetStart.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); + this.buttonEthernetStart.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); this.buttonEthernetStart.Location = new System.Drawing.Point(48, 400); this.buttonEthernetStart.Name = "buttonEthernetStart"; this.buttonEthernetStart.Size = new System.Drawing.Size(100, 30); @@ -419,7 +462,7 @@ this.labelProtocolDescriptionEthernet_2.BackPictureBox2 = null; this.labelProtocolDescriptionEthernet_2.BorderColor = System.Drawing.Color.Black; this.labelProtocolDescriptionEthernet_2.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelProtocolDescriptionEthernet_2.Font = new System.Drawing.Font("New Gulim", 9F, System.Drawing.FontStyle.Bold); + this.labelProtocolDescriptionEthernet_2.Font = new System.Drawing.Font("새굴림", 9F, System.Drawing.FontStyle.Bold); this.labelProtocolDescriptionEthernet_2.InitVisible = true; this.labelProtocolDescriptionEthernet_2.LineSpacing = 0F; this.labelProtocolDescriptionEthernet_2.Location = new System.Drawing.Point(53, 131); @@ -438,7 +481,7 @@ this.labelProtocolDescriptionEthernet_1.BackPictureBox2 = null; this.labelProtocolDescriptionEthernet_1.BorderColor = System.Drawing.Color.Black; this.labelProtocolDescriptionEthernet_1.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelProtocolDescriptionEthernet_1.Font = new System.Drawing.Font("New Gulim", 9F, System.Drawing.FontStyle.Bold); + this.labelProtocolDescriptionEthernet_1.Font = new System.Drawing.Font("새굴림", 9F, System.Drawing.FontStyle.Bold); this.labelProtocolDescriptionEthernet_1.InitVisible = true; this.labelProtocolDescriptionEthernet_1.LineSpacing = 0F; this.labelProtocolDescriptionEthernet_1.Location = new System.Drawing.Point(53, 105); @@ -452,8 +495,8 @@ // // buttonTcpSave1 // - this.buttonTcpSave1.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); - this.buttonTcpSave1.Location = new System.Drawing.Point(285, 291); + this.buttonTcpSave1.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); + this.buttonTcpSave1.Location = new System.Drawing.Point(278, 261); this.buttonTcpSave1.Name = "buttonTcpSave1"; this.buttonTcpSave1.Size = new System.Drawing.Size(106, 28); this.buttonTcpSave1.TabIndex = 254; @@ -467,13 +510,13 @@ this.labelHelp.BackPictureBox2 = null; this.labelHelp.BorderColor = System.Drawing.Color.Black; this.labelHelp.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelHelp.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.labelHelp.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.labelHelp.ForeColor = System.Drawing.Color.Red; this.labelHelp.InitVisible = true; this.labelHelp.LineSpacing = 0F; - this.labelHelp.Location = new System.Drawing.Point(28, 325); + this.labelHelp.Location = new System.Drawing.Point(27, 306); this.labelHelp.Name = "labelHelp"; - this.labelHelp.Size = new System.Drawing.Size(363, 60); + this.labelHelp.Size = new System.Drawing.Size(357, 60); this.labelHelp.TabIndex = 253; this.labelHelp.Text = "※ IP Configuration 변경 시, 재부팅 후 정상적으로 연결됩니다."; this.labelHelp.TextHAlign = SmartX.SmartLabel.TextHorAlign.Left; @@ -491,7 +534,7 @@ this.labelLocalSubnetMask4.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalSubnetMask4.InitVisible = true; this.labelLocalSubnetMask4.LineSpacing = 0F; - this.labelLocalSubnetMask4.Location = new System.Drawing.Point(341, 223); + this.labelLocalSubnetMask4.Location = new System.Drawing.Point(334, 193); this.labelLocalSubnetMask4.Name = "labelLocalSubnetMask4"; this.labelLocalSubnetMask4.Size = new System.Drawing.Size(50, 28); this.labelLocalSubnetMask4.TabIndex = 251; @@ -512,7 +555,7 @@ this.labelLocalSubnetMask3.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalSubnetMask3.InitVisible = true; this.labelLocalSubnetMask3.LineSpacing = 0F; - this.labelLocalSubnetMask3.Location = new System.Drawing.Point(285, 223); + this.labelLocalSubnetMask3.Location = new System.Drawing.Point(278, 193); this.labelLocalSubnetMask3.Name = "labelLocalSubnetMask3"; this.labelLocalSubnetMask3.Size = new System.Drawing.Size(50, 28); this.labelLocalSubnetMask3.TabIndex = 250; @@ -533,7 +576,7 @@ this.labelLocalSubnetMask2.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalSubnetMask2.InitVisible = true; this.labelLocalSubnetMask2.LineSpacing = 0F; - this.labelLocalSubnetMask2.Location = new System.Drawing.Point(229, 223); + this.labelLocalSubnetMask2.Location = new System.Drawing.Point(222, 193); this.labelLocalSubnetMask2.Name = "labelLocalSubnetMask2"; this.labelLocalSubnetMask2.Size = new System.Drawing.Size(50, 28); this.labelLocalSubnetMask2.TabIndex = 249; @@ -554,7 +597,7 @@ this.labelLocalSubnetMask1.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalSubnetMask1.InitVisible = true; this.labelLocalSubnetMask1.LineSpacing = 0F; - this.labelLocalSubnetMask1.Location = new System.Drawing.Point(173, 223); + this.labelLocalSubnetMask1.Location = new System.Drawing.Point(166, 193); this.labelLocalSubnetMask1.Name = "labelLocalSubnetMask1"; this.labelLocalSubnetMask1.Size = new System.Drawing.Size(50, 28); this.labelLocalSubnetMask1.TabIndex = 248; @@ -571,11 +614,11 @@ this.labelTitleSubnetMask.BackPictureBox2 = null; this.labelTitleSubnetMask.BorderColor = System.Drawing.Color.Black; this.labelTitleSubnetMask.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelTitleSubnetMask.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.labelTitleSubnetMask.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.labelTitleSubnetMask.ForeColor = System.Drawing.Color.Black; this.labelTitleSubnetMask.InitVisible = true; this.labelTitleSubnetMask.LineSpacing = 0F; - this.labelTitleSubnetMask.Location = new System.Drawing.Point(27, 223); + this.labelTitleSubnetMask.Location = new System.Drawing.Point(20, 193); this.labelTitleSubnetMask.Name = "labelTitleSubnetMask"; this.labelTitleSubnetMask.Size = new System.Drawing.Size(140, 28); this.labelTitleSubnetMask.TabIndex = 247; @@ -595,7 +638,7 @@ this.labelLocalGateway4.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalGateway4.InitVisible = true; this.labelLocalGateway4.LineSpacing = 0F; - this.labelLocalGateway4.Location = new System.Drawing.Point(341, 257); + this.labelLocalGateway4.Location = new System.Drawing.Point(334, 227); this.labelLocalGateway4.Name = "labelLocalGateway4"; this.labelLocalGateway4.Size = new System.Drawing.Size(50, 28); this.labelLocalGateway4.TabIndex = 246; @@ -616,7 +659,7 @@ this.labelLocalGateway3.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalGateway3.InitVisible = true; this.labelLocalGateway3.LineSpacing = 0F; - this.labelLocalGateway3.Location = new System.Drawing.Point(285, 257); + this.labelLocalGateway3.Location = new System.Drawing.Point(278, 227); this.labelLocalGateway3.Name = "labelLocalGateway3"; this.labelLocalGateway3.Size = new System.Drawing.Size(50, 28); this.labelLocalGateway3.TabIndex = 245; @@ -637,7 +680,7 @@ this.labelLocalGateway2.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalGateway2.InitVisible = true; this.labelLocalGateway2.LineSpacing = 0F; - this.labelLocalGateway2.Location = new System.Drawing.Point(229, 257); + this.labelLocalGateway2.Location = new System.Drawing.Point(222, 227); this.labelLocalGateway2.Name = "labelLocalGateway2"; this.labelLocalGateway2.Size = new System.Drawing.Size(50, 28); this.labelLocalGateway2.TabIndex = 244; @@ -658,7 +701,7 @@ this.labelLocalGateway1.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalGateway1.InitVisible = true; this.labelLocalGateway1.LineSpacing = 0F; - this.labelLocalGateway1.Location = new System.Drawing.Point(173, 257); + this.labelLocalGateway1.Location = new System.Drawing.Point(166, 227); this.labelLocalGateway1.Name = "labelLocalGateway1"; this.labelLocalGateway1.Size = new System.Drawing.Size(50, 28); this.labelLocalGateway1.TabIndex = 243; @@ -675,11 +718,11 @@ this.labelTitleGateway.BackPictureBox2 = null; this.labelTitleGateway.BorderColor = System.Drawing.Color.Black; this.labelTitleGateway.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelTitleGateway.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.labelTitleGateway.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.labelTitleGateway.ForeColor = System.Drawing.Color.Black; this.labelTitleGateway.InitVisible = true; this.labelTitleGateway.LineSpacing = 0F; - this.labelTitleGateway.Location = new System.Drawing.Point(27, 257); + this.labelTitleGateway.Location = new System.Drawing.Point(20, 227); this.labelTitleGateway.Name = "labelTitleGateway"; this.labelTitleGateway.Size = new System.Drawing.Size(140, 28); this.labelTitleGateway.TabIndex = 242; @@ -699,7 +742,7 @@ this.labelLocalIP4.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalIP4.InitVisible = true; this.labelLocalIP4.LineSpacing = 0F; - this.labelLocalIP4.Location = new System.Drawing.Point(341, 189); + this.labelLocalIP4.Location = new System.Drawing.Point(334, 159); this.labelLocalIP4.Name = "labelLocalIP4"; this.labelLocalIP4.Size = new System.Drawing.Size(50, 28); this.labelLocalIP4.TabIndex = 241; @@ -720,7 +763,7 @@ this.labelLocalIP3.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalIP3.InitVisible = true; this.labelLocalIP3.LineSpacing = 0F; - this.labelLocalIP3.Location = new System.Drawing.Point(285, 189); + this.labelLocalIP3.Location = new System.Drawing.Point(278, 159); this.labelLocalIP3.Name = "labelLocalIP3"; this.labelLocalIP3.Size = new System.Drawing.Size(50, 28); this.labelLocalIP3.TabIndex = 240; @@ -741,7 +784,7 @@ this.labelLocalIP2.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalIP2.InitVisible = true; this.labelLocalIP2.LineSpacing = 0F; - this.labelLocalIP2.Location = new System.Drawing.Point(229, 189); + this.labelLocalIP2.Location = new System.Drawing.Point(222, 159); this.labelLocalIP2.Name = "labelLocalIP2"; this.labelLocalIP2.Size = new System.Drawing.Size(50, 28); this.labelLocalIP2.TabIndex = 239; @@ -762,7 +805,7 @@ this.labelLocalIP1.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); this.labelLocalIP1.InitVisible = true; this.labelLocalIP1.LineSpacing = 0F; - this.labelLocalIP1.Location = new System.Drawing.Point(173, 189); + this.labelLocalIP1.Location = new System.Drawing.Point(166, 159); this.labelLocalIP1.Name = "labelLocalIP1"; this.labelLocalIP1.Size = new System.Drawing.Size(50, 28); this.labelLocalIP1.TabIndex = 238; @@ -779,11 +822,11 @@ this.labelTitleIPAddress.BackPictureBox2 = null; this.labelTitleIPAddress.BorderColor = System.Drawing.Color.Black; this.labelTitleIPAddress.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelTitleIPAddress.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.labelTitleIPAddress.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.labelTitleIPAddress.ForeColor = System.Drawing.Color.Black; this.labelTitleIPAddress.InitVisible = true; this.labelTitleIPAddress.LineSpacing = 0F; - this.labelTitleIPAddress.Location = new System.Drawing.Point(27, 189); + this.labelTitleIPAddress.Location = new System.Drawing.Point(20, 159); this.labelTitleIPAddress.Name = "labelTitleIPAddress"; this.labelTitleIPAddress.Size = new System.Drawing.Size(140, 28); this.labelTitleIPAddress.TabIndex = 237; @@ -799,7 +842,7 @@ this.labelStaticTcpMode.BackPictureBox2 = null; this.labelStaticTcpMode.BorderColor = System.Drawing.Color.Black; this.labelStaticTcpMode.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelStaticTcpMode.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.labelStaticTcpMode.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.labelStaticTcpMode.InitVisible = true; this.labelStaticTcpMode.LineSpacing = 0F; this.labelStaticTcpMode.Location = new System.Drawing.Point(27, 69); @@ -818,7 +861,7 @@ this.labelStaticTcpOperationMode.BackPictureBox2 = null; this.labelStaticTcpOperationMode.BorderColor = System.Drawing.Color.Black; this.labelStaticTcpOperationMode.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelStaticTcpOperationMode.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.labelStaticTcpOperationMode.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.labelStaticTcpOperationMode.InitVisible = true; this.labelStaticTcpOperationMode.LineSpacing = 0F; this.labelStaticTcpOperationMode.Location = new System.Drawing.Point(27, 33); @@ -857,7 +900,7 @@ this.groupBoxServer.Controls.Add(this.labelLocalPort); this.groupBoxServer.Controls.Add(this.labelTitleServerPort); this.groupBoxServer.Controls.Add(this.labelServerStatus); - this.groupBoxServer.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.groupBoxServer.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.groupBoxServer.FrameLineColor1 = System.Drawing.Color.Black; this.groupBoxServer.FrameLineColor2 = System.Drawing.Color.Black; this.groupBoxServer.FrameLineThickness = 1; @@ -900,7 +943,7 @@ this.labelTitleConnectedIP.BackPictureBox2 = null; this.labelTitleConnectedIP.BorderColor = System.Drawing.Color.Black; this.labelTitleConnectedIP.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelTitleConnectedIP.Font = new System.Drawing.Font("New Gulim", 11F, System.Drawing.FontStyle.Bold); + this.labelTitleConnectedIP.Font = new System.Drawing.Font("새굴림", 11F, System.Drawing.FontStyle.Bold); this.labelTitleConnectedIP.ForeColor = System.Drawing.Color.Black; this.labelTitleConnectedIP.InitVisible = true; this.labelTitleConnectedIP.LineSpacing = 0F; @@ -942,7 +985,7 @@ this.labelTitleServerPort.BackPictureBox2 = null; this.labelTitleServerPort.BorderColor = System.Drawing.Color.Black; this.labelTitleServerPort.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelTitleServerPort.Font = new System.Drawing.Font("New Gulim", 11F, System.Drawing.FontStyle.Bold); + this.labelTitleServerPort.Font = new System.Drawing.Font("새굴림", 11F, System.Drawing.FontStyle.Bold); this.labelTitleServerPort.ForeColor = System.Drawing.Color.Black; this.labelTitleServerPort.InitVisible = true; this.labelTitleServerPort.LineSpacing = 0F; @@ -988,7 +1031,7 @@ this.groupBoxClient.Controls.Add(this.labelHostPort); this.groupBoxClient.Controls.Add(this.labelHostIP4); this.groupBoxClient.Controls.Add(this.labelTitleClientServerPort); - this.groupBoxClient.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); + this.groupBoxClient.Font = new System.Drawing.Font("새굴림", 12F, System.Drawing.FontStyle.Bold); this.groupBoxClient.FrameLineColor1 = System.Drawing.Color.Black; this.groupBoxClient.FrameLineColor2 = System.Drawing.Color.Black; this.groupBoxClient.FrameLineThickness = 1; @@ -1005,7 +1048,7 @@ // // buttonTcpSave2 // - this.buttonTcpSave2.Font = new System.Drawing.Font("New Gulim", 10F, System.Drawing.FontStyle.Regular); + this.buttonTcpSave2.Font = new System.Drawing.Font("새굴림", 10F, System.Drawing.FontStyle.Regular); this.buttonTcpSave2.Location = new System.Drawing.Point(274, 90); this.buttonTcpSave2.Name = "buttonTcpSave2"; this.buttonTcpSave2.Size = new System.Drawing.Size(100, 28); @@ -1041,7 +1084,7 @@ this.labelTitleClientServerIP.BackPictureBox2 = null; this.labelTitleClientServerIP.BorderColor = System.Drawing.Color.Black; this.labelTitleClientServerIP.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelTitleClientServerIP.Font = new System.Drawing.Font("New Gulim", 11F, System.Drawing.FontStyle.Bold); + this.labelTitleClientServerIP.Font = new System.Drawing.Font("새굴림", 11F, System.Drawing.FontStyle.Bold); this.labelTitleClientServerIP.ForeColor = System.Drawing.Color.Black; this.labelTitleClientServerIP.InitVisible = true; this.labelTitleClientServerIP.LineSpacing = 0F; @@ -1167,7 +1210,7 @@ this.labelTitleClientServerPort.BackPictureBox2 = null; this.labelTitleClientServerPort.BorderColor = System.Drawing.Color.Black; this.labelTitleClientServerPort.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelTitleClientServerPort.Font = new System.Drawing.Font("New Gulim", 11F, System.Drawing.FontStyle.Bold); + this.labelTitleClientServerPort.Font = new System.Drawing.Font("새굴림", 11F, System.Drawing.FontStyle.Bold); this.labelTitleClientServerPort.ForeColor = System.Drawing.Color.Black; this.labelTitleClientServerPort.InitVisible = true; this.labelTitleClientServerPort.LineSpacing = 0F; @@ -1185,46 +1228,6 @@ this.timerServer.Interval = 1000; this.timerServer.Tick += new System.EventHandler(this.timerServer_Tick); // - // labelStartAddress - // - this.labelStartAddress.BackColor = System.Drawing.SystemColors.Window; - this.labelStartAddress.BackPictureBox = null; - this.labelStartAddress.BackPictureBox1 = null; - this.labelStartAddress.BackPictureBox2 = null; - this.labelStartAddress.BorderColor = System.Drawing.Color.Black; - this.labelStartAddress.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.labelStartAddress.Font = new System.Drawing.Font("Arial", 14F, System.Drawing.FontStyle.Bold); - this.labelStartAddress.InitVisible = true; - this.labelStartAddress.LineSpacing = 0F; - this.labelStartAddress.Location = new System.Drawing.Point(173, 291); - this.labelStartAddress.Name = "labelStartAddress"; - this.labelStartAddress.Size = new System.Drawing.Size(106, 28); - this.labelStartAddress.TabIndex = 266; - this.labelStartAddress.Text = "100"; - this.labelStartAddress.TextHAlign = SmartX.SmartLabel.TextHorAlign.Right; - this.labelStartAddress.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; - this.labelStartAddress.Wordwrap = false; - // - // labelTitleStartAddress - // - this.labelTitleStartAddress.BackPictureBox = this.smartForm1; - this.labelTitleStartAddress.BackPictureBox1 = null; - this.labelTitleStartAddress.BackPictureBox2 = null; - this.labelTitleStartAddress.BorderColor = System.Drawing.Color.Black; - this.labelTitleStartAddress.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.labelTitleStartAddress.Font = new System.Drawing.Font("New Gulim", 12F, System.Drawing.FontStyle.Bold); - this.labelTitleStartAddress.ForeColor = System.Drawing.Color.Black; - this.labelTitleStartAddress.InitVisible = true; - this.labelTitleStartAddress.LineSpacing = 0F; - this.labelTitleStartAddress.Location = new System.Drawing.Point(27, 291); - this.labelTitleStartAddress.Name = "labelTitleStartAddress"; - this.labelTitleStartAddress.Size = new System.Drawing.Size(140, 28); - this.labelTitleStartAddress.TabIndex = 265; - this.labelTitleStartAddress.Text = "Start Address"; - this.labelTitleStartAddress.TextHAlign = SmartX.SmartLabel.TextHorAlign.Middle; - this.labelTitleStartAddress.TextVAlign = SmartX.SmartLabel.TextVerAlign.Middle; - this.labelTitleStartAddress.Wordwrap = false; - // // FormCommunication // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); diff --git a/INT89DB_26/Forms/FormCommunication.resx b/INT89DB_26/Forms/FormCommunication.resx index 3628710..674af5d 100644 --- a/INT89DB_26/Forms/FormCommunication.resx +++ b/INT89DB_26/Forms/FormCommunication.resx @@ -165,53 +165,52 @@ RudN65tdA8sHzg46DF645Xrr8m2v29fvrLwzMBQydHc4cnjkLvvu5L2key/vZ9yff7DpIfph4SOpR+WP lR7X/aj3Y+uI5ciZUdfRvidBTx6Mscae/5T+04fx/Kfkp+UTqhONk2aTp6fcp24+W/1s/Hnq8/npgp+l f65+ofviu18cf+mbWTUz/pL/cuHX4lfyr468Xva6e9Z/9vGb5Dfzc4Vv5d8efcd41/s+7P3EfOYH7IeK - j3ofuz55f3q4kLyw8Bv3hPP74uYdwgAAAAlwSFlzAAAOxAAADsQBlSsOGwAACrZJREFUeF7t1jENgAAQ - wMC3w4gELBMUESQQZgQw0vGSm6qgs24LAACh+SYAAP4wWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAz - WAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMF - ABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAA - MYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAz - WAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMF - ABAzWAAAMYMFABAzWAAAMYMFABAzWAAAMYMFABAzWAAAsXmuAwCAkMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACA - mMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZ - LACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACA - mMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZ - LACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACA - mMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZ - LACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACA - mMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZ - LACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACA - mMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZ - LACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACA - mMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZ - LACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACA - mMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZ - LACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACA - mMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZ - LACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACA - mMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZ - LACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACA - mMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZ - LACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACA - mMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZ - LACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMECAIgZLACAmMEC - AIgZLACAmMECAIgZLACAmMECAIjNfe4AAIRm3RYAAEIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIG - CwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAA - AGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAg - ZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIG - CwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAA - AGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAg - ZrAAAGIGCwAgZrAAAGIGCwAgZrAAAGIGCwAg9gJXVz/mZFbNFwAAAABJRU5ErkJggg== + j3ofuz55f3q4kLyw8Bv3hPP74uYdwgAAAAlwSFlzAAAOxAAADsQBlSsOGwAACmlJREFUeF7t1jENgEAU + QLFv50YknGWCIoIEwoyJNzapiM6xFwAAIcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAx + wQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEA + xAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIF + ABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJ + FgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAg + JlgAADHBAgCICRYAQEywAABiggUAEJvvuQAACAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHB + AgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDE + BAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUA + EBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkW + AEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAm + WAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACA + mGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAA + AGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHB + AgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDE + BAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUA + EBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkW + AEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAm + WAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACA + mGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAA + AGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHB + AgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDE + BAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUA + EBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkW + AEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAm + WAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACA + mGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAA + AGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHB + AgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDE + BAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUA + EBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkW + AEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAm + WAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACA + mGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAA + AGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHB + AgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDE + BAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUA + EBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkW + AEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAm + WAAAMcECAIgJFgBAbN77BAAgNMdeAACEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQE + CwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQ + EywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYA + QEywAABiggUAEBMsAICYYAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZY + AAAxwQIAiAkWAEBMsAAAYoIFABATLACAmGABAMQECwAgJlgAADHBAgCICRYAQEywAABiggUAEBMsAICY + YAEAxAQLACAmWAAAMcECAIgJFgBATLAAAGKCBQAQEywAgJhgAQDEBAsAICZYAAAxwQIAiAkWAEBMsAAA + YoIFABATLACA1F4/V1c/5sLrLKMAAAAASUVORK5CYII= @@ -261,28 +260,27 @@ RudN65tdA8sHzg46DF645Xrr8m2v29fvrLwzMBQydHc4cnjkLvvu5L2key/vZ9yff7DpIfph4SOpR+WP lR7X/aj3Y+uI5ciZUdfRvidBTx6Mscae/5T+04fx/Kfkp+UTqhONk2aTp6fcp24+W/1s/Hnq8/npgp+l f65+ofviu18cf+mbWTUz/pL/cuHX4lfyr468Xva6e9Z/9vGb5Dfzc4Vv5d8efcd41/s+7P3EfOYH7IeK - j3ofuz55f3q4kLyw8Bv3hPP74uYdwgAAAAlwSFlzAAAOxAAADsQBlSsOGwAABLBJREFUaEPtm9tP6kgc - gM+/I3vcjXrOXrLr2YOANoAIQkRUrKAWmFWQS4G2Jt6ISIBEqbSU5bYGvL/4Ys6j++LftZHxsDisrifl - 0hq+zFPnN/T3ZSbTdph5N6QceKF8VA9KrXxQDbbm2VzetV76UfOD3jJhd8y7PW4gSVxuYh63YdPqEdX7 - 1vyfKA0rFXoL5na7Go3/kCSN9FZdqxrj52eVRlTv5/BZGLqxsREOh2maZiQJTdMkSfp8Ppit2TY1rFSg - SsNKBfTx+XzhcBj9DakSCoWg1fSsAVXSWSagD0VRaDtpE41GodXY5G//Kn1Uf0+4CACAjPqnmWAwCABw - LONw+D0o6etd5Pf70Vj54PV6AQBK/a+PSnbHvHy7CAI7ymybgkoK+PyR7Pz2GiKRCADA7ph/UPqgGoTP - HzRKVlAUBQBYXnW+HSWapuFbRV9JwvSV5EBfSQ70WMnr9UajUfSqOHqp5Ha7MQyLx+NohTh6puR0OnU6 - nc/nOz09RevE0RslgiB0Ol0kEmFZ9urqCq0WRw+UjEbj5ORkKBRiWZbjuMvLSzRCHF1VcrlcGo3GZrPt - 7e2xLHt8fMzz/MXFBRonju4p4TiOYZjP50un08df4Xn+/PwcDRVHl5S0Wq3JZKIoCnZOg1wud3Z2hkaL - o+NKXq93fHx8YWEhHo83y0AEQZDZjLe0tDQx8bCYkUqlUJs6giBUq1W0mTg6qKRWq00mUzgczmQyqMpX - OI47OTlBW4qjI0pOp1OlUuE4nkwmUYmnsCybTCbR9uJov5LFYjEYDCRJHh4eogYtsCwbi8UIgvj0IqFQ - CL3N87RTiaZpDMNmZma2t7eRmU0k3/SG0TYlq9WqVqtxHE8kEmhGoum2ktvt1uv1ZrN5c3Pz6OgITacd - dFXJbrdrtdq1tbWDgwM0kfbRbaWdnZ0Xpum20FWlZDJZrVaLxSLHcWgi7aOrSgzD7O/v/1VHEAQ0lzbR - bSVIJpOp1Wod6q7eKDEMs7u7WygUisUiz/NoUuLomRKE47jXD0KO425ubu7u7v5+kfv7e/Q2z9N+JYZh - 0un0K+cMQRBub2/R9uLoiBLDMFtbW6VS6X+7K5/P12o1tLE4OqUEYVm2Uqnk8/lsNova1MnlcvL4uGgm - FotVKpXnBiHP83L6BGxGEIRyuZzL5RAljuNk9qHeTCaTaR2EHMfJbzmlmUQiUa1Wy+Vy48GVzWbluujV - DM/zpVKpMQhlvDTZTCqVKhQKcH6X9wJyM4lE4s8619fXaJ04eqYEP0y+fPlyd3eHVoijl0odoq8kB/pK - cqCvJAfeoNKTLYZDygGX+2H78dvZCDqkHLAtWgEAJEmigfIhEAgAAIxW/aPShGkM7ntHA+XD+vo6AOCT - 9udHpZGx71ZWlwEA3/QvlXTw+/0AgIWluScHFDTGz3CbfyQSQVtIG5IkAQAej2dU+xN6MsZsm4JWMtrW - D/sHAIBNq9FjJPWimLLqYITX6w0Gg9FolKIoWmJQFBWJRAKBADyU4PF4tGZNk0XLKbOxyVHnigOKSZ9F - p70x3p5VejjLNKZQGUYtcybcubhCLBMuQlJlZXV50bFgmjX8rvulNfn/VpJ7+QcoZ43JL5we4wAAAABJ - RU5ErkJggg== + j3ofuz55f3q4kLyw8Bv3hPP74uYdwgAAAAlwSFlzAAAOxAAADsQBlSsOGwAABIRJREFUaEPtm+lTIkcY + h/PvrMkmtbvZHJW4WS6huAShRFxwFBWQKIg4iMYqz/Ioscr7ilcsb/3iF8uP5ot/V35uv8GBXV22tpmZ + 3uKp5sP09AzvU93zdveI37wwPHuivDY/11v50fS8JMiS8hGlnyw/OP3WcNu7eFc8oUti8eg7KWhrML8y + fVcSPEqR0ktDjdNvi8djdGki8acuoeASic5Yp8XzVqmA8qAE42apiTXt7e3NZrNDQ0N/6RIEJstyKpVi + 0fqC9eiMgggpoYr5oB1k6FLd09/fz6wamtylSg6/lfkMDg5Sc0HI5XLMyuj6/UHptfn7aCyKWoH6R0km + k0Hwbe0SG373SshvqEqn09REQJLJJBQMzt9ICfla3C5isI5CnmBKNWz+0W1+K4eBgQEooG/ulTAZ4wDJ + nk6KCbIaLNo7I1+PEoYYLLCqqCrpmKqSCFSVREBjJSxesNakA05oqRSPx2022/T0NB1zQjOlSCTicDiw + hTk+PqYqTmijFI1G4YPF2PLy8sXFBdVyQgMlj8fjcrmwCYXP2tra+fk5neCEqkqxWMxisQSDwYmJCfis + rKysr6+fnZ3RaU6opyRJEpIBHp75+XnIMKB0enpKLTihkpLdbvd6vVj2s84psLGxcXJyQo04UXElzDx1 + dXWhUAjJmjwUbG5uCpbxWltbrdb7lxn5fJ4kioHS4eEhteZEBZXMZjMGWzabXVpaIoMPQMY7ODigCzhR + ESVMoyaTSZKkubk5iv0R8GihDV3GCf5Kfr/f7XbLsrywsECBPw6UJicnMfO+eRJMYnT3MuCphHshTTc2 + No6OjpZkti/ks1YY3JQCgQAeHgy22dlZCoQfaithQe10On0+3/Dw8OLiIkXBFVWVwuEwptHu7u6ZmRn6 + /gqgttLY2NgTaZoLqiohBWOu3NnZwQxD318B1H6Wpqam/nkPlgIUAm/UVmJg7B0dHVWou7RRAuPj49vb + 27DCloFi4YRmSgz0UvmDEI2vrq5ub2//fZK7uzu6exnwVwLY5JWZM2B+fX1Nl3GiIkpgZGRkd3f3k921 + tbWFJ5Cu4USllBhY6e3v7yPu1dVVkigGu1oxNhdKsNCG1WODEIlEpC2gEgy/vb099Amp/A88BX41iYnr + w0EIJfFepyjBvgPDDN1VmLigJ+pLLyXwQTIsDEKBX00qyefzWGew/C72C2QlGIR/v+fy8pKqOKGZEsDG + 5ObmBqshOuaElkoVoqokAlUlEagqicBXqFT0E0N8IIdjiNJ5ASn6ISg+wZYAjmVZpvMC0tfXBwVPwElK + Vq8Rx6lUis4LSE9PDxTe2H8hpVfGbzs621H1WX+l0g/pdBrBh1qb4UJKKBbPW9QCDEpqKAh4XhB2V1dX + rf3nIiUUX7CeWQn0s37WP8DWYC6IPCi9MNTUBxysRTKZzGQyuVwOyRGZUFcgJAwl5AP2TwnoH7vPorAo + UrovRldtpKONiemflki4MN4KpVQJ5aWxxuSu9Td7pUhLR7Q9GovqqiCTtbSFvE3uPxy/lkTOykeUxC6G + Z/8BKGeNyS3v/jQAAAAASUVORK5CYII= @@ -332,103 +330,98 @@ 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 + EPAlSQAAAABJRU5ErkJggg== @@ -478,43 +471,39 @@ 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 - RK5CYII= + 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 + /75aOx5brnAAAAAASUVORK5CYII= @@ -564,36 +553,35 @@ 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 - ku/cAAAAAElFTkSuQmCC + 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 + 6AJaAAAAAElFTkSuQmCC @@ -606,6 +594,6 @@ False - 37 + 49 \ No newline at end of file diff --git a/INT89DB_26/Forms/FormFactoryReset.cs b/INT89DB_26/Forms/FormFactoryReset.cs index 08c3614..49adca2 100644 --- a/INT89DB_26/Forms/FormFactoryReset.cs +++ b/INT89DB_26/Forms/FormFactoryReset.cs @@ -140,9 +140,9 @@ namespace INT89DB_26.Forms structItem.DummyBool2 = false; structItem.DummyBool3 = false; structItem.DummyBool4 = false; - structItem.DummyInt1 = 0; - structItem.DummyInt2 = 0; - structItem.ModbusTcpStartAddress = 0; + structItem.FeedbackSampleCount = 10; + structItem.FeedbackIgnorePackages = 5; + structItem.ModbusTcpStartAddress = this.ParentForm.SystemConfig.ModbusTcpStartAddress; structItem.Serial3BaudRate = this.ParentForm.SystemConfig.Serial3BaudRate; structItem.Serial3Mode = this.ParentForm.SystemConfig.Serial3Mode; structItem.EthernetServerAddress = ""; diff --git a/INT89DB_26/Forms/FormMain.Designer.cs b/INT89DB_26/Forms/FormMain.Designer.cs index d419bb1..97de1d2 100644 --- a/INT89DB_26/Forms/FormMain.Designer.cs +++ b/INT89DB_26/Forms/FormMain.Designer.cs @@ -104,6 +104,7 @@ this.smartTCPMultiServer.MaxReceiveBufferSize = 1000; this.smartTCPMultiServer.Port = 5001; this.smartTCPMultiServer.ReceiveTimeout = 3000; + this.smartTCPMultiServer.OnReceiveHandler += new SmartX.SmartTCPMultiServer.ReceiveHandler(this.smartTCPMultiServer_OnReceiveHandler); // // FormMain // diff --git a/INT89DB_26/Forms/FormMain.cs b/INT89DB_26/Forms/FormMain.cs index e25416e..a2e5db2 100644 --- a/INT89DB_26/Forms/FormMain.cs +++ b/INT89DB_26/Forms/FormMain.cs @@ -79,6 +79,8 @@ namespace INT89DB_26.Forms public OptionParameterItem CurrentOptionParameterItem; // User public CollectionUser CurrentCollectionUser; + // 현재 선택 된 피드백 설정 값 + public FeedbackConfiguration CurrentFeedbackItem; // 열별 중량 데이터 public Collection CollectionWeightData; // 장비테스트모드 열별 중량 데이터 @@ -298,6 +300,10 @@ namespace INT89DB_26.Forms this.CurrentOptionParameterItem = new OptionParameterItem(); this.CurrentCollectionUser = new CollectionUser(); this.CurrentAlarmList = new AlarmList(); + this.CurrentFeedbackItem = new FeedbackConfiguration(); + this.Current30000ModbusData = new Modbus_30000_Data(); + this.Current40000ModbusData = new Modbus_40000_Data(); + this.Modbus = new Modbus(); // SystemFile1 폴더 생성 if (Directory.Exists(this.PathSystemFileFolder1) == false) @@ -313,22 +319,22 @@ namespace INT89DB_26.Forms } private void DefaultSetting2() { - // Ethernet Static setting - if (this.smartConfigs.IPSettings.DHCPEnable == 1) - { - this.smartConfigs.IPSettings.DHCPEnable = 0; - - this.smartConfigs.IPSettings.DeviceIP = "192.168.3.10"; - this.smartConfigs.IPSettings.SubNetMask = "255.255.255.0"; - this.smartConfigs.IPSettings.GateWay = "192.168.3.1"; - - this.smartConfigs.IPSettings.Save(); - this.smartConfigs.IPSettings.SetApply(); - } - // 이더넷 if (this.SystemConfig.IsEthernetEnable == true) { + // Ethernet Static setting + if (this.smartConfigs.IPSettings.DHCPEnable == 1) + { + this.smartConfigs.IPSettings.DHCPEnable = 0; + + this.smartConfigs.IPSettings.DeviceIP = "192.168.11.205"; + this.smartConfigs.IPSettings.SubNetMask = "255.255.255.0"; + this.smartConfigs.IPSettings.GateWay = "192.168.11.1"; + + this.smartConfigs.IPSettings.Save(); + this.smartConfigs.IPSettings.SetApply(); + } + if (this.SystemConfig.EthernetOperationMode == 1) { try @@ -343,6 +349,8 @@ namespace INT89DB_26.Forms { } } + else if (this.SystemConfig.EthernetOperationMode == 2) + this.EthernetClientDisconnect(); } } @@ -1069,6 +1077,9 @@ namespace INT89DB_26.Forms this.CollectionWeightData[0].Weight = Helper.StringToWeight(receiveData.Substring(2, 5), this.SystemConfig.DecimalPlaces); this.CollectionWeightData[0].WeightString = receiveData.Substring(2, 5); this.CollectionWeightData[0].ADCValue = receiveData.Substring(7, 5); + + if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) + this.Update30000ModbusData(0); } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) { @@ -1096,6 +1107,15 @@ namespace INT89DB_26.Forms this.EthernetWrite(this.Protocol_STD1(1, this.CollectionWeightData[0])); else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f2_OPT2) // OPT2 this.EthernetWrite(this.Protocol_STD2(1, this.CollectionWeightData[0])); + else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) // Modbus + { + if (this.SystemConfig.EthernetOperationMode == 2) // Client + { + byte[] etherByteData = this.Modbus.WriteMultipleRegisterTCP( + this.Protocol_Modbus_Client_Write_Lane_Data_TCP(0), this.SystemConfig.ModbusTcpStartAddress + (1 * 50) + 140); + this.EthernetClientWeightDataForModbus(etherByteData); + } + } } } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) @@ -1111,6 +1131,9 @@ namespace INT89DB_26.Forms this.CollectionWeightData[1].Weight = Helper.StringToWeight(receiveData.Substring(2, 5), this.SystemConfig.DecimalPlaces); this.CollectionWeightData[1].WeightString = receiveData.Substring(2, 5); this.CollectionWeightData[1].ADCValue = receiveData.Substring(7, 5); + + if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) + this.Update30000ModbusData(1); } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) { @@ -1138,6 +1161,15 @@ namespace INT89DB_26.Forms this.EthernetWrite(this.Protocol_STD1(2, this.CollectionWeightData[1])); else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f2_OPT2) // OPT2 this.EthernetWrite(this.Protocol_STD2(2, this.CollectionWeightData[1])); + else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) // Modbus + { + if (this.SystemConfig.EthernetOperationMode == 2) // Client + { + byte[] etherByteData = this.Modbus.WriteMultipleRegisterTCP( + this.Protocol_Modbus_Client_Write_Lane_Data_TCP(1), this.SystemConfig.ModbusTcpStartAddress + (2 * 50) + 140); + this.EthernetClientWeightDataForModbus(etherByteData); + } + } } } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) @@ -1153,6 +1185,9 @@ namespace INT89DB_26.Forms this.CollectionWeightData[2].Weight = Helper.StringToWeight(receiveData.Substring(2, 5), this.SystemConfig.DecimalPlaces); this.CollectionWeightData[2].WeightString = receiveData.Substring(2, 5); this.CollectionWeightData[2].ADCValue = receiveData.Substring(7, 5); + + if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) + this.Update30000ModbusData(2); } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) { @@ -1180,6 +1215,15 @@ namespace INT89DB_26.Forms this.EthernetWrite(this.Protocol_STD1(3, this.CollectionWeightData[2])); else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f2_OPT2) // OPT2 this.EthernetWrite(this.Protocol_STD2(3, this.CollectionWeightData[2])); + else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) // Modbus + { + if (this.SystemConfig.EthernetOperationMode == 2) // Client + { + byte[] etherByteData = this.Modbus.WriteMultipleRegisterTCP( + this.Protocol_Modbus_Client_Write_Lane_Data_TCP(2), this.SystemConfig.ModbusTcpStartAddress + (3 * 50) + 140); + this.EthernetClientWeightDataForModbus(etherByteData); + } + } } } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) @@ -1195,6 +1239,9 @@ namespace INT89DB_26.Forms this.CollectionWeightData[3].Weight = Helper.StringToWeight(receiveData.Substring(2, 5), this.SystemConfig.DecimalPlaces); this.CollectionWeightData[3].WeightString = receiveData.Substring(2, 5); this.CollectionWeightData[3].ADCValue = receiveData.Substring(7, 5); + + if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) + this.Update30000ModbusData(3); } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) { @@ -1222,6 +1269,15 @@ namespace INT89DB_26.Forms this.EthernetWrite(this.Protocol_STD1(4, this.CollectionWeightData[3])); else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f2_OPT2) // OPT2 this.EthernetWrite(this.Protocol_STD2(4, this.CollectionWeightData[3])); + else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) // Modbus + { + if (this.SystemConfig.EthernetOperationMode == 2) // Client + { + byte[] etherByteData = this.Modbus.WriteMultipleRegisterTCP( + this.Protocol_Modbus_Client_Write_Lane_Data_TCP(3), this.SystemConfig.ModbusTcpStartAddress + (4 * 50) + 140); + this.EthernetClientWeightDataForModbus(etherByteData); + } + } } } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) @@ -1237,6 +1293,9 @@ namespace INT89DB_26.Forms this.CollectionWeightData[4].Weight = Helper.StringToWeight(receiveData.Substring(2, 5), this.SystemConfig.DecimalPlaces); this.CollectionWeightData[4].WeightString = receiveData.Substring(2, 5); this.CollectionWeightData[4].ADCValue = receiveData.Substring(7, 5); + + if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) + this.Update30000ModbusData(4); } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) { @@ -1264,6 +1323,15 @@ namespace INT89DB_26.Forms this.EthernetWrite(this.Protocol_STD1(5, this.CollectionWeightData[4])); else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f2_OPT2) // OPT2 this.EthernetWrite(this.Protocol_STD2(5, this.CollectionWeightData[4])); + else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) // Modbus + { + if (this.SystemConfig.EthernetOperationMode == 2) // Client + { + byte[] etherByteData = this.Modbus.WriteMultipleRegisterTCP( + this.Protocol_Modbus_Client_Write_Lane_Data_TCP(4), this.SystemConfig.ModbusTcpStartAddress + (5 * 50) + 140); + this.EthernetClientWeightDataForModbus(etherByteData); + } + } } } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) @@ -1279,6 +1347,9 @@ namespace INT89DB_26.Forms this.CollectionWeightData[5].Weight = Helper.StringToWeight(receiveData.Substring(2, 5), this.SystemConfig.DecimalPlaces); this.CollectionWeightData[5].WeightString = receiveData.Substring(2, 5); this.CollectionWeightData[5].ADCValue = receiveData.Substring(7, 5); + + if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) + this.Update30000ModbusData(5); } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) { @@ -1306,6 +1377,15 @@ namespace INT89DB_26.Forms this.EthernetWrite(this.Protocol_STD1(6, this.CollectionWeightData[5])); else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f2_OPT2) // OPT2 this.EthernetWrite(this.Protocol_STD2(6, this.CollectionWeightData[5])); + else if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) // Modbus + { + if (this.SystemConfig.EthernetOperationMode == 2) // Client + { + byte[] etherByteData = this.Modbus.WriteMultipleRegisterTCP( + this.Protocol_Modbus_Client_Write_Lane_Data_TCP(5), this.SystemConfig.ModbusTcpStartAddress + (6 * 50) + 140); + this.EthernetClientWeightDataForModbus(etherByteData); + } + } } } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) @@ -1323,6 +1403,9 @@ namespace INT89DB_26.Forms this.CollectionWeightData[i].Weight = Helper.StringToWeight(receiveData.Substring(i * 12 + 2, 5), this.SystemConfig.DecimalPlaces); this.CollectionWeightData[i].WeightString = receiveData.Substring(i * 12 + 2, 5); this.CollectionWeightData[i].ADCValue = receiveData.Substring(i * 12 + 7, 5); + + if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) + this.Update30000ModbusData(i); } } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) @@ -1340,6 +1423,19 @@ namespace INT89DB_26.Forms { this.DataBackup(this.CollectionWeightData); this.ChildFormMainDisplay.UpdateUpdateStartWeightDisplay(this.EquipmentStatus, this.CollectionWeightData); + + if (this.SystemConfig.EthernetMode == (int)DataStore.CommunicationMode.f99_Modbus) // Modbus + { + if (this.SystemConfig.EthernetOperationMode == 2) // Client + { + for (int i = 0; i < this.SystemConfig.EquipmentColumns; i++) + { + byte[] etherByteData = this.Modbus.WriteMultipleRegisterTCP( + this.Protocol_Modbus_Client_Write_Lane_Data_TCP(i), this.SystemConfig.ModbusTcpStartAddress + ((i + 1) * 50) + 140); + this.EthernetClientWeightDataForModbus(etherByteData); + } + } + } } else if (this.SystemConfig.CurrentForm == DataStore.FormStore.FormEquipmentTest) { @@ -1812,6 +1908,10 @@ namespace INT89DB_26.Forms double passValue = this.Current30000ModbusData.PassValue; double overValue = this.Current30000ModbusData.OverValue; double tareValue = this.Current30000ModbusData.TareValue; + double lowLimit = this.Current30000ModbusData.LowLimit; + double highLimit = this.Current30000ModbusData.HighLimit; + double deadZoneLow = this.Current30000ModbusData.DeadZoneLowLimit; + double deadZoneHigh = this.Current30000ModbusData.DeadZoneHighLimit; int equipmentStatus; if (this.EquipmentStatus == DataStore.EquipmentStatus.Start) @@ -1864,6 +1964,66 @@ namespace INT89DB_26.Forms for (int i = 0; i < 2; i++) madeData[madeDataIndex + i] = length4Value[1 - i]; break; + case (int)ModbusDefine._30000_Modbus.HighLimit_High: + length4Value = GetBytes((Single)highLimit); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.HighLimit_Low: + length4Value = GetBytes((Single)highLimit); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; + case (int)ModbusDefine._30000_Modbus.DeadZoneHighLimit_High: + length4Value = GetBytes((Single)deadZoneHigh); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.DeadZoneHighLimit_Low: + length4Value = GetBytes((Single)deadZoneHigh); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; + case (int)ModbusDefine._30000_Modbus.DeadZoneLowLimit_High: + length4Value = GetBytes((Single)deadZoneLow); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.DeadZoneLowLimit_Low: + length4Value = GetBytes((Single)deadZoneLow); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; + case (int)ModbusDefine._30000_Modbus.LowLimit_High: + length4Value = GetBytes((Single)lowLimit); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.LowLimit_Low: + length4Value = GetBytes((Single)lowLimit); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; + case (int)ModbusDefine._30000_Modbus.SampleCount_High: + length4Value = GetBytes(this.SystemConfig.FeedbackSampleCount); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.SampleCount_Low: + length4Value = GetBytes(this.SystemConfig.FeedbackSampleCount); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; + case (int)ModbusDefine._30000_Modbus.IgnoreCount_High: + length4Value = GetBytes(this.SystemConfig.FeedbackIgnorePackages); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.IgnoreCount_Low: + length4Value = GetBytes(this.SystemConfig.FeedbackIgnorePackages); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; #endregion #region #1 @@ -2400,540 +2560,6 @@ namespace INT89DB_26.Forms break; #endregion - #region #7 - case (int)ModbusDefine._30000_Modbus._7_Update: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].Update); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_Grade: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].Grade); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_Weight_High: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[6].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_Weight_Low: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[6].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_UnderCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_UnderCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_PassCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_PassCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_OverCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_OverCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_NGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_NgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_ExNGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_ExNgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_TotalCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._7_TotalCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[6].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - #endregion - - #region #8 - case (int)ModbusDefine._30000_Modbus._8_Update: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].Update); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_Grade: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].Grade); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_Weight_High: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[7].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_Weight_Low: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[7].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_UnderCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_UnderCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_PassCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_PassCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_OverCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_OverCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_NGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_NgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_ExNGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_ExNgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_TotalCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._8_TotalCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[7].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - #endregion - - #region #9 - case (int)ModbusDefine._30000_Modbus._9_Update: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].Update); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_Grade: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].Grade); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_Weight_High: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[8].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_Weight_Low: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[8].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_UnderCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_UnderCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_PassCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_PassCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_OverCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_OverCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_NGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_NgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_ExNGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_ExNgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_TotalCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._9_TotalCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[8].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - #endregion - - #region #10 - case (int)ModbusDefine._30000_Modbus._10_Update: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].Update); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_Grade: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].Grade); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_Weight_High: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[9].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_Weight_Low: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[9].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_UnderCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_UnderCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_PassCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_PassCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_OverCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_OverCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_NGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_NgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_ExNGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_ExNgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_TotalCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._10_TotalCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[9].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - #endregion - - #region #11 - case (int)ModbusDefine._30000_Modbus._11_Update: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].Update); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_Grade: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].Grade); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_Weight_High: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[10].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_Weight_Low: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[10].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_UnderCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_UnderCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_PassCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_PassCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_OverCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_OverCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_NGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_NgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_ExNGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_ExNgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_TotalCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._11_TotalCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[10].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - #endregion - - #region #12 - case (int)ModbusDefine._30000_Modbus._12_Update: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].Update); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_Grade: - length2Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].Grade); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length2Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_Weight_High: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[11].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_Weight_Low: - if (this.EquipmentStatus == DataStore.EquipmentStatus.Stop) - length4Value = GetBytes((Single)0.0); - else - length4Value = GetBytes((Single)this.Current30000ModbusData.ModbusLaneData[11].Weight); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_UnderCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_UnderCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].UnderCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_PassCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_PassCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].PassCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_OverCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_OverCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].OverCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_NGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_NgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].NGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_ExNGCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_ExNgCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].ExNGCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_TotalCount_High: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[3 - i]; - break; - case (int)ModbusDefine._30000_Modbus._12_TotalCount_Low: - length4Value = GetBytes(this.Current30000ModbusData.ModbusLaneData[11].TotalCount); - for (int i = 0; i < 2; i++) - madeData[madeDataIndex + i] = length4Value[1 - i]; - break; - #endregion - default: length2Value = GetBytes(0); for (int i = 0; i < 2; i++) @@ -3080,6 +2706,10 @@ namespace INT89DB_26.Forms double passValue = this.Current30000ModbusData.PassValue; double overValue = this.Current30000ModbusData.OverValue; double tareValue = this.Current30000ModbusData.TareValue; + double lowLimit = this.Current30000ModbusData.LowLimit; + double highLimit = this.Current30000ModbusData.HighLimit; + double deadZoneLow = this.Current30000ModbusData.DeadZoneLowLimit; + double deadZoneHigh = this.Current30000ModbusData.DeadZoneHighLimit; int equipmentStatus; if (this.EquipmentStatus == DataStore.EquipmentStatus.Start) @@ -3132,6 +2762,66 @@ namespace INT89DB_26.Forms for (int i = 0; i < 2; i++) madeData[madeDataIndex + i] = length4Value[1 - i]; break; + case (int)ModbusDefine._30000_Modbus.HighLimit_High: + length4Value = GetBytes((Single)highLimit); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.HighLimit_Low: + length4Value = GetBytes((Single)highLimit); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; + case (int)ModbusDefine._30000_Modbus.DeadZoneHighLimit_High: + length4Value = GetBytes((Single)deadZoneHigh); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.DeadZoneHighLimit_Low: + length4Value = GetBytes((Single)deadZoneHigh); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; + case (int)ModbusDefine._30000_Modbus.DeadZoneLowLimit_High: + length4Value = GetBytes((Single)deadZoneLow); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.DeadZoneLowLimit_Low: + length4Value = GetBytes((Single)deadZoneLow); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; + case (int)ModbusDefine._30000_Modbus.LowLimit_High: + length4Value = GetBytes((Single)lowLimit); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.LowLimit_Low: + length4Value = GetBytes((Single)lowLimit); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; + case (int)ModbusDefine._30000_Modbus.SampleCount_High: + length4Value = GetBytes(this.SystemConfig.FeedbackSampleCount); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.SampleCount_Low: + length4Value = GetBytes(this.SystemConfig.FeedbackSampleCount); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; + case (int)ModbusDefine._30000_Modbus.IgnoreCount_High: + length4Value = GetBytes(this.SystemConfig.FeedbackIgnorePackages); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[3 - i]; + break; + case (int)ModbusDefine._30000_Modbus.IgnoreCount_Low: + length4Value = GetBytes(this.SystemConfig.FeedbackIgnorePackages); + for (int i = 0; i < 2; i++) + madeData[madeDataIndex + i] = length4Value[1 - i]; + break; #endregion #region #1 @@ -4095,6 +3785,14 @@ namespace INT89DB_26.Forms this.Current30000ModbusData.PassValue = Helper.StringToWeight(this.CurrentProductItem.PassRange, this.SystemConfig.DecimalPlaces); this.Current30000ModbusData.OverValue = Helper.StringToWeight(this.CurrentProductItem.OverRange, this.SystemConfig.DecimalPlaces); this.Current30000ModbusData.TareValue = Helper.StringToWeight(this.CurrentProductItem.TareRange, this.SystemConfig.DecimalPlaces); + this.Current30000ModbusData.HighLimit = Helper.StringToWeight(this.CurrentFeedbackItem.HighLimit, this.SystemConfig.DecimalPlaces); + this.Current30000ModbusData.DeadZoneHighLimit = + Helper.StringToWeight((int.Parse(this.CurrentProductItem.PassRange) - int.Parse(this.CurrentFeedbackItem.DeadZone)).ToString(), this.SystemConfig.DecimalPlaces); + this.Current30000ModbusData.DeadZoneLowLimit = + Helper.StringToWeight(this.CurrentProductItem.PassRange + this.CurrentFeedbackItem.DeadZone, this.SystemConfig.DecimalPlaces); + this.Current30000ModbusData.LowLimit = Helper.StringToWeight(this.CurrentFeedbackItem.LowLimit, this.SystemConfig.DecimalPlaces); + this.Current30000ModbusData.SampleCount = (UInt32)this.SystemConfig.FeedbackSampleCount; + this.Current30000ModbusData.IgnoreCount = (UInt32)this.SystemConfig.FeedbackIgnorePackages; } public void Update30000ModbusData(int index) { @@ -4570,8 +4268,8 @@ namespace INT89DB_26.Forms structItem.DummyBool2 = false; structItem.DummyBool3 = false; structItem.DummyBool4 = false; - structItem.DummyInt1 = 0; - structItem.DummyInt2 = 0; + structItem.FeedbackSampleCount = this.SystemConfig.FeedbackSampleCount; + structItem.FeedbackIgnorePackages = this.SystemConfig.FeedbackIgnorePackages; structItem.ModbusTcpStartAddress = this.SystemConfig.ModbusTcpStartAddress; structItem.EthernetServerAddress = this.SystemConfig.EthernetServerAddress; @@ -4633,8 +4331,8 @@ namespace INT89DB_26.Forms structItem.DummyBool2 = false; structItem.DummyBool3 = false; structItem.DummyBool4 = false; - structItem.DummyInt1 = 0; - structItem.DummyInt2 = 0; + structItem.FeedbackSampleCount = 0; + structItem.FeedbackIgnorePackages = 0; structItem.ModbusTcpStartAddress = item.ModbusTcpStartAddress; structItem.EthernetServerAddress = item.EthernetServerAddress; @@ -4685,6 +4383,8 @@ namespace INT89DB_26.Forms this.SystemConfig.Serial3BaudRate = structItem.Serial3BaudRate; this.SystemConfig.Serial3Mode = structItem.Serial3Mode; this.SystemConfig.IsLogin = structItem.IsLogin; + this.SystemConfig.FeedbackSampleCount = structItem.FeedbackSampleCount; + this.SystemConfig.FeedbackIgnorePackages = structItem.FeedbackIgnorePackages; if (structItem.InverterQTY < 1 || structItem.InverterQTY > 4) { @@ -4874,6 +4574,35 @@ namespace INT89DB_26.Forms this.smartFileIO.Close(); } + public void LoadProductFile(ref Collection values) + { + string fullFilePath = ""; + StructProductItem structItem; + + this.smartFileIO.Close(); + fullFilePath = this.PathSystemFileFolder2 + "ProductItem.int"; + this.smartFileIO.FilePathName = fullFilePath; + + this.smartFileIO.Open(this.BufferSmartUart); + + if (this.smartFileIO.ReadStructureAllBuffer() == true) + { + for (int i = 0; i < 1000; i++) + { + structItem = (StructProductItem)this.smartFileIO.ReadStructureBuffer(typeof(StructProductItem), i); + + values[i].Number = structItem.Number; + values[i].Name = structItem.Name; + values[i].LotNo = structItem.LotNo; + values[i].OverRange = structItem.OverRange; + values[i].PassRange = structItem.PassRange; + values[i].UnderRange = structItem.UnderRange; + values[i].TareRange = structItem.TareRange; + } + } + + this.smartFileIO.Close(); + } #endregion #region JudgmentSetItem File @@ -5229,6 +4958,125 @@ namespace INT89DB_26.Forms } #endregion + #region FeedbackItem File + private void CreateFeedbackItemFile() + { + string fullFilePath = ""; + StructFeedbackConfiguration structItem; + Collection collectionProductItem; + + collectionProductItem = new Collection(); + for (int i = 0; i < 1000; i++) + collectionProductItem.Add(new ProductItem()); + + this.LoadProductFile(ref collectionProductItem); + + this.smartFileIO.Close(); + fullFilePath = this.PathSystemFileFolder2 + "FeedbackItem.int"; + this.smartFileIO.FilePathName = fullFilePath; + this.smartFileIO.Open(this.BufferSmartUart); + + this.CurrentFeedbackItem.Initialization(); + + for (int i = 0; i < 1000; i++) + { + structItem.HightLimit = collectionProductItem[i].OverRange; + structItem.LowLimit = collectionProductItem[i].UnderRange; + structItem.DeadZone = this.CurrentFeedbackItem.DeadZone; + + structItem.DummyBool1 = false; + structItem.DummyBool2 = false; + structItem.DummyBool3 = false; + + structItem.DummyInt1 = 1; + structItem.DummyInt2 = 1; + structItem.DummyInt3 = 1; + + structItem.DummyString1 = ""; + structItem.DummyString2 = ""; + structItem.DummyString3 = ""; + + this.smartFileIO.WriteStructure_Begin(structItem, i); + } + this.smartFileIO.WriteStructure_End(); + } + public void SaveFeedbackItemFile(FeedbackConfiguration item, int index) + { + bool fileCheck = false; + string fullFilePath = ""; + StructFeedbackConfiguration structItem; + + this.smartFileIO.Close(); + fullFilePath = this.PathSystemFileFolder2 + "FeedbackItem.int"; + this.smartFileIO.FilePathName = fullFilePath; + + FileInfo fileInfo = new FileInfo(fullFilePath); + fileCheck = fileInfo.Exists; + + if (fileCheck == false) + this.CreateFeedbackItemFile(); + else + this.smartFileIO.Open(this.BufferSmartUart); + + structItem.HightLimit = item.HighLimit; + structItem.LowLimit = item.LowLimit; + structItem.DeadZone = item.DeadZone; + + structItem.DummyBool1 = false; + structItem.DummyBool2 = false; + structItem.DummyBool3 = false; + + structItem.DummyInt1 = 1; + structItem.DummyInt2 = 1; + structItem.DummyInt3 = 1; + + structItem.DummyString1 = ""; + structItem.DummyString2 = ""; + structItem.DummyString3 = ""; + + this.smartFileIO.WriteStructure_Begin(structItem, index); + this.smartFileIO.WriteStructure_End(); + + this.smartFileIO.Close(); + } + public void LoadFeedbackItemFile(ref FeedbackConfiguration item, int index) + { + bool fileCheck = false; + string fullFilePath = ""; + StructFeedbackConfiguration structItem; + + this.smartFileIO.Close(); + fullFilePath = this.PathSystemFileFolder2 + "FeedbackItem.int"; + this.smartFileIO.FilePathName = fullFilePath; + + FileInfo fileInfo = new FileInfo(fullFilePath); + fileCheck = fileInfo.Exists; + + if (fileCheck == false) + this.CreateFeedbackItemFile(); + else + this.smartFileIO.Open(this.BufferSmartUart); + + try + { + structItem = (StructFeedbackConfiguration)this.smartFileIO.ReadStructure(index, typeof(StructFeedbackConfiguration)); + + item.HighLimit = structItem.HightLimit; + item.LowLimit = structItem.LowLimit; + item.DeadZone = structItem.DeadZone; + } + catch + { + DialogFormMessage myMsg = new DialogFormMessage(17, this.SystemConfig.Language); + myMsg.ShowDialog(); + + this.smartFileIO.Close(); + } + + this.smartFileIO.Close(); + } + #endregion + #region UserLevel1File private void CreateUserLevel1File() { @@ -5799,6 +5647,9 @@ namespace INT89DB_26.Forms // 변수 초기 셋팅2 this.DefaultSetting2(); + this.Update30000ModbusData(); + for (int i = 0; i < this.SystemConfig.EquipmentColumns; i++) + this.Update30000ModbusData(i); // 통신 OPEN this.OpenSmartUartLink(); @@ -5849,6 +5700,152 @@ namespace INT89DB_26.Forms this.CommunicationCheckCount += 1; } } + private void smartTCPMultiServer_OnReceiveHandler(SmartTCPMultiServer.CHandleClinet.READINFO datas) + { + int ret = 0; + byte[] readByte; + string strRecData = ""; + byte[] sendOPCDatas = new byte[57]; + byte[] sendModbusDatas; + byte[] madeDatas; + + try + { + readByte = datas.receiveDatas; + strRecData = SmartTCPMultiServer.ConvertAsciiByteToString(readByte); + } + catch + { + return; + } + + switch (this.SystemConfig.EthernetMode) + { + case (int)DataStore.CommunicationMode.f99_Modbus: + #region Modbus TCP + if (this.smartTCPMultiServer.ClientInfoList != null) + { + if (readByte[7] == 0x03) // Read Holding Register + { + #region Read Holding Register + try + { + byte[] responseData; + byte errorCheck = this.Modbus.CheckRequestSpecialDataErrorTCP(readByte, ModbusFunctionCode.FunctionCode_03); + + if (errorCheck == 0x00) + responseData = this.Modbus.MakeTCPResponseData(readByte, this.Protocol_Modbus_Server_Read_Lane_Data_TCP(readByte), ModbusFunctionCode.FunctionCode_03); + else + responseData = this.Modbus.MakeTCPErrorResponseData(readByte, errorCheck, ModbusFunctionCode.FunctionCode_03); + + foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList) + { + this.smartTCPMultiServer.SendByteByClientID(client.strID, responseData); + } + + // 로그 + if (this.IsCommunicationLogOpen == true) + { + this.smartFileCommunicationLog.WriteString(string.Format("Receive TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte))); + this.smartFileCommunicationLog.WriteString(string.Format("Send TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData))); + } + } + catch + { + } + #endregion + } + else if (readByte[7] == 0x10) // Write Multiple Register + { + #region Write Multiple Register + try + { + byte[] errorResponseData = new byte[9]; + byte[] responseData = new byte[12]; + byte errorCheck = this.Modbus.CheckRequestSpecialDataErrorTCP(readByte, ModbusFunctionCode.FunctionCode_16); + + if (errorCheck == 0x00) + { + for (int i = 0; i < 12; i++) + responseData[i] = readByte[i]; + responseData[5] = 0x06; + + foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList) + { + this.smartTCPMultiServer.SendByteByClientID(client.strID, responseData); + } + + this.ReceiveModbusTCPWriteManager(readByte); + } + else + { + for (int i = 0; i < 5; i++) + errorResponseData[i] = readByte[i]; + + // Length + errorResponseData[5] = 0x03; + // Unit ID + errorResponseData[6] = 0x01; + // Function Code + errorResponseData[7] = 0x90; + // Error Code + errorResponseData[8] = errorCheck; + + foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList) + { + this.smartTCPMultiServer.SendByteByClientID(client.strID, responseData); + } + } + + // 로그 + if (this.IsCommunicationLogOpen == true) + { + this.smartFileCommunicationLog.WriteString(string.Format("Receive TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte))); + this.smartFileCommunicationLog.WriteString(string.Format("Send TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData))); + } + } + catch + { + } + #endregion + } + else // Read Input Register(0x04) + { + #region Read Input Register + try + { + byte[] responseData; + byte errorCheck = this.Modbus.CheckRequestSpecialDataErrorTCP(readByte, ModbusFunctionCode.FunctionCode_04); + + if (errorCheck == 0x00) + responseData = this.Modbus.MakeTCP04ResponseData(readByte, this.Protocol_Modbus_Server_Read_Lane_Data_TCP(readByte)); + else + responseData = this.Modbus.MakeTCP04ErrorResponseData(readByte, errorCheck); + + foreach (SmartTCPMultiServer.CLIENTSINFOS client in this.smartTCPMultiServer.ClientInfoList) + { + this.smartTCPMultiServer.SendByteByClientID(client.strID, responseData); + } + + // 로그 + //if (this.IsCommunicationLogOpen == true) + //{ + //this.smartFileCommunicationLog.WriteString(string.Format("Receive TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(readByte))); + //this.smartFileCommunicationLog.WriteString(string.Format("Send TCP ({0:yyyy-MM-dd HH:mm:ss}): {1}", DateTime.Now, BitConverter.ToString(responseData))); + //} + } + catch + { + } + #endregion + } + } + #endregion + break; + default: + break; + } + } private void timerAdcLog_Tick(object sender, EventArgs e) { diff --git a/INT89DB_26/Forms/FormMainDisplay.cs b/INT89DB_26/Forms/FormMainDisplay.cs index d5fc492..e090dd3 100644 --- a/INT89DB_26/Forms/FormMainDisplay.cs +++ b/INT89DB_26/Forms/FormMainDisplay.cs @@ -1145,6 +1145,7 @@ namespace INT89DB_26.Forms else { this.UpdateUnderRangeChange(myKeyPad.StringValue); + this.ParentForm.Update30000ModbusData(); } } } @@ -1165,6 +1166,7 @@ namespace INT89DB_26.Forms else { this.UpdatePassRangeChange(myKeyPad.StringValue); + this.ParentForm.Update30000ModbusData(); } } } @@ -1184,6 +1186,7 @@ namespace INT89DB_26.Forms else { this.UpdateOverRangeChange(myKeyPad.StringValue); + this.ParentForm.Update30000ModbusData(); } } } @@ -1203,6 +1206,7 @@ namespace INT89DB_26.Forms else { this.UpdateTareRangeChange(myKeyPad.StringValue); + this.ParentForm.Update30000ModbusData(); } } } diff --git a/INT89DB_26/INT89DB_26.csproj b/INT89DB_26/INT89DB_26.csproj index 5e4d412..116600b 100644 --- a/INT89DB_26/INT89DB_26.csproj +++ b/INT89DB_26/INT89DB_26.csproj @@ -45,7 +45,7 @@ Off - + False ..\Document\DLL\InModbus.dll diff --git a/INT89DB_26/InModbus/Modbus_30000_Data.cs b/INT89DB_26/InModbus/Modbus_30000_Data.cs index c8ee47a..1472345 100644 --- a/INT89DB_26/InModbus/Modbus_30000_Data.cs +++ b/INT89DB_26/InModbus/Modbus_30000_Data.cs @@ -13,6 +13,12 @@ namespace INT89DB_26.Int_Modbus private double m_PassValue; private double m_OverValue; private double m_TareValue; + private double m_HighLimit; + private double m_DeadZoneHighLimit; + private double m_DeadZoneLowLimit; + private double m_LowLimit; + private UInt32 m_SampleCount; + private UInt32 m_IgnoreCount; private Collection m_LaneModbusData; #endregion @@ -95,6 +101,37 @@ namespace INT89DB_26.Int_Modbus } } + public double HighLimit + { + get { return this.m_HighLimit; } + set { this.m_HighLimit = value; } + } + public double DeadZoneHighLimit + { + get { return this.m_DeadZoneHighLimit; } + set { this.m_DeadZoneHighLimit = value; } + } + public double DeadZoneLowLimit + { + get { return this.m_DeadZoneLowLimit; } + set { this.m_DeadZoneLowLimit = value; } + } + public double LowLimit + { + get { return this.m_LowLimit; } + set { this.m_LowLimit = value; } + } + public UInt32 SampleCount + { + get { return this.m_SampleCount; } + set { this.m_SampleCount = value; } + } + public UInt32 IgnoreCount + { + get { return this.m_IgnoreCount; } + set { this.m_IgnoreCount = value; } + } + public Collection ModbusLaneData { get { return this.m_LaneModbusData; } @@ -109,6 +146,12 @@ namespace INT89DB_26.Int_Modbus this.PassValue = 200.0; this.OverValue = 300.0; this.TareValue = 0.0; + this.HighLimit = 300.0; + this.DeadZoneHighLimit = 0.0; + this.DeadZoneLowLimit = 0.0; + this.LowLimit = 100.0; + this.SampleCount = 0; + this.IgnoreCount = 0; this.ModbusLaneData = new Collection(); this.ModbusLaneData.Clear(); diff --git a/INT89DB_26_ImageDll/bin/Release/INT89DB_26_ImageDll.dll b/INT89DB_26_ImageDll/bin/Release/INT89DB_26_ImageDll.dll index f61f4ea..218deca 100644 Binary files a/INT89DB_26_ImageDll/bin/Release/INT89DB_26_ImageDll.dll and b/INT89DB_26_ImageDll/bin/Release/INT89DB_26_ImageDll.dll differ diff --git a/INT89DB_26_ImageDll/bin/Release/INT89DB_26_ImageDll.pdb b/INT89DB_26_ImageDll/bin/Release/INT89DB_26_ImageDll.pdb index abe3c70..d6528e3 100644 Binary files a/INT89DB_26_ImageDll/bin/Release/INT89DB_26_ImageDll.pdb and b/INT89DB_26_ImageDll/bin/Release/INT89DB_26_ImageDll.pdb differ diff --git a/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.csproj.FileListAbsolute.txt b/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.csproj.FileListAbsolute.txt index deb694c..e042215 100644 --- a/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.csproj.FileListAbsolute.txt +++ b/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.csproj.FileListAbsolute.txt @@ -166,3 +166,10 @@ D:\Git\INT89DB_26\INT89DB_26_ImageDll\obj\Release\INT89DB_26_ImageDll.Resource1. D:\Git\INT89DB_26\INT89DB_26_ImageDll\obj\Release\INT89DB_26_ImageDll.csproj.GenerateResource.Cache D:\Git\INT89DB_26\INT89DB_26_ImageDll\obj\Release\INT89DB_26_ImageDll.dll D:\Git\INT89DB_26\INT89DB_26_ImageDll\obj\Release\INT89DB_26_ImageDll.pdb +D:\Laboratory\INT89DB_26\INT89DB_26_ImageDll\bin\Release\INT89DB_26_ImageDll.dll +D:\Laboratory\INT89DB_26\INT89DB_26_ImageDll\bin\Release\INT89DB_26_ImageDll.pdb +D:\Laboratory\INT89DB_26\INT89DB_26_ImageDll\obj\Release\ResolveAssemblyReference.cache +D:\Laboratory\INT89DB_26\INT89DB_26_ImageDll\obj\Release\INT89DB_26_ImageDll.Resource1.resources +D:\Laboratory\INT89DB_26\INT89DB_26_ImageDll\obj\Release\INT89DB_26_ImageDll.csproj.GenerateResource.Cache +D:\Laboratory\INT89DB_26\INT89DB_26_ImageDll\obj\Release\INT89DB_26_ImageDll.dll +D:\Laboratory\INT89DB_26\INT89DB_26_ImageDll\obj\Release\INT89DB_26_ImageDll.pdb diff --git a/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.csproj.GenerateResource.Cache b/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.csproj.GenerateResource.Cache index 0191eaf..ed51d2a 100644 Binary files a/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.csproj.GenerateResource.Cache and b/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.csproj.GenerateResource.Cache differ diff --git a/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.dll b/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.dll index f61f4ea..218deca 100644 Binary files a/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.dll and b/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.dll differ diff --git a/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.pdb b/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.pdb index abe3c70..d6528e3 100644 Binary files a/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.pdb and b/INT89DB_26_ImageDll/obj/Release/INT89DB_26_ImageDll.pdb differ