Преглед на файлове

delete all

git-svn-id: http://10.4.3.168:50001/svn/Furnace@8 dbcde07d-dcf5-c148-8a84-ac3097b7778e
Admin преди 8 месеца
родител
ревизия
5b20d708e9
променени са 100 файла, в които са добавени 0 реда и са изтрити 13435 реда
  1. 0 112
      FrameworkLocal/Common/Account/Account.cs
  2. 0 335
      FrameworkLocal/Common/Account/AccountClient.cs
  3. 0 152
      FrameworkLocal/Common/Account/AccountExManager.cs
  4. 0 885
      FrameworkLocal/Common/Account/AccountManager.cs
  5. 0 257
      FrameworkLocal/Common/Account/AccountService.cs
  6. 0 216
      FrameworkLocal/Common/Account/Authorization.cs
  7. 0 85
      FrameworkLocal/Common/Account/Extends/AccountEx.cs
  8. 0 158
      FrameworkLocal/Common/Account/Extends/Menu.cs
  9. 0 83
      FrameworkLocal/Common/Account/Extends/MenuLoader.cs
  10. 0 65
      FrameworkLocal/Common/Account/Extends/Role.cs
  11. 0 373
      FrameworkLocal/Common/Account/Extends/RoleLoader.cs
  12. 0 36
      FrameworkLocal/Common/Account/Extends/UserContext.cs
  13. 0 33
      FrameworkLocal/Common/Account/Extends/XmlLoader.cs
  14. 0 114
      FrameworkLocal/Common/Account/IAccountService.cs
  15. 0 70
      FrameworkLocal/Common/Account/NotificationService.cs
  16. 0 19
      FrameworkLocal/Common/Alarms/AlarmAction.cs
  17. 0 19
      FrameworkLocal/Common/Alarms/AlarmDefine.cs
  18. 0 113
      FrameworkLocal/Common/Alarms/AlarmDefineFileContext.cs
  19. 0 110
      FrameworkLocal/Common/Alarms/AlarmDefineFileManager.cs
  20. 0 79
      FrameworkLocal/Common/Alarms/AlarmDefineService.cs
  21. 0 15
      FrameworkLocal/Common/Alarms/AlarmGroup.cs
  22. 0 51
      FrameworkLocal/Common/Alarms/AlarmServiceClient.cs
  23. 0 21
      FrameworkLocal/Common/Alarms/IAlarmDefineService.cs
  24. 0 45
      FrameworkLocal/Common/Backend/AboutView.Designer.cs
  25. 0 19
      FrameworkLocal/Common/Backend/AboutView.cs
  26. 0 120
      FrameworkLocal/Common/Backend/AboutView.resx
  27. 0 108
      FrameworkLocal/Common/Backend/Controls/AICtrl.Designer.cs
  28. 0 73
      FrameworkLocal/Common/Backend/Controls/AICtrl.cs
  29. 0 120
      FrameworkLocal/Common/Backend/Controls/AICtrl.resx
  30. 0 95
      FrameworkLocal/Common/Backend/Controls/AOCtrl.Designer.cs
  31. 0 49
      FrameworkLocal/Common/Backend/Controls/AOCtrl.cs
  32. 0 120
      FrameworkLocal/Common/Backend/Controls/AOCtrl.resx
  33. 0 92
      FrameworkLocal/Common/Backend/Controls/DICtrl.Designer.cs
  34. 0 79
      FrameworkLocal/Common/Backend/Controls/DICtrl.cs
  35. 0 120
      FrameworkLocal/Common/Backend/Controls/DICtrl.resx
  36. 0 12
      FrameworkLocal/Common/Backend/IBackendIoSimulator.cs
  37. 0 47
      FrameworkLocal/Common/Backend/IO/AI.Designer.cs
  38. 0 92
      FrameworkLocal/Common/Backend/IO/AI.cs
  39. 0 120
      FrameworkLocal/Common/Backend/IO/AI.resx
  40. 0 46
      FrameworkLocal/Common/Backend/IO/AO.Designer.cs
  41. 0 95
      FrameworkLocal/Common/Backend/IO/AO.cs
  42. 0 120
      FrameworkLocal/Common/Backend/IO/AO.resx
  43. 0 60
      FrameworkLocal/Common/Backend/IO/DI.Designer.cs
  44. 0 103
      FrameworkLocal/Common/Backend/IO/DI.cs
  45. 0 120
      FrameworkLocal/Common/Backend/IO/DI.resx
  46. 0 61
      FrameworkLocal/Common/Backend/IO/DO.Designer.cs
  47. 0 107
      FrameworkLocal/Common/Backend/IO/DO.cs
  48. 0 120
      FrameworkLocal/Common/Backend/IO/DO.resx
  49. 0 13
      FrameworkLocal/Common/Backend/IO/IIOView.cs
  50. 0 58
      FrameworkLocal/Common/Backend/IO/IoDataView.Designer.cs
  51. 0 66
      FrameworkLocal/Common/Backend/IO/IoDataView.cs
  52. 0 120
      FrameworkLocal/Common/Backend/IO/IoDataView.resx
  53. 0 139
      FrameworkLocal/Common/Backend/MainView.Designer.cs
  54. 0 126
      FrameworkLocal/Common/Backend/MainView.cs
  55. 0 120
      FrameworkLocal/Common/Backend/MainView.resx
  56. 0 60
      FrameworkLocal/Common/Backend/SimulatorView.Designer.cs
  57. 0 95
      FrameworkLocal/Common/Backend/SimulatorView.cs
  58. 0 120
      FrameworkLocal/Common/Backend/SimulatorView.resx
  59. 0 74
      FrameworkLocal/Common/Backend/SystemConfigView.Designer.cs
  60. 0 157
      FrameworkLocal/Common/Backend/SystemConfigView.cs
  61. 0 120
      FrameworkLocal/Common/Backend/SystemConfigView.resx
  62. 0 150
      FrameworkLocal/Common/Backend/UserLoginView.Designer.cs
  63. 0 134
      FrameworkLocal/Common/Backend/UserLoginView.cs
  64. 0 120
      FrameworkLocal/Common/Backend/UserLoginView.resx
  65. 0 767
      FrameworkLocal/Common/Common.csproj
  66. 0 17
      FrameworkLocal/Common/CommonData/CalibrationDataItem.cs
  67. 0 191
      FrameworkLocal/Common/CommonData/DeviceData/AITAPCData.cs
  68. 0 128
      FrameworkLocal/Common/CommonData/DeviceData/AITAlignerData.cs
  69. 0 112
      FrameworkLocal/Common/CommonData/DeviceData/AITAuxData.cs
  70. 0 152
      FrameworkLocal/Common/CommonData/DeviceData/AITBoostPumpData.cs
  71. 0 32
      FrameworkLocal/Common/CommonData/DeviceData/AITChillerData.cs
  72. 0 62
      FrameworkLocal/Common/CommonData/DeviceData/AITChillerData1.cs
  73. 0 98
      FrameworkLocal/Common/CommonData/DeviceData/AITConfigData.cs
  74. 0 106
      FrameworkLocal/Common/CommonData/DeviceData/AITCoolingControlData.cs
  75. 0 112
      FrameworkLocal/Common/CommonData/DeviceData/AITCylinderData.cs
  76. 0 55
      FrameworkLocal/Common/CommonData/DeviceData/AITDeviceData.cs
  77. 0 125
      FrameworkLocal/Common/CommonData/DeviceData/AITEmoData.cs
  78. 0 223
      FrameworkLocal/Common/CommonData/DeviceData/AITGasSplitterData.cs
  79. 0 308
      FrameworkLocal/Common/CommonData/DeviceData/AITHeaterData.cs
  80. 0 90
      FrameworkLocal/Common/CommonData/DeviceData/AITLidData.cs
  81. 0 303
      FrameworkLocal/Common/CommonData/DeviceData/AITMfcData.cs
  82. 0 684
      FrameworkLocal/Common/CommonData/DeviceData/AITNXD15Data.cs
  83. 0 21
      FrameworkLocal/Common/CommonData/DeviceData/AITPressureControlData.cs
  84. 0 135
      FrameworkLocal/Common/CommonData/DeviceData/AITPressureMeterData.cs
  85. 0 120
      FrameworkLocal/Common/CommonData/DeviceData/AITPressureSensorData.cs
  86. 0 130
      FrameworkLocal/Common/CommonData/DeviceData/AITPumpData.cs
  87. 0 257
      FrameworkLocal/Common/CommonData/DeviceData/AITRfData.cs
  88. 0 182
      FrameworkLocal/Common/CommonData/DeviceData/AITRfMatchData.cs
  89. 0 236
      FrameworkLocal/Common/CommonData/DeviceData/AITRfPowerData.cs
  90. 0 113
      FrameworkLocal/Common/CommonData/DeviceData/AITRfidReaderData.cs
  91. 0 75
      FrameworkLocal/Common/CommonData/DeviceData/AITSensorData.cs
  92. 0 204
      FrameworkLocal/Common/CommonData/DeviceData/AITServoMotorData.cs
  93. 0 169
      FrameworkLocal/Common/CommonData/DeviceData/AITSignalTowerData.cs
  94. 0 154
      FrameworkLocal/Common/CommonData/DeviceData/AITStatisticsData.cs
  95. 0 98
      FrameworkLocal/Common/CommonData/DeviceData/AITTempratureHumidityData.cs
  96. 0 144
      FrameworkLocal/Common/CommonData/DeviceData/AITThermalCoupleData.cs
  97. 0 252
      FrameworkLocal/Common/CommonData/DeviceData/AITThrottleValveData.cs
  98. 0 119
      FrameworkLocal/Common/CommonData/DeviceData/AITValveData.cs
  99. 0 245
      FrameworkLocal/Common/CommonData/DeviceData/AITVaporLineData.cs
  100. 0 0
      FrameworkLocal/Common/CommonData/DeviceData/AITWaferIdReaderData.cs

+ 0 - 112
FrameworkLocal/Common/Account/Account.cs

@@ -1,112 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Runtime.Serialization;
-using Aitex.Core.Util;
-
-namespace Aitex.Core.Account
-{
-        [Serializable]
-        public class Account
-        {
-            public string AccountId{get;set;}
-            public string Role{get;set;}
-            public string RealName{get;set;}
-            public string Touxian{get;set;}
-            public string Company{get;set;}
-            public string Department{get;set;}
-            public bool AccountStatus{get;set;} //enable or disable
-            public string Email{get;set;}
-            public string Telephone{get;set;}
-            public string Description{get;set;}
-            public string LastLoginTime{get;set;}
-            public string LastAccountUpdateTime{get;set;}
-            public string AccountCreationTime{get;set;}
-            public SerializableDictionary<string, ViewPermission> Permission{get;set;}
-            public string Md5Pwd { get; set; }
-            public string LoginIP { get; set; }
-
-            public string LoginId { get; set; }
-        }
-
-    [Serializable]
-        public class LoginResult
-        {
-            public bool ActSucc{get;set;}
-
-            public String SessionId{get;set;}
-
-            public Account AccountInfo{get;set;}
-
-            public String Description{get;set;}
-        }
-
-        [Serializable]
-        public class CreateAccountResult
-        {
-            public bool ActSucc{get;set;}
-            public String Description{set;get;}
-        }
-        [Serializable]
-        public class DeleteAccountResult
-        {
-            public bool ActSucc{get;set;}
-            public String Description{set;get;}
-        }
-
-        [Serializable]
-        public class UpdateAccountResult
-        {
-            public bool ActSucc { get; set; }
-            public String Description { set; get; }
-        }
- 
-        [Serializable]
-        public class ChangePwdResult
-        {
-            public bool ActSucc { get; set; }
-            public String Description { set; get; }
-        }
- 
-        [Serializable]
-        public class GetAccountListResult
-        {
-            public bool ActSuccess{get;set;}
-            public IEnumerable<Account> AccountList{get;set;}
-            public String Description{get;set;}
-        }
-
-        [Serializable]
-        public class GetAccountInfoResult
-        {
-            public bool ActSuccess{get;set;}
-            public Account AccountInfo{get;set;}
-            public String Description{get;set;}
-        }
-
-        [Serializable]
-        [DataContract]
-        public enum ViewPermission
-        {
-            [EnumMember]
-            Invisiable = 0x1,
-
-            [EnumMember]
-            Readonly = 0x2,
-
-            [EnumMember]
-            PartlyControl = 0x3,
-
-            [EnumMember]
-            FullyControl = 0x4,
-
-            /// <summary>
-            /// 设定ProcessView界面中的OP权限
-            /// </summary>
-            [EnumMember]
-            ProcessOPControl = 0x5,
-
-        }
- 
-}

+ 0 - 335
FrameworkLocal/Common/Account/AccountClient.cs

@@ -1,335 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Diagnostics.Eventing.Reader;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Aitex.Core.Account;
-using Aitex.Core.Util;
-using Aitex.Core.WCF;
-using MECF.Framework.Common.Account.Extends;
-using LoginResult = Aitex.Core.Account.LoginResult;
-
-namespace MECF.Framework.UI.Core.Accounts
-{
-    public class AccountClient : Singleton<AccountClient>
-    {
-        public bool InProcess { get; set; }
-        public Account CurrentUser { get; set; }
-
-        private IAccountService _service;
-        public IAccountService Service
-        {
-            get
-            {
-                if (_service == null)
-                {
-                    if (InProcess)
-                        _service = new AccountService();
-                    else
-                    {
-                        _service = new AccountServiceClient();
-                    }
-                }
-
-                return _service;
-            }
-        }
-    }
-
-    public class AccountServiceClient : ServiceClientWrapper<IAccountService>, IAccountService
-    {
-        public AccountServiceClient()
-            : base("Client_IAccountService", "AccountService")
-        {
-        }
-
-        /// <summary>
-        /// user login verify
-        /// </summary>
-        /// <param name="accountId"></param>
-        /// <param name="accountPwd"></param>
-        /// <returns></returns>
-        public LoginResult Login(string accountId, string accountPwd)
-        {
-            LoginResult result = null;
-            Invoke(svc => { result = svc.Login(accountId, accountPwd); });
-            return result;
-        }
-
-        LoginResult IAccountService.Login(string accountId, string password)
-        {
-            return Login(accountId, password);
-        }
-
-        /// <summary>
-        /// user logout system
-        /// </summary>
-        /// <param name="accountId"></param>
-        public void Logout(string accountId)
-        {
-            Invoke(svc => { svc.Logout(accountId); });
-        }
-
-        /// <summary>
-        /// get user data by accountId
-        /// </summary>
-        /// <param name="accountId"></param>
-        /// <returns></returns>
-        public GetAccountInfoResult GetAccountInfo(string accountId)
-        {
-            GetAccountInfoResult result = null;
-            Invoke(svc => { result = svc.GetAccountInfo(accountId); });
-            return result;
-        }
-
-        public void RegisterViews(List<string> views)
-        {
-
-            Invoke(svc => { svc.RegisterViews(views); });
-
-        }
-
-        /// <summary>
-        /// change account password
-        /// </summary>
-        /// <param name="accountId"></param>
-        /// <param name="newPassword"></param>       
-        public ChangePwdResult ChangePassword(string accountId, string newPassword)
-        {
-            ChangePwdResult result = null;
-            Invoke(svc => { result = svc.ChangePassword(accountId, newPassword); });
-            return result;
-        }
-
-        /// <summary>
-        /// create account
-        /// </summary>
-        /// <param name="newAccount"></param>
-        /// <returns></returns>
-        public CreateAccountResult CreateAccount(Account newAccount)
-        {
-            CreateAccountResult result = null;
-            Invoke(svc => { result = svc.CreateAccount(newAccount); });
-            return result;
-        }
-
-        /// <summary>
-        /// Administrator user calls this method to delete an account.
-        /// </summary>
-        /// <param name="account"></param>
-        /// <returns></returns>
-        public DeleteAccountResult DeleteAccount(string accountId)
-        {
-            DeleteAccountResult result = null;
-            Invoke(svc => { result = svc.DeleteAccount(accountId); });
-            return result;
-        }
-
-        /// <summary>
-        /// Update account information
-        /// </summary>
-        /// <param name="accountList"></param>
-        /// <returns></returns>
-        public UpdateAccountResult UpdateAccount(Account account)
-        {
-            UpdateAccountResult result = null;
-            Invoke(svc => { result = svc.UpdateAccount(account); });
-            return result;
-        }
-
-        /// <summary>
-        /// get account list
-        /// </summary>
-        /// <returns></returns>
-        public GetAccountListResult GetAccountList()
-        {
-            GetAccountListResult result = null;
-            Invoke(svc => { result = svc.GetAccountList(); });
-            return result;
-        }
-
-        /// <summary>
-        /// 获取当前所有已登录的用户列表
-        /// </summary>
-        /// <returns></returns>
-        public List<Account> GetLoginUsers()
-        {
-            List<Account> result = null;
-            Invoke(svc => { result = svc.GetLoginUsers(); });
-            return result;
-        }
-
-        /// <summary>
-        /// 强制注销用户登录
-        /// </summary>
-        /// <param name="accountId"></param>
-        /// <param name="kickoutReason"></param>
-        public void KickUserOut(string accountId, string kickoutReason)
-        {
-            Invoke(svc => { svc.KickUserOut(accountId, kickoutReason); });
-        }
-
-        /// <summary>
-        /// get all roles' perrmission
-        /// </summary>
-        /// <returns></returns>
-        public SerializableDictionary<string, SerializableDictionary<string, ViewPermission>> GetAllRolesPermission()
-        {
-            SerializableDictionary<string, SerializableDictionary<string, ViewPermission>> result = null;
-            Invoke(svc => { result = svc.GetAllRolesPermission(); });
-            return result;
-        }
-
-        /// <summary>
-        /// save all roles' permission
-        /// </summary>
-        /// <param name="data"></param>
-        /// <returns></returns>
-        public bool SaveAllRolesPermission(Dictionary<string, Dictionary<string, ViewPermission>> data)
-        {
-            bool result = false;
-            Invoke(svc => { result = svc.SaveAllRolesPermission(data); });
-            return result;
-        }
-
-        /// <summary>
-        /// get all view's list
-        /// </summary>
-        /// <returns></returns>
-        public SerializableDictionary<string, string> GetAllViewList()
-        {
-            SerializableDictionary<string, string> result = null;
-            Invoke(svc => { result = svc.GetAllViewList(); });
-            return result;
-        }
-
-        /// <summary>
-        /// Get all defined roles 
-        /// </summary>
-        /// <returns></returns>
-        public IEnumerable<string> GetAllRoles()
-        {
-            IEnumerable<string> result = null;
-            Invoke(svc => { result = svc.GetAllRoles(); });
-            return result;
-        }
-
-        /// <summary>
-        /// 检查账号是否仍旧有效
-        /// </summary>
-        /// <param name="accountId"></param>
-        public void CheckAlive(string accountId)
-        {
-            Invoke(svc => { svc.CheckAlive(accountId); });
-        }
-
-        /// <summary>
-        /// 获取流程视图的许可
-        /// </summary>
-        /// <returns></returns>
-        public string GetProcessViewPermission()
-        {
-            string result = null;
-            Invoke(svc => { result = svc.GetProcessViewPermission(); });
-            return result;
-        }
-
-        /// <summary>
-        /// 保存流程视图的许可
-        /// </summary>
-        /// <param name="viewXML"></param>
-        /// <returns></returns>
-        public bool SaveProcessViewPermission(string viewXML)
-        {
-            bool result = false;
-            Invoke(svc => { result = svc.SaveProcessViewPermission(viewXML); });
-            return result;
-        }
-
-        public List<Role> GetAllRoleList()
-        {
-            var result = new List<Role>();
-            Invoke(svc => { result = svc.GetAllRoleList(); });
-            return result;
-        }
-
-        public List<AccountEx> GetAllAccountExList()
-        {
-            var result = new List<AccountEx>();
-            Invoke(svc => { result = svc.GetAllAccountExList(); });
-            return result;
-        }
-
-        public List<Role> GetRoles()
-        {
-            var result = new List<Role>();
-            Invoke(svc => { result = svc.GetRoles(); });
-            return result;
-        }
-
-        public List<AccountEx> GetAccounts()
-        {
-            var result = new List<AccountEx>();
-            Invoke(svc => { result = svc.GetAccounts(); });
-            return result;
-        }
-
-        public bool UpdateRole(Role p_newRole)
-        {
-            bool result = false;
-            Invoke(svc => { result = svc.UpdateRole(p_newRole); });
-            return result;
-        }
-
-        public bool DeleteRole(string p_strRoleID)
-        {
-            bool result = false;
-            Invoke(svc => { result = svc.DeleteRole(p_strRoleID); });
-            return result;
-        }
-
-        public List<AppMenu> GetMenusByRole(string roleid, List<AppMenu> menulist)
-        {
-            var result = new List<AppMenu>();
-            Invoke(svc => { result = svc.GetMenusByRole(roleid, menulist); });
-            return result;
-        }
-
-        public int GetMenuPermission(string roleId, string menuName)
-        {
-            int result = 0;
-            Invoke(svc => { result = svc.GetMenuPermission(roleId, menuName); });
-            return result;
-        }
-
-        public bool UpdateAccountEx(AccountEx account)
-        {
-            bool result = false;
-            Invoke(svc => { result = svc.UpdateAccountEx(account); });
-            return result;
-        }
-
-        public bool DeleteAccountEx(string accountId)
-        {
-            bool result = false;
-            Invoke(svc => { result = svc.DeleteAccountEx(accountId); });
-            return result;
-        }
-
-        public LoginResult LoginEx(string accountId, string password, string role)
-        {
-            var result = new LoginResult();
-            Invoke(svc => { result = svc.LoginEx(accountId, password, role); });
-            return result;
-        }
-
-        public void LogoutEx(string accountId, string loginId)
-        {
-
-            Invoke(svc => { svc.LogoutEx(accountId, loginId); });
-
-        }
-    }
-}
-

+ 0 - 152
FrameworkLocal/Common/Account/AccountExManager.cs

@@ -1,152 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-using Aitex.Common.Util;
-using Aitex.Core.Account;
-using Aitex.Core.RT.Event;
-using Aitex.Core.RT.Log;
-using Aitex.Core.RT.SCCore;
-using Aitex.Core.Util;
-using Aitex.Core.WCF;
-using MECF.Framework.Common.Account.Extends;
-using MECF.Framework.UI.Core.Accounts;
-
-namespace MECF.Framework.Common.Account
-{
-    public enum AuthorizeResult
-    {
-        None = -1,
-        WrongPwd = 1,
-        HasLogin = 2,
-        NoMatchRole = 3,
-        NoSession = 4,
-        NoMatchUser = 5
-    }
-
-    public class AccountExManager : Singleton<AccountExManager>
-    {
-        public RoleLoader RoleLoader { get; private set; }
-
-        Dictionary<string /*account id , login name*/, AccountEx> _loginUserList = new Dictionary<string, AccountEx>();
- 
-        private string _scAccountFile = PathManager.GetCfgDir() + "Account//Account.xml";
-        private string _scAccountLocalFile = PathManager.GetCfgDir() + "Account//_Account.xml";
- 
-        public AccountExManager()
-        {
-
-        }
-
-        public void Initialize(bool enableService)
-        {
-            if (!File.Exists(_scAccountLocalFile))
-            {
-                if (!File.Exists(_scAccountFile))
-                {
-                    throw  new ApplicationException($"Can not initialize account configuration file, {_scAccountFile}");
-                }
-
-                File.Copy(_scAccountFile, _scAccountLocalFile);
-                Thread.Sleep(10);
-            }
-
-            this.RoleLoader = new RoleLoader(_scAccountLocalFile);
-
-            this.RoleLoader.Load();
-
-            if (enableService)
-            {
-                Singleton<WcfServiceManager>.Instance.Initialize(new Type[]
-                {
-                    typeof(AccountService)
-                });
-            }
-        }
-
-        public LoginResult AuthLogin(string userid, string password, string role)
-        {
-            LoginResult result = new LoginResult() {ActSucc = true, SessionId = Guid.NewGuid().ToString() };
- 
-            try
-            {
-                var tempAccoutList = RoleLoader.AccountList;
-                var user = tempAccoutList.FirstOrDefault(f => f.LoginName == userid);
-                if (user == null)
-                {
-                    result.ActSucc = false;
-                    result.Description = AuthorizeResult.NoMatchUser.ToString();
-                }
-                else
-                {
-                    foreach (AccountEx ac in tempAccoutList)
-                    {
-                        if (ac.LoginName == userid && ac.Password == password)
-                        {
-                            foreach (string r in ac.RoleIDs)
-                            {
-                                if (r == role || userid == "AMTEadmin")
-                                {
-                                    result.ActSucc = true;
-                                    result.Description = AuthorizeResult.None.ToString();
-
-                                    foreach (var accountEx in _loginUserList)
-                                    {
-                                        if (SC.ContainsItem("System.AllowMultiClientLogin") 
-                                            && SC.GetValue<bool>("System.AllowMultiClientLogin")
-                                            && (accountEx.Value.LoginName!= userid))
-                                        {
-                                            continue;
-                                        }
-
-                                        EV.PostKickoutMessage(accountEx.Value.LoginId);
-                                    }
-
-                                    _loginUserList[userid] = ac;
-                                    _loginUserList[userid].LoginId = result.SessionId;
-
-                                    return result;
-                                }
-                                else
-                                {
-                                    result.ActSucc = false;
-                                    result.Description = AuthorizeResult.NoMatchRole.ToString();
-                                }
-                            }
-                            return result;
-                        }
-                        else
-                        {
-                            result.ActSucc = false;
-                            result.Description = AuthorizeResult.WrongPwd.ToString();
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                LOG.Error(ex.Message, ex);
-            }
-            return result;
-        }
-
-        internal void Logout(string accountId, string loginId)
-        {
-            foreach (var key in _loginUserList.Keys)
-            {
-                if (accountId == key)
-                {
-                    if (_loginUserList[key].LoginId == loginId)
-                    {
-                        _loginUserList.Remove(key);
-                        break;
-                    }
-                }
-            }
-             
-        }
-    }
-}

+ 0 - 885
FrameworkLocal/Common/Account/AccountManager.cs

@@ -1,885 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Configuration;
-using System.IO;
-using System.Reflection;
-using System.Security.Cryptography;
-using System.Text;
-using System.Xml;
-using Aitex.Common.Util;
-using Aitex.Core.Util;
-using Aitex.Core.RT.Log;
-using Aitex.Core.Utilities;
-using Aitex.Core.RT.Event;
-
-namespace Aitex.Core.Account
-{
-    public sealed class AccountManager
-    {
-        static Dictionary<string, Tuple<Guid, DateTime, string>> _userList;  //已登录用户和客户端Guid之间的映射表
-        private static string _accountPath;
-        private static string _rolePath;                              //账号信息所对应的XML文件路径
-        private static string _viewPath;
-        private static XmlDocument _accountXml;  //"Account.xml"
-        private static XmlDocument _roleXml;     //"Roles.xml"
-        private static XmlDocument _viewsXml;
-        const int MAX_LOGIN_USER_NUM = 16;
-
-        public static string SerialNumber { get; private set; }
-        public static string Module { get; private set; }
-
-
-        /// <summary>
-        /// 静态构造函数
-        /// </summary>
-        static AccountManager()
-        {
-            SerialNumber = "001";
-            Module = "System";
-
-            try
-            {
-                _userList = new Dictionary<string, Tuple<Guid, DateTime, string>>();
-                _accountPath = Path.Combine(PathManager.GetAccountFilePath(), "Account.xml");
-                _rolePath = Path.Combine(PathManager.GetAccountFilePath(), "Roles.xml");
-                _viewPath = Path.Combine(PathManager.GetAccountFilePath(), "Views.xml");
-                _accountXml = new XmlDocument();
-                _roleXml = new XmlDocument();
-
-                //检查Roles.xml是否存在,如果不存在则自动创建
-                FileInfo roleFileInfo = new System.IO.FileInfo(_rolePath);
-                if (!roleFileInfo.Directory.Exists)
-                    roleFileInfo.Directory.Create();
-                if (!roleFileInfo.Exists)
-                {
-                    _roleXml.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\"?><Aitex><Roles></Roles></Aitex>");
-                    Save(_roleXml, _rolePath);
-                }
-                else
-                {
-                    _roleXml.Load(_rolePath);
-                }
-                //检查Account.xml文件是否存在,如果不存在则自动创建
-                FileInfo fileInfo = new System.IO.FileInfo(_accountPath);
-                if (!fileInfo.Directory.Exists)
-                    fileInfo.Directory.Create();
-                if (!fileInfo.Exists)
-                {
-                    _accountXml.LoadXml("<?xml version='1.0' encoding='utf-8' ?><AccountManagement></AccountManagement>");
-                    Save(_accountXml, _accountPath);
-                }
-                else
-                {
-                    _accountXml.Load(_accountPath);
-                }
-
-                //检查views.xml文件是否存在,如果不存在则自动创建
-                _viewsXml = new XmlDocument();
-                fileInfo = new System.IO.FileInfo(_viewPath);
-                if (!fileInfo.Directory.Exists)
-                    fileInfo.Directory.Create();
-                if (!fileInfo.Exists)
-                {
-                    _viewsXml.LoadXml("<?xml version='1.0' encoding='utf-8' ?><root><Views></Views></root>");
-                    Save(_viewsXml, _viewPath);
-                }
-                else
-                {
-                    _viewsXml.Load(_viewPath);
-                }
-
-                string recipePermissionFile = System.IO.Path.Combine(PathManager.GetCfgDir(), "RolePermission.xml");
-
-                if (!File.Exists(recipePermissionFile))
-                {
-                    XmlDocument xmlRecipeFormat = new XmlDocument();
-                    xmlRecipeFormat.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><Aitex></Aitex>");
-                    xmlRecipeFormat.Save(recipePermissionFile);
-                }
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-
-            }
-
-
-        }
-
-        /// <summary>
-        /// 获取当前登录的用户列表
-        /// </summary>
-        /// <returns></returns>
-        public static List<Account> GetLoginUserList()
-        {
-            List<Account> userList = new List<Account>();
-            foreach (var accountId in _userList.Keys)
-            {
-                Account temp = GetAccountInfo(accountId).AccountInfo;
-                temp.LoginIP = _userList[accountId].Item3;
-                userList.Add(temp);
-            }
-            return userList;
-        }
-
-        public static void RegisterViews(List<string> views)
-        {
-            try
-            {
-                var nodes = _viewsXml.SelectSingleNode("/root/Views");
-
-                foreach (var view in views)
-                {
-                    if (nodes.SelectSingleNode(string.Format("View[@Name='{0}']", view)) != null)
-                        continue;
-
-                    XmlElement node = _viewsXml.CreateElement("View");
-                    node.SetAttribute("Name", view);
-                    node.SetAttribute("Description", view);
-                    nodes.AppendChild(node);
-                }
-                Save(_viewsXml, _viewPath);
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-            }
-        }
-
-        /// <summary>
-        /// add xml signature here, during xml save
-        /// </summary>
-        private static void Save(XmlDocument doc, string path)
-        {
-            doc.Save(path);                 //write to xml file
-            FileSigner.Sign(path);          //write xml signature
-
-            GetAccountList();
-        }
-
-        /// <summary>
-        /// user login verify
-        /// </summary>
-        /// <param name="accountId"></param>
-        /// <param name="password"></param>
-        /// <returns></returns>
-        public static LoginResult Login(string accountId, string accountPwd)
-        {
-            try
-            {
-                LOG.Write(string.Format("用户{0}尝试登录系统", accountId));
-                accountId = accountId.ToLower();                                            //账号大小写不敏感,先行转换为小写
-                var ret = new LoginResult();
-                if (accountId == "su" && accountPwd == "su")                           //判断是否为固定的秘密账号
-                {
-                    ret.ActSucc = true;
-                    ret.AccountInfo = GetAccountInfo("admin").AccountInfo;
-                    ret.SessionId = Guid.NewGuid().ToString();
-                }
-                else if (!FileSigner.IsValid(_accountPath))
-                {
-                    ret.Description = "File signer corrupt";
-                    ret.ActSucc = false;
-                }
-                else if (_userList.ContainsKey(accountId))
-                {
-                    var accountA = GetAccountInfo(accountId).AccountInfo;
-                    if (accountA.Md5Pwd == Md5Helper.GetMd5Hash(accountPwd))
-                    {
-                        ret.ActSucc = true;
-                        ret.Description = string.Format("{0} login succeed", accountId);
-                        ret.AccountInfo = accountA;
-                        ret.SessionId = Guid.NewGuid().ToString();
-                    }
-                    else
-                    {
-                        ret.ActSucc = false;
-                        ret.Description = string.Format("account {0} already login", accountId);
-                    }
-                }
-                else if (_userList.Count >= MAX_LOGIN_USER_NUM && accountId != "admin")
-                {
-                    ret.ActSucc = false;
-                    ret.Description = string.Format("more than {0} users login", MAX_LOGIN_USER_NUM);
-                }
-                else
-                {
-                    var account = GetAccountInfo(accountId).AccountInfo;
-                    if (account == null)
-                    {
-                        ret.ActSucc = false;
-                        ret.Description = string.Format("{0} not exist", accountId);
-                    }
-                    else if (account.Md5Pwd != Md5Helper.GetMd5Hash(accountPwd)
-                        && (account.Role != "Admin" || accountPwd != Md5Helper.GenerateDynamicPassword(SerialNumber)))                      //检查账号密码是否正确
-                    {
-                        ret.ActSucc = false;
-                        ret.Description = string.Format("password error");
-                    }
-                    else if (!account.AccountStatus)
-                    {
-                        ret.ActSucc = false;
-                        ret.Description = string.Format("account {0} is disabled", accountId);
-                    }
-                    else
-                    {
-                        //if(accountId != "admin" && accountId != "su")
-                        _userList.Add(accountId, new Tuple<Guid, DateTime, string>(NotificationService.ClientGuid, DateTime.Now, NotificationService.ClientHostName));
-                        ret.ActSucc = true;
-                        ret.Description = string.Format("{0} login succeed", accountId);
-                        ret.AccountInfo = account;
-                        ret.SessionId = Guid.NewGuid().ToString();
-
-                        EV.PostMessage(Module, EventEnum.UserLoggedIn, accountId);
-
-                    }
-                }
-                return ret;
-            }
-            catch (Exception ex)
-            {
-                string msg = string.Format("account system inner exception", accountId);
-                LOG.Write(ex, msg);
-                return new LoginResult() { ActSucc = false, Description = msg };
-            }
-        }
-
-        /// <summary>
-        /// 用户注销
-        /// </summary>
-        /// <param name="accountId"></param>
-        public static void Logout(string accountId)
-        {
-            try
-            {
-                LOG.Write(string.Format("用户{0}注销登录", accountId));
-                accountId = accountId.ToLower();
-                if (_userList.ContainsKey(accountId))
-                {
-                    _userList.Remove(accountId);
-                }
-
-                EV.PostMessage("System", EventEnum.UserLoggedOff, accountId);
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex, string.Format("注销用户{0}发生异常", accountId));
-            }
-        }
-
-        /// <summary>
-        /// 用户被强制注销的理由
-        /// </summary>
-        /// <param name="accountId"></param>
-        /// <param name="kickOutReason"></param>
-        public static void Kickout(string accountId, string kickOutReason)
-        {
-            try
-            {
-                LOG.Write(string.Format("用户{0}强制注销登录", accountId));
-                accountId = accountId.ToLower();
-                if (_userList.ContainsKey(accountId))
-                {
-                    EV.PostKickoutMessage(string.Format("用户{0}强制注销登录,{1}", accountId, kickOutReason));
-                    _userList.Remove(accountId);
-                }
-
-                EV.PostMessage(Module, EventEnum.UserLoggedOff, accountId);
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex, string.Format("强制注销用户{0}发生异常", accountId));
-            }
-        }
-
-        /// <summary>
-        /// 返回指定用户的账号信息
-        /// </summary>
-        /// <param name="accountId"></param>
-        /// <returns></returns>
-        public static GetAccountInfoResult GetAccountInfo(string accountId)
-        {
-            try
-            {
-                //LOG.Write(string.Format("获取账号信息{0}", accountId));
-                accountId = accountId.ToLower();                                        //账号转小写
-                GetAccountInfoResult ret = new GetAccountInfoResult();
-                if (!FileSigner.IsValid(_accountPath))                                         //检查账号文件的数字签名
-                {
-                    ret.Description = "账号文件数字签名校验失败";
-                    ret.ActSuccess = false;
-                }
-                else
-                {
-                    XmlElement userNode = GetAccountNode(accountId);
-                    if (userNode == null)
-                    {
-                        if (accountId == "admin")                                       //如果没有admin账号,则创建默认的admin账号
-                        {
-                            Account adminAccount = new Account()
-                            {
-                                Role = "Admin",
-                                Permission = GetSingleRolePermission("Admin"),
-                                AccountId = "admin",
-                                RealName = "admin",
-                                Email = "admin@admin.com",
-                                Telephone = "86-21-88886666",
-                                Touxian = "Admin",
-                                Company = "MY Tech",
-                                Department = "IT",
-                                Description = "Administrator,拥有用户权限修改、菜单修改,定序器修改等权限.",
-                                AccountStatus = true,
-                                Md5Pwd = Md5Helper.GetMd5Hash("admin")
-                            };
-                            CreateAccount(adminAccount);
-                            ret.ActSuccess = true;
-                            ret.AccountInfo = adminAccount;
-                            ret.Description = string.Format("成功获取账号信息{0}", accountId);
-                        }
-                        else
-                        {
-                            ret.Description = string.Format("账号{0}不存在", accountId);
-                            ret.ActSuccess = false;
-                        }
-                    }
-                    else
-                    {
-                        ret.AccountInfo = new Account
-                        {
-                            Role = userNode.SelectSingleNode("Role").InnerText,
-                            Permission = GetSingleRolePermission(accountId == "admin" ? "Admin" : userNode.SelectSingleNode("Role").InnerText),
-                            AccountId = accountId,
-                            RealName = userNode.SelectSingleNode("RealName").InnerText,
-                            Email = userNode.SelectSingleNode("Email").InnerText,
-                            Telephone = userNode.SelectSingleNode("Telephone").InnerText,
-                            Touxian = userNode.SelectSingleNode("Touxian").InnerText,
-                            Company = userNode.SelectSingleNode("Company").InnerText,
-                            Department = userNode.SelectSingleNode("Department").InnerText,
-                            Description = userNode.SelectSingleNode("Description").InnerText,
-                            AccountStatus = (0 == String.Compare(userNode.SelectSingleNode("AccountState").InnerText, "Enable", true)),
-                            AccountCreationTime = userNode.SelectSingleNode("CreationTime").InnerText,
-                            LastAccountUpdateTime = userNode.SelectSingleNode("LastUpdateTime").InnerText,
-                            LastLoginTime = userNode.SelectSingleNode("LastLoginTime").InnerText,
-                            Md5Pwd = userNode.SelectSingleNode("Password").InnerText,
-                        };
-
-                        ret.Description = string.Format("获取账号{0}成功", accountId);
-                        ret.ActSuccess = true;
-                    }
-                }
-                return ret;
-            }
-            catch (Exception ex)
-            {
-                string msg = string.Format("获取账号{0}发生异常", accountId);
-                LOG.Write(ex, msg);
-                return new GetAccountInfoResult() { ActSuccess = false, Description = msg };
-            }
-        }
-
-        /// <summary>
-        /// change account password
-        /// </summary>
-        /// <param name="accountId"></param>
-        /// <param name="newPassword"></param>
-        public static ChangePwdResult ChangePassword(string accountId, string newPassword)
-        {
-            try
-            {
-                LOG.Write(string.Format("修改账号{0}的密码", accountId));
-                accountId = accountId.ToLower();
-                ChangePwdResult ret = new ChangePwdResult();
-
-                if (!FileSigner.IsValid(_accountPath))                                         //检查账号文件的数字签名
-                {
-                    ret.Description = "修改密码失败,账号文件数字签名损坏!";
-                    ret.ActSucc = false;
-                }
-                else
-                {
-                    XmlElement userNode = GetAccountNode(accountId);
-                    if (userNode == null)
-                    {
-                        ret.Description = string.Format("账号{0}不存在", accountId);
-                        ret.ActSucc = false;
-                    }
-                    else
-                    {
-                        userNode.SelectSingleNode("Password").InnerText = Md5Helper.GetMd5Hash(newPassword);
-                        Save(_accountXml, _accountPath);
-                        ret.Description = "修改密码成功!";
-                        ret.ActSucc = true;
-
-                        EV.PostMessage(Module, EventEnum.PasswordChanged, accountId);
-                    }
-                }
-                return ret;
-            }
-            catch (Exception ex)
-            {
-                var msg = string.Format("修改账号{0}的密码失败", accountId);
-                LOG.Write(ex, msg);
-                return new ChangePwdResult() { ActSucc = false, Description = msg };
-            }
-        }
-
-        /// <summary>
-        /// create account
-        /// </summary>
-        /// <param name="newAccount"></param>
-        /// <returns></returns>
-        public static CreateAccountResult CreateAccount(Account newAccount)
-        {
-            try
-            {
-                LOG.Write(string.Format("创建账号{0}", newAccount.AccountId));
-                CreateAccountResult ret = new CreateAccountResult();
-                if (newAccount == null)
-                {
-                    ret.Description = "账号有误";
-                    ret.ActSucc = false;
-                }
-                else if (!FileSigner.IsValid(_accountPath))                                             //account xml file signer verify
-                {
-                    ret.Description = string.Format("创建账号失败,数字签名损坏!");
-                    ret.ActSucc = false;
-                }
-                else
-                {
-                    if (GetAccountNode(newAccount.AccountId) != null)                       //account has been existed
-                    {
-                        ret.Description = string.Format("创建账号失败,账号 {0} 已存在!", newAccount.AccountId);
-                        ret.ActSucc = false;
-                    }
-                    else
-                    {
-                        XmlElement userNode = _accountXml.CreateElement("Account");
-                        userNode.SetAttribute("AccountId", newAccount.AccountId.ToLower());
-                        _accountXml.DocumentElement.AppendChild(userNode);
-
-                        XmlElement subNode = _accountXml.CreateElement("RealName");
-                        subNode.InnerText = newAccount.RealName;
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("Role");
-                        subNode.InnerText = newAccount.Role.ToString();
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("Password");
-                        subNode.InnerText = Md5Helper.GetMd5Hash(newAccount.AccountId);//default new create account's password same as accountId
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("AccountState");//defualt new create account's state "Enable"
-                        subNode.InnerText = newAccount.AccountStatus ? "Enable" : "Disable";
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("Email");
-                        subNode.InnerText = newAccount.Email;
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("Telephone");
-                        subNode.InnerText = newAccount.Telephone;
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("Touxian");
-                        subNode.InnerText = newAccount.Touxian;
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("Company");
-                        subNode.InnerText = newAccount.Company;
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("Department");
-                        subNode.InnerText = newAccount.Department;
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("Description");
-                        subNode.InnerText = newAccount.Description;
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("CreationTime");
-                        subNode.InnerText = DateTime.Now.ToString();
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("LastLoginTime");
-                        subNode.InnerText = string.Empty;
-                        userNode.AppendChild(subNode);
-
-                        subNode = _accountXml.CreateElement("LastUpdateTime");
-                        subNode.InnerText = string.Empty;
-                        userNode.AppendChild(subNode);
-
-                        Save(_accountXml, _accountPath);//save to xml file
-
-                        ret.Description = string.Format("创建新账号{0}成功", newAccount.AccountId);
-                        ret.ActSucc = true;
-
-                        EV.PostMessage(Module, EventEnum.AccountCreated, newAccount.AccountId);
-                    }
-                }
-                return ret;
-            }
-            catch (Exception ex)
-            {
-                var msg = string.Format("创建账号{0}失败", newAccount.AccountId);
-                LOG.Write(ex, msg);
-                return new CreateAccountResult() { ActSucc = false, Description = msg };
-            }
-        }
-
-        /// <summary>
-        /// Administrator user calls this method to delete an account.
-        /// </summary>
-        /// <param name="account"></param>
-        /// <returns></returns>
-        public static DeleteAccountResult DeleteAccount(string accountId)
-        {
-            try
-            {
-                LOG.Write(string.Format("删除账号{0}", accountId));
-                accountId = accountId.ToLower();
-                DeleteAccountResult ret = new DeleteAccountResult();
-                if (accountId == "admin")
-                {
-                    ret.Description = "Admin\'admin\'账号不能删除";
-                    ret.ActSucc = false;
-                }
-                else if (!FileSigner.IsValid(_accountPath))//account xml file signer verify
-                {
-                    ret.Description = "删除账号失败,账号文件数字签名损坏!";
-                    ret.ActSucc = false;
-                }
-                else
-                {
-                    XmlElement accountNode = GetAccountNode(accountId);
-                    if (accountNode == null)//account has been existed
-                    {
-                        ret.Description = string.Format("删除账号 {0} 失败,账号不存在!", accountId);
-                        ret.ActSucc = false;
-                    }
-                    else
-                    {
-                        _accountXml.DocumentElement.RemoveChild(accountNode);//remove account node
-                        Save(_accountXml, _accountPath);//save to xml file
-                        ret.Description = string.Format("删除账号 {0} 成功!", accountId);
-                        ret.ActSucc = true;
-
-
-                        EV.PostMessage(Module, EventEnum.AccountDeleted, accountId);
-                    }
-                }
-                return ret;
-            }
-            catch (Exception ex)
-            {
-                var msg = string.Format("删除账号{0}发生异常", accountId);
-                LOG.Write(ex, msg);
-                return new DeleteAccountResult() { ActSucc = false, Description = msg };
-            }
-        }
-
-        /// <summary>
-        /// Update account information
-        /// </summary>
-        /// <param name="accountList"></param>
-        /// <returns></returns>
-        public static UpdateAccountResult UpdateAccount(Account account)
-        {
-            try
-            {
-                UpdateAccountResult ret = new UpdateAccountResult();
-                if (account == null)
-                {
-                    ret.Description = "账号有误";
-                    ret.ActSucc = false;
-                }
-                else if (!FileSigner.IsValid(_accountPath))                                    //account xml file signer verify
-                {
-                    ret.Description = string.Format("更新账号资料失败,账号文件数字签名损坏!");
-                    ret.ActSucc = false;
-                }
-                else
-                {
-                    XmlElement userNode = GetAccountNode(account.AccountId.ToLower());
-                    if (userNode == null)
-                    {
-                        ret.Description = string.Format("更新账号 {0} 失败,账号不存在!", account.AccountId);
-                        ret.ActSucc = false;
-                    }
-                    else
-                    {
-                        userNode.SelectSingleNode("RealName").InnerText = account.RealName;
-                        userNode.SelectSingleNode("Role").InnerText = account.AccountId.ToLower() == "admin" ? "Admin" : account.Role.ToString();
-                        userNode.SelectSingleNode("AccountState").InnerText = account.AccountStatus ? "Enable" : "Disable";
-                        userNode.SelectSingleNode("Email").InnerText = account.Email;
-                        userNode.SelectSingleNode("Telephone").InnerText = account.Telephone;
-                        userNode.SelectSingleNode("Touxian").InnerText = account.Touxian;
-                        userNode.SelectSingleNode("Company").InnerText = account.Company;
-                        userNode.SelectSingleNode("Department").InnerText = account.Department;
-                        userNode.SelectSingleNode("Description").InnerText = account.Description;
-                        userNode.SelectSingleNode("CreationTime").InnerText = account.AccountCreationTime;
-                        userNode.SelectSingleNode("LastLoginTime").InnerText = account.LastLoginTime;
-                        userNode.SelectSingleNode("LastUpdateTime").InnerText = account.LastAccountUpdateTime;
-                        Save(_accountXml, _accountPath);//save to xml file
-                        ret.Description = string.Format("成功更新 {0} 的账号资料!", account.AccountId);
-                        ret.ActSucc = true;
-
-                        EV.PostMessage(Module, EventEnum.AccountChanged, account.AccountId);
-
-                    }
-                }
-                return ret;
-            }
-            catch (Exception ex)
-            {
-                var msg = string.Format("更新账号{0}资料发生异常", account.AccountId);
-                LOG.Write(ex, msg);
-                return new UpdateAccountResult() { ActSucc = false, Description = msg };
-            }
-        }
-
-        public static GetAccountListResult Accounts { get; private set; }
-
-        /// <summary>
-        /// get account list
-        /// </summary>
-        /// <returns></returns>
-        public static GetAccountListResult GetAccountList()
-        {
-            try
-            {
-                LOG.Write("获取所有的账号信息列表");
-                GetAccountListResult ret = new GetAccountListResult();
-                if (!FileSigner.IsValid(_accountPath))                                     //account xml file signer verify
-                {
-                    ret.Description = "获取账号列表失败,账号文件数字签名文件损坏!";
-                    ret.ActSuccess = false;
-                    ret.AccountList = null;
-                }
-                else
-                {
-                    XmlNodeList userNodeList = _accountXml.SelectNodes("AccountManagement/Account");
-                    List<Account> accountList = new List<Account>();
-                    foreach (XmlNode userNode in userNodeList)
-                    {
-                        accountList.Add(GetAccountInfo(userNode.Attributes["AccountId"].Value).AccountInfo);
-                    }
-                    ret.AccountList = accountList;
-                    ret.Description = "成功获取账号列表!";
-                    ret.ActSuccess = true;
-                }
-
-                Accounts = ret;
-
-                return ret;
-            }
-            catch (Exception ex)
-            {
-                var msg = "获取账号列表发生异常";
-                LOG.Write(ex, msg);
-                return new GetAccountListResult() { AccountList = null, ActSuccess = false, Description = msg };
-            }
-        }
-
-        /// <summary>
-        /// 定期检查账号是否Active
-        /// 如果当前账号已被Promaxy注销,那么Promaxy将发送KickOut事件给该客户端
-        /// 如果当前账号连续超过1min没有消息响应,那么Promaxy将该用户自动退出
-        /// </summary>
-        /// <param name="accountId"></param>
-        public static void CheckAlive(string accountId)
-        {
-            try
-            {
-                if (_userList.ContainsKey(accountId))
-                {
-                    _userList[accountId] = new Tuple<Guid, DateTime, string>(_userList[accountId].Item1, DateTime.Now, _userList[accountId].Item3);
-                }
-                else
-                {
-                    //当前用户已被注销,发送客户端注销通知        
-                    EV.PostKickoutMessage(string.Format("账号{0}已在服务器上注销", accountId));
-
-                }
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-            }
-        }
-
-        /// <summary>
-        /// get specified account xml node
-        /// </summary>
-        /// <param name="accountId"></param>
-        /// <returns></returns>
-        private static XmlElement GetAccountNode(string accountId)
-        {
-            XmlNode ndl = _accountXml.SelectSingleNode(string.Format("/AccountManagement/Account[@AccountId='{0}']", accountId.ToLower()));
-            return (XmlElement)ndl;
-        }
-
-
-
-        #region view permission 
-        /// <summary>
-        /// 获取系统注册的所有视图列表
-        /// </summary>
-        /// <returns></returns>
-        public static SerializableDictionary<string, string> GetAllViewList()
-        {
-            var viewList = new SerializableDictionary<string, string>();
-            try
-            {
-                var xml = new XmlDocument();
-                var xmlPath = Path.Combine(PathManager.GetAccountFilePath(), "Views.xml");
-                xml.Load(xmlPath);
-                var nodes = xml.SelectNodes("/root/Views/View");
-                if (nodes != null)
-                {
-                    foreach (XmlElement node in nodes)
-                    {
-                        viewList.Add(node.Attributes["Name"].Value, node.Attributes["Description"].Value);
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-                viewList = new SerializableDictionary<string, string>();
-            }
-            return viewList;
-        }
-
-        /// <summary>
-        /// Save group definition
-        /// </summary>
-        /// <param name="data"></param>
-        /// <returns></returns>
-        public static bool SaveAllRolesPermission(Dictionary<string, Dictionary<string, ViewPermission>> data)
-        {
-            try
-            {
-                var rolesNode = _roleXml.SelectSingleNode("/Aitex/Roles") as XmlElement;
-                rolesNode.RemoveAll();
-                foreach (var item in data)
-                {
-                    if (item.Key == "Admin") continue;
-                    var newRoleNode = _roleXml.CreateElement("Role");
-                    newRoleNode.SetAttribute("Name", item.Key);
-                    rolesNode.AppendChild(newRoleNode);
-                    foreach (var view in data[item.Key].Keys)
-                    {
-                        var newViewNode = _roleXml.CreateElement("View");
-                        newRoleNode.AppendChild(newViewNode);
-                        newViewNode.SetAttribute("Name", view);
-                        newViewNode.SetAttribute("Permission", data[item.Key][view].ToString());
-                    }
-                }
-                _roleXml.Save(_rolePath);
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-                return false;
-            }
-            return true;
-        }
-
-
-        /// <summary>
-        /// 获取当前系统定义的分组
-        /// </summary>
-        /// <returns></returns>
-        public static IEnumerable<string> GetAllRoles()
-        {
-            List<string> roles = new List<string>();
-            try
-            {
-                var nodes = _roleXml.SelectNodes("/Aitex/Roles/Role");
-                foreach (XmlElement node in nodes)
-                {
-                    roles.Add(node.Attributes["Name"].Value);
-                }
-                //如果没有管理员组,默认添加管理员组
-                if (!roles.Contains("Admin"))
-                {
-                    roles.Add("Admin");
-                }
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-                roles = new List<string>();
-            }
-            return roles;
-        }
-
-
-        /// <summary>
-        /// 获取指定用户角色的权限设定
-        /// </summary>
-        /// <param name="roleName">指定用户的角色名</param>
-        /// <returns></returns>
-        public static SerializableDictionary<string, ViewPermission> GetSingleRolePermission(string roleName)
-        {
-            var rolePermission = new SerializableDictionary<string, ViewPermission>();
-            try
-            {
-                var viewDic = GetAllViewList();
-                if (roleName == "Admin")
-                {
-                    foreach (var view in viewDic)
-                    {
-                        rolePermission.Add(view.Key, ViewPermission.FullyControl);
-                    }
-                }
-                else
-                {
-                    /* RoleName, ViewName, ViewPermission */
-                    var nodes = _roleXml.SelectSingleNode(string.Format("/Aitex/Roles/Role[@Name='{0}']", roleName));
-                    if (nodes != null)
-                    {
-                        foreach (XmlElement viewNode in nodes)
-                        {
-                            var viewName = viewNode.Attributes["Name"].Value;
-                            var permission = viewNode.Attributes["Permission"].Value;
-                            if (viewDic.ContainsKey(viewName))
-                            {
-                                rolePermission.Add(viewName, (ViewPermission)Enum.Parse(typeof(ViewPermission), permission, true));
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-                rolePermission = new SerializableDictionary<string, ViewPermission>();
-            }
-            return rolePermission;
-        }
-
-        /// <summary>
-        /// 获取所有用户角色的权限设定
-        /// </summary>
-        /// <returns></returns>
-        public static SerializableDictionary<string, SerializableDictionary<string, ViewPermission>> GetAllRolesPermission()
-        {
-            try
-            {
-                var rolePermission = new SerializableDictionary<string, SerializableDictionary<string, ViewPermission>>();
-                foreach (var role in GetAllRoles())
-                    rolePermission.Add(role, GetSingleRolePermission(role));
-                return rolePermission;
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-                return new SerializableDictionary<string, SerializableDictionary<string, ViewPermission>>();
-            }
-        }
-        #endregion
-    }
-}
-

+ 0 - 257
FrameworkLocal/Common/Account/AccountService.cs

@@ -1,257 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Xml;
-using Aitex.Core.RT.Event;
-using Aitex.Core.RT.Key;
-using Aitex.Core.RT.OperationCenter;
-using Aitex.Core.RT.Log;
-using Aitex.Core.Util;
-using Aitex.Common.Util;
-using MECF.Framework.Common.Account;
-using MECF.Framework.Common.Account.Extends;
-
-
-namespace Aitex.Core.Account
-{
-    public sealed class AccountService : IAccountService
-    {
-        public string Module = "System";
-
-        public LoginResult Login(string accountId, string accountPwd)
-        {
-                if (KeyManager.Instance.IsExpired)
-                {
-                    EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not login");
-                    return new LoginResult(){ActSucc = false,Description = "Software is expired"};
-                }
-
-            EV.PostInfoLog(Module, string.Format("User {0} try to login System.", accountId));
-            return AccountManager.Login(accountId, accountPwd);
-        }
-
-        public void Logout(string accountId)
-        {
-            EV.PostInfoLog(Module, string.Format("User {0} logout sytem.", accountId));
-            try
-            {
-    //            Authorization.Exit(accountId);
-            }
-            catch { }
-
-            AccountManager.Logout(accountId);            
-        }
-
-        public GetAccountInfoResult GetAccountInfo(string accountId)
-        {
-            return AccountManager.GetAccountInfo(accountId);
-        }
-
-        public void RegisterViews(List<string> views)
-        {
-            AccountManager.RegisterViews(views);
-        }
-
-        public ChangePwdResult ChangePassword(string accountId, string newPassword)
-        {
-                if (KeyManager.Instance.IsExpired)
-                {
-                    EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
-                    return new ChangePwdResult();
-                }
-
-            EV.PostInfoLog(Module, string.Format("Change user {0} password.", accountId));
-            LOG.Write(string.Format("Account operation, change user {0} password.", accountId));
-            return AccountManager.ChangePassword(accountId, newPassword);
-        }
-
-        public CreateAccountResult CreateAccount(Account newAccount)
-        {
-                if (KeyManager.Instance.IsExpired)
-                {
-                    EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
-                    return new CreateAccountResult();
-                }
-
-            EV.PostInfoLog(Module, string.Format("Create account{0}.", newAccount));
-            LOG.Write(string.Format("Account operation, Create user {0}.", newAccount.AccountId));
-            return AccountManager.CreateAccount(newAccount);
-        }
-
-        public DeleteAccountResult DeleteAccount(string accountId)
-        {
-                if (KeyManager.Instance.IsExpired)
-                {
-                    EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
-                    return new DeleteAccountResult();
-                }
-            EV.PostInfoLog(Module, string.Format("Delete account {0}.", accountId));
-            return AccountManager.DeleteAccount(accountId);
-        }
-
-        public UpdateAccountResult UpdateAccount(Account account)
-        {
-                if (KeyManager.Instance.IsExpired)
-                {
-                    EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
-                    return new UpdateAccountResult();
-                }
-            EV.PostInfoLog(Module, string.Format("Update {0} account information.", account));
-            return AccountManager.UpdateAccount(account);
-        }
-
-        public GetAccountListResult GetAccountList()
-        {
-            return AccountManager.GetAccountList();
-        }
-
-        public List<Account> GetLoginUsers()
-        {
-            return AccountManager.GetLoginUserList();
-        }
-
-
-        public void KickUserOut(string accountId, string kickoutReason)
-        {
-            EV.PostInfoLog(Module, string.Format("Force user {0} logout system,reason:{1}.", accountId, kickoutReason));
-            try
-            {
-           //     Authorization.Exit(accountId);
-            }
-            catch { }
-            AccountManager.Kickout(accountId, kickoutReason);
-        }
-
-        public SerializableDictionary<string, SerializableDictionary<string, ViewPermission>> GetAllRolesPermission()
-        {
-            return AccountManager.GetAllRolesPermission();
-        }
-
-        public bool SaveAllRolesPermission(Dictionary<string, Dictionary<string, ViewPermission>> data)
-        {
-                if (KeyManager.Instance.IsExpired)
-                {
-                    EV.PostMessage("System", EventEnum.DefaultWarning, "Software is expired. Can not do the operation");
-                    return false;
-                }
-            return AccountManager.SaveAllRolesPermission(data);
-        }
-
-        public SerializableDictionary<string, string> GetAllViewList()
-        {
-            return AccountManager.GetAllViewList();
-        }
-
-        public IEnumerable<string> GetAllRoles()
-        {
-            return AccountManager.GetAllRoles();
-        }
-
-        public void CheckAlive(string accountId)
-        {
-            AccountManager.CheckAlive(accountId);
-        }
-
-        
-    
-        public string GetProcessViewPermission()
-        {
-            string recipePermissionFile = System.IO.Path.Combine(PathManager.GetCfgDir(), "RolePermission.xml");
-            XmlDocument _xmlRecipeFormat = new XmlDocument();
-            try
-            {
-                _xmlRecipeFormat.Load(recipePermissionFile);
-                return _xmlRecipeFormat.InnerXml;
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-                return "<Aitex></Aitex>";
-            }
-            finally
-            { 
-                
-            }
-        }
-
-        public bool SaveProcessViewPermission(string viewXML)
-        {
-            try
-            {
-                string recipePermissionFile = System.IO.Path.Combine(PathManager.GetCfgDir(), "RolePermission.xml");
-
-                XmlDocument _xmlRecipeFormat = new XmlDocument(); 
-                _xmlRecipeFormat.LoadXml(viewXML);
-                 XmlTextWriter writer = new XmlTextWriter(recipePermissionFile, null);
-                writer.Formatting = Formatting.Indented;
-                _xmlRecipeFormat.Save(writer);
-                writer.Close(); 
-                return true;
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-                return false;
-            }
-        }
-
-        public List<Role> GetAllRoleList()
-        {
-            return AccountExManager.Instance.RoleLoader.RoleList;
-        }
-
-        public List<AccountEx> GetAllAccountExList()
-        {
-            return AccountExManager.Instance.RoleLoader.AccountList;
-        }
-
-        public List<Role> GetRoles()
-        {
-            return AccountExManager.Instance.RoleLoader.GetRoles();
-        }
-
-        public List<AccountEx> GetAccounts()
-        {
-            return AccountExManager.Instance.RoleLoader.GetAccounts();
-        }
-
-        public bool UpdateRole(Role role)
-        {
-            return AccountExManager.Instance.RoleLoader.UpdateRole(role);
-        }
-
-        public bool DeleteRole(string roleId)
-        {
-            return AccountExManager.Instance.RoleLoader.DeleteRole(roleId);
-        }
-
-        public List<AppMenu> GetMenusByRole(string roleId, List<AppMenu> lstMenu)
-        {
-            return AccountExManager.Instance.RoleLoader.GetMenusByRole(roleId, lstMenu) ;
-        }
-
-        public int GetMenuPermission(string roleId, string menuName)
-        {
-            return AccountExManager.Instance.RoleLoader.GetMenuPermission(roleId, menuName);
-        }
-
-        public bool UpdateAccountEx(AccountEx account)
-        {
-            return AccountExManager.Instance.RoleLoader.UpdateAccount(account);
-        }
-
-        public bool DeleteAccountEx(string accountId)
-        {
-            return AccountExManager.Instance.RoleLoader.DeleteAccount(accountId);
-        }
-
-        public LoginResult LoginEx(string accountId, string password, string role)
-        {
-            return AccountExManager.Instance.AuthLogin(accountId, password, role);
-        }
-
-        public void LogoutEx(string accountId, string loginId)
-        {
-            AccountExManager.Instance.Logout(accountId, loginId );
-        }
-    }
-}

+ 0 - 216
FrameworkLocal/Common/Account/Authorization.cs

@@ -1,216 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-using System.IO;
-using System.Net;
-using System.Timers;
-using Aitex.Core.RT.Event;
-
-
-
-namespace Aitex.Core.Account
-{
-
-    public enum AuthorizationStatusEnum
-    {
-        NoAuthorization,
-        Authorizing,
-        Granted,
-        Rejected,
-    }
-    
-    public static class Authorization
-    {
-        public static string Module { get; set; }
-        static Authorization()
-        {
-            Module = "System";
-
-            AuthorizedAccount = string.Empty;
-            AuthorizedIP = string.Empty;
-            AuthorizingAccount = string.Empty;
-            AuthorizingIP = string.Empty;            
-
-    //        Update();
-
-            _timer = new Timer(3 * 60*1000);//3 minutes
-            _timer.AutoReset = false;
-            _timer.Elapsed += new ElapsedEventHandler(Timer_Elapsed);
-        }
-
-        static void Timer_Elapsed(object sender, ElapsedEventArgs e)
-        {
-            if (_status == AuthorizationStatusEnum.Authorizing)
-            {               
-                Grant(true);
-            }
-        }        
-
-        public static AuthorizationStatusEnum Status
-        {
-            get
-            {
-                return _status;
-            }
-        }
-
-        public static bool IsAuthorizedAccount(string accountId, string ip)
-        {
-            if (string.IsNullOrWhiteSpace(AuthorizedAccount))
-            {
-                EV.PostMessage(Module, EventEnum.AccountWithoutAuthorization, accountId);
-                return false;
-            }
-            if (ip == Aitex.Core.Utilities.Network.LocalIP && AuthorizedIP == Aitex.Core.Utilities.Network.LocalIP) return true;
-
-            if (AuthorizedAccount != accountId)
-            {
-                EV.PostMessage(Module, EventEnum.AccountWithoutAuthorization, accountId);
-                return false;
-            }
-
-            return true;
-        }
-
-        static bool CanAutoAuthorize(string accountId, string ip)
-        {
-            return string.IsNullOrWhiteSpace(AuthorizedAccount)     //未有授权用户
-                    || (ip == Aitex.Core.Utilities.Network.LocalIP)                             //申请IP来自服务器同一地址
-                    || (accountId == AuthorizedAccount);            //已授权账户
-                 //|| (AuthorizedIP == ServerIP && ip == ServerIP)  //本地IP已授权,且本地账户申请权限 
-        }
-
-        public static string AuthorizedAccount
-        {
-            get;
-            private set;
-        }
-
-        public static string AuthorizedIP
-        {
-            get;
-            private set;
-        }
-
-        public static string AuthorizingAccount
-        {
-            get;
-            private set;
-        }
-
-        public static string AuthorizingIP
-        {
-            get;
-            private set;
-        }
-
-        /// <summary>
-        /// User applies operation & control authorization
-        /// </summary>
-        /// <param name="accountId">client user</param>
-        /// <param name="ip">client ip</param>
-        public static void Request(string accountId, string ip)
-        {
-            EV.PostMessage(Module,  EventEnum.OperationAuthorization, string.Format("{0} 在申请操控权", accountId));
-
-            if (CanAutoAuthorize(accountId, ip))
-            {
-                AuthorizedAccount = accountId;
-                AuthorizedIP = ip;
-
-                EV.PostMessage(Module, EventEnum.OperationAuthorization, string.Format("{0} 获得操控权", AuthorizedAccount));
-                _status = AuthorizationStatusEnum.Granted;
-
-                Update();
-
-                return;
-            }
-
-            AuthorizingAccount = accountId;
-            AuthorizingIP = ip;
-            _status = AuthorizationStatusEnum.Authorizing;
-
-            Update();
-
-            _timer.Start();
-        }
-
-        /// <summary>
-        /// Authorizing user aborts this authorization operation.
-        /// </summary>
-        public static void Abort()
-        {
-            _timer.Stop();
-
-            _status = AuthorizationStatusEnum.NoAuthorization;
-            AuthorizingAccount = string.Empty;
-            AuthorizingIP = string.Empty;
-
-            Update();
-        }
-
-        /// <summary>
-        /// Authorized user grants or rejects the authorization
-        /// </summary>
-        /// <param name="isGranted">True: granted   False: Rejected</param>
-        public static void Grant(bool isGranted)
-        {
-            _timer.Stop();
-
-            if (_status == AuthorizationStatusEnum.Granted) return;
-
-            if (isGranted)
-            {
-                AuthorizedAccount = AuthorizingAccount;
-                AuthorizedIP = AuthorizingIP;
-
-                _status = AuthorizationStatusEnum.Granted;
-                EV.PostMessage(Module, EventEnum.OperationAuthorization, string.Format("{0} 获得操控权", AuthorizedAccount));
-            }
-            else
-            {
-                _status = AuthorizationStatusEnum.Rejected;
-                EV.PostMessage(Module, EventEnum.OperationAuthorization, string.Format("{0} 拒绝转交操控权", AuthorizedAccount));
-            }
-
-            Update();
-        }
-
-        public static void Exit(string accountId)
-        {            
-            if (accountId == AuthorizedAccount)
-            {
-                AuthorizedAccount = string.Empty;
-                AuthorizedIP = string.Empty;  
-              
-                Abort();            
-            }
-            else if (accountId == AuthorizingAccount)
-            {
-                Abort();
-            }
-        }
-
-
-
-
-        #region private
-
-        static Timer _timer = new Timer();
-        static AuthorizationStatusEnum _status = AuthorizationStatusEnum.NoAuthorization;
-
-        static void Update()
-        {
-            //ViewModelManager.UpdateAttribute(ChamberSet.Transfer, "Authorization", "AuthorizedAccount", AuthorizedAccount);
-            //ViewModelManager.UpdateAttribute(ChamberSet.Transfer, "Authorization", "AuthorizedIP", AuthorizedIP);
-            //ViewModelManager.UpdateAttribute(ChamberSet.Transfer, "Authorization", "AuthorizingAccount", AuthorizingAccount);
-            //ViewModelManager.UpdateAttribute(ChamberSet.Transfer, "Authorization", "AuthorizingIP", AuthorizingIP);
-            //ViewModelManager.UpdateAttribute(ChamberSet.Transfer, "Authorization", "AuthorizationStatus", Status.ToString());
-            //ViewModelManager.UpdateAttribute(ChamberSet.Transfer, "Authorization", "ServerIP", Aitex.Core.Utilities.Network.Network.LocalIP);
-        }
-
-        #endregion
-    }
-}

+ 0 - 85
FrameworkLocal/Common/Account/Extends/AccountEx.cs

@@ -1,85 +0,0 @@
-using System;
-using System.Collections.Generic;
-
-namespace MECF.Framework.Common.Account.Extends
-{
-
-    [Serializable]
-    public class AccountEx
-    {
-        private string m_strUserID;
-        private string m_strLoginName;
-        private string m_strFirstName;
-        private string m_strLastName;
-        private string m_strEmail;
-        private string m_strDescription;
-        private string m_strPassword;
-        private List<string> m_strRoles;
-
-        public string UserID
-        {
-            get { return m_strUserID; }
-            set { m_strUserID = value; }
-        }
-
-        public string LoginName
-        {
-            get { return m_strLoginName; }
-            set { m_strLoginName = value; }
-        }
-
-        public string FirstName
-        {
-            get { return m_strFirstName; }
-            set { m_strFirstName = value; }
-        }
-
-        public string LastName
-        {
-            get { return m_strLastName; }
-            set { m_strLastName = value; }
-        }
-
-        public string Email
-        {
-            get { return m_strEmail; }
-            set { m_strEmail = value; }
-        }
-
-        public string Description
-        {
-            get { return m_strDescription; }
-            set { m_strDescription = value; }
-        }
-
-        public string Password
-        {
-            get { return m_strPassword; }
-            set { m_strPassword = value; }
-        }
-
-        public string LoginId { get; set; }
-
-        public bool IsSuper { get; set; }
-
-        public List<string> RoleIDs
-        {
-            get { return m_strRoles; }
-            set { m_strRoles = value; }
-        }
-
-        public AccountEx(string p_strUserID, string p_strLoginName, string p_strPassword, string p_strFirstName, string p_strLastName, string p_strEmail, List<string> p_roles, string p_strDescription = "")
-        {
-            this.m_strUserID = p_strUserID;
-            this.m_strLoginName = p_strLoginName;
-            this.m_strFirstName = p_strFirstName;
-            this.m_strLastName = p_strLastName;
-            this.m_strEmail = p_strEmail;
-            this.m_strDescription = p_strDescription;
-            this.m_strPassword = p_strPassword;
-            this.m_strRoles = p_roles;
-            this.IsSuper = false;
-        }
-
-    }
-}

+ 0 - 158
FrameworkLocal/Common/Account/Extends/Menu.cs

@@ -1,158 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-
-namespace MECF.Framework.Common.Account.Extends
-{
-    [Serializable]
-    public class AppMenu : INotifyPropertyChanged
-    {
-        private string m_strMenuID;
-        private string m_strViewModel;
-        private string m_strResKey;
-        private string _System;
-        private string _ParentKey;
-        private int permission;
-        private AppMenu parent;
-        private List<AppMenu> menuItems;
-        private bool selected;
-     
-        public string MenuID
-        {
-            get { return m_strMenuID; }
-            set { m_strMenuID = value; }
-        }
-     
-        public string ResKey
-        {
-            get { return this.m_strResKey; }
-            set { m_strResKey = value; }
-        }
-   
-        public List<AppMenu> MenuItems
-        {
-            get { return menuItems; }
-            set { menuItems = value; }
-        }
-    
-        public string ViewModel
-        {
-            get { return this.m_strViewModel; }
-            set { this.m_strViewModel = value; }
-        }
-    
-        public int Permission
-        {
-            get { return this.permission; }
-            set { this.permission = value; }
-        }
-     
-        public string System
-        {
-            get { return this._System; }
-            set { this._System = value; }
-        }
-
-        public string ParentKey
-        {
-            get { return this._ParentKey; }
-            set { this._ParentKey = value; }
-        }
-
-        public AppMenu Parent
-        {
-            get { return this.parent; }
-            set { this.parent = value; }
-        }
-
-        public bool Selected
-        {
-            get { return this.selected; }
-            set
-            {
-                this.selected = value;
-                this.OnPropertyChanged("Selected");
-            }
-        }
-
-        private bool _isAlarm;
-        public bool IsAlarm
-        {
-            get { return this._isAlarm; }
-            set
-            {
-                this._isAlarm = value;
-                this.OnPropertyChanged("IsAlarm");
-            }
-        }
-
-        private string _alarmModule;
-        public string AlarmModule
-        {
-            get { return this._alarmModule; }
-            set { this._alarmModule = value; }
-        }
-
-        private string _type;
-        public string Type
-        {
-            get { return this._type; }
-            set { this._type = value; }
-        }
-
-        public object Model { get; set; }
-
-        public AppMenu LastSelectedSubMenu { get; set; }
-
-        public AppMenu() { }
-
-        public AppMenu(string p_strMenuID, string p_strMenuViewModel, string p_strResKey, List<AppMenu> p_menuItems)
-        {
-            this.m_strMenuID = p_strMenuID;
-            this.m_strViewModel = p_strMenuViewModel;
-            this.m_strResKey = p_strResKey;
-            this.menuItems = p_menuItems;
-        }
-
-        public object Clone(AppMenu parent)
-        {
-            AppMenu item = new AppMenu();
-
-            item.MenuID = this.MenuID;
-            item.ResKey = this.ResKey;
-            item.ViewModel = this.ViewModel;
-            item.Permission = this.Permission;
-            item.Selected = this.Selected;
-            item.System = this.System;
-            item.ParentKey = this.ParentKey;
-            item.Parent = parent;
-            item.IsAlarm = this.IsAlarm;
-            item.AlarmModule = this.AlarmModule;
-            item.Type = this.Type;
-
-            if (this.MenuItems != null)
-            {
-                item.MenuItems = new List<AppMenu>();
-                foreach (var item1 in this.MenuItems)
-                {
-                    item.MenuItems.Add((AppMenu)item1.Clone(item));
-                }
-            }
-
-            return item;
-        }
-
-        #region INotifyPropertyChanged Members
-
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        protected virtual void OnPropertyChanged(string propertyName)
-        {
-            PropertyChangedEventHandler handler = this.PropertyChanged;
-            if (handler != null)
-                handler(this, new PropertyChangedEventArgs(propertyName));
-        }
-
-        #endregion
-    }
-}

+ 0 - 83
FrameworkLocal/Common/Account/Extends/MenuLoader.cs

@@ -1,83 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Xml.Linq;
-
-namespace MECF.Framework.Common.Account.Extends
-{
-    public class MenuLoader : XmlLoader
-    {
-        public List<AppMenu> MenuList
-        {
-            get { return _Menulist; }
-            set { _Menulist = value; }
-        }
-
-        public MenuLoader(string p_strPath)
-            : base(p_strPath)
-        {
-        }
-
-        protected override void AnalyzeXml()
-        {
-            if (this.m_xdoc != null)
-            {
-                List<AppMenu> menulist = TranslateMenus(this.m_xdoc.Root);
-                this._Menulist = menulist;
-            }
-        }
-
-        private List<AppMenu> TranslateMenus(XElement pElement)
-        {
-            List<AppMenu> Menulist = new List<AppMenu>();
-
-            var results = from r in pElement.Elements("menuItem") select r;
-            foreach (var result in results)
-            {
-                string strMenuID = string.Empty;
-                string strMenuViewMode = string.Empty;
-                string strMenuResKey = string.Empty;
-                if (!result.HasElements)
-                {
-                    strMenuID = result.Attribute("id").Value;
-                    strMenuViewMode = result.Attribute("viewmodel").Value;
-                    strMenuResKey = result.Attribute("resKey").Value;
-                    AppMenu item = new AppMenu(strMenuID, strMenuViewMode, strMenuResKey, null);
-                    if (result.Attribute("System") != null)
-                        item.System = result.Attribute("System").Value;
-                    if (result.Attribute("parentKey") != null)
-                        item.ParentKey = result.Attribute("parentKey").Value;
-                    if (result.Attribute("AlarmModule") != null)
-                        item.AlarmModule = result.Attribute("AlarmModule").Value;
-                    Menulist.Add(item);
-                    if (result.Attribute("type") != null)
-                        item.Type = result.Attribute("type").Value;
-                }
-                else
-                {
-                    strMenuID = result.Attribute("id").Value;
-                    strMenuResKey = result.Attribute("resKey").Value;
-                    List<AppMenu> subMenuList = new List<AppMenu>();
-                    subMenuList = TranslateMenus(result);
-                    AppMenu item = new AppMenu(strMenuID, strMenuViewMode, strMenuResKey, subMenuList);
-
-                    if (result.Attribute("System") != null)
-                        item.System = result.Attribute("System").Value;
-                    if (result.Attribute("parentKey") != null)
-                        item.ParentKey = result.Attribute("parentKey").Value;
-                    if (result.Attribute("AlarmModule") != null)
-                        item.AlarmModule = result.Attribute("AlarmModule").Value;
-                    if (result.Attribute("type") != null)
-                        item.Type = result.Attribute("type").Value;
-
-                    Menulist.Add(item);
-                }
-            }
-            return Menulist;
-        }
-
-        private List<AppMenu> _Menulist = new List<AppMenu>();
-    }
-}

+ 0 - 65
FrameworkLocal/Common/Account/Extends/Role.cs

@@ -1,65 +0,0 @@
-using System;
-
-namespace MECF.Framework.Common.Account.Extends
-{
-    [Serializable]
-    public class Role
-    {
-        private string _RoleID;
-        private string _RoleName;
-        private bool _AutoLogout;
-        private int _LogoutTime;
-        private string _MenuPermission;
-        private string _Description;
-
-
-        public string RoleID
-        {
-            get { return _RoleID; }
-            set { _RoleID = value; }
-        }
-
-        public string RoleName
-        {
-            get { return _RoleName; }
-            set { _RoleName = value; }
-        }
-
-        public bool IsAutoLogout
-        {
-            get { return _AutoLogout; }
-            set { _AutoLogout = value; }
-        }
-
-        public int LogoutTime
-        {
-            get { return _LogoutTime; }
-            set { _LogoutTime = value; }
-        }
-
-        public string MenuPermission
-        {
-            get { return _MenuPermission; }
-            set { _MenuPermission = value; }
-        }
-
-        public string Description
-        {
-            get { return _Description; }
-            set { _Description = value; }
-        }
-
-        public bool IsSuper { get; set; }
-
-        public Role(string p_strRoleID, string p_strRoleName, bool p_bAutoLogout, int p_nLogoutTime, string p_strPermission, string p_strDescription = "")
-        {
-            this.RoleID = p_strRoleID;
-            this._RoleName = p_strRoleName;
-            this._AutoLogout = p_bAutoLogout;
-            this._LogoutTime = p_nLogoutTime;
-            this._Description = p_strDescription;
-            this._MenuPermission = p_strPermission;
-            this.IsSuper = false;
-        }
-    }
-}

+ 0 - 373
FrameworkLocal/Common/Account/Extends/RoleLoader.cs

@@ -1,373 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Xml.Linq;
-
-namespace MECF.Framework.Common.Account.Extends
-{
-
-    public class RoleLoader : XmlLoader
-    {
-        private List<Role> m_rolelist;
-        public List<Role> RoleList
-        {
-            get { return m_rolelist; }
-            set { m_rolelist = value; }
-        }
-
-        private List<AccountEx> m_accountlist;
-        public List<AccountEx> AccountList
-        {
-            get { return m_accountlist; }
-            set { m_accountlist = value; }
-        }
-
-
-        public RoleLoader(string p_strPath)
-            : base(p_strPath)
-        {
-        }
-
-        /// <summary>
-        /// Return all roles except super role       
-        /// </summary>      
-        public List<Role> GetRoles()
-        {
-            return this.m_rolelist.Where(e => { return !e.IsSuper; }).ToList();
-        }
-
-        /// <summary>
-        /// Return all accounts except super account       
-        /// </summary>    
-        public List<AccountEx> GetAccounts()
-        {
-            return this.m_accountlist.Where(e => { return !e.IsSuper; }).ToList();
-        }
-
-        protected override void AnalyzeXml()
-        {
-            if (this.m_xdoc != null)
-            {
-                //load roles
-                var results = from r in this.m_xdoc.Descendants("roleItem") select r;
-                List<Role> rolelist = new List<Role>();
-                bool IsAutoLogout = false;
-                int nLogoutTime;
-                foreach (var result in results)
-                {
-                    string RoleID = result.Attribute("id").Value;
-                    string RoleName = result.Attribute("name").Value;
-                    string AutoLogout = result.Attribute("autologout").Value;
-                    string LogoutTime = result.Attribute("logouttime").Value;
-                    int.TryParse(LogoutTime, out nLogoutTime);
-                    IsAutoLogout = AutoLogout == "1" ? true : false;
-                    string Description = "";
-
-                    if (result.Attribute("description") != null)
-                        Description = result.Attribute("description").Value;
-
-                    string Permissions = result.Value;
-                    Role roleObject = new Role(RoleID, RoleName, IsAutoLogout, nLogoutTime, Permissions, Description);
-                    rolelist.Add(roleObject);
-                }
-                //Create an super role
-                Role superRole = new Role("-1", "Administrators", true, 20, null, null) { IsSuper = true };
-                rolelist.Add(superRole);
-                this.m_rolelist = rolelist;
-
-                //load users
-                results = from r in this.m_xdoc.Descendants("userItem") select r;
-                List<AccountEx> accountlist = new List<AccountEx>();
-                foreach (var result in results)
-                {
-                    List<string> roleIds = new List<string>();
-                    string UserID = result.Attribute("id").Value;
-                    string LoginName = result.Attribute("loginname").Value;
-                    string Password = Decrypt(result.Attribute("password").Value);
-                    string FirstName = result.Attribute("firstname").Value;
-                    string LastName = result.Attribute("lastname").Value;
-                    string Email = result.Attribute("email").Value;
-                    string Description = "";
-                    if (result.Attribute("description") != null)
-                        Description = result.Attribute("description").Value;
-
-                    var roles = from ro in result.Descendants("role") select ro;
-                    foreach (var role in roles)
-                    {
-                        string strID = role.Attribute("id").Value;
-                        roleIds.Add(strID);
-                    }
-                    AccountEx accountObject = new AccountEx(UserID, LoginName, Password, FirstName, LastName, Email, roleIds, Description);
-                    accountlist.Add(accountObject);
-                }
-
-                AccountEx superAccount = new AccountEx("-1", "admin", "admin", "", "", "", new List<string>() { "-1" }, "") { IsSuper = true };
-                accountlist.Add(superAccount);
-                this.m_accountlist = accountlist;
-            }
-        }
-
-        public bool UpdateRole(Role p_newRole)
-        {
-            Role m_role = m_rolelist.Find(item => item.RoleID == p_newRole.RoleID);
-            if (m_role == null)
-                m_rolelist.Add(p_newRole);
-            else
-                m_rolelist[m_rolelist.IndexOf(m_role)] = p_newRole;
-
-            //save the roles to file
-            XDocument xdoc = this.m_xdoc;
-            var results = (from m_xRole in xdoc.Descendants("roleItem")
-                           where m_xRole.Attribute("id").Value == p_newRole.RoleID
-                           select m_xRole).ToList();
-            if (results.Count > 0)
-            {
-                results[0].Attribute("name").Value = p_newRole.RoleName;
-                results[0].Attribute("autologout").Value = p_newRole.IsAutoLogout ? "1" : "0";
-                results[0].Attribute("logouttime").Value = p_newRole.LogoutTime.ToString();
-                if (results[0].Attribute("description") != null)
-                    results[0].Attribute("description").Value = p_newRole.Description.ToString();
-
-                results[0].Value = p_newRole.MenuPermission;
-            }
-            else
-            {
-                XElement m_new =
-                           new XElement("roleItem",
-                               new XAttribute("id", p_newRole.RoleID),
-                               new XAttribute("name", p_newRole.RoleName),
-                               new XAttribute("autologout", p_newRole.IsAutoLogout ? "1" : "0"),
-                               new XAttribute("logouttime", p_newRole.LogoutTime),
-                               new XAttribute("description", p_newRole.Description)
-                               )
-                           { Value = p_newRole.MenuPermission };
-                xdoc.Root.Element("roles").Add(m_new);
-            }
-
-            xdoc.Save(this.m_strPath);
-            return true;
-        }
-
-        public bool DeleteRole(string p_strRoleID)
-        {
-            this.Load();
-
-            Role m_role = m_rolelist.Find(item => item.RoleID == p_strRoleID);
-            if (m_role != null)
-            {
-                m_rolelist.Remove(m_role);
-
-                //save the roles to file
-                XDocument xdoc = this.m_xdoc;
-                var results = (from m_xRole in xdoc.Descendants("roleItem")
-                               where m_xRole.Attribute("id").Value == p_strRoleID
-                               select m_xRole).ToList();
-                if (results.Count > 0)
-                {
-                    results[0].Remove();
-
-                    //remove role from account
-                    foreach (var account in this.m_accountlist)
-                    {
-                        if (account.RoleIDs.Contains(m_role.RoleID))
-                            account.RoleIDs.Remove(m_role.RoleID);
-                    }
-
-                    results = (from m_xRole in xdoc.Descendants("role")
-                               where m_xRole.Attribute("id").Value == m_role.RoleID
-                               select m_xRole).ToList();
-                    if (results.Count > 0)
-                        results.Remove();
-
-                    xdoc.Save(this.m_strPath);
-                    return true;
-                }
-                else
-                    return false;
-            }
-            else
-                return false;
-        }
-
-        private List<string> GetRolePermission(string roleid)
-        {
-            List<string> rolePermissions = new List<string>();
-            foreach (Role role in this.m_rolelist)
-            {
-                if (role.RoleID == roleid)
-                {
-                    rolePermissions = role.MenuPermission.Split(';').ToList();
-                    break;
-                }
-            }
-            return rolePermissions;
-        }
-
-        private int GetMenuPermission(List<string> rolePermissions, string menuid)
-        {
-            foreach (string menuPermission in rolePermissions)
-            {
-                if (menuPermission.IndexOf(menuid) >= 0)
-                {
-                    string[] pair = menuPermission.Split(',');
-                    if (pair.Length > 1 && pair[0].Trim() == menuid)  //need check the whole menuid
-                        return int.Parse(pair[1].Trim());
-                }
-            }
-            return 3;
-        }
-
-        public List<AppMenu> GetMenusByRole(string roleid, List<AppMenu> menulist)
-        {
-            List<AppMenu> menus = new List<AppMenu>();
-            List<string> rolePermissions = GetRolePermission(roleid);
-
-            foreach (AppMenu menuItem in menulist)
-            {
-                List<AppMenu> subMenus = new List<AppMenu>();
-
-                if (menuItem.MenuItems == null) continue;
-                foreach (AppMenu subMenu in menuItem.MenuItems)
-                {
-                    AppMenu RetSubMenu = new AppMenu(subMenu.MenuID, subMenu.ViewModel, subMenu.ResKey, null);
-                    RetSubMenu.System = subMenu.System;
-                    RetSubMenu.Type = subMenu.Type;
-                    RetSubMenu.ParentKey = subMenu.ParentKey;
-                    RetSubMenu.AlarmModule = subMenu.AlarmModule;
-                    RetSubMenu.Permission = this.GetMenuPermission(rolePermissions, subMenu.MenuID);
-                    if (RetSubMenu.Permission > 1)
-                        subMenus.Add(RetSubMenu);
-                }
-
-                if (subMenus.Count > 0)
-                {
-                    var menu = new AppMenu(menuItem.MenuID, menuItem.ViewModel, menuItem.ResKey, subMenus);
-                    menu.System = menuItem.System;
-                    menu.ParentKey = menuItem.ParentKey;
-                    menu.Type = menuItem.Type;
-                    menu.AlarmModule = menuItem.AlarmModule;
-                    menus.Add(menu);
-                }
-            }
-            return menus;
-        }
-
-        public int GetMenuPermission(string roleid, string menuName)
-        {
-            List<string> rolePermissions = GetRolePermission(roleid);
-
-            int menuPermission = this.GetMenuPermission(rolePermissions, menuName);
-            return menuPermission;
-        }
-
-        public bool UpdateAccount(AccountEx p_newAccount)
-        {
-            AccountEx Acc = m_accountlist.Find(item => item.UserID == p_newAccount.UserID);
-            if (Acc == null)
-                m_accountlist.Add(p_newAccount);
-            else
-                m_accountlist[m_accountlist.IndexOf(Acc)] = p_newAccount;
-
-            //save the roles to file
-            XDocument xdoc = this.m_xdoc;
-            var results = (from xAccount in xdoc.Descendants("userItem")
-                           where xAccount.Attribute("id").Value == p_newAccount.UserID
-                           select xAccount).ToList();
-            if (results.Count > 0)
-            {
-                results[0].Attribute("loginname").Value = p_newAccount.LoginName;
-                results[0].Attribute("password").Value = Encrypt(p_newAccount.Password);
-                results[0].Attribute("firstname").Value = p_newAccount.FirstName;
-                results[0].Attribute("lastname").Value = p_newAccount.LastName;
-                results[0].Attribute("email").Value = p_newAccount.Email;
-                results[0].Attribute("description").Value = p_newAccount.Description;
-                results[0].Element("rolegroup").RemoveAll();
-
-                foreach (string strRole in p_newAccount.RoleIDs)
-                {
-                    results[0].Element("rolegroup").Add(new XElement("role", new XAttribute("id", strRole)));
-                }
-            }
-            else
-            {
-                XElement m_new =
-                           new XElement("userItem",
-                               new XAttribute("id", p_newAccount.UserID),
-                               new XAttribute("loginname", p_newAccount.LoginName),
-                               new XAttribute("password", Encrypt(p_newAccount.Password)),
-                               new XAttribute("firstname", p_newAccount.FirstName),
-                               new XAttribute("lastname", p_newAccount.LastName),
-                               new XAttribute("email", p_newAccount.Email),
-                               new XAttribute("description", p_newAccount.Description),
-                               new XElement("rolegroup"));
-                foreach (string strRole in p_newAccount.RoleIDs)
-                {
-                    m_new.Element("rolegroup").Add(new XElement("role", new XAttribute("id", strRole)));
-                }
-                xdoc.Root.Element("users").Add(m_new);
-            }
-            xdoc.Save(this.m_strPath);
-            return true;
-        }
-
-        public bool DeleteAccount(string p_strUserID)
-        {
-            AccountEx Acc = m_accountlist.Find(item => item.UserID == p_strUserID);
-            if (Acc != null)
-            {
-                m_accountlist.Remove(Acc);
-
-                XDocument xdoc = this.m_xdoc;
-                var results = (from xAccount in xdoc.Descendants("userItem")
-                               where xAccount.Attribute("id").Value == p_strUserID
-                               select xAccount).ToList();
-                if (results.Count > 0)
-                {
-                    results[0].Remove();
-
-                    xdoc.Save(this.m_strPath);
-                    return true;
-
-                }
-                else
-                    return false;
-            }
-            else
-                return false;
-        }
-
-        public String Encrypt(String encrytStr)
-        {
-            if (String.IsNullOrWhiteSpace(encrytStr)) return String.Empty;
-
-            try
-            {
-                Byte[] bytes = Encoding.UTF8.GetBytes(encrytStr);
-
-                return Convert.ToBase64String(bytes);
-            }
-            catch
-            {
-                return encrytStr;
-            }
-        }
-
-        public String Decrypt(String decryptStr)
-        {
-            if (String.IsNullOrWhiteSpace(decryptStr)) return String.Empty;
-
-            try
-            {
-                Byte[] bytes = Convert.FromBase64String(decryptStr);
-
-                return Encoding.UTF8.GetString(bytes);
-            }
-            catch
-            {
-                return decryptStr;
-            }
-        }
-    }
-}
-

+ 0 - 36
FrameworkLocal/Common/Account/Extends/UserContext.cs

@@ -1,36 +0,0 @@
-using System;
-using MECF.Framework.Common.CommonData;
-
-namespace MECF.Framework.Common.Account.Extends
-{
-    [Serializable]
-    public class UserContext: NotifiableItem
-    {       
-        public string Address { get; set; }
-        public string HostName { get; set; }
-      
-        private string _loginName;
-        public string LoginName
-        {
-            get { return this._loginName; }
-            set { this._loginName = value; this.InvokePropertyChanged("LoginName"); }
-        }
-
-        private string _rolename;
-        public string RoleName
-        {
-            get { return this._rolename; }
-            set { this._rolename = value; this.InvokePropertyChanged("RoleName"); }
-        }          
-
-        public string RoleID { get; set; }
-        public string LoginId { get; set; }
-
-        public Role Role { get; set; }
-        public DateTime LoginTime { get; set; }
-        public DateTime LastAccessTime { get; set; }     
-        public int Token { get; set; }  
-        public string Language { get; private set; }
-        public bool IsLogin { get; set; }
-    }
-}

+ 0 - 33
FrameworkLocal/Common/Account/Extends/XmlLoader.cs

@@ -1,33 +0,0 @@
-using System.IO;
-using System.Xml.Linq;
-
-namespace MECF.Framework.Common.Account.Extends
-{
-    public abstract class XmlLoader
-    {
-        protected string m_strPath;
-        protected XDocument m_xdoc;
-
-        protected XmlLoader(string p_strPath)
-        {
-            this.m_strPath = p_strPath;
-        }
-
-        protected virtual void AnalyzeXml()
-        {
-
-        }
-
-        public void Load()
-        {
-            if (File.Exists(this.m_strPath))
-            {
-                this.m_xdoc = XDocument.Load(this.m_strPath);
-                this.AnalyzeXml();
-            }
-            else
-                throw new FileNotFoundException("File " + this.m_strPath + " not be found");
-        }
-
-    }
-}

+ 0 - 114
FrameworkLocal/Common/Account/IAccountService.cs

@@ -1,114 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.ServiceModel;
-using Aitex.Core.Util;
-using MECF.Framework.Common.Account.Extends;
-
-namespace Aitex.Core.Account
-{
-    [ServiceContract]
-    public interface IAccountService
-    {
-        [OperationContract]
-        LoginResult Login(string accountId, string password);
-
-        [OperationContract]
-        void Logout(string accountId);
-
-        [OperationContract]
-        CreateAccountResult CreateAccount(Account newAccount);
-
-        [OperationContract]
-        DeleteAccountResult DeleteAccount(string accountId);
-
-        [OperationContract]
-        GetAccountInfoResult GetAccountInfo(string accountId);
-
-        [OperationContract]
-        void RegisterViews(List<string> views);
-
-        [OperationContract]
-        UpdateAccountResult UpdateAccount(Account account);
-
-        [OperationContract]
-        GetAccountListResult GetAccountList();
-
-        [OperationContract]
-        ChangePwdResult ChangePassword(string accountId, string newPassword);
-
-        [OperationContract]
-        List<Account> GetLoginUsers();
-
-        [OperationContract]
-        void KickUserOut(string accountId, string reason);
-
-        [OperationContract]
-        SerializableDictionary<string, SerializableDictionary<string, ViewPermission>> GetAllRolesPermission();
-
-        [OperationContract]
-        bool SaveAllRolesPermission(Dictionary<string, Dictionary<string, ViewPermission>> data);
-
-        [OperationContract]
-        SerializableDictionary<string, string> GetAllViewList();
-
-        [OperationContract]
-        IEnumerable<string> GetAllRoles();
-
-        [OperationContract]
-        void CheckAlive(string accountId);
-
-        [OperationContract]
-        string GetProcessViewPermission();
-
-        [OperationContract]
-        bool SaveProcessViewPermission(string viewXML);
-
-
-        //---------------------------------------------------------------
-        //extended account management
-
-        [OperationContract]
-        List<Role> GetAllRoleList();
-
-        [OperationContract]
-        List<AccountEx> GetAllAccountExList();
-
-        /// <summary>
-        /// Return all roles except super role       
-        /// </summary>
-        [OperationContract] 
-        List<Role> GetRoles();
-
-        /// <summary>
-        /// Return all accounts except super account       
-        /// </summary>    
-        [OperationContract]
-        List<AccountEx> GetAccounts();
-
-        [OperationContract]
-        bool UpdateRole(Role role);
-
-        [OperationContract]
-        bool DeleteRole(string roleId);
-
-        [OperationContract]
-        List<AppMenu> GetMenusByRole(string roleId, List<AppMenu> lstMenu);
-
-        [OperationContract]
-        int GetMenuPermission(string roleId, string menuName);
-        
-        [OperationContract]
-        bool UpdateAccountEx(AccountEx account);
-
-        [OperationContract]
-        bool DeleteAccountEx(string accountId);
-
-        [OperationContract]
-        LoginResult LoginEx(string accountId, string password, string role);
-
-        [OperationContract]
-        void LogoutEx(string accountId, string loginId );
-    }
-}

+ 0 - 70
FrameworkLocal/Common/Account/NotificationService.cs

@@ -1,70 +0,0 @@
-using System;
-using System.Reflection;
-using System.ServiceModel;
-using System.Threading;
-using System.ServiceModel.Activation;
-using System.Collections.Generic;
-using System.IO;
-using System.Runtime.Serialization;
-using System.Runtime.Serialization.Formatters.Binary;
-using Aitex.Core.RT.Log;
-
-
-
-namespace Aitex.Core.Account
-{
-    /// <summary>
-    /// NotificationService class
-    /// </summary>
-    public sealed class NotificationService 
-    {
-            /// 客户电脑名
-        /// </summary>
-        public static string ClientHostName
-        {
-            get
-            {
-                //return OperationContext.Current.IncomingMessageHeaders.GetHeader<string>("IdentityClientName", "ns");
-                return null;   
-            }
-        }
-
-        /// <summary>
-        /// 客户用户名
-        /// </summary>
-        public static string ClientUserName
-        {
-            get
-            {
-                if (OperationContext.Current == null || OperationContext.Current.IncomingMessageHeaders == null)
-                    return "";
-                var res = OperationContext.Current.IncomingMessageHeaders.FindHeader("IdentityUserName", "ns");
-                if (res == -1)
-                    return "";
-                return OperationContext.Current.IncomingMessageHeaders.GetHeader<string>("IdentityUserName", "ns");
-            }
-        }
-
-        /// <summary>
-        /// 客户端程序唯一的Guid编号
-        /// </summary>
-        public static Guid ClientGuid
-        {
-            get
-            {
-                //try
-                //{
-                //    var guidStr = OperationContext.Current.IncomingMessageHeaders.GetHeader<string>("ClientGuid", "ns");
-                //    return Guid.Parse(guidStr);
-                //}
-                //catch (Exception ex)
-                //{
-                //    LOG.Write(ex);
-                //}
-                return Guid.Empty;
-            }
-        }
-
-
-    }
-}

+ 0 - 19
FrameworkLocal/Common/Alarms/AlarmAction.cs

@@ -1,19 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MECF.Framework.Common.Alarms
-{
-    public enum AlarmAction
-    {
-        Clear = 1,
-        Abort,
-        Retry,
-        Continue,
-        StopProcess,
-        RemoveWafer,
-        ClearAll,
-    }
-}

+ 0 - 19
FrameworkLocal/Common/Alarms/AlarmDefine.cs

@@ -1,19 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MECF.Framework.Common.Alarms
-{
-    public class AlarmDefine
-    {
-        public int Number { get; set; }
-        public string Message { get; set; }
-        public string Action { get; set; }
-        public string Recovery { get; set; }
-        public string Cause { get; set; }
-        public int AlarmGroup { get; set; }
-        public bool IsUse { get; set; }
-    }
-}

+ 0 - 113
FrameworkLocal/Common/Alarms/AlarmDefineFileContext.cs

@@ -1,113 +0,0 @@
-using Aitex.Common.Util;
-using Aitex.Core.RT.Event;
-using Aitex.Core.RT.Log;
-using Aitex.Core.Util;
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Xml;
-
-namespace MECF.Framework.Common.Alarms
-{
-    class AlarmDefineFileContext : IAlarmDefineService
-    {
-        public Dictionary<string, Dictionary<string, EventItem>> GetAlarmDefineTemplate()
-        {
-
-            Dictionary<string, Dictionary<string, EventItem>> result = new Dictionary<string, Dictionary<string, EventItem>>();
-            foreach (var key in Singleton<EventManager>.Instance.AlarmDic.Keys)
-            {
-                Dictionary<string, EventItem> temp = new Dictionary<string, EventItem>();
-                foreach (var name in Singleton<EventManager>.Instance.AlarmDic[key].Keys)
-                {
-                    var item = Singleton<EventManager>.Instance.AlarmDic[key][name].Clone();
-                    temp[name] = item;
-                }
-                result[key] = temp;
-            }
-            return result;
-        }
-
-        public Dictionary<int, AlarmDefine> GetAlarmDefine()
-        {
-            string recipeSchema = PathManager.GetCfgDir() + @"\AlarmDefine.xml";
-            XmlDocument xmlDom = new XmlDocument();
-            xmlDom.Load(recipeSchema);
-
-            XmlNodeList AlarmGroup = xmlDom.SelectNodes($"Alarms/AlarmGroup");
-            Dictionary<int, AlarmDefine> alarmList = new Dictionary<int, AlarmDefine>();
-            foreach (XmlNode item in AlarmGroup)
-            {
-                foreach (XmlNode alarm in item.ChildNodes)
-                {
-                    if (alarm != null)
-                    {
-                        AlarmDefine alarmDefine = CreateAlarmDefine(alarm);
-                        if (alarmDefine != null)
-                        {
-                            try
-                            {
-                                alarmList.Add(alarmDefine.Number, alarmDefine);
-                            }
-                            catch (Exception ex)
-                            {
-                                LOG.Write($"Alarm mumber={alarmDefine.Number} {ex}");
-                            }
-                        }
-                    }
-                }
-            }
-
-            return alarmList;
-        }
-
-        private AlarmDefine CreateAlarmDefine(XmlNode alarm)
-        {
-            AlarmDefine alarmDefine = new AlarmDefine();
-            if (alarm != null && alarm.Attributes != null)
-            {
-                if (alarm.Attributes["Number"] != null)
-                {
-                    if(alarm.Attributes["Number"].Value.ToLower().Contains("0x"))
-                    {
-                        alarmDefine.Number = int.Parse(alarm.Attributes["Number"].Value.Substring(2), NumberStyles.HexNumber);
-                    }
-                    else
-                    {
-                        alarmDefine.Number = int.Parse(alarm.Attributes["Number"].Value, NumberStyles.Integer);
-                    }
-                }
-                if (alarm.Attributes["Message"] != null)
-                    alarmDefine.Message = alarm.Attributes["Message"].Value;
-                if (alarm.Attributes["Action"] != null)
-                    alarmDefine.Action = alarm.Attributes["Action"].Value;
-                if (alarm.Attributes["Recovery"] != null)
-                    alarmDefine.Recovery = alarm.Attributes["Recovery"].Value;
-                if (alarm.Attributes["Cause"] != null)
-                    alarmDefine.Cause = alarm.Attributes["Cause"].Value;
-                return alarmDefine;
-            }
-            return null;
-        }
-
-        public string GetStringAlarmDefineTemplate()
-        {
-            try
-            {
-                string recipeSchema = PathManager.GetCfgDir() + @"\AlarmDefine.xml";
-
-                XmlDocument xmlDom = new XmlDocument();
-                xmlDom.Load(recipeSchema);
-                return xmlDom.OuterXml;
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-                return "";
-            }
-        }
-    }
-}

+ 0 - 110
FrameworkLocal/Common/Alarms/AlarmDefineFileManager.cs

@@ -1,110 +0,0 @@
-using Aitex.Core.RT.OperationCenter;
-using Aitex.Core.RT.SCCore;
-using Aitex.Core.Util;
-using Aitex.Core.WCF;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MECF.Framework.Common.Alarms
-{
- public class AlarmDefineFileManager : Singleton<AlarmDefineFileManager>
-    {
-        private Dictionary<int, AlarmDefine> _allAlarmDefineDic;
-        public Dictionary<int, Dictionary<int, AlarmDefine>> AlarmTables { get; private set; }
-        public int CurrentAlarmTable { get; set; } = 0;//default table 0
-        private bool _isCreateWCFChanel = false;
-        public void CreateWCFChanel()
-        {
-            if(!_isCreateWCFChanel)
-            {
-                Singleton<WcfServiceManager>.Instance.Initialize(new Type[]
-                {
-                    typeof(AlarmDefineService)
-                });
-                _isCreateWCFChanel = true;
-            }
-        }
-        public void Initialize()
-        {
-            CreateWCFChanel();
-            //AlarmDefineFileContext context = new AlarmDefineFileContext();
-            //_allAlarmDefineDic = context.GetAlarmDefine();
-            //foreach (var alarmdefine in _allAlarmDefineDic.Keys)
-            //{
-            //    _allAlarmDefineDic[alarmdefine].IsUse = true;
-            //}
-            //AlarmTables = new Dictionary<int, Dictionary<int, AlarmDefine>>()
-            //{
-            //    {0, _allAlarmDefineDic},
-            //};
-            //InitAlarmTable();
-
-            //OP.Subscribe($"System.UpdateAlarmTable", (string cmd, object[] args) =>
-            //{
-            //    SC.SetItemValue("PM1.RecipeEditParameter.AlarmTables.AlarmTable", args[0].ToString());
-            //    InitAlarmTable();
-            //    return true;
-            //});
-            ////for recipe
-            //OP.Subscribe($"System.SetAlarmTableID", (out string reason, int time, object[] param) =>
-            //{
-            //    reason = string.Empty;
-            //    int.TryParse(param[0].ToString(), out var currentAlarmTable);
-            //    CurrentAlarmTable = currentAlarmTable;
-            //    return true;
-            //});
-        }
-
-        private void InitAlarmTable()
-        {
-            if (!SC.ContainsItem("PM1.RecipeEditParameter.AlarmTables.AlarmTable"))
-                return;
-            var alarmTableSC = SC.GetStringValue("PM1.RecipeEditParameter.AlarmTables.AlarmTable");
-            if(!string.IsNullOrEmpty(alarmTableSC))
-            {
-                var alarmTables = alarmTableSC.Split('|').ToList();
-                foreach(var alarmTable in alarmTables)
-                {
-                    var alarmTableParas = alarmTable.Split(':');
-                    if(alarmTableParas.Length > 1)
-                    {
-                        int.TryParse(alarmTableParas[0], out int tableID);
-                        if(!AlarmTables.ContainsKey(tableID))
-                        {
-                            AlarmDefineFileContext context = new AlarmDefineFileContext();
-                            Dictionary<int, AlarmDefine> alarmDefineDic = context.GetAlarmDefine();
-                            foreach (var alarmdefine in alarmDefineDic.Keys)
-                            {
-                                alarmDefineDic[alarmdefine].IsUse = true;
-                            }
-                            AlarmTables.Add(tableID, alarmDefineDic);
-                        }
-
-                        var alarmDefines = alarmTableParas[1].Split(';').ToList();
-                        if(alarmDefines.Count > 0)
-                        {
-                            foreach(var alarmDefine in alarmDefines)
-                            {
-                                var alarmDefineItems = alarmDefine.Split(',');
-                                if (alarmDefineItems.Length > 3)
-                                {
-                                    int.TryParse(alarmDefineItems[0], out int alarmID);
-                                    bool.TryParse(alarmDefineItems[1], out bool isUse);
-                                    int.TryParse(alarmDefineItems[2].Replace("ALG", ""), out int alarmGroup);
-                                    if (AlarmTables[tableID].ContainsKey(alarmID))
-                                    {
-                                        AlarmTables[tableID][alarmID].IsUse = isUse;
-                                        AlarmTables[tableID][alarmID].AlarmGroup = alarmGroup;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-    }
-}

+ 0 - 79
FrameworkLocal/Common/Alarms/AlarmDefineService.cs

@@ -1,79 +0,0 @@
-using Aitex.Common.Util;
-using Aitex.Core.RT.Event;
-using Aitex.Core.RT.Log;
-using Aitex.Core.Util;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Xml;
-using System.Runtime.Serialization;
-using System.Runtime.Serialization.Json;
-using System.IO;
-
-namespace MECF.Framework.Common.Alarms
-{
-    class AlarmDefineService : IAlarmDefineService
-    {
-        public Dictionary<string, Dictionary<string, EventItem>> GetAlarmDefineTemplate()
-        {
-            Dictionary<string, Dictionary<string, EventItem>> result = new Dictionary<string, Dictionary<string, EventItem>>();
-            foreach (var key in Singleton<EventManager>.Instance.AlarmDic.Keys)
-            {
-                Dictionary<string, EventItem> temp = new Dictionary<string, EventItem>();
-                foreach (var name in Singleton<EventManager>.Instance.AlarmDic[key].Keys)
-                {
-                    var item = Singleton<EventManager>.Instance.AlarmDic[key][name].Clone();
-                    temp[name] = item;
-                }
-                result[key] = temp;
-            }
-            return result;
-        }
-
-
-        private AlarmDefine CreateAlarmDefine(XmlNode alarm)
-        {
-            AlarmDefine alarmDefine = new AlarmDefine();
-            if (alarm != null)
-            {
-                if (alarm.Attributes["Number"] != null)
-                {
-                    int numberValue = 0;
-                    if (alarm.Attributes["Number"].Value.Length > 2 && alarm.Attributes["Number"].Value.Substring(0, 2) == "0x")
-                    { numberValue = Convert.ToInt32(alarm.Attributes["Number"].Value, 16); }
-                    else
-                    { int.TryParse(alarm.Attributes["Number"].Value, out numberValue); }
-                    alarmDefine.Number = numberValue;
-                }
-                if (alarm.Attributes["Message"] != null)
-                    alarmDefine.Message = alarm.Attributes["Message"].Value;
-                if (alarm.Attributes["Action"] != null)
-                    alarmDefine.Action = alarm.Attributes["Action"].Value;
-                if (alarm.Attributes["Recovery"] != null)
-                    alarmDefine.Recovery = alarm.Attributes["Recovery"].Value;
-                if (alarm.Attributes["Cause"] != null)
-                    alarmDefine.Cause = alarm.Attributes["Cause"].Value;
-                return alarmDefine;
-            }
-            return null;
-        }
-
-        public string GetStringAlarmDefineTemplate()
-        {
-            try
-            {
-                string recipeSchema = PathManager.GetCfgDir() + @"\AlarmDefine.xml";
-                XmlDocument xmlDom = new XmlDocument();
-                xmlDom.Load(recipeSchema);
-                return xmlDom.OuterXml;
-            }
-            catch (Exception ex)
-            {
-                LOG.Write(ex);
-                return "";
-            }
-        }
-    }
-}

+ 0 - 15
FrameworkLocal/Common/Alarms/AlarmGroup.cs

@@ -1,15 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MECF.Framework.Common.Alarms
-{
-   public  class AlarmGroup
-    {
-        public string Name { get; set; }
-
-        public string Display { get; set; }
-    }
-}

+ 0 - 51
FrameworkLocal/Common/Alarms/AlarmServiceClient.cs

@@ -1,51 +0,0 @@
-using Aitex.Core.RT.Event;
-using Aitex.Core.Util;
-using Aitex.Core.WCF;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MECF.Framework.Common.Alarms
-{
-     public class AlarmClient : Singleton<AlarmClient>
-    {
-
-        private IAlarmDefineService _service;
-        public IAlarmDefineService Service
-        {
-            get
-            {
-                if (_service == null)
-                {
-                        _service = new AlarmServiceClient();
-                }
-                return _service;
-            }
-        }
-    }
-    public class AlarmServiceClient : ServiceClientWrapper<IAlarmDefineService>, IAlarmDefineService
-    {
-        public AlarmServiceClient()
-            : base("Client_IAlarmDefineService", "AlarmDefineService")
-        {
-        }
-
-        public Dictionary<string, Dictionary<string, EventItem>> GetAlarmDefineTemplate()
-        {
-            Dictionary<string, Dictionary<string, EventItem>> result = null;
-            Invoke(svc => { result = svc.GetAlarmDefineTemplate(); });
-            return result;
-        }
-
-
-        public string GetStringAlarmDefineTemplate()
-        {
-            string result = null;
-            Invoke(svc => { result = svc.GetStringAlarmDefineTemplate(); });
-            return result;
-        }
-
-    }
-}

+ 0 - 21
FrameworkLocal/Common/Alarms/IAlarmDefineService.cs

@@ -1,21 +0,0 @@
-using Aitex.Core.RT.Event;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.ServiceModel;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MECF.Framework.Common.Alarms
-{
-    [ServiceContract]
-    public interface IAlarmDefineService
-    {
-        [OperationContract]
-        Dictionary<string, Dictionary<string, EventItem>> GetAlarmDefineTemplate();
-
-        [OperationContract]
-        string GetStringAlarmDefineTemplate();
-
-    }
-}

+ 0 - 45
FrameworkLocal/Common/Backend/AboutView.Designer.cs

@@ -1,45 +0,0 @@
-namespace Aitex.Core.Backend
-{
-    partial class AboutView
-    {
-        /// <summary> 
-        /// 必需的设计器变量.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary> 
-        /// 清理所有正在使用的资源.
-        /// </summary>
-        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region 组件设计器生成的代码
-
-        /// <summary> 
-        /// 设计器支持所需的方法 - 不要
-        /// 使用代码编辑器修改此方法的内容.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            this.SuspendLayout();
-            // 
-            // AboutView
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.Name = "AboutView";
-            this.Size = new System.Drawing.Size(410, 372);
-            this.ResumeLayout(false);
-
-        }
-
-        #endregion
-    }
-}

+ 0 - 19
FrameworkLocal/Common/Backend/AboutView.cs

@@ -1,19 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-
-namespace Aitex.Core.Backend
-{
-    public partial class AboutView : UserControl
-    {
-        public AboutView()
-        {
-            InitializeComponent();
-        }
-    }
-}

+ 0 - 120
FrameworkLocal/Common/Backend/AboutView.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 108
FrameworkLocal/Common/Backend/Controls/AICtrl.Designer.cs

@@ -1,108 +0,0 @@
-namespace Aitex.Core.Backend
-{
-    partial class AICtrl
-    {
-        /// <summary> 
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary> 
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Component Designer generated code
-
-        /// <summary> 
-        /// Required method for Designer support - do not modify 
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            this.labelName = new System.Windows.Forms.Label();
-            this.checkBox1 = new System.Windows.Forms.CheckBox();
-            this.textBox1 = new System.Windows.Forms.TextBox();
-            this.textBox2 = new System.Windows.Forms.TextBox();
-            this.button1 = new System.Windows.Forms.Button();
-            this.SuspendLayout();
-            // 
-            // labelName
-            // 
-            this.labelName.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.labelName.Location = new System.Drawing.Point(24, 3);
-            this.labelName.Name = "labelName";
-            this.labelName.Size = new System.Drawing.Size(233, 23);
-            this.labelName.TabIndex = 5;
-            this.labelName.Text = "123.Leak_Senor_Alarm(SW)";
-            // 
-            // checkBox1
-            // 
-            this.checkBox1.AutoSize = true;
-            this.checkBox1.Location = new System.Drawing.Point(4, 6);
-            this.checkBox1.Name = "checkBox1";
-            this.checkBox1.Size = new System.Drawing.Size(15, 14);
-            this.checkBox1.TabIndex = 6;
-            this.checkBox1.UseVisualStyleBackColor = true;
-            this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
-            // 
-            // textBox1
-            // 
-            this.textBox1.Location = new System.Drawing.Point(3, 26);
-            this.textBox1.Name = "textBox1";
-            this.textBox1.ReadOnly = true;
-            this.textBox1.Size = new System.Drawing.Size(100, 21);
-            this.textBox1.TabIndex = 7;
-            // 
-            // textBox2
-            // 
-            this.textBox2.Location = new System.Drawing.Point(109, 26);
-            this.textBox2.Name = "textBox2";
-            this.textBox2.Size = new System.Drawing.Size(100, 21);
-            this.textBox2.TabIndex = 8;
-            // 
-            // button1
-            // 
-            this.button1.Location = new System.Drawing.Point(215, 24);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(42, 23);
-            this.button1.TabIndex = 9;
-            this.button1.Text = "Set";
-            this.button1.UseVisualStyleBackColor = true;
-            this.button1.Click += new System.EventHandler(this.button1_Click);
-            // 
-            // AICtrl
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.BackColor = System.Drawing.SystemColors.ControlLight;
-            this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-            this.Controls.Add(this.button1);
-            this.Controls.Add(this.textBox2);
-            this.Controls.Add(this.textBox1);
-            this.Controls.Add(this.checkBox1);
-            this.Controls.Add(this.labelName);
-            this.Name = "AICtrl";
-            this.Size = new System.Drawing.Size(260, 50);
-            this.ResumeLayout(false);
-            this.PerformLayout();
-
-        }
-
-        #endregion
-
-		private System.Windows.Forms.Label labelName;
-        private System.Windows.Forms.CheckBox checkBox1;
-        private System.Windows.Forms.TextBox textBox1;
-        private System.Windows.Forms.TextBox textBox2;
-        private System.Windows.Forms.Button button1;
-    }
-}

+ 0 - 73
FrameworkLocal/Common/Backend/Controls/AICtrl.cs

@@ -1,73 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using Aitex.Core.RT.Simulator;
-
-namespace Aitex.Core.Backend
-{
-    public partial class AICtrl : UserControl
-    {
-        private string _ioName;
-        public AICtrl()
-        {
-            InitializeComponent();
-        }
-
-        public void SetName(string name)
-        {
-            labelName.Text = name;
-        }
-
-        public void SetIoName(string group, string ioName)
-        {
-            _ioName = ioName;
-        }
- 
-        public void SetValue(float value)
-        {
-            textBox1.Text = String.Format("{0:f2}", value);
- 
-        }
-
- 
-
-        private void checkBox1_CheckedChanged(object sender, EventArgs e)
-        {
-            if (checkBox1.Checked)
-            {
-                textBox2.Text = textBox1.Text;
-
-                float value;
-                float.TryParse(textBox2.Text.Trim(), out value);
-
-                AiForce.Instance.Set(_ioName, value);
-
-                button1.Enabled = true;
-                textBox2.Enabled = true;
-
-                this.BackColor = Color.DodgerBlue;
-            }
-            else
-            {
-                AiForce.Instance.Unset(_ioName);
-
-                button1.Enabled = false;
-                textBox2.Enabled = false;
-
-                this.BackColor = Color.White;
-             }
-        }
-
-        private void button1_Click(object sender, EventArgs e)
-        {
-            float value;
-            if (float.TryParse(textBox2.Text.Trim(), out value))
-                AiForce.Instance.Set(_ioName, value);
-        }
-    }
-}

+ 0 - 120
FrameworkLocal/Common/Backend/Controls/AICtrl.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 95
FrameworkLocal/Common/Backend/Controls/AOCtrl.Designer.cs

@@ -1,95 +0,0 @@
-namespace Aitex.Core.Backend
-{
-    partial class AOCtrl
-    {
-        /// <summary> 
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary> 
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Component Designer generated code
-
-        /// <summary> 
-        /// Required method for Designer support - do not modify 
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            this.labelName = new System.Windows.Forms.Label();
-            this.textBox1 = new System.Windows.Forms.TextBox();
-            this.textBox2 = new System.Windows.Forms.TextBox();
-            this.button1 = new System.Windows.Forms.Button();
-            this.SuspendLayout();
-            // 
-            // labelName
-            // 
-            this.labelName.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.labelName.Location = new System.Drawing.Point(-1, 1);
-            this.labelName.Name = "labelName";
-            this.labelName.Size = new System.Drawing.Size(236, 22);
-            this.labelName.TabIndex = 5;
-            this.labelName.Text = "123.Leak_Senor_Alarm(SW)";
-            // 
-            // textBox1
-            // 
-            this.textBox1.Location = new System.Drawing.Point(3, 22);
-            this.textBox1.Name = "textBox1";
-            this.textBox1.ReadOnly = true;
-            this.textBox1.Size = new System.Drawing.Size(100, 21);
-            this.textBox1.TabIndex = 10;
-            // 
-            // textBox2
-            // 
-            this.textBox2.Location = new System.Drawing.Point(109, 22);
-            this.textBox2.Name = "textBox2";
-            this.textBox2.Size = new System.Drawing.Size(100, 21);
-            this.textBox2.TabIndex = 11;
-            // 
-            // button1
-            // 
-            this.button1.Location = new System.Drawing.Point(215, 20);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(42, 23);
-            this.button1.TabIndex = 12;
-            this.button1.Text = "Set";
-            this.button1.UseVisualStyleBackColor = true;
-            this.button1.Click += new System.EventHandler(this.button1_Click);
-            // 
-            // AOCtrl
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.BackColor = System.Drawing.SystemColors.ControlLight;
-            this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-            this.Controls.Add(this.button1);
-            this.Controls.Add(this.textBox2);
-            this.Controls.Add(this.textBox1);
-            this.Controls.Add(this.labelName);
-            this.Name = "AOCtrl";
-            this.Size = new System.Drawing.Size(260, 50);
-            this.ResumeLayout(false);
-            this.PerformLayout();
-
-        }
-
-        #endregion
-
-        private System.Windows.Forms.Label labelName;
-        private System.Windows.Forms.TextBox textBox1;
-        private System.Windows.Forms.TextBox textBox2;
-        private System.Windows.Forms.Button button1;
-    }
-}

+ 0 - 49
FrameworkLocal/Common/Backend/Controls/AOCtrl.cs

@@ -1,49 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using Aitex.Core.RT.IOCore;
-
-namespace Aitex.Core.Backend
-{
-    public partial class AOCtrl : UserControl
-    {
-        private string _ioName;
-
-        public AOCtrl()
-        {
-            InitializeComponent();
-        }
-
-        public void SetIoName(string group, string ioName)
-        {
-            _ioName = ioName;
-        }
-
-        public void SetName(string name)
-        {
-            labelName.Text = name;
-        }
-
-        /// <summary>
-        /// set value
-        /// </summary>
-        /// <param name="value"></param>
-        public void SetValue(float value)
-        {
- 
-            textBox1.Text = String.Format("{0:f2}", value);
-        }
-
-        private void button1_Click(object sender, EventArgs e)
-        {
-            double value;
-            if (double.TryParse(textBox2.Text, out value ))
-             IO.AO[_ioName].Value = (short) value;
-        }
-    }
-}

+ 0 - 120
FrameworkLocal/Common/Backend/Controls/AOCtrl.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 92
FrameworkLocal/Common/Backend/Controls/DICtrl.Designer.cs

@@ -1,92 +0,0 @@
-namespace Aitex.Core.Backend
-{
-    partial class DICtrl
-    {
-        /// <summary> 
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary> 
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Component Designer generated code
-
-        /// <summary> 
-        /// Required method for Designer support - do not modify 
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            this.labelRaw = new System.Windows.Forms.Label();
-            this.checkBox1 = new System.Windows.Forms.CheckBox();
-            this.checkBox2 = new System.Windows.Forms.CheckBox();
-            this.SuspendLayout();
-            // 
-            // labelRaw
-            // 
-            this.labelRaw.BackColor = System.Drawing.Color.LightGray;
-            this.labelRaw.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.labelRaw.Location = new System.Drawing.Point(25, 1);
-            this.labelRaw.Name = "labelRaw";
-            this.labelRaw.Size = new System.Drawing.Size(250, 23);
-            this.labelRaw.TabIndex = 0;
-            this.labelRaw.Text = "123.Leak_Senor_Alarm(SW)";
-            this.labelRaw.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
-            this.labelRaw.Click += new System.EventHandler(this.labelName_Click);
-            // 
-            // checkBox1
-            // 
-            this.checkBox1.AutoSize = true;
-            this.checkBox1.Location = new System.Drawing.Point(3, 5);
-            this.checkBox1.Name = "checkBox1";
-            this.checkBox1.Size = new System.Drawing.Size(15, 14);
-            this.checkBox1.TabIndex = 1;
-            this.checkBox1.UseVisualStyleBackColor = true;
-            this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
-            // 
-            // checkBox2
-            // 
-            this.checkBox2.AutoSize = true;
-            this.checkBox2.Enabled = false;
-            this.checkBox2.Location = new System.Drawing.Point(280, 5);
-            this.checkBox2.Name = "checkBox2";
-            this.checkBox2.Size = new System.Drawing.Size(15, 14);
-            this.checkBox2.TabIndex = 2;
-            this.checkBox2.UseVisualStyleBackColor = true;
-            this.checkBox2.CheckedChanged += new System.EventHandler(this.checkBox2_CheckedChanged);
-            // 
-            // DICtrl
-            // 
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
-            this.AutoValidate = System.Windows.Forms.AutoValidate.Disable;
-            this.BackColor = System.Drawing.SystemColors.ControlLight;
-            this.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
-            this.CausesValidation = false;
-            this.Controls.Add(this.checkBox2);
-            this.Controls.Add(this.labelRaw);
-            this.Controls.Add(this.checkBox1);
-            this.Name = "DICtrl";
-            this.Size = new System.Drawing.Size(301, 25);
-            this.ResumeLayout(false);
-            this.PerformLayout();
-
-        }
-
-        #endregion
-
-        private System.Windows.Forms.Label labelRaw;
-        private System.Windows.Forms.CheckBox checkBox1;
-        private System.Windows.Forms.CheckBox checkBox2;
-    }
-}

+ 0 - 79
FrameworkLocal/Common/Backend/Controls/DICtrl.cs

@@ -1,79 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using Aitex.Core.RT.Simulator;
-
-namespace Aitex.Core.Backend
-{
-    public partial class DICtrl : UserControl
-    {
-        private string _ioName;
-        private bool _rawValue;
-
-        public DICtrl()
-        {
-            InitializeComponent();
-
-            this.Load += DICtrl_Load;
-        }
-
-        private void DICtrl_Load(object sender, EventArgs e)
-        {
-             
-        }
-
-        public void SetIoName(string group, string ioName)
-        {
-            _ioName = ioName;
-        }
-
-        public void SetName(string name)
-        {
-            this.labelRaw.Text = name;
-        }
-
-        public void SetValue(bool latchedValue, bool rawValue)
-        {
-            _rawValue = rawValue;
-
-             this.labelRaw.BackColor = rawValue ? Color.Lime : Color.LightGray;
- 
-        }
-
-        private void labelName_Click(object sender, EventArgs e)
-        {
-
-        }
- 
-
-        private void checkBox1_CheckedChanged(object sender, EventArgs e)
-        {
-            if (checkBox1.Checked)
-            {
-                checkBox2.Checked = _rawValue;
-
-                DiForce.Instance.Set(_ioName, checkBox2.Checked);
-                checkBox2.Enabled = true;
-
-                this.BackColor = Color.DodgerBlue;
-            }
-            else
-            {
-                DiForce.Instance.Unset(_ioName);
-                checkBox2.Enabled = false;
-
-                this.BackColor = Color.White;
-            }
-        }
-
-        private void checkBox2_CheckedChanged(object sender, EventArgs e)
-        {
-            DiForce.Instance.Set(_ioName, checkBox2.Checked);
-        }
-    }
-}

+ 0 - 120
FrameworkLocal/Common/Backend/Controls/DICtrl.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 12
FrameworkLocal/Common/Backend/IBackendIoSimulator.cs

@@ -1,12 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Aitex.Core.Backend
-{
-    public interface IBackendIoSimulator
-    {
-        void SetDi(string group, string name, byte value);
-    }
-}

+ 0 - 47
FrameworkLocal/Common/Backend/IO/AI.Designer.cs

@@ -1,47 +0,0 @@
-namespace Aitex.Core.Backend
-{
-	partial class AI
-	{
-		/// <summary> 
-		/// Required designer variable.
-		/// </summary>
-		private System.ComponentModel.IContainer components = null;
-
-		/// <summary> 
-		/// Clean up any resources being used.
-		/// </summary>
-		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-		protected override void Dispose(bool disposing)
-		{
-			if (disposing && (components != null))
-			{
-				components.Dispose();
-			}
-			base.Dispose(disposing);
-		}
-
-		#region Component Designer generated code
-
-		/// <summary> 
-		/// Required method for Designer support - do not modify 
-		/// the contents of this method with the code editor.
-		/// </summary>
-		private void InitializeComponent()
-		{
-            this.SuspendLayout();
-            // 
-            // AI
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.BackColor = System.Drawing.SystemColors.Control;
-            this.Name = "AI";
-            this.Size = new System.Drawing.Size(1065, 746);
-            this.ResumeLayout(false);
-
-		}
-
-		#endregion
-
-	}
-}

+ 0 - 92
FrameworkLocal/Common/Backend/IO/AI.cs

@@ -1,92 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using Aitex.Core.RT.IOCore;
-using Aitex.Core.Util;
-
-namespace Aitex.Core.Backend
-{
-    public partial class AI : UserControl, IIOView
-	{
-        PeriodicJob _thread;
-
-		public AI()
-		{
-			InitializeComponent();
-
-            this.Load += new EventHandler(AI_Load);
-        }
-
-        void AI_Load(object sender, EventArgs e)
-        {
-            if (this.Controls.Count > 0)
-                return;
-
-            List<Tuple<int, int, string>> ioList = IO.GetIONameList("", IOType.AI);
-            //List<Tuple<int, int, string>> ioListRemote = IO.GetIONameList("remote", IOType.AI);
-            //foreach (var tuple in ioListRemote)
-            //{
-            //    ioList.Add(tuple);
-            //}
-            int index = 0;
-            foreach (var item in ioList)
-            {
-                AICtrl aiCtrl1 = new AICtrl();
-                aiCtrl1.Location = new System.Drawing.Point(index % 3 * 305, index / 3 * 55);
-                aiCtrl1.SetName(string.Format("AI-{0}.{1}", item.Item1, item.Item3));
-                aiCtrl1.SetIoName("local", item.Item3);
-                //aiCtrl1.Margin = new Padding(0, 0, 5, 5);
-
-                aiCtrl1.Name = string.Format("AI_{0}", item.Item1);
-                aiCtrl1.Size = new System.Drawing.Size(300, 50);
-                aiCtrl1.Visible = true;
-                aiCtrl1.Tag = item.Item3;
-                this.Controls.Add(aiCtrl1);
-                index++;
-            }
-
-            _thread = new PeriodicJob(500, OnTimer, "AITimer", false, true);
-
-            VisibleChanged += (sender1, e1) =>
-            {
-                if (Visible) _thread.Start(); else _thread.Pause();
-            };
-        }
-
-        bool OnTimer()
-        {
-            Invoke(new Action(() =>
-            {
-                foreach (AICtrl ctrl in Controls)
-                {
-                    if (ctrl != null)
-                    {
-                        ctrl.SetValue((short)IO.AI[(string)ctrl.Tag].Value);
-                    }
-                }
-            }));
-
-
-            return true;
-        }
-
-        public void EnableTimer(bool enable)
-        {
-            if (enable)
-                _thread.Start();
-            else
-                _thread.Pause();
-        }
-
-        public void Close()
-        {
-            if (_thread != null)
-            _thread.Stop();
-        }
-    }
-}

+ 0 - 120
FrameworkLocal/Common/Backend/IO/AI.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 46
FrameworkLocal/Common/Backend/IO/AO.Designer.cs

@@ -1,46 +0,0 @@
-namespace Aitex.Core.Backend
-{
-	partial class AO
-	{
-		/// <summary> 
-		/// Required designer variable.
-		/// </summary>
-		private System.ComponentModel.IContainer components = null;
-
-		/// <summary> 
-		/// Clean up any resources being used.
-		/// </summary>
-		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-		protected override void Dispose(bool disposing)
-		{
-			if (disposing && (components != null))
-			{
-				components.Dispose();
-			}
-			base.Dispose(disposing);
-		}
-
-		#region Component Designer generated code
-
-		/// <summary> 
-		/// Required method for Designer support - do not modify 
-		/// the contents of this method with the code editor.
-		/// </summary>
-		private void InitializeComponent()
-		{
-            this.SuspendLayout();
-            // 
-            // AO
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.BackColor = System.Drawing.SystemColors.Control;
-            this.Name = "AO";
-            this.Size = new System.Drawing.Size(987, 756);
-            this.ResumeLayout(false);
-
-		}
-
-		#endregion
-	}
-}

+ 0 - 95
FrameworkLocal/Common/Backend/IO/AO.cs

@@ -1,95 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using Aitex.Core.RT.IOCore;
-using Aitex.Core.Util;
-
-namespace Aitex.Core.Backend
-{
-    public partial class AO : UserControl, IIOView
-	{
-        PeriodicJob _thread;
-
-        public AO()
-		{
-			InitializeComponent();
-
-            this.Load += new EventHandler(AO_Load);
-		}
-
-        void AO_Load(object sender, EventArgs e)
-        {
-            if (this.Controls.Count > 0)
-                return;
-
-            List<Tuple<int, int, string>> ioList = IO.GetIONameList("", IOType.AO);
-
-            //List<Tuple<int, int, string>> ioListRemote = IO.GetIONameList("remote", IOType.AO);
-            //foreach (var tuple in ioListRemote)
-            //{
-            //    ioList.Add(tuple);
-            //}
-
-            int index = 0;
-            foreach (var item in ioList)
-            {
-                AOCtrl aoCtrl1 = new AOCtrl();
-                aoCtrl1.Location = new System.Drawing.Point(index % 3 * 305, index / 3 * 55);
-                aoCtrl1.SetName(string.Format("AO-{0}.{1}", item.Item1, item.Item3));
- 
-                aoCtrl1.SetIoName("local", item.Item3);
-                aoCtrl1.Name = string.Format("AO_{0}", item.Item1);
-                aoCtrl1.Size = new System.Drawing.Size(300, 50);
-                aoCtrl1.Visible = true;
-                aoCtrl1.Tag = item.Item3;
-                //aoCtrl1.Margin = new Padding(0, 0, 5, 5);
-
-                Controls.Add(aoCtrl1);
-                index++;
-            }
-
-            _thread = new PeriodicJob(500, OnTimer, "AOTimer", false, true);
-
-            VisibleChanged += (sender1, e1) =>
-            {
-                if (Visible) _thread.Start(); else _thread.Pause();
-            };
-        }
-
-        bool OnTimer()
-        {
-            Invoke(new Action(() =>
-            {
-                foreach (AOCtrl ctrl in Controls)
-                {
-                    if (ctrl != null)
-                    {
-                        ctrl.SetValue((short)IO.AO[(string)ctrl.Tag].Value);
-                    }
-                }
-            }));
-
-
-            return true;
-        }
-
-        public void EnableTimer(bool enable)
-        {
-            if (enable)
-                _thread.Start();
-            else
-                _thread.Pause();
-        }
-
-        public void Close()
-        {
-            if (_thread != null)
-                _thread.Stop();
-        }
-	}
-}

+ 0 - 120
FrameworkLocal/Common/Backend/IO/AO.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 60
FrameworkLocal/Common/Backend/IO/DI.Designer.cs

@@ -1,60 +0,0 @@
-namespace Aitex.Core.Backend
-{
-	partial class DI
-	{
-		/// <summary> 
-		/// Required designer variable.
-		/// </summary>
-		private System.ComponentModel.IContainer components = null;
-
-		/// <summary> 
-		/// Clean up any resources being used.
-		/// </summary>
-		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-		protected override void Dispose(bool disposing)
-		{
-			if (disposing && (components != null))
-			{
-				components.Dispose();
-			}
-			base.Dispose(disposing);
-		}
-
-		#region Component Designer generated code
-
-		/// <summary> 
-		/// Required method for Designer support - do not modify 
-		/// the contents of this method with the code editor.
-		/// </summary>
-		private void InitializeComponent()
-		{
-            this.panel1 = new System.Windows.Forms.Panel();
-            this.SuspendLayout();
-            // 
-            // panel1
-            // 
-            this.panel1.AutoScroll = true;
-            this.panel1.BackColor = System.Drawing.SystemColors.Control;
-            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.panel1.Location = new System.Drawing.Point(0, 0);
-            this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(1500, 629);
-            this.panel1.TabIndex = 0;
-            // 
-            // DI
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.BackColor = System.Drawing.Color.LightGray;
-            this.Controls.Add(this.panel1);
-            this.Name = "DI";
-            this.Size = new System.Drawing.Size(1500, 629);
-            this.ResumeLayout(false);
-
-		}
-
-		#endregion
-
-		private System.Windows.Forms.Panel panel1;
-	}
-}

+ 0 - 103
FrameworkLocal/Common/Backend/IO/DI.cs

@@ -1,103 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using Aitex.Core.RT.IOCore;
-using Aitex.Core.Util;
-
-namespace Aitex.Core.Backend
-{
-	public partial class DI : UserControl, IIOView
-	{
-        PeriodicJob _thread;
-
-		public DI()
-		{
-			InitializeComponent();
-
-            this.Load += new EventHandler(DI_Load);
-            
-		}
-
-        void DI_Load(object sender, EventArgs e)
-        {
-            if (this.panel1.Controls.Count > 0)
-                return;
-
-            List<Tuple<int, int, string>> ioList = IO.GetIONameList("", IOType.DI);
-            //List<Tuple<int, int, string>> ioListRemote = IO.GetIONameList("remote", IOType.DI);
-            //foreach (var tuple in ioListRemote)
-            //{
-            //    ioList.Add(tuple);
-            //}
-
-            int totalColumn = 3;
-
-            int countPerColumn = (ioList.Count / totalColumn) + ((ioList.Count % totalColumn) > 0 ? 1 : 0);
-
-            
-            int index = 0;
-            foreach (var item in ioList)
-            {
-                int row = index % countPerColumn;
-                int col = index / countPerColumn;
-
-                DICtrl diCtrl1 = new DICtrl();
-                diCtrl1.Location = new System.Drawing.Point(col * 305, row * 30);
-                diCtrl1.SetName(string.Format("DI-{0}. {1}", item.Item1, item.Item3));
-                diCtrl1.SetIoName("local", item.Item3);
-                diCtrl1.Name = string.Format("DI_{0}", item.Item1);
-                diCtrl1.Size = new System.Drawing.Size(300, 25);
-                diCtrl1.Tag = item.Item3;
-                //diCtrl1.Margin = new Padding(0, 0, 5, 5);
-
-
-                this.panel1.Controls.Add(diCtrl1);
-                index++;
-            }
-
-            _thread = new PeriodicJob(500, OnTimer, "DITimer", false, true);
-
-            VisibleChanged += (sender1, e1) =>
-            {
-                if (Visible) _thread.Start(); else _thread.Pause();
-            };
-        }
-
-        bool OnTimer()
-        {
-            Invoke(new Action(() =>
-            {
-                foreach (DICtrl ctrl in panel1.Controls)
-                {
-                    string name = (string)ctrl.Tag;
-                    if (ctrl != null)
-                    {
-                        ctrl.SetValue(IO.DI[name].Value, IO.DI[name].Value);
-                    }
-                }
-            }));
-
-
-            return true;
-        }
-
-        public void EnableTimer(bool enable)
-        {
-            if (enable)
-                _thread.Start();
-            else
-                _thread.Pause();
-        }
-
-        public void Close()
-        {
-            if (_thread != null)
-            _thread.Stop();
-        }
-	}
-}

+ 0 - 120
FrameworkLocal/Common/Backend/IO/DI.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 61
FrameworkLocal/Common/Backend/IO/DO.Designer.cs

@@ -1,61 +0,0 @@
-namespace Aitex.Core.Backend
-{
-	partial class DO
-	{
-		/// <summary> 
-		/// Required designer variable.
-		/// </summary>
-		private System.ComponentModel.IContainer components = null;
-
-		/// <summary> 
-		/// Clean up any resources being used.
-		/// </summary>
-		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-		protected override void Dispose(bool disposing)
-		{
-			if (disposing && (components != null))
-			{
-				components.Dispose();
-			}
-			base.Dispose(disposing);
-		}
-
-		#region Component Designer generated code
-
-		/// <summary> 
-		/// Required method for Designer support - do not modify 
-		/// the contents of this method with the code editor.
-		/// </summary>
-		private void InitializeComponent()
-		{
-            this.panel1 = new System.Windows.Forms.Panel();
-            this.SuspendLayout();
-            // 
-            // panel1
-            // 
-            this.panel1.AutoScroll = true;
-            this.panel1.BackColor = System.Drawing.SystemColors.Control;
-            this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.panel1.Location = new System.Drawing.Point(0, 0);
-            this.panel1.Name = "panel1";
-            this.panel1.Size = new System.Drawing.Size(984, 761);
-            this.panel1.TabIndex = 0;
-            // 
-            // DO
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.AutoScroll = true;
-            this.BackColor = System.Drawing.Color.White;
-            this.Controls.Add(this.panel1);
-            this.Name = "DO";
-            this.Size = new System.Drawing.Size(984, 761);
-            this.ResumeLayout(false);
-
-		}
-
-		#endregion
-
-        private System.Windows.Forms.Panel panel1;
-	}
-}

+ 0 - 107
FrameworkLocal/Common/Backend/IO/DO.cs

@@ -1,107 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using Aitex.Core.RT.IOCore;
-using Aitex.Core.Util;
-
-namespace Aitex.Core.Backend
-{
-    public partial class DO : UserControl, IIOView
-	{
-        PeriodicJob _thread;
-
-		public DO()
-		{
-			InitializeComponent();
-
-            this.Load += new EventHandler(DO_Load);
-            
-		}
-
-        void DO_Load(object sender, EventArgs e)
-        {
-            if (this.panel1.Controls.Count > 0)
-                return;
-
-            List<Tuple<int, int, string>> ioList = IO.GetIONameList("", IOType.DO);
-            //List<Tuple<int, int, string>> ioListRemote = IO.GetIONameList("remote", IOType.DO);
-            //foreach (var tuple in ioListRemote)
-            //{
-            //    ioList.Add(tuple);
-            //}
-            int index = 0;
-            foreach (var item in ioList)
-            {
-                Button button1 = new Button();
-                //button1.Margin = new Padding(0,0,5,5);
-                button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
-                button1.Location = new System.Drawing.Point(index % 3 * 305, index / 3 * 30);
-                //button1.Name = string.Format("DO_{0}", i);
-                button1.Size = new System.Drawing.Size(300, 25);
-                button1.Text = string.Format("DO-{0}. {1}", item.Item1, item.Item3);
-                button1.Tag = item.Item3;
-                button1.BackColor = Color.LightGray;
-                button1.TextAlign = ContentAlignment.MiddleCenter;
-                button1.Font = new System.Drawing.Font("Arial,SimSun", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
-                button1.UseVisualStyleBackColor = false;
-                button1.Click += (sender2, e2) =>
-                {
-                    var btn = (Button)sender2;
-                    string name = (string)btn.Tag;
-                    string reason;
-                    if (!IO.DO[name].SetValue(!IO.DO[name].Value, out reason))
-                    {
-                        MessageBox.Show(reason);
-                    }
-                };
-                this.panel1.Controls.Add(button1);
-                index++;
-            }
-
-            _thread = new PeriodicJob(500, OnTimer, "DOTimer", false, true);
-
-            VisibleChanged += (sender1, e1) =>
-            {
-                if (Visible) _thread.Start(); else _thread.Pause();
-            };
-        }
-
-        bool OnTimer()
-		{
-            Invoke(new Action(() =>
-            {
-                foreach (Button ctrl in this.panel1.Controls)
-                {
-                    if (ctrl != null)
-                    {
-                        string name = (string)ctrl.Tag;
-
-                        ctrl.BackColor = IO.DO[(string)ctrl.Tag].Value ? Color.Lime : Color.LightGray;
-                    }
-                }
-            }));
-
-
-            return true;
-		}
-
-        public void EnableTimer(bool enable)
-        {
-            if (enable)
-                _thread.Start();
-            else
-                _thread.Pause();
-        }
-
-        public void Close()
-        {
-            if (_thread != null)
-            _thread.Stop();
-        }
-	}
-}

+ 0 - 120
FrameworkLocal/Common/Backend/IO/DO.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 13
FrameworkLocal/Common/Backend/IO/IIOView.cs

@@ -1,13 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Aitex.Core.Backend
-{
-    interface IIOView
-    {
-        void EnableTimer(bool enable);
-        void Close();
-    }
-}

+ 0 - 58
FrameworkLocal/Common/Backend/IO/IoDataView.Designer.cs

@@ -1,58 +0,0 @@
-namespace Aitex.Core.Backend
-{
-	partial class IoDataView
-	{
-		/// <summary> 
-		/// Required designer variable.
-		/// </summary>
-		private System.ComponentModel.IContainer components = null;
-
-		/// <summary> 
-		/// Clean up any resources being used.
-		/// </summary>
-		/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-		protected override void Dispose(bool disposing)
-		{
-			if (disposing && (components != null))
-			{
-				components.Dispose();
-			}
-			base.Dispose(disposing);
-		}
-
-		#region Component Designer generated code
-
-		/// <summary> 
-		/// Required method for Designer support - do not modify 
-		/// the contents of this method with the code editor.
-		/// </summary>
-		private void InitializeComponent()
-		{
-            this.tabControl1 = new System.Windows.Forms.TabControl();
-            this.SuspendLayout();
-            // 
-            // tabControl1
-            // 
-            this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.tabControl1.Location = new System.Drawing.Point(0, 0);
-            this.tabControl1.Name = "tabControl1";
-            this.tabControl1.SelectedIndex = 0;
-            this.tabControl1.Size = new System.Drawing.Size(1200, 725);
-            this.tabControl1.TabIndex = 0;
-            // 
-            // IoDataView
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.Controls.Add(this.tabControl1);
-            this.Name = "IoDataView";
-            this.Size = new System.Drawing.Size(1200, 725);
-            this.ResumeLayout(false);
-
-		}
-
-        #endregion
-
-        private System.Windows.Forms.TabControl tabControl1;
-    }
-}

+ 0 - 66
FrameworkLocal/Common/Backend/IO/IoDataView.cs

@@ -1,66 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-
-namespace Aitex.Core.Backend
-{
-	public partial class IoDataView : UserControl
-	{
-	    //List<UserControl> _views = new List<UserControl>();
-
-	    DI _diView = new DI();
-	    DO _doView = new DO();
-	    AI _aiView = new AI();
-	    AO _aoView = new AO();
-
-        public IoDataView()
-		{
-			InitializeComponent();
-
-            this.Load += IoDataView_Load;
-
-			//_views.Add(_diView);
-			//_views.Add(_doView);
-			//_views.Add(_aiView);
-			//_views.Add(_aoView);
-			
-
-		}
-
-        private void IoDataView_Load(object sender, EventArgs e)
-        {
-            if (tabControl1.TabPages.Count == 0)
-            {
-                AddView("DI", _diView);
-                AddView("DO", _doView);
-                AddView("AI", _aiView);
-                AddView("AO", _aoView);
-            }
-        }
-
-	    private void AddView(string name, UserControl uc)
-	    {
-	            uc.Dock = DockStyle.Fill;
-	        uc.AutoScroll = true;
-
-	            TabPage tp = new TabPage();
-	            tp.Text = name;
-	            tp.Controls.Add(uc);
-	            this.tabControl1.Controls.Add(tp);
- 
-	    }
-
-        public void Close()
-        {
-            ((IIOView)_diView).Close();
-            ((IIOView)_doView).Close();
-            ((IIOView)_aiView).Close();
-            ((IIOView)_aoView).Close();
-        }
-	}
-}

+ 0 - 120
FrameworkLocal/Common/Backend/IO/IoDataView.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 139
FrameworkLocal/Common/Backend/MainView.Designer.cs

@@ -1,139 +0,0 @@
-namespace Aitex.Core.Backend
-{
-	partial class MainView
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            this.splitContainer1 = new System.Windows.Forms.SplitContainer();
-            this.btnHide = new System.Windows.Forms.Button();
-            this.splitContainer2 = new System.Windows.Forms.SplitContainer();
-            this.treeView1 = new System.Windows.Forms.TreeView();
-            this.btnReset = new System.Windows.Forms.Button();
-            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
-            this.splitContainer1.Panel1.SuspendLayout();
-            this.splitContainer1.Panel2.SuspendLayout();
-            this.splitContainer1.SuspendLayout();
-            ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).BeginInit();
-            this.splitContainer2.Panel1.SuspendLayout();
-            this.splitContainer2.SuspendLayout();
-            this.SuspendLayout();
-            // 
-            // splitContainer1
-            // 
-            this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
-            this.splitContainer1.IsSplitterFixed = true;
-            this.splitContainer1.Location = new System.Drawing.Point(0, 0);
-            this.splitContainer1.Name = "splitContainer1";
-            this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
-            // 
-            // splitContainer1.Panel1
-            // 
-            this.splitContainer1.Panel1.Controls.Add(this.btnReset);
-            this.splitContainer1.Panel1.Controls.Add(this.btnHide);
-            // 
-            // splitContainer1.Panel2
-            // 
-            this.splitContainer1.Panel2.BackColor = System.Drawing.Color.White;
-            this.splitContainer1.Panel2.Controls.Add(this.splitContainer2);
-            this.splitContainer1.Size = new System.Drawing.Size(1107, 784);
-            this.splitContainer1.SplitterDistance = 30;
-            this.splitContainer1.TabIndex = 0;
-            // 
-            // btnHide
-            // 
-            this.btnHide.Location = new System.Drawing.Point(984, 5);
-            this.btnHide.Name = "btnHide";
-            this.btnHide.Size = new System.Drawing.Size(111, 23);
-            this.btnHide.TabIndex = 3;
-            this.btnHide.Text = "Hide";
-            this.btnHide.UseVisualStyleBackColor = true;
-            this.btnHide.Click += new System.EventHandler(this.btnLogout_Click);
-            // 
-            // splitContainer2
-            // 
-            this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.splitContainer2.Location = new System.Drawing.Point(0, 0);
-            this.splitContainer2.Name = "splitContainer2";
-            // 
-            // splitContainer2.Panel1
-            // 
-            this.splitContainer2.Panel1.Controls.Add(this.treeView1);
-            this.splitContainer2.Size = new System.Drawing.Size(1107, 750);
-            this.splitContainer2.SplitterDistance = 150;
-            this.splitContainer2.SplitterWidth = 6;
-            this.splitContainer2.TabIndex = 0;
-            // 
-            // treeView1
-            // 
-            this.treeView1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.treeView1.Location = new System.Drawing.Point(0, 0);
-            this.treeView1.Name = "treeView1";
-            this.treeView1.Size = new System.Drawing.Size(150, 750);
-            this.treeView1.TabIndex = 0;
-            this.treeView1.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.treeView1_AfterSelect);
-            // 
-            // btnReset
-            // 
-            this.btnReset.Location = new System.Drawing.Point(12, 3);
-            this.btnReset.Name = "btnReset";
-            this.btnReset.Size = new System.Drawing.Size(111, 23);
-            this.btnReset.TabIndex = 4;
-            this.btnReset.Text = "Reset";
-            this.btnReset.UseVisualStyleBackColor = true;
-            this.btnReset.Click += new System.EventHandler(this.btnReset_Click);
-            // 
-            // MainView
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(1107, 784);
-            this.Controls.Add(this.splitContainer1);
-            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
-            this.Name = "MainView";
-            this.Text = "Backend Management Console";
-            this.splitContainer1.Panel1.ResumeLayout(false);
-            this.splitContainer1.Panel2.ResumeLayout(false);
-            ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
-            this.splitContainer1.ResumeLayout(false);
-            this.splitContainer2.Panel1.ResumeLayout(false);
-            ((System.ComponentModel.ISupportInitialize)(this.splitContainer2)).EndInit();
-            this.splitContainer2.ResumeLayout(false);
-            this.ResumeLayout(false);
-
-        }
-
-        #endregion
-
-        private System.Windows.Forms.SplitContainer splitContainer1;
-        private System.Windows.Forms.Button btnHide;
-        private System.Windows.Forms.SplitContainer splitContainer2;
-        private System.Windows.Forms.TreeView treeView1;
-        private System.Windows.Forms.Button btnReset;
-    }
-}
-

+ 0 - 126
FrameworkLocal/Common/Backend/MainView.cs

@@ -1,126 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using System.ServiceModel;
-using System.Threading;
-using System.Configuration;
-using Aitex.Core.RT.OperationCenter;
-
-namespace Aitex.Core.Backend
-{
-    public partial class MainView : Form
-    {
-		private NotifyIcon _notifyIcon = new NotifyIcon();  
-		Dictionary<string,UserControl> _views;
-        object _msgLock = new object();
-        List<string> _events = new List<string>();
-
-		public MainView()
-        {
-            InitializeComponent();
-
-            _views = new Dictionary<string, UserControl>();
-            _views.Add("About",new AboutView());
- 
-            foreach(var item in _views)
-                splitContainer2.Panel2.Controls.Add(item.Value);
-
-            ////defaut view
-            ShowView("About");
- 
-
-            this.SizeChanged += new EventHandler(MainView_SizeChanged);
-
-       }
-
-        void MainView_SizeChanged(object sender, EventArgs e)
-        {
-            foreach (var item in _views)
-            {
-                item.Value.Width = this.splitContainer1.Panel2.Width;
-                item.Value.Height = this.splitContainer1.Panel2.Height;
-            }
-        }
- 
-
-        /// <summary>
-        /// 不允许用户直接关闭后台界面窗口程序,退出PM程序必须通过点击任务栏图标实现程序退出
-        /// </summary>
-        /// <param name="e"></param>
-        protected override void OnFormClosing(FormClosingEventArgs e)
-        {
-            if (e.CloseReason == CloseReason.UserClosing)
-            {
-                e.Cancel = true;
-                Hide();
-                return;
-            }
-
-        }   
-
- 
-
-        public void AddCustomView(string name, UserControl uc)
-        {
-            if (uc == null)
-                return;
-
-            this.treeView1.Nodes.Add(new TreeNode() { Tag = name, Text = name });
-
-            uc.Show();
-
-            uc.Hide();
-
-            _views.Add(name, uc);
-            splitContainer2.Panel2.Controls.Add(uc);
-
-            uc.Width = splitContainer2.Panel2.Width;
-            uc.Height = splitContainer2.Panel2.Height;
-        }
- 
-		protected override CreateParams CreateParams
-		{
-			get
-			{
-				int CS_NOCLOSE = 0x200;
-				CreateParams parameters = base.CreateParams;
-				parameters.ClassStyle |= CS_NOCLOSE;
-				return parameters;
-			}
-		}
-
- 
-		private void ShowView(string viewName)
-		{
-			foreach (var item in _views)
-			{
-				if (item.Key != viewName)
-					item.Value.Hide();
-				else
-					item.Value.Show();
-			}		
-		}
- 
-		private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
-		{
-			var viewName = (string)e.Node.Tag;
-			ShowView(viewName);
-		}
- 
-		private void btnLogout_Click(object sender, EventArgs e)
-		{
-			Hide();
-		}
- 
-
-        private void btnReset_Click(object sender, EventArgs e)
-        {
-            OP.DoOperation("Reset");
-        }
-    }
-}

+ 0 - 120
FrameworkLocal/Common/Backend/MainView.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 60
FrameworkLocal/Common/Backend/SimulatorView.Designer.cs

@@ -1,60 +0,0 @@
-namespace Aitex.Core.Backend
-{
-    partial class SimulatorView
-    {
-        /// <summary> 
-        /// 必需的设计器变量.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary> 
-        /// 清理所有正在使用的资源.
-        /// </summary>
-        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region 组件设计器生成的代码
-
-        /// <summary> 
-        /// 设计器支持所需的方法 - 不要
-        /// 使用代码编辑器修改此方法的内容.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
-            this.SuspendLayout();
-            // 
-            // flowLayoutPanel1
-            // 
-            this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.flowLayoutPanel1.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
-            this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
-            this.flowLayoutPanel1.Name = "flowLayoutPanel1";
-            this.flowLayoutPanel1.Size = new System.Drawing.Size(793, 555);
-            this.flowLayoutPanel1.TabIndex = 2;
-            // 
-            // SimulatorView
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.AutoScroll = true;
-            this.Controls.Add(this.flowLayoutPanel1);
-            this.Name = "SimulatorView";
-            this.Size = new System.Drawing.Size(793, 555);
-            this.Load += new System.EventHandler(this.SimulatorView_Load);
-            this.ResumeLayout(false);
-
-        }
-
-        #endregion
-
-        private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
-    }
-}

+ 0 - 95
FrameworkLocal/Common/Backend/SimulatorView.cs

@@ -1,95 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.ComponentModel.DataAnnotations;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Windows.Forms;
-using System.Windows.Shapes;
-using Aitex.Core.RT.SCCore;
-using Aitex.Core.RT.Simulator;
-
-namespace Aitex.Core.Backend
-{
-    public partial class SimulatorView : UserControl
-    {
-        //<GroupName, <Name, Description>>
-        private Dictionary<string, Dictionary<string, string>> _caseGroup = new Dictionary<string, Dictionary<string, string>>();
-        public SimulatorView()
-        {
-            InitializeComponent();
-        }
-
-        private void SimulatorView_Load(object sender, EventArgs e)
-        {
-            this.Dock = DockStyle.Fill;
-
-            //btnSetSimulation.Enabled = false;
-
-            //ckInSimulationMode.Checked = SC.GetValue<bool>(SCName.System_IsSimulatorMode);
-
-            foreach (var propertyInfo in typeof(ExceptionCase).GetProperties())
-            {
-                foreach (var attr in propertyInfo.GetCustomAttributes(false))
-                {
-                    var display = attr as DisplayAttribute;
-                    if (display == null)
-                        continue;
-
-                    if (!_caseGroup.ContainsKey(display.GroupName))
-                    {
-                        _caseGroup[display.GroupName] = new Dictionary<string, string>();
-
-                        TextBox tb = new TextBox();
-                        tb.ReadOnly = true;
-                        tb.Enabled = false;
-                        tb.Text = display.GroupName;
-                        tb.TextAlign = HorizontalAlignment.Center;
-                                     tb.BackColor = System.Drawing.SystemColors.MenuHighlight;
-                            tb.Location = new System.Drawing.Point(3, 3);
-                             
-                            tb.Size = new System.Drawing.Size(262, 35);
-                            tb.TabIndex = 0;
-                         this.flowLayoutPanel1.Controls.Add(tb);
-                    }
-
-                    _caseGroup[display.GroupName][propertyInfo.Name] = display.Description;
-
-
-
-                    CheckBox cb = new CheckBox();
-
-                    cb.AutoSize = true;
-                    cb.Location = new System.Drawing.Point(16, 34);
-                    cb.Name = "ck" + propertyInfo.Name;
-                    cb.Size = new System.Drawing.Size(126, 16);
-                    cb.TabIndex = 1;
-                    cb.Text = display.Description;
-                    cb.UseVisualStyleBackColor = true;
-                    cb.CheckedChanged += new System.EventHandler(this.cbCheckedChanged);
-                    cb.Tag = propertyInfo;
-
-
-                    this.flowLayoutPanel1.Controls.Add(cb);
-
-                }
-            }
-
-
-
-        }
-
-        private void cbCheckedChanged(object sender, EventArgs e)
-        {
-            CheckBox cb = sender as CheckBox;
-            PropertyInfo property = cb.Tag as PropertyInfo;
-
-            property.SetValue(null, cb.Checked, null);
-        }
-
-
-    }
-}

+ 0 - 120
FrameworkLocal/Common/Backend/SimulatorView.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 74
FrameworkLocal/Common/Backend/SystemConfigView.Designer.cs

@@ -1,74 +0,0 @@
-namespace Aitex.Core.Backend
-{
-    partial class SystemConfigView
-    {
-        /// <summary> 
-        /// 必需的设计器变量.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary> 
-        /// 清理所有正在使用的资源.
-        /// </summary>
-        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region 组件设计器生成的代码
-
-        /// <summary> 
-        /// 设计器支持所需的方法 - 不要
-        /// 使用代码编辑器修改此方法的内容.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel();
-            this.button1 = new System.Windows.Forms.Button();
-            this.flowLayoutPanel1.SuspendLayout();
-            this.SuspendLayout();
-            // 
-            // flowLayoutPanel1
-            // 
-            this.flowLayoutPanel1.AutoScroll = true;
-            this.flowLayoutPanel1.Controls.Add(this.button1);
-            this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
-            this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
-            this.flowLayoutPanel1.Name = "flowLayoutPanel1";
-            this.flowLayoutPanel1.Size = new System.Drawing.Size(859, 639);
-            this.flowLayoutPanel1.TabIndex = 3;
-            // 
-            // button1
-            // 
-            this.button1.Location = new System.Drawing.Point(3, 3);
-            this.button1.Name = "button1";
-            this.button1.Size = new System.Drawing.Size(75, 23);
-            this.button1.TabIndex = 0;
-            this.button1.Text = "Reload";
-            this.button1.UseVisualStyleBackColor = true;
-            this.button1.Click += new System.EventHandler(this.button1_Click);
-            // 
-            // SystemConfigView
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.Controls.Add(this.flowLayoutPanel1);
-            this.Name = "SystemConfigView";
-            this.Size = new System.Drawing.Size(859, 639);
-            this.Load += new System.EventHandler(this.SystemConfigView_Load);
-            this.flowLayoutPanel1.ResumeLayout(false);
-            this.ResumeLayout(false);
-
-        }
-
-        #endregion
-
-        private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1;
-        private System.Windows.Forms.Button button1;
-    }
-}

+ 0 - 157
FrameworkLocal/Common/Backend/SystemConfigView.cs

@@ -1,157 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.ComponentModel.DataAnnotations;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Windows.Controls;
-using System.Windows.Forms;
-using Aitex.Core.RT.Log;
-using Aitex.Core.RT.SCCore;
-using Aitex.Core.RT.Simulator;
-using CheckBox = System.Windows.Forms.CheckBox;
-using TextBox = System.Windows.Forms.TextBox;
-using UserControl = System.Windows.Forms.UserControl;
-
-namespace Aitex.Core.Backend
-{
-    public partial class SystemConfigView : UserControl
-    {
-        //<scname, type>
-        private Dictionary<string, Type> _scItems = new Dictionary<string, Type>();
-
-        public SystemConfigView()
-        {
-            InitializeComponent();
-        }
-
-        private void SystemConfigView_Load(object sender, EventArgs e)
-        {
-            this.Dock = DockStyle.Fill;
-
-            //Dictionary<string, object> items = new Dictionary<string, object>();
-
-            //List<string> groups = new List<string>();
-            //foreach (FieldInfo field in typeof(SCName).GetFields())
-            //{
-
-            //    var group = field.Name.Split('_')[0];
-            //    var name = field.Name.Split('_')[1];
-
-            //    if (!groups.Contains(group))
-            //    {
-            //        groups.Add(group);
-            //        TextBox tb = new TextBox();
-            //        tb.ReadOnly = true;
-            //        tb.Enabled = false;
-            //        tb.Text = group;
-            //        tb.TextAlign = HorizontalAlignment.Center;
-            //        tb.BackColor = System.Drawing.SystemColors.MenuHighlight;
-            //        tb.Location = new System.Drawing.Point(3, 3);
-
-            //        tb.Size = new System.Drawing.Size(262, 35);
-            //        tb.TabIndex = 0;
-            //        this.flowLayoutPanel1.Controls.Add(tb);
-            //    }
-
-            //    _scItems[name] = typeof(string);
-
-
-            //    TextBox tbName = new TextBox();
-            //    tbName.Location = new System.Drawing.Point(3, 3);
-            //    tbName.ReadOnly = true;
-            //    tbName.Size = new System.Drawing.Size(268, 21);
-            //    tbName.Text = name;
-            //    tbName.Tag = field.Name;
-
-            //    TextBox tbValue = new TextBox();
-            //    tbValue.Location = new System.Drawing.Point(3, 3);
-            //    tbValue.Size = new System.Drawing.Size(168, 21);
-            //    tbValue.Text = SC.GetItemValue(field.Name).ToString();
-            //    tbValue.Name = "tb" + field.Name;
-
-            //    System.Windows.Forms.Button bt = new System.Windows.Forms.Button();
-            //    bt.Location = new System.Drawing.Point(710, 3);
-            //    bt.Size = new System.Drawing.Size(75, 23);
-            //    bt.Text = "Set";
-            //    bt.UseVisualStyleBackColor = true;
-            //    bt.Click += bt_Click;
-            //    bt.Name = "bt" + field.Name;
-            //    bt.Tag = field.Name;
-
-            //    FlowLayoutPanel fl = new FlowLayoutPanel();
-
-
-            //    fl.Controls.Add(tbName);
-            //    fl.Controls.Add(tbValue);
-            //    fl.Controls.Add(bt);
-            //    fl.Location = new System.Drawing.Point(3, 3);
-            //    fl.Size = new System.Drawing.Size(853, 33);
-
-
-            //    this.flowLayoutPanel1.Controls.Add(fl);
-
-            //}
-        }
-
-        void bt_Click(object sender, EventArgs e)
-        {
-            System.Windows.Forms.Button bt = sender as System.Windows.Forms.Button;
-
-            
-
-            FlowLayoutPanel fl = bt.Parent as FlowLayoutPanel;
-                            TextBox tbName = new TextBox();
-                TextBox tbValue = new TextBox();
-
-                 
-                foreach (var v in fl.Controls)
-                {
-                    TextBox tb = v as TextBox;
-
-                    if (tb == null)
-                        continue;
-
-                    if (tb.ReadOnly)
-                        tbName = tb;
-                    else
-                    {
-                        tbValue = tb;
-                    }
-                }
-            SC.SetItemValue(bt.Tag.ToString(), tbValue.Text);
-        }
-
-        private void button1_Click(object sender, EventArgs e)
-        {
-            //foreach (var panel in flowLayoutPanel1.Controls)
-            //{
-            //    if (panel.GetType() != typeof(FlowLayoutPanel))
-            //        continue;
-
-            //    TextBox tbName = new TextBox();
-            //    TextBox tbValue = new TextBox();
-
-            //    FlowLayoutPanel fl = panel as FlowLayoutPanel;
-            //    foreach (var v in fl.Controls)
-            //    {
-            //        TextBox tb = v as TextBox;
-            //        if (tb == null)
-            //            continue;
-
-            //        if (tb.ReadOnly)
-            //            tbName = tb;
-            //        else
-            //        {
-            //            tbValue = tb;
-            //        }
-            //    }
-
-            //    tbValue.Text = SC.GetItemValue(tbName.Tag as string).ToString();
-            //}
-        }
-    }
-}

+ 0 - 120
FrameworkLocal/Common/Backend/SystemConfigView.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 150
FrameworkLocal/Common/Backend/UserLoginView.Designer.cs

@@ -1,150 +0,0 @@
-namespace Aitex.Core.Backend
-{
-    partial class UserLoginView
-    {
-        /// <summary>
-        /// Required designer variable.
-        /// </summary>
-        private System.ComponentModel.IContainer components = null;
-
-        /// <summary>
-        /// Clean up any resources being used.
-        /// </summary>
-        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
-        protected override void Dispose(bool disposing)
-        {
-            if (disposing && (components != null))
-            {
-                components.Dispose();
-            }
-            base.Dispose(disposing);
-        }
-
-        #region Windows Form Designer generated code
-
-        /// <summary>
-        /// Required method for Designer support - do not modify
-        /// the contents of this method with the code editor.
-        /// </summary>
-        private void InitializeComponent()
-        {
-            this.textBoxAccountId = new System.Windows.Forms.TextBox();
-            this.textBoxPassword = new System.Windows.Forms.TextBox();
-            this.label1 = new System.Windows.Forms.Label();
-            this.label2 = new System.Windows.Forms.Label();
-            this.buttonLogin = new System.Windows.Forms.Button();
-            this.buttonCancel = new System.Windows.Forms.Button();
-            this.groupBox1 = new System.Windows.Forms.GroupBox();
-            this.groupBox1.SuspendLayout();
-            this.SuspendLayout();
-            // 
-            // textBoxAccountId
-            // 
-            this.textBoxAccountId.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.textBoxAccountId.Location = new System.Drawing.Point(144, 33);
-            this.textBoxAccountId.Margin = new System.Windows.Forms.Padding(4);
-            this.textBoxAccountId.Name = "textBoxAccountId";
-            this.textBoxAccountId.Size = new System.Drawing.Size(148, 25);
-            this.textBoxAccountId.TabIndex = 0;
-            this.textBoxAccountId.Text = "admin";
-            // 
-            // textBoxPassword
-            // 
-            this.textBoxPassword.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.textBoxPassword.Location = new System.Drawing.Point(144, 74);
-            this.textBoxPassword.Margin = new System.Windows.Forms.Padding(4);
-            this.textBoxPassword.Name = "textBoxPassword";
-            this.textBoxPassword.Size = new System.Drawing.Size(148, 25);
-            this.textBoxPassword.TabIndex = 1;
-            this.textBoxPassword.UseSystemPasswordChar = true;
-            // 
-            // label1
-            // 
-            this.label1.AutoSize = true;
-            this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.label1.Location = new System.Drawing.Point(52, 36);
-            this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
-            this.label1.Name = "label1";
-            this.label1.Size = new System.Drawing.Size(64, 19);
-            this.label1.TabIndex = 2;
-            this.label1.Text = "Account:";
-            // 
-            // label2
-            // 
-            this.label2.AutoSize = true;
-            this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.label2.Location = new System.Drawing.Point(52, 77);
-            this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
-            this.label2.Name = "label2";
-            this.label2.Size = new System.Drawing.Size(70, 19);
-            this.label2.TabIndex = 3;
-            this.label2.Text = "Password:";
-            // 
-            // buttonLogin
-            // 
-            this.buttonLogin.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.buttonLogin.Location = new System.Drawing.Point(93, 19);
-            this.buttonLogin.Name = "buttonLogin";
-            this.buttonLogin.Size = new System.Drawing.Size(87, 26);
-            this.buttonLogin.TabIndex = 0;
-            this.buttonLogin.Text = "Login";
-            this.buttonLogin.UseVisualStyleBackColor = true;
-            this.buttonLogin.Click += new System.EventHandler(this.buttonLogin_Click);
-            // 
-            // buttonCancel
-            // 
-            this.buttonCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.buttonCancel.Location = new System.Drawing.Point(212, 19);
-            this.buttonCancel.Name = "buttonCancel";
-            this.buttonCancel.Size = new System.Drawing.Size(87, 26);
-            this.buttonCancel.TabIndex = 1;
-            this.buttonCancel.Text = "Cancel";
-            this.buttonCancel.UseVisualStyleBackColor = true;
-            this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click);
-            // 
-            // groupBox1
-            // 
-            this.groupBox1.Controls.Add(this.buttonCancel);
-            this.groupBox1.Controls.Add(this.buttonLogin);
-            this.groupBox1.Location = new System.Drawing.Point(-24, 114);
-            this.groupBox1.Name = "groupBox1";
-            this.groupBox1.Size = new System.Drawing.Size(397, 64);
-            this.groupBox1.TabIndex = 4;
-            this.groupBox1.TabStop = false;
-            // 
-            // UserLoginView
-            // 
-            this.AutoScaleDimensions = new System.Drawing.SizeF(9F, 18F);
-            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
-            this.ClientSize = new System.Drawing.Size(363, 171);
-            this.Controls.Add(this.groupBox1);
-            this.Controls.Add(this.label2);
-            this.Controls.Add(this.label1);
-            this.Controls.Add(this.textBoxPassword);
-            this.Controls.Add(this.textBoxAccountId);
-            this.Font = new System.Drawing.Font("Verdana", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
-            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D;
-            this.Margin = new System.Windows.Forms.Padding(4);
-            this.MaximizeBox = false;
-            this.Name = "UserLoginView";
-            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
-            this.Text = "Login";
-            this.groupBox1.ResumeLayout(false);
-            this.ResumeLayout(false);
-            this.PerformLayout();
-
-        }
-
-        #endregion
-
-        private System.Windows.Forms.TextBox textBoxAccountId;
-        private System.Windows.Forms.TextBox textBoxPassword;
-        private System.Windows.Forms.Label label1;
-        private System.Windows.Forms.Label label2;
-        private System.Windows.Forms.Button buttonLogin;
-        private System.Windows.Forms.Button buttonCancel;
-        private System.Windows.Forms.GroupBox groupBox1;
-
-
-    }
-}

+ 0 - 134
FrameworkLocal/Common/Backend/UserLoginView.cs

@@ -1,134 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Data;
-using System.Drawing;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-using System.Security.Cryptography;
-using Aitex.Core.Utilities;
-using Aitex.Core.RT.Log;
-
-namespace Aitex.Core.Backend
-{
-    public partial class UserLoginView : Form
-    {
-        private UserLoginView()
-        {
-            InitializeComponent();
-            AcceptButton = this.buttonLogin;
-            CancelButton = this.buttonCancel;
-
-            Load += new EventHandler(UserLoginView_Load);
-        }
-
-        void UserLoginView_Load(object sender, EventArgs e)
-        {
-            this.Text = "Login";
-        }
-
-		MainView _mainView;
-
-        /// <summary>
-        /// create only one instance
-        /// </summary>
-        static UserLoginView _instance;
-
-        /// <summary>
-        /// clear passowrd input
-        /// </summary>
-        private void ResetInput()
-        {
-            this.textBoxPassword.Clear();
-        }
-
-        protected override void OnClosing(CancelEventArgs e)
-        {
-            buttonCancel_Click(null, null);
-            e.Cancel = true;
-            base.OnClosing(e);
-        }
-
-        /// <summary>
-        /// display this dialog
-        /// </summary>
-		public static void Display(bool ignorePassword)
-		{
-			if (_instance == null)
-				_instance = new UserLoginView();
-
-			_instance.ResetInput();
-
-		    if (ignorePassword)
-		    {
-		        if (_instance._mainView == null)
-		        {
-		            _instance._mainView = new MainView();
-                }
-		        _instance._mainView.Show();
-                return;
-		    }
-
-			if (_instance._mainView != null && _instance._mainView.Visible)
-			{
-				_instance._mainView.Show();
-			}
-			else
-			{
-				_instance.Show();
-			}
-		}
- 
-
-        public static void AddCustomView(string name, UserControl uc)
-        {
-            if (_instance == null)
-                _instance = new UserLoginView();
-
-            if (_instance._mainView == null)
-                _instance._mainView = new MainView();
-
-                _instance._mainView.AddCustomView(name, uc);
-
-        }
-
-        /// <summary>
-        /// when user click to login
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-		private void buttonLogin_Click(object sender, EventArgs e)
-		{
-            var superPwd = System.Configuration.ConfigurationManager.AppSettings["Su"];
-            var user = textBoxAccountId.Text;
-            var pwd = textBoxPassword.Text;
-            if (String.Compare(user, "admin", true) == 0 && Md5Helper.VerifyMd5Hash(pwd, superPwd))
-            {
-                LOG.Write("用户登入后台界面");
-
-                if (_mainView == null) _mainView = new MainView();
-                _mainView.Show();
-                Hide();
-            }
-            else
-            {
-                LOG.Write("用户密码错误,登入后台界面失败");
-
-                MessageBox.Show("Account name or password is error, login failed.", "Failed", MessageBoxButtons.OK, MessageBoxIcon.Warning);
-            }
-		}
-
-
-        /// <summary>
-        /// when user click to cancel
-        /// </summary>
-        /// <param name="sender"></param>
-        /// <param name="e"></param>
-        private void buttonCancel_Click(object sender, EventArgs e)
-        {
-            this.Hide();
-            DialogResult = DialogResult.Cancel;
-        }
-    }
-}

+ 0 - 120
FrameworkLocal/Common/Backend/UserLoginView.resx

@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<root>
-  <!-- 
-    Microsoft ResX Schema 
-    
-    Version 2.0
-    
-    The primary goals of this format is to allow a simple XML format 
-    that is mostly human readable. The generation and parsing of the 
-    various data types are done through the TypeConverter classes 
-    associated with the data types.
-    
-    Example:
-    
-    ... ado.net/XML headers & schema ...
-    <resheader name="resmimetype">text/microsoft-resx</resheader>
-    <resheader name="version">2.0</resheader>
-    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
-    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
-    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
-    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
-    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
-        <value>[base64 mime encoded serialized .NET Framework object]</value>
-    </data>
-    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
-        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
-        <comment>This is a comment</comment>
-    </data>
-                
-    There are any number of "resheader" rows that contain simple 
-    name/value pairs.
-    
-    Each data row contains a name, and value. The row also contains a 
-    type or mimetype. Type corresponds to a .NET class that support 
-    text/value conversion through the TypeConverter architecture. 
-    Classes that don't support this are serialized and stored with the 
-    mimetype set.
-    
-    The mimetype is used for serialized objects, and tells the 
-    ResXResourceReader how to depersist the object. This is currently not 
-    extensible. For a given mimetype the value must be set accordingly:
-    
-    Note - application/x-microsoft.net.object.binary.base64 is the format 
-    that the ResXResourceWriter will generate, however the reader can 
-    read any of the formats listed below.
-    
-    mimetype: application/x-microsoft.net.object.binary.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
-            : and then encoded with base64 encoding.
-    
-    mimetype: application/x-microsoft.net.object.soap.base64
-    value   : The object must be serialized with 
-            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
-            : and then encoded with base64 encoding.
-
-    mimetype: application/x-microsoft.net.object.bytearray.base64
-    value   : The object must be serialized into a byte array 
-            : using a System.ComponentModel.TypeConverter
-            : and then encoded with base64 encoding.
-    -->
-  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
-    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
-    <xsd:element name="root" msdata:IsDataSet="true">
-      <xsd:complexType>
-        <xsd:choice maxOccurs="unbounded">
-          <xsd:element name="metadata">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" />
-              </xsd:sequence>
-              <xsd:attribute name="name" use="required" type="xsd:string" />
-              <xsd:attribute name="type" type="xsd:string" />
-              <xsd:attribute name="mimetype" type="xsd:string" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="assembly">
-            <xsd:complexType>
-              <xsd:attribute name="alias" type="xsd:string" />
-              <xsd:attribute name="name" type="xsd:string" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="data">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
-              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
-              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
-              <xsd:attribute ref="xml:space" />
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="resheader">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
-              </xsd:sequence>
-              <xsd:attribute name="name" type="xsd:string" use="required" />
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:choice>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:schema>
-  <resheader name="resmimetype">
-    <value>text/microsoft-resx</value>
-  </resheader>
-  <resheader name="version">
-    <value>2.0</value>
-  </resheader>
-  <resheader name="reader">
-    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-  <resheader name="writer">
-    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
-  </resheader>
-</root>

+ 0 - 767
FrameworkLocal/Common/Common.csproj

@@ -1,767 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{6958FE72-CC01-4176-A86C-59B0E1CD0367}</ProjectGuid>
-    <OutputType>Library</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>MECF.Framework.Common</RootNamespace>
-    <AssemblyName>MECF.Framework.Common</AssemblyName>
-    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-    <TargetFrameworkProfile />
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>..\Output\MECF.Framework\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Reference Include="DocumentFormat.OpenXml">
-      <HintPath>..\..\ThirdParty\dlls\DocumentFormat.OpenXml.dll</HintPath>
-    </Reference>
-    <Reference Include="DotNetZip">
-      <HintPath>..\..\ThirdParty\dlls\DotNetZip.dll</HintPath>
-    </Reference>
-    <Reference Include="FabConnect">
-      <HintPath>..\..\ThirdParty\dlls\FabConnect.dll</HintPath>
-    </Reference>
-    <Reference Include="log4net">
-      <HintPath>..\..\ThirdParty\dlls\log4net.dll</HintPath>
-    </Reference>
-    <Reference Include="Microsoft.VisualBasic" />
-    <Reference Include="Npgsql">
-      <HintPath>..\..\ThirdParty\dlls\Npgsql.dll</HintPath>
-    </Reference>
-    <Reference Include="PresentationCore" />
-    <Reference Include="PresentationFramework" />
-    <Reference Include="PresentationFramework.Aero" />
-    <Reference Include="SciChart.Charting">
-      <HintPath>..\..\ThirdParty\dlls\SciCart\SciChart.Charting.dll</HintPath>
-    </Reference>
-    <Reference Include="SciChart.Core">
-      <HintPath>..\..\ThirdParty\dlls\SciCart\SciChart.Core.dll</HintPath>
-    </Reference>
-    <Reference Include="SciChart.Data">
-      <HintPath>..\..\ThirdParty\dlls\SciCart\SciChart.Data.dll</HintPath>
-    </Reference>
-    <Reference Include="SciChart.Drawing">
-      <HintPath>..\..\ThirdParty\dlls\SciCart\SciChart.Drawing.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.ComponentModel.DataAnnotations" />
-    <Reference Include="System.Configuration" />
-    <Reference Include="System.Core" />
-    <Reference Include="System.Drawing" />
-    <Reference Include="System.Management" />
-    <Reference Include="System.Runtime.Serialization" />
-    <Reference Include="System.Runtime.Serialization.Formatters.Soap" />
-    <Reference Include="System.ServiceModel" />
-    <Reference Include="System.Windows.Forms" />
-    <Reference Include="System.Xaml" />
-    <Reference Include="System.Xml.Linq" />
-    <Reference Include="System.Data.DataSetExtensions" />
-    <Reference Include="Microsoft.CSharp" />
-    <Reference Include="System.Data" />
-    <Reference Include="System.Net.Http" />
-    <Reference Include="System.Xml" />
-    <Reference Include="WindowsBase" />
-    <Reference Include="WindowsFormsIntegration" />
-  </ItemGroup>
-  <ItemGroup>
-    <Compile Include="Account\Account.cs" />
-    <Compile Include="Account\AccountClient.cs" />
-    <Compile Include="Account\AccountExManager.cs" />
-    <Compile Include="Account\AccountManager.cs" />
-    <Compile Include="Account\AccountService.cs" />
-    <Compile Include="Account\Authorization.cs" />
-    <Compile Include="Account\Extends\AccountEx.cs" />
-    <Compile Include="Account\Extends\Menu.cs" />
-    <Compile Include="Account\Extends\MenuLoader.cs" />
-    <Compile Include="Account\Extends\Role.cs" />
-    <Compile Include="Account\Extends\RoleLoader.cs" />
-    <Compile Include="Account\Extends\UserContext.cs" />
-    <Compile Include="Account\IAccountService.cs" />
-    <Compile Include="Account\NotificationService.cs" />
-    <Compile Include="Account\Extends\XmlLoader.cs" />
-    <Compile Include="Alarms\AlarmAction.cs" />
-    <Compile Include="Alarms\AlarmDefine.cs" />
-    <Compile Include="Alarms\AlarmDefineFileContext.cs" />
-    <Compile Include="Alarms\AlarmDefineFileManager.cs" />
-    <Compile Include="Alarms\AlarmDefineService.cs" />
-    <Compile Include="Alarms\AlarmGroup.cs" />
-    <Compile Include="Alarms\AlarmServiceClient.cs" />
-    <Compile Include="Alarms\IAlarmDefineService.cs" />
-    <Compile Include="Backend\AboutView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Backend\AboutView.Designer.cs">
-      <DependentUpon>AboutView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\Controls\AICtrl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Backend\Controls\AICtrl.Designer.cs">
-      <DependentUpon>AICtrl.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\Controls\AOCtrl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Backend\Controls\AOCtrl.Designer.cs">
-      <DependentUpon>AOCtrl.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\Controls\DICtrl.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Backend\Controls\DICtrl.Designer.cs">
-      <DependentUpon>DICtrl.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\IBackendIoSimulator.cs" />
-    <Compile Include="Backend\IO\AI.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Backend\IO\AI.Designer.cs">
-      <DependentUpon>AI.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\IO\AO.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Backend\IO\AO.Designer.cs">
-      <DependentUpon>AO.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\IO\DI.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Backend\IO\DI.Designer.cs">
-      <DependentUpon>DI.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\IO\DO.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Backend\IO\DO.Designer.cs">
-      <DependentUpon>DO.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\IO\IIOView.cs" />
-    <Compile Include="Backend\IO\IoDataView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Backend\IO\IoDataView.Designer.cs">
-      <DependentUpon>IoDataView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\MainView.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Backend\MainView.Designer.cs">
-      <DependentUpon>MainView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\SimulatorView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Backend\SimulatorView.Designer.cs">
-      <DependentUpon>SimulatorView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\SystemConfigView.cs">
-      <SubType>UserControl</SubType>
-    </Compile>
-    <Compile Include="Backend\SystemConfigView.Designer.cs">
-      <DependentUpon>SystemConfigView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="Backend\UserLoginView.cs">
-      <SubType>Form</SubType>
-    </Compile>
-    <Compile Include="Backend\UserLoginView.Designer.cs">
-      <DependentUpon>UserLoginView.cs</DependentUpon>
-    </Compile>
-    <Compile Include="CommonData\CalibrationDataItem.cs" />
-    <Compile Include="CommonData\DeviceData\AITChillerData.cs" />
-    <Compile Include="CommonData\DeviceData\AITAlignerData.cs" />
-    <Compile Include="CommonData\DeviceData\AITBoostPumpData.cs" />
-    <Compile Include="CommonData\DeviceData\AITChillerData1.cs" />
-    <Compile Include="CommonData\DeviceData\AITConfigData.cs" />
-    <Compile Include="CommonData\DeviceData\AITCoolingControlData.cs" />
-    <Compile Include="CommonData\DeviceData\AITCylinderData.cs" />
-    <Compile Include="CommonData\DeviceData\AITGasSplitterData.cs" />
-    <Compile Include="CommonData\DeviceData\AITEmoData.cs" />
-    <Compile Include="CommonData\DeviceData\AITDeviceData.cs" />
-    <Compile Include="CommonData\DeviceData\AITHeaterData.cs" />
-    <Compile Include="CommonData\DeviceData\AITAuxData.cs" />
-    <Compile Include="CommonData\DeviceData\AITLidData.cs" />
-    <Compile Include="CommonData\DeviceData\AITMfcData.cs" />
-    <Compile Include="CommonData\DeviceData\AITNXD15Data.cs" />
-    <Compile Include="CommonData\DeviceData\AITPressureControlData.cs" />
-    <Compile Include="CommonData\DeviceData\AITPressureMeterData.cs" />
-    <Compile Include="CommonData\DeviceData\AITPressureSensorData.cs" />
-    <Compile Include="CommonData\DeviceData\AITPumpData.cs" />
-    <Compile Include="CommonData\DeviceData\AITRfMatchData.cs" />
-    <Compile Include="CommonData\DeviceData\AITRfPowerData.cs" />
-    <Compile Include="CommonData\DeviceData\AITRfData.cs" />
-    <Compile Include="CommonData\DeviceData\AITRfidReaderData.cs" />
-    <Compile Include="CommonData\DeviceData\AITSensorData.cs" />
-    <Compile Include="CommonData\DeviceData\AITServoMotorData.cs" />
-    <Compile Include="CommonData\DeviceData\AITSignalTowerData.cs" />
-    <Compile Include="CommonData\DeviceData\AITStatisticsData.cs" />
-    <Compile Include="CommonData\DeviceData\AITTempratureHumidityData.cs" />
-    <Compile Include="CommonData\DeviceData\AITThermalCoupleData.cs" />
-    <Compile Include="CommonData\DeviceData\AITAPCData.cs" />
-    <Compile Include="CommonData\DeviceData\AITThrottleValveData.cs" />
-    <Compile Include="CommonData\DeviceData\AITValveData.cs" />
-    <Compile Include="CommonData\DeviceData\AITVaporLineData.cs" />
-    <Compile Include="CommonData\DeviceData\AITWaferIdReaderData.cs" />
-    <Compile Include="CommonData\DeviceData\AITWaterFlowMeterData.cs" />
-    <Compile Include="CommonData\DeviceData\AITWaterMappingData.cs" />
-    <Compile Include="CommonData\DeviceData\AITWaterFlowSensorData.cs" />
-    <Compile Include="CommonData\DeviceData\IDeviceData.cs" />
-    <Compile Include="CommonData\FdcDataItem.cs" />
-    <Compile Include="CommonData\FileNodeItem.cs" />
-    <Compile Include="CommonData\HistoryDataItem.cs" />
-    <Compile Include="CommonData\NotifiableData.cs" />
-    <Compile Include="CommonData\RecipeHistory.cs" />
-    <Compile Include="CommonData\RobotMoveInfo.cs" />
-    <Compile Include="CommonData\SorterDefines\DeviceState.cs" />
-    <Compile Include="CommonData\SorterDefines\FoupDockState.cs" />
-    <Compile Include="CommonData\SorterDefines\FoupClampState.cs" />
-    <Compile Include="CommonData\SorterDefines\FoupDoorState.cs" />
-    <Compile Include="CommonData\SorterDefines\IndicatorState.cs" />
-    <Compile Include="CommonData\SorterDefines\LoadPortCarrierMode.cs" />
-    <Compile Include="CommonData\SorterDefines\LoadportCassetteState.cs" />
-    <Compile Include="CommonData\SorterDefines\SlotTransferInfo.cs" />
-    <Compile Include="CommonData\SorterDefines\SorterHostUsageRecipeTableItem.cs" />
-    <Compile Include="CommonData\SorterDefines\SorterReadWaferIDRecipeXml.cs" />
-    <Compile Include="CommonData\SorterDefines\SorterRecipeOrderByMode.cs" />
-    <Compile Include="CommonData\SorterDefines\SorterRecipePlaceModeOrder.cs" />
-    <Compile Include="CommonData\SorterDefines\SorterRecipePlaceModePack.cs" />
-    <Compile Include="CommonData\SorterDefines\SorterRecipePlaceModeTransfer1To1.cs" />
-    <Compile Include="CommonData\SorterDefines\SorterRecipeTransferTableItem.cs" />
-    <Compile Include="CommonData\SorterDefines\SorterRecipeType.cs" />
-    <Compile Include="CommonData\SorterDefines\SorterHostUsageRecipeXml.cs" />
-    <Compile Include="CommonData\SorterDefines\SorterRecipeXml.cs" />
-    <Compile Include="CommonData\SorterDefines\TransferInfo.cs" />
-    <Compile Include="Communications\AsynSocketClient.cs" />
-    <Compile Include="Communications\AsynSocketServer.cs" />
-    <Compile Include="Communications\ConnectionBase.cs" />
-    <Compile Include="Communications\ConnectionManager.cs" />
-    <Compile Include="Communications\FsmConnection.cs" />
-    <Compile Include="Communications\HandlerBase.cs" />
-    <Compile Include="Communications\IConnectConfig.cs" />
-    <Compile Include="Communications\IConnectable.cs" />
-    <Compile Include="Communications\IConnection.cs" />
-    <Compile Include="Communications\Message.cs" />
-    <Compile Include="Communications\NotifiableConnectionItem.cs" />
-    <Compile Include="ControlDataContext\ChartDataLine.cs" />
-    <Compile Include="DataCenter\DiskManager.cs" />
-    <Compile Include="DataCenter\ScheduleMaintenanceDataManager.cs" />
-    <Compile Include="DataCenter\StatsDataManager.cs" />
-    <Compile Include="DBCore\CarrierDataRecorder.cs" />
-    <Compile Include="DBCore\DatabaseCleaner.cs" />
-    <Compile Include="DBCore\DatabaseTable.cs" />
-    <Compile Include="DBCore\DataQuery.cs" />
-    <Compile Include="DBCore\FfuDiffPressureDataRecorder.cs" />
-    <Compile Include="DBCore\LotDataRecorder.cs" />
-    <Compile Include="DBCore\JobMoveHistoryRecorder.cs" />
-    <Compile Include="DBCore\LinearProcessDataRecorder.cs" />
-    <Compile Include="DBCore\LeakCheckDataRecorder.cs" />
-    <Compile Include="DBCore\MFCVerificationDataRecorder.cs" />
-    <Compile Include="DBCore\OCRDataRecorder.cs.cs" />
-    <Compile Include="DBCore\ProcessDataRecorder.cs" />
-    <Compile Include="DBCore\JobDataRecorder.cs" />
-    <Compile Include="DBCore\RecipeDataRecorder.cs" />
-    <Compile Include="DBCore\RecipeEditHistoryRecorder.cs" />
-    <Compile Include="DBCore\StatsDataRecorder.cs" />
-    <Compile Include="DBCore\WaferDataRecorder.cs" />
-    <Compile Include="DBCore\WaferMoveHistoryRecorder.cs" />
-    <Compile Include="Device\Bases\ChillerBase.cs" />
-    <Compile Include="Device\Bases\GasSplitterBase.cs" />
-    <Compile Include="Device\Bases\LidBase.cs" />
-    <Compile Include="Device\Bases\PressureGaugeBase.cs" />
-    <Compile Include="Device\Bases\MfcBase.cs" />
-    <Compile Include="Device\Bases\MotorBase.cs" />
-    <Compile Include="Device\Bases\TempratureHumidityBase.cs" />
-    <Compile Include="Device\Bases\VCEBase.cs" />
-    <Compile Include="Device\Bases\SMIFBase.cs" />
-    <Compile Include="Device\Bases\SlitValveBase.cs" />
-    <Compile Include="Device\Bases\ThrottleValveBase.cs" />
-    <Compile Include="Device\Bases\PumpBase.cs" />
-    <Compile Include="Device\Bases\RfMatchBase.cs" />
-    <Compile Include="Device\Bases\HeaterBase.cs" />
-    <Compile Include="Device\Bases\RfPowerBase.cs" />
-    <Compile Include="Device\Bases\SignalLightBase.cs" />
-    <Compile Include="Device\Bases\SignalTowerBase.cs" />
-    <Compile Include="Device\Common\BaseDevice.cs" />
-    <Compile Include="Device\Common\DeviceDefineManager.cs" />
-    <Compile Include="Display\DisplayManager.cs" />
-    <Compile Include="EtherCAT\Hongke\ICifx.cs" />
-    <Compile Include="EtherCAT\Hongke\IWcfCifxService.cs" />
-    <Compile Include="EtherCAT\Hongke\WcfCifx.cs" />
-    <Compile Include="EtherCAT\Hongke\WcfCifxServiceClient.cs" />
-    <Compile Include="Event\AlarmEventItem.cs" />
-    <Compile Include="FAServices\DataVariables.cs" />
-    <Compile Include="FAServices\E40s\FAProcessJob.cs" />
-    <Compile Include="FAServices\E40s\ProcessJobState.cs" />
-    <Compile Include="FAServices\E94s\FAControlJob.cs" />
-    <Compile Include="FAServices\Gem300Events.cs" />
-    <Compile Include="FAServices\Gem300Service.cs" />
-    <Compile Include="FAServices\GemService.cs" />
-    <Compile Include="FAServices\IGemCallback.cs" />
-    <Compile Include="FAServices\SecsDataAttribute\SecsDataElementAttribute.cs" />
-    <Compile Include="FAServices\SecsDataAttribute\SecsDataRootAttribute.cs" />
-    <Compile Include="FAServices\UniversalEvents.cs" />
-    <Compile Include="FAServices\VIDManager2.cs" />
-    <Compile Include="FAServices\VIDManager.cs" />
-    <Compile Include="Fsm\ActiveFsm.cs" />
-    <Compile Include="Fsm\ModuleEntity.cs" />
-    <Compile Include="Jobs\EnumTransferJobState.cs" />
-    <Compile Include="Jobs\TransferJobInfo.cs" />
-    <Compile Include="ParameterCenter\DefaultParameterFileContext.cs" />
-    <Compile Include="ParameterCenter\IParameterFileContext.cs" />
-    <Compile Include="ParameterCenter\IParameterService.cs" />
-    <Compile Include="ParameterCenter\ParameterCheck.cs" />
-    <Compile Include="ParameterCenter\ParameterFileManager.cs" />
-    <Compile Include="ParameterCenter\ParameterService.cs" />
-    <Compile Include="ParameterCenter\ParameterServiceClient.cs" />
-    <Compile Include="ParameterCenter\ParameterTemplateColumnBase.cs" />
-    <Compile Include="PLC\IAdsPlc.cs" />
-    <Compile Include="PLC\IPlc.cs" />
-    <Compile Include="PLC\IWcfPlcService.cs" />
-    <Compile Include="PLC\WcfPlc.cs" />
-    <Compile Include="PLC\WcfPlcServiceClient.cs" />
-    <Compile Include="Jobs\ControlJob.cs" />
-    <Compile Include="Jobs\EnumControlJobState.cs" />
-    <Compile Include="Jobs\EnumProcessJobState.cs" />
-    <Compile Include="Jobs\LotInfo.cs" />
-    <Compile Include="Jobs\ProcessJobInfo.cs" />
-    <Compile Include="Jobs\ProcessJobManager.cs" />
-    <Compile Include="Jobs\SequenceInfo.cs" />
-    <Compile Include="Jobs\SequenceStepInfo.cs" />
-    <Compile Include="Jobs\SequenceStepModuleInfo.cs" />
-    <Compile Include="Log\LogCleaner.cs" />
-    <Compile Include="OperationCenter\IInterlockChecker.cs" />
-    <Compile Include="RecipeCenter\DefaultRecipeFileContext.cs" />
-    <Compile Include="CommonData\MoveItem.cs" />
-    <Compile Include="CommonData\SlotItem.cs" />
-    <Compile Include="CommonData\EnumTransferType.cs" />
-    <Compile Include="RecipeCenter\DefaultSequenceFileContext.cs" />
-    <Compile Include="RecipeCenter\ISequenceFileContext.cs" />
-    <Compile Include="RecipeCenter\RecipeEditManager.cs" />
-    <Compile Include="RecipeCenter\RecipeFileNode.cs" />
-    <Compile Include="RecipeCenter\RecipeTemplateColumnBase.cs" />
-    <Compile Include="SubstrateTrackings\MaterialInfo.cs" />
-    <Compile Include="SubstrateTrackings\WaferInfo.cs" />
-    <Compile Include="ControlDataContext\AnalogDataItem.cs" />
-    <Compile Include="ControlDataContext\BathDataItem.cs" />
-    <Compile Include="ControlDataContext\ControlDataItemBase.cs" />
-    <Compile Include="ControlDataContext\GasFlowButtonDataItem.cs" />
-    <Compile Include="ControlDataContext\GasFlowChartDataItem.cs" />
-    <Compile Include="ControlDataContext\GasValveDataItem.cs" />
-    <Compile Include="ControlDataContext\GateValveDataItem.cs" />
-    <Compile Include="ControlDataContext\GaugeItem.cs" />
-    <Compile Include="ControlDataContext\MfcItem.cs" />
-    <Compile Include="ControlDataContext\PcItem.cs" />
-    <Compile Include="ControlDataContext\PressureTransducerDataItem.cs" />
-    <Compile Include="ControlDataContext\ProcessDataChartDataItem.cs" />
-    <Compile Include="ControlDataContext\PumpDataItem.cs" />
-    <Compile Include="ControlDataContext\RawDataChartDataItem.cs" />
-    <Compile Include="ControlDataContext\ReadonlyGaugeDataItem.cs" />
-    <Compile Include="ControlDataContext\RfItem.cs" />
-    <Compile Include="ControlDataContext\SignalTowerDataItem.cs" />
-    <Compile Include="ControlDataContext\SmartDataLine.cs" />
-    <Compile Include="ControlDataContext\TcItem.cs" />
-    <Compile Include="DataCenter\IQueryDataService.cs" />
-    <Compile Include="Device\ModuleName.cs" />
-    <Compile Include="IOCore\IIoBuffer.cs" />
-    <Compile Include="IOCore\IIoProvider.cs" />
-    <Compile Include="IOCore\InterlockAction.cs" />
-    <Compile Include="IOCore\InterlockLimit.cs" />
-    <Compile Include="IOCore\InterlockManager.cs" />
-    <Compile Include="IOCore\IO.cs" />
-    <Compile Include="IOCore\IOAccessor.cs" />
-    <Compile Include="IOCore\IODefine.cs" />
-    <Compile Include="IOCore\IOManager.cs" />
-    <Compile Include="IOCore\IoProvider.cs" />
-    <Compile Include="IOCore\IoProviderManager.cs" />
-    <Compile Include="IOCore\NotifiableIoItem.cs" />
-    <Compile Include="MVVM\ChartViewModelBase.cs" />
-    <Compile Include="MVVM\DelegateCommand.cs" />
-    <Compile Include="MVVM\IViewModelControl.cs" />
-    <Compile Include="MVVM\SubscriptionCommand.cs" />
-    <Compile Include="MVVM\SubscriptionViewModelBase.cs" />
-    <Compile Include="MVVM\TimerViewModelBase.cs" />
-    <Compile Include="MVVM\ViewModelBase.cs" />
-    <Compile Include="NotifyTrayIcons\Hardcodet\BalloonIcon.cs" />
-    <Compile Include="NotifyTrayIcons\Hardcodet\PopupActivationMode.cs" />
-    <Compile Include="NotifyTrayIcons\Hardcodet\RoutedEventHelper.cs" />
-    <Compile Include="NotifyTrayIcons\Hardcodet\TaskbarIcon.cs" />
-    <Compile Include="NotifyTrayIcons\Hardcodet\TaskbarIcon.Declarations.cs" />
-    <Compile Include="NotifyTrayIcons\Hardcodet\Util.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\AppBarInfo.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\BalloonFlags.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\IconDataMembers.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\IconState.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\MouseEvent.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\NotifyCommand.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\NotifyIconData.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\NotifyIconVersion.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\Point.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\SystemInfo.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\TrayInfo.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\WinApi.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\WindowClass.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\WindowMessageSink.cs" />
-    <Compile Include="NotifyTrayIcons\Interop\WindowsMessages.cs" />
-    <Compile Include="NotifyTrayIcons\ShowWindowNotifyIcon.cs" />
-    <Compile Include="OperationCenter\InvokeService.cs" />
-    <Compile Include="OperationCenter\IInvokeService.cs" />
-    <Compile Include="OperationCenter\InvokeServiceClient.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="Properties\Resources.Designer.cs">
-      <AutoGen>True</AutoGen>
-      <DesignTime>True</DesignTime>
-      <DependentUpon>Resources.resx</DependentUpon>
-    </Compile>
-    <Compile Include="Communications\AsyncSerialPort.cs" />
-    <Compile Include="Communications\Tcp\Buffer\BufferValidator.cs" />
-    <Compile Include="Communications\Tcp\Buffer\ISegmentBufferManager.cs" />
-    <Compile Include="Communications\Tcp\Buffer\SegmentBufferDeflector.cs" />
-    <Compile Include="Communications\Tcp\Buffer\SegmentBufferManager.cs" />
-    <Compile Include="Communications\Tcp\Buffer\UnableToAllocateBufferException.cs" />
-    <Compile Include="Communications\Tcp\Buffer\UnableToCreateMemoryException .cs" />
-    <Compile Include="Communications\Tcp\Socket\Client\APM\EventArgs\TcpServerConnectedEventArgs.cs" />
-    <Compile Include="Communications\Tcp\Socket\Client\APM\EventArgs\TcpServerDataReceivedEventArgs.cs" />
-    <Compile Include="Communications\Tcp\Socket\Client\APM\EventArgs\TcpServerDisconnectedEventArgs.cs" />
-    <Compile Include="Communications\Tcp\Socket\Client\APM\TcpSocketClient.cs" />
-    <Compile Include="Communications\Tcp\Socket\Client\APM\TcpSocketClientConfiguration.cs" />
-    <Compile Include="Communications\Tcp\Socket\Framing\Base\FrameBuilder.cs" />
-    <Compile Include="Communications\Tcp\Socket\Framing\Base\IFrameBuilder.cs" />
-    <Compile Include="Communications\Tcp\Socket\Framing\Base\IFrameDecoder.cs" />
-    <Compile Include="Communications\Tcp\Socket\Framing\Base\IFrameEncoder.cs" />
-    <Compile Include="Communications\Tcp\Socket\Framing\FixedLengthFrameBuilder.cs" />
-    <Compile Include="Communications\Tcp\Socket\Framing\LengthFieldBasedFrameBuilder.cs" />
-    <Compile Include="Communications\Tcp\Socket\Framing\LengthPrefixedFrameBuilder.cs" />
-    <Compile Include="Communications\Tcp\Socket\Framing\LineBasedFrameBuilder.cs" />
-    <Compile Include="Communications\Tcp\Socket\Framing\RawBufferFrameBuilder.cs" />
-    <Compile Include="Communications\Tcp\Socket\Server\APM\EventArgs\TcpClientConnectedEventArgs.cs" />
-    <Compile Include="Communications\Tcp\Socket\Server\APM\EventArgs\TcpClientDataReceivedEventArgs.cs" />
-    <Compile Include="Communications\Tcp\Socket\Server\APM\EventArgs\TcpClientDisconnectedEventArgs.cs" />
-    <Compile Include="Communications\Tcp\Socket\Server\APM\TcpSocketServer.cs" />
-    <Compile Include="Communications\Tcp\Socket\Server\APM\TcpSocketServerConfiguration.cs" />
-    <Compile Include="Communications\Tcp\Socket\Server\APM\TcpSocketSession.cs" />
-    <Compile Include="Communications\Tcp\Socket\TcpSocketConnectionState.cs" />
-    <Compile Include="SCCore\CONFIG.cs" />
-    <Compile Include="SCCore\ConfigEntry.cs" />
-    <Compile Include="SCCore\ConfigManager.cs" />
-    <Compile Include="SCCore\TypedConfigManager.cs" />
-    <Compile Include="SCCore\ICommonConfig.cs" />
-    <Compile Include="DataCenter\DATA.cs" />
-    <Compile Include="DataCenter\DataItem.cs" />
-    <Compile Include="DataCenter\DataManager.cs" />
-    <Compile Include="DataCenter\DataModule.cs" />
-    <Compile Include="DataCenter\ICommonData.cs" />
-    <Compile Include="DataCollection\DataCollectionManager.cs" />
-    <Compile Include="DataCollection\DefaultDataCollectionCallback.cs" />
-    <Compile Include="DataCollection\IDataCollectionCallback.cs" />
-    <Compile Include="DBCore\DatabaseManager.cs" />
-    <Compile Include="DBCore\DB.cs" />
-    <Compile Include="DBCore\ICommonDB.cs" />
-    <Compile Include="DBCore\PostgresqlDB.cs" />
-    <Compile Include="DBCore\PostgresqlHelper.cs" />
-    <Compile Include="Device\Common\DEVICE.cs" />
-    <Compile Include="Device\Common\DeviceEntityT.cs" />
-    <Compile Include="Device\Common\DeviceManagerBase.cs" />
-    <Compile Include="Device\Common\DeviceOperation.cs" />
-    <Compile Include="Device\Common\DeviceType.cs" />
-    <Compile Include="Device\Common\IDevice.cs" />
-    <Compile Include="Device\Common\IDeviceFactory.cs" />
-    <Compile Include="Device\Common\IDeviceManager.cs" />
-    <Compile Include="Event\EV.cs" />
-    <Compile Include="Event\EventDB.cs" />
-    <Compile Include="Event\EventDBWriter.cs" />
-    <Compile Include="Event\EventDefine.cs" />
-    <Compile Include="Event\EventEnum.cs" />
-    <Compile Include="Event\EventItem.cs" />
-    <Compile Include="Event\EventLogWriter.cs" />
-    <Compile Include="Event\EventMailWriter.cs" />
-    <Compile Include="Event\EventManager.cs" />
-    <Compile Include="Event\ICommonEvent.cs" />
-    <Compile Include="Fsm\DemoEntity.cs" />
-    <Compile Include="Fsm\Entity.cs" />
-    <Compile Include="Fsm\IEntity.cs" />
-    <Compile Include="Fsm\IStateMachine.cs" />
-    <Compile Include="Fsm\StateMachine.cs" />
-    <Compile Include="Key\JetKey.cs" />
-    <Compile Include="Key\KeyManager.cs" />
-    <Compile Include="Key\MachineCoder.cs" />
-    <Compile Include="Key\RsaCryption.cs" />
-    <Compile Include="Log\CounterLogger.cs" />
-    <Compile Include="Log\ICommonLog.cs" />
-    <Compile Include="Log\LOG.cs" />
-    <Compile Include="Log\LogItem.cs" />
-    <Compile Include="Log\LogManager.cs" />
-    <Compile Include="Log\LogWriter.cs" />
-    <Compile Include="OperationCenter\ICommonOperation.cs" />
-    <Compile Include="OperationCenter\OP.cs" />
-    <Compile Include="OperationCenter\OperationManager.cs" />
-    <Compile Include="PLC\IDataBuffer.cs" />
-    <Compile Include="PLC\IDataDevice.cs" />
-    <Compile Include="RecipeCenter\IRecipeFileContext.cs" />
-    <Compile Include="RecipeCenter\RecipeService.cs" />
-    <Compile Include="RecipeCenter\IRecipeService.cs" />
-    <Compile Include="RecipeCenter\RecipeCheck.cs" />
-    <Compile Include="RecipeCenter\RecipeFileManager.cs" />
-    <Compile Include="RecipeCenter\RecipeServiceClient.cs" />
-    <Compile Include="Routine\IRoutine.cs" />
-    <Compile Include="Routine\Routinue.cs" />
-    <Compile Include="Routine\SeqenecRoutine.cs" />
-    <Compile Include="SCCore\ISCManager.cs" />
-    <Compile Include="SCCore\SC.cs" />
-    <Compile Include="SCCore\SCItem.cs" />
-    <Compile Include="SCCore\SystemConfigManager.cs" />
-    <Compile Include="Simulator\AiForce.cs" />
-    <Compile Include="Simulator\DiForce.cs" />
-    <Compile Include="Simulator\ExceptionCase.cs" />
-    <Compile Include="Simulator\SimulatorCaseManager.cs" />
-    <Compile Include="SubstrateTrackings\CarrierInfo.cs" />
-    <Compile Include="SubstrateTrackings\CarrierManager.cs" />
-    <Compile Include="SubstrateTrackings\WaferManager.cs" />
-    <Compile Include="Tolerance\ToleranceChecker.cs" />
-    <Compile Include="StylableWindow\ControlDoubleClickBehavior.cs" />
-    <Compile Include="StylableWindow\ShowSystemMenuBehavior.cs" />
-    <Compile Include="StylableWindow\SystemMenuManager.cs" />
-    <Compile Include="StylableWindow\WindowCloseCommand.cs" />
-    <Compile Include="StylableWindow\WindowDragBehavior.cs" />
-    <Compile Include="StylableWindow\WindowMaximizeCommand.cs" />
-    <Compile Include="StylableWindow\WindowMinimizeCommand.cs" />
-    <Compile Include="StylableWindow\WindowResizeBehavior.cs" />
-    <Compile Include="UserFunctionsEvents.cs" />
-    <Compile Include="Utilities\ArrayUtil.cs" />
-    <Compile Include="Utilities\BinarySerializer.cs" />
-    <Compile Include="Utilities\CloneUtil.cs" />
-    <Compile Include="Utilities\CommonData.cs" />
-    <Compile Include="Utilities\Converter.cs" />
-    <Compile Include="Utilities\Crc16.cs" />
-    <Compile Include="Utilities\CultureSupported.cs" />
-    <Compile Include="Utilities\CustomXmlSerializer.cs" />
-    <Compile Include="Utilities\DeviceTimer.cs" />
-    <Compile Include="Utilities\DictionaryExpand.cs" />
-    <Compile Include="Utilities\EnumUtil.cs" />
-    <Compile Include="Utilities\ExcelHelper.cs" />
-    <Compile Include="Utilities\FileAssociation.cs" />
-    <Compile Include="Utilities\FileHelper.cs" />
-    <Compile Include="Utilities\FileSigner.cs" />
-    <Compile Include="Utilities\FixSizeQueue.cs" />
-    <Compile Include="Utilities\IgnorePropertyChangeAttribute.cs" />
-    <Compile Include="Utilities\Md5Helper.cs" />
-    <Compile Include="Utilities\Network.cs" />
-    <Compile Include="Utilities\ObjectSerializer.cs" />
-    <Compile Include="Utilities\OperationAttribute.cs" />
-    <Compile Include="Utilities\ParameterManager.cs" />
-    <Compile Include="Utilities\PathManager.cs" />
-    <Compile Include="Utilities\PeriodicJob.cs" />
-    <Compile Include="Utilities\ReasonedResult.cs" />
-    <Compile Include="Utilities\Retry.cs" />
-    <Compile Include="Utilities\RetryInstance.cs" />
-    <Compile Include="Utilities\SCValue.cs" />
-    <Compile Include="Utilities\SerializableDictionary.cs" />
-    <Compile Include="Utilities\Singleton.cs" />
-    <Compile Include="Utilities\SubscriptionAttribute.cs" />
-    <Compile Include="Utilities\SubscriptionModuleAttribute.cs" />
-    <Compile Include="Utilities\ParameterConfigManager.cs" />
-    <Compile Include="Utilities\TagAttribute.cs" />
-    <Compile Include="Utilities\Trigger.cs" />
-    <Compile Include="WCF\DuplexChannelServiceClientWrapper.cs" />
-    <Compile Include="Event\EventService.cs" />
-    <Compile Include="Event\EventServiceCallback.cs" />
-    <Compile Include="Event\EventServiceClient.cs" />
-    <Compile Include="Event\IEventService.cs" />
-    <Compile Include="Event\IEventServiceCallback.cs" />
-    <Compile Include="DataCenter\QueryDataService.cs" />
-    <Compile Include="DataCenter\QueryDataServiceClient.cs" />
-    <Compile Include="WCF\ServiceClientWrapper.cs" />
-    <Compile Include="WCF\WcfServiceManager.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="Config\EventDefine.Core.xml" />
-    <Content Include="Resources\Logos\MyLogoNormal.ico" />
-    <Content Include="Resources\Logos\MyLogoPurple.ico" />
-    <Resource Include="Resources\Valve\valveOpenVerticalJet.png" />
-    <Resource Include="Resources\Valve\valveOpenHorizontalJet.png" />
-    <Resource Include="Resources\Valve\valveCloseVerticalJet.png" />
-    <Resource Include="Resources\Valve\valveCloseHorizontalJet.png" />
-    <Resource Include="Resources\Logos\MyLogoTray.ico">
-      <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-    </Resource>
-    <Resource Include="Resources\barcode.png" />
-    <Resource Include="Resources\Blue.png" />
-    <Resource Include="Resources\cb.png" />
-    <Resource Include="Resources\closed.png" />
-    <Resource Include="Resources\CustomDialogInformation.png" />
-    <Resource Include="Resources\Exit.png" />
-    <Resource Include="Resources\Gasbox.png" />
-    <Resource Include="Resources\Heater.png" />
-    <Resource Include="Resources\HeaterShining.png" />
-    <Resource Include="Resources\lights.png" />
-    <Resource Include="Resources\Lime.png" />
-    <Resource Include="Resources\LL\LBBracket.png" />
-    <Resource Include="Resources\LL\LBWheel_Color.png" />
-    <Resource Include="Resources\LL\LoadLockDoor.png" />
-    <Resource Include="Resources\LL\LoadLockMain.png" />
-    <Resource Include="Resources\LL\LTBracket.png" />
-    <Resource Include="Resources\LL\LTWheel_Color.png" />
-    <Resource Include="Resources\LL\RBBracket.png" />
-    <Resource Include="Resources\LL\RBWheel_Color.png" />
-    <Resource Include="Resources\LL\RTBracket.png" />
-    <Resource Include="Resources\LL\RTWheel_Color.png" />
-    <Resource Include="Resources\Loading1.gif" />
-    <Resource Include="Resources\Login\按钮.png" />
-    <Resource Include="Resources\Login\按钮_悬停.png" />
-    <Resource Include="Resources\Login\按钮_点击.png" />
-    <Resource Include="Resources\Login\输入框.png" />
-    <Resource Include="Resources\Login\输入框_选择.png" />
-    <Resource Include="Resources\Main\login.png" />
-    <Resource Include="Resources\Main\LogoEmpty.png" />
-    <Resource Include="Resources\Main\LogoJETP.png" />
-    <Resource Include="Resources\Main\tab.png" />
-    <Resource Include="Resources\Main\tab_悬停.png" />
-    <Resource Include="Resources\Main\tab次级.png" />
-    <Resource Include="Resources\Main\tab次级_悬停.png" />
-    <Resource Include="Resources\Main\上一个.png" />
-    <Resource Include="Resources\Main\上一个_悬停.png" />
-    <Resource Include="Resources\Main\上一个_点击.png" />
-    <Resource Include="Resources\Main\下一个.png" />
-    <Resource Include="Resources\Main\下一个_悬停.png" />
-    <Resource Include="Resources\Main\下一个_点击.png" />
-    <Resource Include="Resources\Main\下拉框_底板.png" />
-    <Resource Include="Resources\Main\下拉框_底板150.png" />
-    <Resource Include="Resources\Main\下拉框_底板JETP.png" />
-    <Resource Include="Resources\Main\主界面_切片.png" />
-    <Resource Include="Resources\Main\主界面_切片SORTER.png" />
-    <Resource Include="Resources\Main\主菜单按钮.png" />
-    <Resource Include="Resources\Main\主菜单按钮150.png" />
-    <Resource Include="Resources\Main\主菜单按钮_悬停.png" />
-    <Resource Include="Resources\Main\主菜单按钮_悬停150.png" />
-    <Resource Include="Resources\Main\主菜单按钮_点击.png" />
-    <Resource Include="Resources\Main\主菜单按钮_点击150.png" />
-    <Resource Include="Resources\Main\主菜单按钮_选中.png" />
-    <Resource Include="Resources\Main\主菜单按钮_选中150.png" />
-    <Resource Include="Resources\Main\事件按钮.png" />
-    <Resource Include="Resources\Main\事件按钮_悬停.png" />
-    <Resource Include="Resources\Main\事件按钮_点击.png" />
-    <Resource Include="Resources\Main\拖动组件.png" />
-    <Resource Include="Resources\opened.png" />
-    <Resource Include="Resources\Pump\boost_pump_enabled.png" />
-    <Resource Include="Resources\Pump\boost_pump_error.png" />
-    <Resource Include="Resources\Pump\boost_pump_off.png" />
-    <Resource Include="Resources\Pump\boost_pump_on.png" />
-    <Resource Include="Resources\Pump\boost_pump_warning.png" />
-    <Resource Include="Resources\Pump\pump_error.png" />
-    <Resource Include="Resources\Pump\pump_off.png" />
-    <Resource Include="Resources\Pump\pump_on.png" />
-    <Resource Include="Resources\Pump\pump_warning.png" />
-    <Resource Include="Resources\RecipeFile.png" />
-    <Resource Include="Resources\RecipeFolder.png" />
-    <Resource Include="Resources\red.png" />
-    <Resource Include="Resources\Robot.png" />
-    <Resource Include="Resources\SystemLog\Alarm.png" />
-    <Resource Include="Resources\SystemLog\EquipLog.png" />
-    <Resource Include="Resources\SystemLog\Information.png" />
-    <Resource Include="Resources\SystemLog\UserOperation.png" />
-    <Resource Include="Resources\SystemLog\Warning.png" />
-    <Resource Include="Resources\unknown.png" />
-    <Resource Include="Resources\Valve\FastPumpValve.png" />
-    <Resource Include="Resources\Valve\PumpBlack.png" />
-    <Resource Include="Resources\Valve\PumpGray.png" />
-    <Resource Include="Resources\Valve\PumpGreen.png" />
-    <Resource Include="Resources\Valve\PumpRed.png" />
-    <Resource Include="Resources\Valve\SlowPumpValve.png" />
-    <Resource Include="Resources\Valve\ValveClosed.png" />
-    <Resource Include="Resources\Valve\valveCloseHorizontal.png" />
-    <Resource Include="Resources\Valve\valveCloseVertical.png" />
-    <Resource Include="Resources\Valve\valveOpenHorizontal.png" />
-    <Resource Include="Resources\Valve\valveOpenVertical.png" />
-    <Resource Include="Resources\Yellow.png" />
-    <Resource Include="Resources\zoom_all.png" />
-  </ItemGroup>
-  <ItemGroup>
-    <EmbeddedResource Include="Backend\AboutView.resx">
-      <DependentUpon>AboutView.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\Controls\AICtrl.resx">
-      <DependentUpon>AICtrl.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\Controls\AOCtrl.resx">
-      <DependentUpon>AOCtrl.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\Controls\DICtrl.resx">
-      <DependentUpon>DICtrl.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\IO\AI.resx">
-      <DependentUpon>AI.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\IO\AO.resx">
-      <DependentUpon>AO.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\IO\DI.resx">
-      <DependentUpon>DI.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\IO\DO.resx">
-      <DependentUpon>DO.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\IO\IoDataView.resx">
-      <DependentUpon>IoDataView.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\MainView.resx">
-      <DependentUpon>MainView.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\SimulatorView.resx">
-      <DependentUpon>SimulatorView.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\SystemConfigView.resx">
-      <DependentUpon>SystemConfigView.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Backend\UserLoginView.resx">
-      <DependentUpon>UserLoginView.cs</DependentUpon>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Properties\Resources.en-US.resx">
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Properties\Resources.resx">
-      <Generator>ResXFileCodeGenerator</Generator>
-      <LastGenOutput>Resources.Designer.cs</LastGenOutput>
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-    <EmbeddedResource Include="Properties\Resources.zh-CN.resx">
-      <SubType>Designer</SubType>
-    </EmbeddedResource>
-  </ItemGroup>
-  <ItemGroup>
-    <Page Include="Resources\Language\StringResources.en-US.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </Page>
-    <Page Include="Resources\Language\StringResources.zh-CN.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </Page>
-    <Resource Include="StylableWindow\TitleBarWindowStyle.xaml">
-      <Generator>MSBuild:Compile</Generator>
-      <SubType>Designer</SubType>
-    </Resource>
-  </ItemGroup>
-  <ItemGroup>
-    <Folder Include="FAServices\E90s\" />
-    <Folder Include="Schedulers\" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-</Project>

+ 0 - 17
FrameworkLocal/Common/CommonData/CalibrationDataItem.cs

@@ -1,17 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MECF.Framework.Common.CommonData
-{
-    public class CalibrationItem
-    {
-        public float CalibrationFrom;
-        public float CalibrationTo;
-
-        public float RawFrom;
-        public float RawTo;
-    }
-}

+ 0 - 191
FrameworkLocal/Common/CommonData/DeviceData/AITAPCData.cs

@@ -1,191 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Globalization;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Data;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITAPCData : NotifiableItem, IDeviceData
-    {
-        [DataMember]
-        public string Module { get; set; }
-
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public string UnitPosition { get; set; }
-
-        [DataMember]
-        public string UnitPressure { get; set; }
-
-        [DataMember]
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 量程
-        /// </summary>
-        [DataMember]
-        public double MaxValuePosition { get; set; }
-
-        [DataMember]
-        public double MaxValuePressure { get; set; }
-
-        /// <summary>
-        /// MFC,PC
-        /// </summary>
-        [DataMember]
-        public string Type { get; set; }
-
-
-        [DataMember]
-        public int ModeFeedback { get; set; }
-        [DataMember]
-        public int ModeSetPoint { get; set; }
-
-        [DataMember]
-        public float PositionFeedback { get; set; }
-
-        [DataMember]
-        public float PressureFeedback { get; set; }
-
-        [DataMember]
-        public float Pressure1Feedback { get; set; }
-
-        [DataMember]
-        public float Pressure2Feedback { get; set; }
-
-        [DataMember]
-        public float PressureSetPoint { get; set; }//界面设定
-
-        [DataMember]
-        public float PositionSetPoint { get; set; }//界面设定
-
-        [DataMember]
-        public float SlowRateSetPoint { get; set; }//界面设定
-
-        [DataMember]
-        public float SlowTargetPressureSetPoint { get; set; }//界面设定
-
-        [DataMember]
-        public int State { get; set; }
-
-        [DataMember]
-        public int HomingStatus { get; set; }
-
-        [DataMember]
-        public int SelectedControllerFeedback { get; set; }
-        [DataMember]
-        public int SelectedControllerSetPoint { get; set; }//界面设定
-        [DataMember]
-        public string PIDTable//界面设定
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public string AlarmWatchTable
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public float SetPoint { get; set; }//界面设定
-        [DataMember]
-        public string CommandSetPoint { get; set; }//界面设定
-        [DataMember]
-        public string LowPressWaitSetPoint { get; set; }//界面设定
-        [DataMember]
-        public string HardError { get; set; }
-        [DataMember]
-        public string HomeStatusDisplay { get; set; }
-        public string TextModeSetPoint
-        {
-            get
-            {
-                switch (ModeSetPoint)
-                {
-                    case (int)(PressureControlMode.PositionControl):
-                        return "Valve Angle";
-                    case (int)(PressureControlMode.Press1Control):
-                        return "Press";
-                    case (int)(PressureControlMode.Press2Control):
-                        return "Press2";
-                    case (int)(PressureControlMode.Open):
-                        return "Full Open";
-                    case (int)(PressureControlMode.Close):
-                        return "Full Close";
-                    case (int)(PressureControlMode.SlowVacuum):
-                        return "Slow Vac";
-                    case (int)(PressureControlMode.Hold):
-                        return "Hold";
-                    case (int)(PressureControlMode.Homing):
-                        return "Homing";
-                    default:
-                        return "Idle";
-                }
-            }
-        }
-        public string TextModeFeedback
-        {
-            get
-            {
-                switch (ModeFeedback)
-                {
-                    case (int)(PressureControlMode.PositionControl):
-                        return "Valve Angle";
-                    case (int)(PressureControlMode.Press1Control):
-                        return "Press";
-                    case (int)(PressureControlMode.Press2Control):
-                        return "Press2";
-                    case (int)(PressureControlMode.Open):
-                        return "Full Open";
-                    case (int)(PressureControlMode.Close):
-                        return "Full Close";
-                    case (int)(PressureControlMode.SlowVacuum):
-                        return "Slow Vac";
-                    case (int)(PressureControlMode.Hold):
-                        return "Hold";
-                    case (int)(PressureControlMode.Homing):
-                        return "Homing";
-                    default:
-                        return "Idle";
-                }
-            }
-        }
-
-        public AITAPCData()
-        {
-            DisplayName = "Undefined";
-            UnitPosition = "%";
-            UnitPressure = "mTorr";
-            Type = "TV";
-            MaxValuePosition = 100;
-            MaxValuePressure = 1000;
-        }
-
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-}

+ 0 - 128
FrameworkLocal/Common/CommonData/DeviceData/AITAlignerData.cs

@@ -1,128 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITAlignerData : INotifyPropertyChanged, IDeviceData
-    {
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        public void InvokePropertyChanged(string propertyName)
-        {
-            if (PropertyChanged != null)
-            {
-                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-            }
-        }
-
-        public void InvokePropertyChanged()
-        {
-            PropertyInfo[] ps = this.GetType().GetProperties();
-            foreach (PropertyInfo p in ps)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.PropertyType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-
-            FieldInfo[] fi = this.GetType().GetFields();
-            foreach (FieldInfo p in fi)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.FieldType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-        }
-
-        /// <summary>
-        /// 阀的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: V122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public bool IsInitalized { get; set; }
-
-        [DataMember]
-        public bool IsBusy { get; set; }
- 
-        [DataMember]
-        public bool IsCommunicationError { get; set; }
-
-        [DataMember]
-        public int State { get; set; }
-
-        [DataMember]
-        public int ErrorCode { get; set; }
-
-        [DataMember]
-        public int ElapseTime { get; set; }
-
-        [DataMember]
-        public int Notch { get; set; }
-
- 
-
-        public bool IsError
-        {
-            get { return ErrorCode > 0 || IsCommunicationError; }
-        }
-
-
-        public AITAlignerData()
-        {
-            DisplayName = "Undefined";
-        }
-
-        public void Update(IDeviceData data)
-        {
- 
-        }
-    }
-
-    public class AITAlignerOperation
-    {
-        public const string Home = "Home";
-        public const string Align = "Align";
-        public const string Reset = "Reset";
-        public const string Stop = "Stop";
-    }
-
-    public class AITAlignerPropertyName
-    {
-         
-    }
-}

+ 0 - 112
FrameworkLocal/Common/CommonData/DeviceData/AITAuxData.cs

@@ -1,112 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.RT.Device;
-using Aitex.Core.RT.IOCore;
-using Aitex.Core.RT.SCCore;
-using Aitex.Core.UI.MVVM;
-using Aitex.Core.Util;
-using MECF.Framework.Common.CommonData;
-using MECF.Framework.Common.Device.Bases;
-using MECF.Framework.Common.Event;
-
-namespace Aitex.Core.Common.DeviceData
-{
-
-    [DataContract]
-    [Serializable]
-    public class AITAuxData : NotifiableItem, IDeviceData
-    {
-        /// <summary>
-        /// </summary>
-        [DataMember]
-        public string IOName { get; set; }//AI
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// </summary>
-        [DataMember]
-        public string Unit { get; set; }
-
-        /// <summary>
-        /// 当前设定值
-        /// </summary>
-        [DataMember]
-        public float SetPoint { get; set; }
-        /// <summary>
-        /// 实际反馈值
-        /// </summary>
-        [DataMember]
-        public float Feedback { get; set; }
-        [DataMember]
-        public int TableID { get; set; }
-        [DataMember]
-        public int Index { get; set; }
-        [DataMember]
-        public float WarningLowLimit { get; set; }
-        [DataMember]
-        public float WarningHighLimit { get; set; }
-        [DataMember]
-        public float AlarmLowLimit { get; set; }
-        [DataMember]
-        public float AlarmHighLimit { get; set; }
-        public bool IsAlarmLowLimit
-        {
-            get { return Feedback < SetPoint - AlarmLowLimit && AlarmLowLimit > 0 && SetPoint > 0; }
-        }
-        public bool IsAlarmHighLimit
-        {
-            get { return Feedback > SetPoint + AlarmHighLimit && AlarmHighLimit > 0 && SetPoint > 0; }
-        }
-        public bool IsWarningLowLimit
-        {
-            get { return Feedback < SetPoint - WarningLowLimit && !IsAlarmLowLimit && WarningLowLimit > 0 && SetPoint > 0;  }
-        }
-        public bool IsWarningHighLimit
-        {
-            get { return Feedback > SetPoint + WarningHighLimit && !IsAlarmHighLimit && WarningHighLimit > 0 && SetPoint > 0; }
-        }
-        public AlarmEventItem WarningLowLimitEvent { get; set; }
-        public AlarmEventItem WarningHighLimitEvent { get; set; }
-        public AlarmEventItem AlarmLowLimitEvent { get; set; }
-        public AlarmEventItem AlarmHighLimitEvent { get; set; }
-        public SCConfigItem AlarmLowLimitConfig { get; set; }
-        public SCConfigItem AlarmHighLimitConfig { get; set; }
-        public SCConfigItem WarningLowLimitConfig { get; set; }
-        public SCConfigItem WarningHighLimitConfig { get; set; }
-        public SCConfigItem SetPointConfig { get; set; }
-        public SCConfigItem UnitConfig { get; set; }
-        public SCConfigItem DisplayNameConfig { get; set; }
-        public R_TRIG WarningLowLimitTrig { get; set; }
-        public R_TRIG WarningHighLimitTrig { get; set; }
-        public R_TRIG AlarmLowLimitTrig { get; set; }
-        public R_TRIG AlarmHighLimitTrig { get; set; }
-        public AOAccessor AO { get; set; }
-        public AIAccessor AISV { get; set; }
-        public AOAccessor AOAlarmLower { get; set; }
-        public AOAccessor AOAlarmHigher { get; set; }
-        public bool IsWait { get; set; }
-        public float WaitHigh { get; set; }
-        public float WaitLow { get; set; }
-
-        public AITAuxData()
-        {
-            DisplayName = "";
-        }
-
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-}

+ 0 - 152
FrameworkLocal/Common/CommonData/DeviceData/AITBoostPumpData.cs

@@ -1,152 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITBoostPumpData : INotifyPropertyChanged, IDeviceData
-    {
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        public void InvokePropertyChanged(string propertyName)
-        {
-            if (PropertyChanged != null)
-            {
-                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-            }
-        }
-
-        public void InvokePropertyChanged()
-        {
-            PropertyInfo[] ps = this.GetType().GetProperties();
-            foreach (PropertyInfo p in ps)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.PropertyType == typeof(ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-
-            FieldInfo[] fi = this.GetType().GetFields();
-            foreach (FieldInfo p in fi)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.FieldType == typeof(ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-        }
-
-        /// <summary>
-        /// 阀的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: V122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
- 
-        [DataMember]
-        public bool IsRunning { get; set; }
- 
-        [DataMember]
-        public bool IsError { get; set; }
-
-        [DataMember]
-        public bool EnableFrequency { get; set; }
-
-        [DataMember]
-        public double EnableSetPoint { get; set; }
-
-        [DataMember]
-        public double PressureSetPoint { get; set; }
-
-        [DataMember]
-        public double PressureSetPointMax { get; set; }
-
-        [DataMember]
-        public double InverterFrequency { get; set; }
-
-        public string PressureSetPointDisplay
-        {
-            get
-            {
-                return ((int)PressureSetPoint).ToString();
-            }
-        }
-
-        public string FrequencyDisplay
-        {
-            get
-            {
-                return EnableFrequency ? string.Format("{0}%", (int)InverterFrequency) : "";
-            }
-        }
-
-        public string InverterFrequencyDisplay
-        {
-            get
-            {
-                return InverterFrequency.ToString("F1");
-            }
-        }
-
-
-        public AITBoostPumpData()
-        {
-            DisplayName = "未定义";
-        }
-
-        public void Update(IDeviceData data)
-        {
-            AITBoostPumpData item = data as AITBoostPumpData;
-
-            if (item == null)
-                return;
-
-            InvokePropertyChanged();
-        }
-    }
-
-    public enum AITBoostPumpOperation
-    {
-        SetEnable,
-        SetPressure,
-    }
-
-    public class AITBoostPumpDataPropertyName
-    {
-        public const string EnableSetPoint = "EnableSetPoint";
-        public const string PressureSetPoint = "PressureSetPoint";
-        public const string IsError = "IsError";
-        public const string IsWarning = "IsWarning";
-        public const string InverterFrequency = "InverterFrequency";
-    }
-}

+ 0 - 32
FrameworkLocal/Common/CommonData/DeviceData/AITChillerData.cs

@@ -1,32 +0,0 @@
-using System;
-using System.Runtime.Serialization;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITChillerData : AITDeviceData
-    {
-
-        [DataMember]
-        public bool IsRunning { get; set; }
-
-        [DataMember]
-        public bool IsError { get; set; }
-
-
-        public AITChillerData()
-        {
-            DisplayName = "Undefined";
-        }
-
-
-    }
-
-    public enum AITChillerOperation
-    {
-        ChillerOn,
-        ChillerOff,
-    }
-
-}

+ 0 - 62
FrameworkLocal/Common/CommonData/DeviceData/AITChillerData1.cs

@@ -1,62 +0,0 @@
-using Aitex.Core.Common.DeviceData;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MECF.Framework.Common.CommonData.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITChillerData1 : AITDeviceData
-    {
-        [DataMember]
-        public string DeviceModule { get; set; }
-
-        [DataMember]
-        public float[] Temperature { get; set; }
-
-        [DataMember]
-        public float[] TemperatureSetPoint { get; set; }
-
-
-
-        [DataMember]
-        public bool IsCH1On { get; set; }
-        [DataMember]
-        public bool IsCH2On { get; set; }
-
-        [DataMember]
-        public bool IsCH1Warning { get; set; }
-        [DataMember]
-        public bool IsCH2Warning { get; set; }
-        [DataMember]
-        public bool IsCH1Alarm { get; set; }
-        [DataMember]
-        public bool IsCH2Alarm { get; set; }
-
-        [DataMember]
-        public double CH1WaterFlow { get; set; }
-        [DataMember]
-        public double CH2WaterFlow { get; set; }
-        [DataMember]
-        public float TemperatureHighLimit { get; set; }
-        [DataMember]
-        public float TemperatureLowLimit { get; set; }
-
-        [DataMember]
-        public float Frequency { get; set; }
-
-
-        [DataMember]
-        public string FormatString { get; set; }
-
-        public AITChillerData1()
-        {
-            DisplayName = "未定义";
-        }
-
-    }
-}

+ 0 - 98
FrameworkLocal/Common/CommonData/DeviceData/AITConfigData.cs

@@ -1,98 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITConfigData : INotifyPropertyChanged, IDeviceData
-    {
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        public void InvokePropertyChanged(string propertyName)
-        {
-            if (PropertyChanged != null)
-            {
-                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-            }
-        }
-
-        public void InvokePropertyChanged()
-        {
-            PropertyInfo[] ps = this.GetType().GetProperties();
-            foreach (PropertyInfo p in ps)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.PropertyType == typeof(ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-
-            FieldInfo[] fi = this.GetType().GetFields();
-            foreach (FieldInfo p in fi)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.FieldType == typeof(ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-        }
-
- 
-        [DataMember]
-        public string SystemType { get; set; }
-        [DataMember]
-        public string SectionName { get; set; }
-        [DataMember]
-        public string EntryName { get; set; }
-        [DataMember]
-        public string Description { get; set; }
-        [DataMember]
-        public string Description_zh { get; set; }
-        [DataMember]
-        public string Description_en { get; set; }
-        [DataMember]
-        public string Type { get; set; }
-        [DataMember]
-        public string Unit { get; set; }
-        [DataMember]
-        public string Value { get; set; }
-        [DataMember]
-        public string Default { get; set; }
-        [DataMember]
-        public string RangeLowLimit { get; set; }
-        [DataMember]
-        public string RangeUpLimit { get; set; }
-        [DataMember]
-        public string XPath { get; set; }
- 
-
-        public AITConfigData()
-        {
-             
-        }
-
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
- 
-}

+ 0 - 106
FrameworkLocal/Common/CommonData/DeviceData/AITCoolingControlData.cs

@@ -1,106 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-
-//namespace Aitex.Core.Common.DeviceData
-//{
-//    [DataContract]
-//    [Serializable]
-//    public class AITCoolingControlData : INotifyPropertyChanged, IDeviceData
-//    {
-//        public event PropertyChangedEventHandler PropertyChanged;
-
-//        public void InvokePropertyChanged(string propertyName)
-//        {
-//            if (PropertyChanged != null)
-//            {
-//                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-//            }
-//        }
-
-//        public void InvokePropertyChanged()
-//        {
-//            PropertyInfo[] ps = this.GetType().GetProperties();
-//            foreach (PropertyInfo p in ps)
-//            {
-//                InvokePropertyChanged(p.Name);
-
-//                if (p.PropertyType == typeof(ICommand))
-//                {
-//                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;
-//                    if (cmd != null)
-//                        cmd.RaiseCanExecuteChanged();
-
-//                }
-//            }
-
-//            FieldInfo[] fi = this.GetType().GetFields();
-//            foreach (FieldInfo p in fi)
-//            {
-//                InvokePropertyChanged(p.Name);
-
-//                if (p.FieldType == typeof(ICommand))
-//                {
-//                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;
-//                    if (cmd != null)
-//                        cmd.RaiseCanExecuteChanged();
-
-//                }
-//            }
-//        }
-
-//        /// <summary>
-//        /// 阀的唯一名称,UI与RT交互的ID
-//        /// </summary>
-//        [DataMember]
-//        public string DeviceName { get; set; }
-
-//        /// <summary>
-//        /// 显示在界面上的名称
-//        /// </summary>
-//        [DataMember]
-//        public string DisplayName { get; set; }
-
-//        /// <summary>
-//        /// IO 表中定义的物理编号,物理追溯使用 比如: V122
-//        /// </summary>
-//        [DataMember]
-//        public string DeviceSchematicId { get; set; }
- 
-
-//        [DataMember]
-//        public double ElectrodeTemperature { get; set; }
-
-
-
-//        public AITCoolingControlData()
-//        {
-//            DisplayName = "未定义";
-//        }
-
-//        public void Update(IDeviceData data)
-//        {
-//            AITCoolingControlData item = data as AITCoolingControlData;
-
-//            if (item == null)
-//                return;
-
-//            InvokePropertyChanged();
-//        }
-//    }
-
- 
-//    public enum AITCoolingControlOperation
-//    {
-//        SetElectrodeTemperature,
- 
-//    }
-
- 
-//}

+ 0 - 112
FrameworkLocal/Common/CommonData/DeviceData/AITCylinderData.cs

@@ -1,112 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    public enum CylinderState
-    {
-        Close = 0,
-        Open = 1,
-        Unknown = 2,
-        Error = 3,
-    }
-
-    [DataContract]
-    [Serializable]
-    public class AITCylinderData : NotifiableItem, IDeviceData
-    {
- 
-        [DataMember]
-        public string Module { get; set; }
- 
-        [DataMember]
-        public string DeviceName { get; set; }
- 
-        [DataMember]
-        public string DisplayName { get; set; }
-
- 
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public  bool OpenFeedback { get; set; }
-
-        [DataMember]
-        public bool CloseFeedback { get; set; }
-
-        [DataMember]
-        public bool OpenSetPoint { get; set; }
-
-        [DataMember]
-        public bool CloseSetPoint { get; set; }
-
-
-        [DataMember]
-        public bool IsLoop { get; set; }
-
-        public string StringStatus
-        {
-            get
-            {
-                if (OpenFeedback && !CloseFeedback) return CylinderState.Open.ToString();
-                if (!OpenFeedback && CloseFeedback) return CylinderState.Close.ToString();
-                if (OpenFeedback && CloseFeedback) return CylinderState.Error.ToString();
-                if (!OpenFeedback && !CloseFeedback) return CylinderState.Unknown.ToString();
-                return "Unknown";
-            }
-        }
-
-        public string StringSetPoint
-        {
-            get
-            {
-                if (OpenSetPoint && !CloseSetPoint) return CylinderState.Open.ToString();
-                if (!OpenSetPoint && CloseSetPoint) return CylinderState.Close.ToString();
-                if (OpenSetPoint && CloseSetPoint) return CylinderState.Error.ToString();
-                if (!OpenSetPoint && !CloseSetPoint) return CylinderState.Unknown.ToString();
-                return "Unknown";
-            }
-        }
-
-
-        public AITCylinderData()
-        {
-            DisplayName = "Undefined Cylinder";
-        }
-
-        public void Update(IDeviceData data)
-        {
-
-        }
-    }
-
-    public class AITCylinderOperation
-    {
-        public const string Open = "Open";
-        public const string Close = "Close";
- 
-
-    }
-
-    public class AITCylinderProperty
-    {
-        public const string OpenFeedback = "OpenFeedback";
-        public const string CloseFeedback = "CloseFeedback";
- 
-        public const string OpenSetPoint = "OpenSetPoint";
-        public const string CloseSetPoint = "CloseSetPoint";
- 
-
- 
-
-    }
-}

+ 0 - 55
FrameworkLocal/Common/CommonData/DeviceData/AITDeviceData.cs

@@ -1,55 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITDeviceData : NotifiableItem, IDeviceData
-    {
-        [DataMember]
-        public string UniqueName { get; set; }
-
-        [DataMember]
-        public string Module { get; set; }
- 
-        [DataMember]
-        public string DeviceName { get; set; }
- 
-        [DataMember]
-        public string DisplayName { get; set; }
- 
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public string Unit { get; set; }
-
-        [DataMember]
-        public string Description { get; set; }
- 
-        [DataMember]
-        public Dictionary<string, object> AttrValue { get; set; }
-
-        public AITDeviceData()
-        {
-            DisplayName = "Undefined";
-            Unit = "";
-
-            AttrValue = new Dictionary<string, object>();
-        }
-        public void Update(IDeviceData data)
-        {
-             
-        }
-    }
- 
-}

+ 0 - 125
FrameworkLocal/Common/CommonData/DeviceData/AITEmoData.cs

@@ -1,125 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITEmoData : INotifyPropertyChanged, IDeviceData
-    {
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        public void InvokePropertyChanged(string propertyName)
-        {
-            if (PropertyChanged != null)
-            {
-                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-            }
-        }
-
-        public void InvokePropertyChanged()
-        {
-            PropertyInfo[] ps = this.GetType().GetProperties();
-            foreach (PropertyInfo p in ps)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.PropertyType == typeof(ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-
-            FieldInfo[] fi = this.GetType().GetFields();
-            foreach (FieldInfo p in fi)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.FieldType == typeof(ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-        }
-
-        /// <summary>
-        /// 设备的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: M122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public string Description
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public bool StopButtonSignal
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public bool MainContactorSignal
-        {
-            get;
-            set;
-        }
- 
-
-        public AITEmoData()
-        {
-            DisplayName = "Undefined";
-        }
-
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-    public enum AITEmoOperation
-    {
-        
-    }
-}

+ 0 - 223
FrameworkLocal/Common/CommonData/DeviceData/AITGasSplitterData.cs

@@ -1,223 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITGasSplitterData : NotifiableItem, IDeviceData
-    {
-        [DataMember]
-        public string Module { get; set; }
-
-        [DataMember]
-        public string UniqueName { get; set; }
-
-
-        /// <summary>
-        /// 设备的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: M122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public string Unit
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public string Description
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 量程
-        /// </summary>
-        [DataMember]
-        public double Scale
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 量程范围
-        /// </summary>
-        [DataMember]
-        public string Range
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 设定值
-        /// </summary>
-        [DataMember]
-        public double SetPoint
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public double FeedBack
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public double SwitchFeedBack
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 默认值
-        /// </summary>
-        [DataMember]
-        public double DefaultValue
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 是否有报警
-        /// </summary>
-        [DataMember]
-        public bool IsWarning
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public bool IsOffline
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public int Status
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// alarm或是erro时显示的信息
-        /// </summary>
-        [DataMember]
-        public string ErroMessage
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// MFC,PC
-        /// </summary>
-        [DataMember]
-        public string Type
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public string FormatString
-        {
-            get; set;
-
-        }
-
-        private string _title;
-        [DataMember]
-        public string DisplayTitle
-        {
-            get
-            {
-                return string.Format("{0}({1})", DeviceSchematicId, DisplayName);
-            }
-
-            set
-            {
-                _title = value;
-            }
-        }
-
-        public AITGasSplitterData()
-        {
-            DisplayName = "Undefined";
-            Unit = "%";
-            Type = "Splitter";
-            DeviceSchematicId = "Undefined";
-            UniqueName = "";
-
-        }
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-    public class AITGasSplitterDataPropertyName
-    {
-        public const string IsOffline = "IsOffline";
-        public const string FeedBack = "FeedBack";
-        public const string SetPoint = "SetPoint";
-        public const string DefaultSetPoint = "DefaultSetPoint";
-        public const string Scale = "Scale";
-        public const string Range = "Range";
-        public const string IsEnabled = "IsEnabled";
-        public const string IsOutOfTolerance = "IsOutOfTolerance";
-
-        public const string IsEnableAlarm = "IsEnableAlarm";
-        public const string AlarmRange = "AlarmRange";
-        public const string AlarmTime = "AlarmTime";
-
-        public const string Status = "Status";
-
-    }
-
-}

+ 0 - 308
FrameworkLocal/Common/CommonData/DeviceData/AITHeaterData.cs

@@ -1,308 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITHeaterData : NotifiableItem, IDeviceData
-    {
-        [DataMember]
-        public string UniqueName { get; set; }
-
-        [DataMember]
-        public string Module { get; set; }
-
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public string Unit { get; set; }
-
-        [DataMember]
-        public string Description { get; set; }
-
-        [DataMember]
-        public double Scale { get; set; }
-
-        [DataMember]
-        public double SetPoint { get; set; }
-       
-        [DataMember]
-        public double RawFeedBack { get; set; }
-        [DataMember]
-        public double OverTemp { get; set; }
-        [DataMember]
-        public double CascadePV { get; set; }//经过Profile table和offset table校正之后的值
-        [DataMember]
-        public double HeaterPV { get; set; }//经过Profile table和offset table校正之后的值
-
-        [DataMember]
-        public double FeedBack { get; set; }//经过Profile table和offset table校正之后的值
-        [DataMember]
-        public double SetPointFb { get; set; }//设置值对应的反馈值
-
-        [DataMember]
-        public double DefaultValue { get; set; }
-
-        [DataMember]
-        public double DefaultSetPoint { get; set; }
-        [DataMember]
-        public double UpRateSetPoint { get; set; }
-
-        [DataMember]
-        public double DownRateSetPoint { get; set; }
-
-        [DataMember]
-        public bool IsWarning { get; set; }
-        [DataMember]
-        public bool IsAlarm { get; set; }
-
-        [DataMember]
-        public string ErroMessage { get; set; }
-
-        [DataMember]
-        public string Type { get; set; }
-
-        [DataMember]
-        public double Factor { get; set; }
-        [DataMember]
-        public bool IsRemoteMode { get; set; }//Local Remote模式设定。
-        [DataMember]
-        public int ControlMode { get; set; }//Paddle模式控温。
-        [DataMember]
-        public double Ramping { get; set; }
-        [DataMember]
-        public double CascadePID_P { get; set; }//PID--P(Proportioning),比例动作
-        [DataMember]
-        public double CascadePID_I { get; set; }//PID--P(Proportioning),比例动作
-        [DataMember]
-        public double CascadePID_D { get; set; }//PID--P(Proportioning),比例动作
-        [DataMember]
-        public double HeaterPID_P { get; set; }//PID--P(Proportioning),比例动作
-        [DataMember]
-        public double HeaterPID_I { get; set; }//PID--P(Proportioning),比例动作
-        [DataMember]
-        public double HeaterPID_D { get; set; }//PID--P(Proportioning),比例动作
-        [DataMember]
-        public double ProportioningSetPoint { get; set; }//PID--P(Proportioning),比例动作
-        [DataMember]
-        public double ProportioningFeedBack { get; set; }//PID--P(Proportioning),比例动作
-        [DataMember]
-        public double IntegralSetPoint { get; set; }//PID--I(Integral),积分动作或复位动作
-        [DataMember]
-        public double IntegralFeedBack { get; set; }//PID--I(Integral),积分动作或复位动作
-        [DataMember]
-        public double DerivativeSetPoint { get; set; }//PID--D(Derivative),微分动作或比率动作
-        [DataMember]
-        public double DerivativeFeedBack { get; set; }//PID--D(Derivative),微分动作或比率动作
-        [DataMember]
-        public double ProcessVariable { get; set; }//PV Process Variable(过程值),热电偶、热电阻、线性输入等的测量值。
-        [DataMember]
-        public double LocalSetPoint { get; set; }//LSP Local Set Point(本地设定点),存储在调节器中的设定值
-        [DataMember]
-        public double ManipulatedVariable { get; set; }//MV Manipulated Variable(操作变量),是执行控制的仪表的输出,表示PID的运算结果
-        [DataMember]
-        public double LspIncreaseRampRateSetPoint { get; set; }//LSP用SP斜坡上升斜率
-        [DataMember]
-        public double LspIncreaseRampRateFeedBack { get; set; }//LSP用SP斜坡上升斜率
-        [DataMember]
-        public double LspDecreaseRampRateSetPoint { get; set; }//LSP用SP斜坡下降斜率
-        [DataMember]
-        public double LspDecreaseRampRateFeedBack { get; set; }//LSP用SP斜坡下降斜率
-        [DataMember]
-        public double RspIncreaseRampRateSetPoint { get; set; }//RSP用SP斜坡上升斜率
-        [DataMember]
-        public double RspIncreaseRampRateFeedBack { get; set; }//RSP用SP斜坡上升斜率
-        [DataMember]
-        public double RspDecreaseRampRateSetPoint { get; set; }//RSP用SP斜坡下降斜率
-        [DataMember]
-        public double RspDecreaseRampRateFeedBack { get; set; }//RSP用SP斜坡下降斜率
-        [DataMember]
-        public bool IsAutoTuningSetPoint { get; set; }//自动调整PID的最佳参数。
-        [DataMember]
-        public bool IsAutoTuningFeedBack { get; set; }//自动调整PID的最佳参数。
-        [DataMember]
-        public bool IsLspModeSetPoint { get; set; }//LSP  RSP模式设定。
-        [DataMember]
-        public bool IsLspModeFeedBack { get; set; }//LSP  RSP模式设定。
-        [DataMember]
-        public bool IsAutoMode { get; set; }//和manual对应,把PID的运算结果作为操作量的自动运行状态。 manual-把操作者的手动操作所设定的值作为操作量的手动运行状态。
-        [DataMember]
-        public bool IsRun { get; set; }//和Ready对应,执行控制运算的状态。ready--控制运算处于停止的待机状态
-
-        [DataMember]
-        public double TempFeedback { get; set; }
-        [DataMember]
-        public double RampSetPoint { get; set; }
-        [DataMember]
-        public string ProfileTable { get; set; }
-        [DataMember]
-        public string CorrectTable { get; set; }
-        [DataMember]
-        public string PIDTable { get; set; }
-        [DataMember]
-        public string ControlModeSetpoint { get; set; }
-        [DataMember]
-        public string AlarmWatchTable { get; set; }
-        public RampUnit RampUnit { get; set; }
-        [DataMember]
-        public double ProfileTotalTime { get; set; }
-        [DataMember]
-        public double ProfilePreheatTime { get; set; }
-        [DataMember]
-        public double ProfileCheckTime { get; set; }
-        [DataMember]
-        public double ProfileCheckLimit { get; set; }
-        [DataMember]
-        public double ProfileAlarmLimit { get; set; }
-        [DataMember]
-        public double ProfileResult { get; set; }
-        [DataMember]
-        public bool IsProfiling { get; set; }
-        public string ControlModeDisplay
-        {
-            get
-            {
-                if (ControlMode == 1)
-                    return "Heater control";
-                if (ControlMode == 2)
-                    return "Furnace Diect control";
-
-                return "Furnace control";
-            }
-        }
-        [DataMember]
-        public string ProfileStatus { get; set; }
-        [DataMember]
-        public bool IsCascadePVBreak
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public bool IsHeaterPVBreak
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public bool IsPowerOn
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public bool IsPowerOnSetPoint
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public bool IsControlTcBroken
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public bool IsMonitorTcBroken
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public double MonitorTcFeedBack { get; set; }
-
-        //for the PID control type
-        [DataMember]
-        public Dictionary<string, object> AttrValue { get; set; }
-
-        public string Display
-        {
-            get
-            {
-                string value = FeedBack.ToString(FormatString);
-                return DisplayWithUnit ? value + " " + Unit : value;
-            }
-        }
-        [DataMember]
-        public string FormatString
-        {
-            get; set;
-        }
-
-        [DataMember]
-        public bool DisplayWithUnit
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public bool EnableOutput
-        {
-            get;
-            set;
-        }
-        public AITHeaterData()
-        {
-            DisplayName = "Undefined";
-            Factor = 1.0;
-            Unit = "℃";
-            Type = "Heater";
-            FormatString = "F2";
-            AttrValue = new Dictionary<string, object>();
-        }
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-    public class AITHeaterOperation
-    {
-        public const string Ramp = "Ramp";
-        public const string SetPowerOnOff = "SetPowerOnOff";
-    }
-
-    public class AITHeaterPropertyName
-    {
-        public const string ControlTcFeedback = "ControlTcFeedback";
-        public const string MonitorTcFeedback = "MonitorTcFeedback";
-
-        public const string ControlTcSetPoint = "ControlTcSetPoint";
-
-        public const string IsControlTcBroken = "IsControlTcBroken";
-        public const string IsMonitorTcBroken = "IsMonitorTcBroken";
-
-        public const string IsPowerOnFeedback = "IsPowerOnFeedback";
-        public const string IsPowerOnSetPoint = "IsPowerOnSetPoint";
-
-        public const string IsTemperatureAlarm = "IsTemperatureAlarm";
-
-    }
-    public enum RampUnit
-    {
-        degreePerSec = 1,
-        degreePerMin,
-        degreePerHour,
-    }
-}

+ 0 - 90
FrameworkLocal/Common/CommonData/DeviceData/AITLidData.cs

@@ -1,90 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.RT.Device;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-using MECF.Framework.Common.Device.Bases;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    public enum LidState
-    {
-        Close = 0,
-        Open = 1,
-        Unknown = 2,
-        Error = 3,
-    }
-
-    [DataContract]
-    [Serializable]
-    public class AITLidData : NotifiableItem, IDeviceData
-    {
-        /// <summary>
-        /// 阀的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: V122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        /// <summary>
-        /// 当前设定值
-        /// </summary>
-        [DataMember]
-        public int SetPoint { get; set; }
-
- 
-
-        /// <summary>
-        /// 实际反馈值
-        /// </summary>
-        [DataMember]
-        public int Status { get; set; }
-
-        public bool IsOpen 
-        {
-            get { return Status == (int)LidState.Open;  }
-        }
-
-        public bool IsClose
-        {
-            get
-            {
-                return Status == (int)LidState.Close;
-            }
-        }
-
-        public AITLidData()
-        {
-            DisplayName = "Undefined Lid";
-        }
-
-        public void Update(IDeviceData data)
-        {
- 
-        }
-    }
-
-    public class AITLidOperation
-    {
-        public const string OpenLid = "OpenLid";
-        public const string CloseLid = "CloseLid";
-
-    }
-}

+ 0 - 303
FrameworkLocal/Common/CommonData/DeviceData/AITMfcData.cs

@@ -1,303 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITMfcData : NotifiableItem, IDeviceData
-    {
-        [DataMember]
-        public string Module { get; set; }
-
-        [DataMember]
-        public string UniqueName { get; set; }
-
-
-        /// <summary>
-        /// 设备的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: M122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public string Unit
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public string Description
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 量程
-        /// </summary>
-        [DataMember]
-        public double Scale
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 量程范围
-        /// </summary>
-        [DataMember]
-        public string Range
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 设定值
-        /// </summary>
-        [DataMember]
-        public double SetPoint
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 虚拟设定值
-        /// </summary>
-        [DataMember]
-        public float VirtualSetPoint
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// Ramping
-        /// </summary>
-        [DataMember]
-        public double Ramping
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 虚拟Ramping
-        /// </summary>
-        [DataMember]
-        public double VirtualRamping
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public double FeedBack
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 虚拟反馈值
-        /// </summary>
-        [DataMember]
-        public double VirtualFeedBack
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 默认值
-        /// </summary>
-        [DataMember]
-        public double DefaultValue
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 是否有报警
-        /// </summary>
-        [DataMember]
-        public bool IsWarning
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public bool IsError
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public bool IsOffline
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public int Status
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// alarm或是erro时显示的信息
-        /// </summary>
-        [DataMember]
-        public string ErroMessage
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// MFC,PC
-        /// </summary>
-        [DataMember]
-        public string Type
-        {
-            get;
-            set;
-        }
-
-
-        [DataMember]
-        public double Factor
-        {
-            get;
-            set;
-        }
-
-
-        [DataMember]
-        public string AlarmWatchTable
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public string VirtualAlarmWatchTable
-        {
-            get;
-            set;
-        }
-
-        private string _title;
-        [DataMember]
-        public string DisplayTitle
-        {
-            get
-            {
-                return string.Format("{0}({1})", DeviceSchematicId, DisplayName);
-            }
-
-            set
-            {
-                _title = value;
-            }
-        }
-
-        public AITMfcData()
-        {
-            DisplayName = "Undefined";
-            Factor = 1.0;
-            Unit = "sccm";
-            Type = "MFC";
-            DeviceSchematicId = "Undefined";
-            UniqueName = "";
-
-        }
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-
-        public override bool Equals(object obj)
-        {
-            if (obj == null || GetType() != obj.GetType())
-            {
-                return false;
-            }
-
-            AITMfcData objAIT = (AITMfcData)obj;
-            if (DeviceSchematicId == objAIT.DeviceSchematicId && FeedBack == objAIT.FeedBack && IsError == objAIT.IsError && SetPoint== objAIT.SetPoint
-                && Factor== objAIT.Factor && IsWarning== objAIT.IsWarning && IsOffline== objAIT.IsOffline && Status== objAIT.Status)
-            {
-                return true;
-            }
-            return false;
-        }
-    }
-
-    public class AITMfcOperation
-    {
-        public const string Ramp = "Ramp";
-        public const string GVMfcValve = "SetMfcValue";
-        public const string GVMfcVirtualTurnValve = "SetMfcVirtualValue";
-    }
-
-    public class AITMfcDataPropertyName
-    {
-        public const string IsOffline = "IsOffline";
-        public const string FeedBack = "FeedBack";
-        public const string SetPoint = "SetPoint";
-        public const string DefaultSetPoint = "DefaultSetPoint";
-        public const string Scale = "Scale";
-        public const string Range = "Range";
-        public const string IsEnabled = "IsEnabled";
-        public const string IsOutOfTolerance = "IsOutOfTolerance";
-
-        public const string IsEnableAlarm = "IsEnableAlarm";
-        public const string AlarmRange = "AlarmRange";
-        public const string AlarmTime = "AlarmTime";
-
-        public const string Status = "Status";
-
-    }
-
-}

+ 0 - 684
FrameworkLocal/Common/CommonData/DeviceData/AITNXD15Data.cs

@@ -1,684 +0,0 @@
-using Aitex.Core.Common.DeviceData;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MECF.Framework.Common.CommonData.DeviceData
-{
-    [DataContract]
-    [Serializable]
-   public class AITNXD15Data : NotifiableItem, IDeviceData
-    {
-        #region ParameterData
-        [DataMember]
-        public string RunOrReady1 { get; set; }
-        [DataMember]
-        public string AutoOrManual1 { get; set; }
-        [DataMember]
-        public string ATOffOrOn1 { get; set; }
-        [DataMember]
-        public string LspOrRsp1 { get; set; }
-        [DataMember]
-        public string PV1 { get; set; }
-        [DataMember]
-        public string SP1 { get; set; }
-        [DataMember]
-        public string MV1 { get; set; }
-    
-        [DataMember]
-        public string RunOrReady2 { get; set; }
-        [DataMember]
-        public string AutoOrManual2 { get; set; }
-        [DataMember]
-        public string ATOffOrOn2 { get; set; }
-        [DataMember]
-        public string LspOrRsp2 { get; set; }
-        [DataMember]
-        public string PV2 { get; set; }
-        [DataMember]
-        public string SP2 { get; set; }
-        [DataMember]
-        public string MV2 { get; set; }
-
-        [DataMember]
-        public string RunOrReady3 { get; set; }
-        [DataMember]
-        public string AutoOrManual3 { get; set; }
-        [DataMember]
-        public string ATOffOrOn3 { get; set; }
-        [DataMember]
-        public string LspOrRsp3 { get; set; }
-        [DataMember]
-        public string PV3 { get; set; }
-        
-        [DataMember]
-        public string MV3 { get; set; }
-
-        [DataMember]
-        public string RunOrReady4 { get; set; }
-        [DataMember]
-        public string AutoOrManual4 { get; set; }
-        [DataMember]
-        public string ATOffOrOn4 { get; set; }
-        [DataMember]
-        public string LspOrRsp4 { get; set; }
-        [DataMember]
-        public string PV4 { get; set; }
-
-        [DataMember]
-        public string MV4 { get; set; }
-        #endregion
-
-        #region PID
-        [DataMember]
-        public string CurrentScaleBand1 { get; set; }
-        [DataMember]
-        public string CurrentIntegrationTime1 { get; set; }
-        [DataMember]
-        public string CurrentDifferentialTime1 { get; set; }
-
-        [DataMember]
-        public string CurrentManualReset1 { get; set; }
-
-        [DataMember]
-        public string LowerLimitOfCurrentOperation1 { get; set; }
-        [DataMember]
-        public string UpperLimitOfCurrentOperation1 { get; set; }
-
-        [DataMember]
-        public string CurrentScaleBand2 { get; set; }
-        [DataMember]
-        public string CurrentIntegrationTime2 { get; set; }
-        [DataMember]
-        public string CurrentDifferentialTime2 { get; set; }
-
-        [DataMember]
-        public string CurrentManualReset2 { get; set; }
-
-        [DataMember]
-        public string LowerLimitOfCurrentOperation2 { get; set; }
-        [DataMember]
-        public string UpperLimitOfCurrentOperation2 { get; set; }
-
-        [DataMember]
-        public string CurrentScaleBand3 { get; set; }
-        [DataMember]
-        public string CurrentIntegrationTime3 { get; set; }
-        [DataMember]
-        public string CurrentDifferentialTime3 { get; set; }
-
-        [DataMember]
-        public string CurrentManualReset3 { get; set; }
-
-        [DataMember]
-        public string LowerLimitOfCurrentOperation3 { get; set; }
-        [DataMember]
-        public string UpperLimitOfCurrentOperation3 { get; set; }
-
-        [DataMember]
-        public string CurrentScaleBand4{ get; set; }
-        [DataMember]
-        public string CurrentIntegrationTime4 { get; set; }
-        [DataMember]
-        public string CurrentDifferentialTime4 { get; set; }
-
-        [DataMember]
-        public string CurrentManualReset4 { get; set; }
-
-        [DataMember]
-        public string LowerLimitOfCurrentOperation4 { get; set; }
-        [DataMember]
-        public string UpperLimitOfCurrentOperation4 { get; set; }
-
-        #endregion
-
-        #region PIDData
-          #region PID1
-        [DataMember]
-        public string PID1CurrentScaleBand1 { get; set; }
-        [DataMember]
-        public string PID1CurrentIntegrationTime1 { get; set; }
-        [DataMember]
-        public string PID1CurrentDifferentialTime1 { get; set; }
-
-        
-        [DataMember]
-        public string PID1LowerLimitOfCurrentOperation1 { get; set; }
-        [DataMember]
-        public string PID1UpperLimitOfCurrentOperation1 { get; set; }
-        [DataMember]
-        public string PID1CurrentManualReset1 { get; set; }
-
-
-        [DataMember]
-        public string PID1Deviation1 { get; set; }
-       
-        [DataMember]
-        public string PID1CurrentScaleBand2 { get; set; }
-        [DataMember]
-        public string PID1CurrentIntegrationTime2 { get; set; }
-        [DataMember]
-        public string PID1CurrentDifferentialTime2 { get; set; }
-
-        [DataMember]
-        public string PID1LowerLimitOfCurrentOperation2 { get; set; }
-        [DataMember]
-        public string PID1UpperLimitOfCurrentOperation2 { get; set; }
-
-        [DataMember]
-        public string PID1CurrentManualReset2 { get; set; }
-
-
-        [DataMember]
-        public string PID1Deviation2 { get; set; }
-
-        [DataMember]
-        public string PID1CurrentScaleBand3 { get; set; }
-        [DataMember]
-        public string PID1CurrentIntegrationTime3 { get; set; }
-        [DataMember]
-        public string PID1CurrentDifferentialTime3 { get; set; }
-
-        [DataMember]
-        public string PID1LowerLimitOfCurrentOperation3 { get; set; }
-        [DataMember]
-        public string PID1UpperLimitOfCurrentOperation3 { get; set; }
-
-        [DataMember]
-        public string PID1CurrentManualReset3 { get; set; }
-
-
-        [DataMember]
-        public string PID1Deviation3 { get; set; }
-
-        [DataMember]
-        public string PID1CurrentScaleBand4 { get; set; }
-        [DataMember]
-        public string PID1CurrentIntegrationTime4 { get; set; }
-        [DataMember]
-        public string PID1CurrentDifferentialTime4 { get; set; }
-
-        [DataMember]
-        public string PID1LowerLimitOfCurrentOperation4 { get; set; }
-        [DataMember]
-        public string PID1UpperLimitOfCurrentOperation4 { get; set; }
-
-        [DataMember]
-        public string PID1CurrentManualReset4 { get; set; }
-
-
-        [DataMember]
-        public string PID1Deviation4 { get; set; }
-        #endregion
-
-          #region PID2
-        [DataMember]
-        public string PID2CurrentScaleBand1 { get; set; }
-        [DataMember]
-        public string PID2CurrentIntegrationTime1 { get; set; }
-        [DataMember]
-        public string PID2CurrentDifferentialTime1 { get; set; }
-
-
-        [DataMember]
-        public string PID2LowerLimitOfCurrentOperation1 { get; set; }
-        [DataMember]
-        public string PID2UpperLimitOfCurrentOperation1 { get; set; }
-        [DataMember]
-        public string PID2CurrentManualReset1 { get; set; }
-
-
-        [DataMember]
-        public string PID2Deviation1 { get; set; }
-
-        [DataMember]
-        public string PID2CurrentScaleBand2 { get; set; }
-        [DataMember]
-        public string PID2CurrentIntegrationTime2 { get; set; }
-        [DataMember]
-        public string PID2CurrentDifferentialTime2 { get; set; }
-
-        [DataMember]
-        public string PID2LowerLimitOfCurrentOperation2 { get; set; }
-        [DataMember]
-        public string PID2UpperLimitOfCurrentOperation2 { get; set; }
-
-        [DataMember]
-        public string PID2CurrentManualReset2 { get; set; }
-
-
-        [DataMember]
-        public string PID2Deviation2 { get; set; }
-
-        [DataMember]
-        public string PID2CurrentScaleBand3 { get; set; }
-        [DataMember]
-        public string PID2CurrentIntegrationTime3 { get; set; }
-        [DataMember]
-        public string PID2CurrentDifferentialTime3 { get; set; }
-
-        [DataMember]
-        public string PID2LowerLimitOfCurrentOperation3 { get; set; }
-        [DataMember]
-        public string PID2UpperLimitOfCurrentOperation3 { get; set; }
-
-        [DataMember]
-        public string PID2CurrentManualReset3 { get; set; }
-
-
-        [DataMember]
-        public string PID2Deviation3 { get; set; }
-
-        [DataMember]
-        public string PID2CurrentScaleBand4 { get; set; }
-        [DataMember]
-        public string PID2CurrentIntegrationTime4 { get; set; }
-        [DataMember]
-        public string PID2CurrentDifferentialTime4 { get; set; }
-
-        [DataMember]
-        public string PID2LowerLimitOfCurrentOperation4 { get; set; }
-        [DataMember]
-        public string PID2UpperLimitOfCurrentOperation4 { get; set; }
-
-        [DataMember]
-        public string PID2CurrentManualReset4 { get; set; }
-
-
-        [DataMember]
-        public string PID2Deviation4 { get; set; }
-        #endregion
-
-          #region PID3
-        [DataMember]
-        public string PID3CurrentScaleBand1 { get; set; }
-        [DataMember]
-        public string PID3CurrentIntegrationTime1 { get; set; }
-        [DataMember]
-        public string PID3CurrentDifferentialTime1 { get; set; }
-
-
-        [DataMember]
-        public string PID3LowerLimitOfCurrentOperation1 { get; set; }
-        [DataMember]
-        public string PID3UpperLimitOfCurrentOperation1 { get; set; }
-        [DataMember]
-        public string PID3CurrentManualReset1 { get; set; }
-
-
-        [DataMember]
-        public string PID3Deviation1 { get; set; }
-
-        [DataMember]
-        public string PID3CurrentScaleBand2 { get; set; }
-        [DataMember]
-        public string PID3CurrentIntegrationTime2 { get; set; }
-        [DataMember]
-        public string PID3CurrentDifferentialTime2 { get; set; }
-
-        [DataMember]
-        public string PID3LowerLimitOfCurrentOperation2 { get; set; }
-        [DataMember]
-        public string PID3UpperLimitOfCurrentOperation2 { get; set; }
-
-        [DataMember]
-        public string PID3CurrentManualReset2 { get; set; }
-
-
-        [DataMember]
-        public string PID3Deviation2 { get; set; }
-
-        [DataMember]
-        public string PID3CurrentScaleBand3 { get; set; }
-        [DataMember]
-        public string PID3CurrentIntegrationTime3 { get; set; }
-        [DataMember]
-        public string PID3CurrentDifferentialTime3 { get; set; }
-
-        [DataMember]
-        public string PID3LowerLimitOfCurrentOperation3 { get; set; }
-        [DataMember]
-        public string PID3UpperLimitOfCurrentOperation3 { get; set; }
-
-        [DataMember]
-        public string PID3CurrentManualReset3 { get; set; }
-
-
-        [DataMember]
-        public string PID3Deviation3 { get; set; }
-
-        [DataMember]
-        public string PID3CurrentScaleBand4 { get; set; }
-        [DataMember]
-        public string PID3CurrentIntegrationTime4 { get; set; }
-        [DataMember]
-        public string PID3CurrentDifferentialTime4 { get; set; }
-
-        [DataMember]
-        public string PID3LowerLimitOfCurrentOperation4 { get; set; }
-        [DataMember]
-        public string PID3UpperLimitOfCurrentOperation4 { get; set; }
-
-        [DataMember]
-        public string PID3CurrentManualReset4 { get; set; }
-
-
-        [DataMember]
-        public string PID3Deviation4 { get; set; }
-        #endregion
-
-          #region PID4
-        [DataMember]
-        public string PID4CurrentScaleBand1 { get; set; }
-        [DataMember]
-        public string PID4CurrentIntegrationTime1 { get; set; }
-        [DataMember]
-        public string PID4CurrentDifferentialTime1 { get; set; }
-
-
-        [DataMember]
-        public string PID4LowerLimitOfCurrentOperation1 { get; set; }
-        [DataMember]
-        public string PID4UpperLimitOfCurrentOperation1 { get; set; }
-        [DataMember]
-        public string PID4CurrentManualReset1 { get; set; }
-
-
-        [DataMember]
-        public string PID4Deviation1 { get; set; }
-
-        [DataMember]
-        public string PID4CurrentScaleBand2 { get; set; }
-        [DataMember]
-        public string PID4CurrentIntegrationTime2 { get; set; }
-        [DataMember]
-        public string PID4CurrentDifferentialTime2 { get; set; }
-
-        [DataMember]
-        public string PID4LowerLimitOfCurrentOperation2 { get; set; }
-        [DataMember]
-        public string PID4UpperLimitOfCurrentOperation2 { get; set; }
-
-        [DataMember]
-        public string PID4CurrentManualReset2 { get; set; }
-
-
-        [DataMember]
-        public string PID4Deviation2 { get; set; }
-
-        [DataMember]
-        public string PID4CurrentScaleBand3 { get; set; }
-        [DataMember]
-        public string PID4CurrentIntegrationTime3 { get; set; }
-        [DataMember]
-        public string PID4CurrentDifferentialTime3 { get; set; }
-
-        [DataMember]
-        public string PID4LowerLimitOfCurrentOperation3 { get; set; }
-        [DataMember]
-        public string PID4UpperLimitOfCurrentOperation3 { get; set; }
-
-        [DataMember]
-        public string PID4CurrentManualReset3 { get; set; }
-
-
-        [DataMember]
-        public string PID4Deviation3 { get; set; }
-
-        [DataMember]
-        public string PID4CurrentScaleBand4 { get; set; }
-        [DataMember]
-        public string PID4CurrentIntegrationTime4 { get; set; }
-        [DataMember]
-        public string PID4CurrentDifferentialTime4 { get; set; }
-
-        [DataMember]
-        public string PID4LowerLimitOfCurrentOperation4 { get; set; }
-        [DataMember]
-        public string PID4UpperLimitOfCurrentOperation4 { get; set; }
-
-        [DataMember]
-        public string PID4CurrentManualReset4 { get; set; }
-
-
-        [DataMember]
-        public string PID4Deviation4 { get; set; }
-        #endregion
-        #endregion
-
-        #region Status
-        [DataMember]
-        public string Loop1RUNOrREADY { get; set; }
-
-        [DataMember]
-        public string Loop2RUNOrREADY { get; set; }
-
-        [DataMember]
-        public string Loop3RUNOrREADY { get; set; }
-        [DataMember]
-        public string Loop4RUNOrREADY { get; set; }
-
-        [DataMember]
-        public string Loop1AUTOOrMANUAL { get; set; }
-
-        [DataMember]
-        public string Loop2AUTOOrMANUAL { get; set; }
-
-        [DataMember]
-        public string Loop3AUTOOrMANUAL { get; set; }
-
-        [DataMember]
-        public string Loop4AUTOOrMANUAL { get; set; }
-
-        [DataMember]
-        public string Loop1ATOnOff { get; set; }
-
-        [DataMember]
-        public string Loop2ATOnOff { get; set; }
-        [DataMember]
-        public string Loop3ATOnOff { get; set; }
-
-        [DataMember]
-        public string Loop4ATOnOff { get; set; }
-
-        [DataMember]
-        public string Loop1LSPOrRSP { get; set; }
-
-        [DataMember]
-        public string Loop2LSPOrRSP { get; set; }
-
-        #endregion
-
-        #region Alarm1
-        [DataMember]
-        public bool PV1UpperLimit { get; set; }
-
-        [DataMember]
-        public bool PV1LowerLimit { get; set; }
-
-        [DataMember]
-        public bool PV2UpperLimit { get; set; }
-
-        [DataMember]
-        public bool PV2LowerLimit { get; set; }
-
-        [DataMember]
-        public bool PV3UpperLimit { get; set; }
-
-        [DataMember]
-        public bool PV3LowerLimit { get; set; }
-
-        [DataMember]
-        public bool PV4UpperLimit { get; set; }
-
-        [DataMember]
-        public bool PV4LowerLimit { get; set; }
-       
-        [DataMember]
-        public bool AD1Fault { get; set; }
-
-        [DataMember]
-        public bool AD2Fault { get; set; }
-
-        [DataMember]
-        public bool AD3Fault { get; set; }
-
-        [DataMember]
-        public bool AD4Fault { get; set; }
-        #endregion
-
-        #region Alarm2
-        [DataMember]
-        public bool CT1InputAbnormal { get; set; }
-
-        [DataMember]
-        public bool CT2InputAbnormal { get; set; }
-
-        [DataMember]
-        public bool CT3InputAbnormal { get; set; }
-
-        [DataMember]
-        public bool CT4InputAbnormal { get; set; }
-
-        [DataMember]
-        public bool ReceiverMonitoring { get; set; }
-
-        [DataMember]
-        public bool CommunicationInModulesTimedOut { get; set; }
-
-        [DataMember]
-        public bool Rs485SetAbnormal { get; set; }
-        #endregion
-
-        #region Alarm3
-        [DataMember]
-        public bool BaseboardEEPROMRWAbnormal { get; set; }
-
-        [DataMember]
-        public bool BaseboardEEPROMAbnormal { get; set; }
-        #endregion
-
-        #region Alarm4
-        [DataMember]
-        public bool CJ1Abnormal { get; set; }
-
-        [DataMember]
-        public bool CJ2Abnormal { get; set; }
-
-        [DataMember]
-        public bool CJ3Abnormal { get; set; }
-
-        [DataMember]
-        public bool CJ4Abnormal { get; set; }
-
-        [DataMember]
-        public bool OntologyEEPROMNoInit { get; set; }
-
-        [DataMember]
-        public bool  MACAddressAbnormal { get; set; }
-
-        [DataMember]
-        public bool RAMReadAndWriteAbnormal { get; set; }
-
-        [DataMember]
-        public bool EEPROMRWAbnormal { get; set; }
-
-        [DataMember]
-        public bool RAMAbnormalParameter{ get; set; }
-
-        [DataMember]
-        public bool RAMAbnormalAdjustment { get; set; }
-
-        [DataMember]
-        public bool EEPROMAbnormalParameter { get; set; }
-
-        [DataMember]
-        public bool EEPROMAbnormalAdjustment { get; set; }
-
-        [DataMember]
-        public bool RAMAbnormal { get; set; }
-        #endregion
-
-        #region Event
-        [DataMember]
-        public bool Event1 { get; set; }
-
-        [DataMember]
-        public bool Event2 { get; set; }
-
-        [DataMember]
-        public bool Event3 { get; set; }
-
-        [DataMember]
-        public bool Event4 { get; set; }
-
-        [DataMember]
-        public bool Event5 { get; set; }
-
-        [DataMember]
-        public bool Event6 { get; set; }
-
-        [DataMember]
-        public bool Event7 { get; set; }
-
-        [DataMember]
-        public bool Event8 { get; set; }
-
-        [DataMember]
-        public bool Event9 { get; set; }
-
-        [DataMember]
-        public bool Event10 { get; set; }
-
-        [DataMember]
-        public bool Event11 { get; set; }
-
-        [DataMember]
-        public bool Event12 { get; set; }
-
-        [DataMember]
-        public bool Event13 { get; set; }
-
-        [DataMember]
-        public bool Event14 { get; set; }
-
-        [DataMember]
-        public bool Event15 { get; set; }
-
-        [DataMember]
-        public bool Event16 { get; set; }
-
-        [DataMember]
-        public bool Event17 { get; set; }
-
-        [DataMember]
-        public bool Event18 { get; set; }
-
-        [DataMember]
-        public bool Event19 { get; set; }
-
-        [DataMember]
-        public bool Event20 { get; set; }
-
-        [DataMember]
-        public bool Event21 { get; set; }
-
-        [DataMember]
-        public bool Event22 { get; set; }
-
-        [DataMember]
-        public bool Event23 { get; set; }
-
-        [DataMember]
-        public bool Event24 { get; set; }
-
-        #endregion
-        public void Update(IDeviceData data)
-        {
-
-        }
-    }
-}

+ 0 - 21
FrameworkLocal/Common/CommonData/DeviceData/AITPressureControlData.cs

@@ -1,21 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    public enum AITPressureControlOperation
-    {
-        SetTVMode,
-        SetTVPosition,
-        SetTVPressure,
-        SetBoostPressure,
-        SetChamberPressure,
-    }
-
-    public class AITPressureControlDataPropertyName
-    {
-
-    }
-}

+ 0 - 135
FrameworkLocal/Common/CommonData/DeviceData/AITPressureMeterData.cs

@@ -1,135 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-using SciChart.Charting.Common.Databinding;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITPressureMeterData : NotifiableItem, IDeviceData
-    {
-        [DataMember]
-        public string Module { get; set; }
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: M122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public string Unit { get; set; }
-
-        [DataMember]
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 量程
-        /// </summary>
-        [DataMember]
-        public double Scale { get; set; }
-
-        /// <summary>
-        /// 设定值
-        /// </summary>
-        [DataMember]
-        public double SetPoint { get; set; }
-
-        [DataMember]
-        public double FeedBack { get; set; }
-
-        [DataMember]
-        public double Precision
-        {
-            get; set;
-        }
-        /// <summary>
-        /// 默认值
-        /// </summary>
-        [DataMember]
-        public double DefaultValue { get; set; }
-
-        /// <summary>
-        /// 是否有报警
-        /// </summary>
-        [DataMember]
-        public bool IsWarning { get; set; }
-
-                [DataMember]
-        public bool IsError { get; set; }
-
-        /// <summary>
-        /// alarm或是erro时显示的信息
-        /// </summary>
-        [DataMember]
-        public string ErroMessage { get; set; }
-
-        /// <summary>
-        /// MFC,PC
-        /// </summary>
-        [DataMember]
-        public string Type { get; set; }
-
-
-        [DataMember]
-        public double Factor { get; set; }
-
-        public string Display
-        {
-            get
-            {
-                string value = (FeedBack > Precision && Precision > 1)
-                    ? Precision.ToString(FormatString)
-                    : FeedBack.ToString(FormatString);
-                return DisplayWithUnit ? value + " " + Unit : value;
-            }
-        }
-        [DataMember]
-        public string FormatString
-        {
-            get ;set;
-        }
-
-        [DataMember]
-        public bool DisplayWithUnit
-        {
-            get;
-            set;
-        }
-
-        public AITPressureMeterData()
-        {
-            DisplayName = "Undefined";
-            Factor = 1.0;
-            Unit = "";
-            Type = "";
-            Precision = double.MaxValue;
-            FormatString = "F3";
-        }
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-        public class AITPressureMeterPropertyName
-    {
-        public const string Feedback = "Feedback";
-    }
-}

+ 0 - 120
FrameworkLocal/Common/CommonData/DeviceData/AITPressureSensorData.cs

@@ -1,120 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITPressureSensorData : INotifyPropertyChanged, IDeviceData
-    {
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        public void InvokePropertyChanged(string propertyName)
-        {
-            if (PropertyChanged != null)
-            {
-                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-            }
-        }
-
-        public void InvokePropertyChanged()
-        {
-            PropertyInfo[] ps = this.GetType().GetProperties();
-            foreach (PropertyInfo p in ps)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.PropertyType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-
-            FieldInfo[] fi = this.GetType().GetFields();
-            foreach (FieldInfo p in fi)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.FieldType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-        }
-        /// <summary>
-        /// 设备的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: M122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public string Unit { get; set; }
-
-        [DataMember]
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 量程
-        /// </summary>
-        [DataMember]
-        public double Scale { get; set; }
- 
-
-        [DataMember]
-        public double FeedBack { get; set; }
- 
-        [DataMember]
-        public bool IsWarning { get; set; }
-
-        [DataMember]
-        public bool IsError { get; set; }
-
-        [DataMember]
-        public bool IsOutOfRange { get; set; } 
- 
-
-        public AITPressureSensorData()
-        {
-            DisplayName = "Undefined";
-            Unit = "mTorr";
- 
- 
-        }
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-    public class AITPressureSensorPropertyName
-    {
-        public const string Feedback = "Feedback";
-        public const string IsWarning = "IsWarning";
-        public const string IsError = "IsError";
-    }
-}

+ 0 - 130
FrameworkLocal/Common/CommonData/DeviceData/AITPumpData.cs

@@ -1,130 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITPumpData : AITDeviceData
-    {
-        [DataMember]
-        public string DeviceModule { get; set; }
-
-        /// <summary>
-        /// 当前设定值
-        /// </summary>
-        [DataMember]
-        public bool IsOn { get; set; }
-
-        /// <summary>
-        /// 默认值
-        /// </summary>
-        [DataMember]
-        public bool IsWarning { get; set; }
-
-        /// <summary>
-        /// 实际反馈值
-        /// </summary>
-        [DataMember]
-        public bool IsError { get; set; }
-
-        [DataMember]
-        public int Speed { get; set; }
-
-
-        [DataMember]
-        public bool OverTemp { get; set; }
-
-        [DataMember]
-        public bool AtSpeed { get; set; }
-
-        [DataMember]
-        public int Temperature { get; set; }
-
-        [DataMember]
-        public int LocalRemoteMode { get; set; }
-
-        [DataMember]
-        public double WaterFlow { get; set; }
-
-        [DataMember]
-        public bool IsDryPumpEnable { get; set; }
-
-        [DataMember]
-        public bool IsN2PressureEnable { get; set; }
-
-        [DataMember]
-        public bool N2PressureWarning { get; set; }
-
-        [DataMember]
-        public bool N2PressureAlarm { get; set; }
-
-        [DataMember]
-        public bool IsWaterFlowEnable { get; set; }
-
-        [DataMember]
-        public bool WaterFlowWarning { get; set; }
-
-        [DataMember]
-        public bool WaterFlowAlarm { get; set; }
-
-
-        [DataMember]
-        public bool IsOverLoad { get; set; }
-
-        public AITPumpData()
-        {
-            DisplayName = "未定义";
-        }
-
-    }
-
-    public enum AITPumpOperation
-    {
-        SetOnOff,
-        SetPowerOnOff,
-
-        PumpOn,
-        PumpOff,
-    }
-
-    public class AITPumpProperty
-    {
-        public const string EnableWaterFlow = "EnableWaterFlow";
-        public const string WaterFlowValue = "WaterFlowValue";
-        public const string WaterFlowMinValue = "WaterFlowMinValue";
-        public const string WaterFlowMaxValue = "WaterFlowMaxValue";
-        public const string WaterFlowAlarm = "WaterFlowAlarm";
-        public const string WaterFlowAlarmSetPoint = "WaterFlowAlarmSetPoint";
-        public const string WaterFlowWarning = "WaterFlowWarning";
-        public const string WaterFlowAlarmTime = "WaterFlowAlarmTime";
-        public const string WaterFlowWarningTime = "WaterFlowWarningTime";
-
-        public const string EnableN2Pressure = "EnableN2Pressure";
-        public const string N2PressureValue = "N2PressureValue";
-        public const string N2PressureMinValue = "N2PressureMinValue";
-        public const string N2PressureMaxValue = "N2PressureMaxValue";
-        public const string N2PressureAlarm = "N2PressureAlarm";
-        public const string N2PressureAlarmSetPoint = "N2PressureAlarmSetPoint";
-        public const string N2PressureWarning = "N2PressureWarning";
-        public const string N2PressureAlarmTime = "N2PressureAlarmTime";
-        public const string N2PressureWarningTime = "N2PressureWarningTime";
-
-        public const string EnableDryPump = "EnableDryPump";
-
-        public const string PumpBreakerStatus = "PumpBreakerStatus";
-
-        public const string IsOverTemp = "IsOverTemp";
-        public const string IsRunning = "IsRunning";
-        public const string IsStart = "IsStart";
-        public const string IsStop = "IsStop";
-    }
-}

+ 0 - 257
FrameworkLocal/Common/CommonData/DeviceData/AITRfData.cs

@@ -1,257 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [Serializable]
-    [DataContract]
-    public enum RfMode
-    {
-        [EnumMember]
-        ContinuousWaveMode = 1,
-
-        [EnumMember]
-        PulsingMode = 2,
-    }
-
-    public enum PatronRfMatchMode
-    {
-        Manual = 1,
-        Auto = 2,
-    }
-
-    public enum TritonRfMatchMode
-    {
-        Manual = 0,
-        Auto = 1,
-    }
-
- 
-
-    [DataContract]
-    [Serializable]
-    public class AITRfData : AITDeviceData
-    {
- 
-
-        [DataMember]
-        public string UnitPower { get; set; }
-        [DataMember]
-        public string UnitFrequency { get; set; }
-        [DataMember]
-        public string UnitDuty { get; set; }
-
-        [DataMember]
-        public double ScalePower { get; set; }
-        [DataMember]
-        public double ScaleFrequency { get; set; }
-        [DataMember]
-        public double ScaleDuty { get; set; }
-
-        [DataMember]
-        public float PowerSetPoint { get; set; }
-        [DataMember]
-        public float FrequencySetPoint { get; set; }
-        [DataMember]
-        public float DutySetPoint { get; set; }
-
-        [DataMember]
-        public bool IsInterlockOk { get; set; }
-
-        [DataMember]
-        public bool IsRfOn { get; set; }
-
-        [DataMember]
-        public bool IsRfAlarm { get; set; }
-
-        [DataMember]
-        public float ForwardPower { get; set; }
-
-        [DataMember]
-        public float ReflectPower { get; set; }
-
-        [DataMember]
-        public int WorkMode { get; set; }
-
-        [DataMember]
-        public string PowerOnElapsedTime
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public bool EnablePulsing
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public bool EnableC1C2Position
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public bool EnableReflectPower
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public bool EnableVoltageCurrent
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public int MatchMode
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public int MatchPresetMode
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public float MatchPositionC1
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public float MatchPositionC2
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public float MatchPositionC1SetPoint
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public float MatchPositionC2SetPoint
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public float Voltage
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public float Current
-        {
-            get;
-            set;
-        }
-
-        public string TextWorkMode
-        {
-            get
-            {
-                return WorkMode == (int) RfMode.ContinuousWaveMode ? "Continuous" : "Pulsing";
-            }
-        }
-
-        public string TextOnOff
-        {
-            get
-            {
-                return IsRfOn ? "On" : "Off";
-            }
-        }
- 
-        public bool HasError
-        {
-            get
-            {
-                return IsRfAlarm || !IsInterlockOk;
-            }
-        }
-        [DataMember]
-        public bool IsToleranceError
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public bool IsToleranceWarning
-        {
-            get;
-            set;
-        }
-
-        public AITRfData()
-        {
-            DisplayName = "Undefined";
-        }
-
- 
-    }
-
-    public enum AITRfOperation
-    {
-        SetPowerOnOff,
-        SetMode,
-        
-        SetContinuousPower,
-        SetPulsingPower,
-
-        SetPower,
-        SetPulsingFrequency,
-        SetPulsingDuty,
-
-        SetMatchMode,
-        SetMatchProcessMode,
-        SetMatchPosition, //同时设置2个
-        SetMatchPositionC1,
-        SetMatchPositionC2,
-
-        SetHeatOnOff,
-    }
-
-    public class AITRfProperty
-    {
-        public const string RFEnable = "RFEnable";
-        public const string RFSetPoint = "RFSetPoint";
-        public const string RFForwardPower = "RFForwardPower";
-        public const string RFReflectPower = "RFReflectPower";
-        public const string RFRatio = "RFRatio";
-        public const string RFInterlock = "RFInterlock";
-        public const string RFDuty = "RFDuty";
-        public const string RFFrequency = "RFFrequency";
-        public const string RFMode = "RFMode";
-        public const string RFMatchPositionC1Feedback = "RFMatchPositionC1Feedback";
-        public const string RFMatchPositionC2Feedback = "RFMatchPositionC2Feedback";
-        public const string RFMatchPositionC1SetPoint = "RFMatchPositionC1SetPoint";
-        public const string RFMatchPositionC2SetPoint = "RFMatchPositionC2SetPoint";
-        public const string RFAlarm = "RFAlarm";
-
-        public const string Voltage = "Voltage";
-        public const string Current = "Current";
-
-        public const string IsOverTemp = "IsOverTemp";
-
-    }
-
-}

+ 0 - 182
FrameworkLocal/Common/CommonData/DeviceData/AITRfMatchData.cs

@@ -1,182 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
- 
-    [Serializable]
-    public enum EnumRfMatchTuneMode
-    {
-        [EnumMember]
-        Undefined,
-
-        [EnumMember]
-        Auto = 1,    // auto tune
-
-        [EnumMember]
-        Manual = 2,  //Host control
- 
-    }
- 
-    [Serializable]
-    public enum EnumRfMatchMode
-    {
-        [EnumMember]
-        Auto = 0,    
-
-        [EnumMember]
-        Manual = 1,  
- 
-    }
-
-
-    /// <summary>
-    /// 预置电容位置结构体
-    /// </summary>
-    [Serializable]
-    public struct Presets
-    {
-        public byte PreNo;        //预置电容编号 1-4
-        public byte TraSum;       //电容移动轨迹 0-3 0-没有
-        public float LoadData;    //电容load预置值
-        public float TuneData;    //电容Tune预置值
-        public float[,] TraData;  //轨迹值 最多3个
-        public void Init()
-        {
-            TraData = new float[3, 2];
-            PreNo = 0;
-            TraSum = 0;
-            LoadData = 0;
-            TuneData = 0;
-        }
-    }
-
-    [DataContract]
-    [Serializable]
-    public class AITRfMatchData : NotifiableItem, IDeviceData
-    {
-        [DataMember]
-        public string Module { get; set; }
-
-        [DataMember]
-        public string DeviceName { get; set; }
- 
-        [DataMember]
-        public string DisplayName { get; set; }
- 
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public string Description { get; set; }
-
-        [DataMember]
-        public string UnitPower { get; set; }
-
-        [DataMember]
-        public float DCBias { get; set; }
-        [DataMember]
-        public float BiasPeak { get; set; }
-        [DataMember]
-        public float LoadPosition1 { get; set; }
-        [DataMember]
-        public float LoadPosition2 { get; set; }
-        [DataMember]
-        public float TunePosition1 { get; set; }
-        [DataMember]
-        public float TunePosition2 { get; set; }
-        [DataMember]
-        public float Capacitance1PositionFeedBack { get; set; }
-        [DataMember]
-        public float Capacitance2PositionFeedBack { get; set; }
-
-        [DataMember]
-        public float LoadPosition1SetPoint { get; set; }
-        [DataMember]
-        public float TunePosition1SetPoint { get; set; }
-        [DataMember]
-        public float Capacitance1PositionSetPoint { get; set; }
-        [DataMember]
-        public float Capacitance2PositionSetPoint { get; set; }
-
-        [DataMember]
-        public float TuneRange { get; set; }
-
-        [DataMember]
-        public float LoadRange { get; set; }
-
-        [DataMember]
-        public float VppFeedBack { get; set; }
-
-        [DataMember]
-        public EnumRfMatchTuneMode TuneMode1 { get; set; }
-
-        [DataMember]
-        public EnumRfMatchTuneMode TuneMode2 { get; set; }
-
-        [DataMember]
-        public EnumRfMatchMode AutoMode { get; set; }
-
-        [DataMember]
-        public bool IsInterlockOk { get; set; }
-
-        public AITRfMatchData()
-        {
-            DisplayName = "Undefined";
-        }
-
-        public void Update(IDeviceData data)
-        {
-             
-        }
-    }
-
-    public enum AITRfMatchOperation
-    {
-        SetPowerOnOff,
-        SetMode,
-        
-        SetContinuousPower,
-        SetPulsingPower,
-
-        SetPower,
-        SetPulsingFrequency,
-        SetPulsingDuty,
-
-        SetMatchMode,
-        SetMatchProcessMode,
-        SetMatchPosition, //同时设置2个
-        SetMatchPositionC1,
-        SetMatchPositionC2,
-    }
-
-    public class AITRfMatchProperty
-    {
-        public const string RFEnable = "RFEnable";
-        public const string RFSetPoint = "RFSetPoint";
-        public const string RFForwardPower = "RFForwardPower";
-        public const string RFReflectPower = "RFReflectPower";
-        public const string RFRatio = "RFRatio";
-        public const string RFInterlock = "RFInterlock";
-        public const string RFDuty = "RFDuty";
-        public const string RFFrequency = "RFFrequency";
-        public const string RFMode = "RFMode";
-        public const string RFMatchPositionC1Feedback = "RFMatchPositionC1Feedback";
-        public const string RFMatchPositionC2Feedback = "RFMatchPositionC2Feedback";
-        public const string RFMatchPositionC1SetPoint = "RFMatchPositionC1SetPoint";
-        public const string RFMatchPositionC2SetPoint = "RFMatchPositionC2SetPoint";
-        public const string RFAlarm = "RFAlarm";
-
-        public const string Voltage = "Voltage";
-        public const string Current = "Current";
-
-        public const string IsOverTemp = "IsOverTemp";
-
-    }
-
-}

+ 0 - 236
FrameworkLocal/Common/CommonData/DeviceData/AITRfPowerData.cs

@@ -1,236 +0,0 @@
-using System;
-using System.ComponentModel;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [Serializable]
-    public enum EnumRfPowerRegulationMode
-    {
-        [EnumMember]
-        Undefined = 0,
-
-        [EnumMember]
-        Forward = 1,
-
-        [EnumMember]
-        Load = 2,
-
-        [EnumMember]
-        DcBias = 3,
-
-        [EnumMember]
-        VALimit = 4,
-    }
-
-    [Serializable]
-    public enum EnumRfPowerControlMode
-    {
-        [EnumMember]
-        Forward = 6,
-
-        [EnumMember]
-        Load = 7,
-
-        [EnumMember]
-        DcBias = 8,
-    }
-
-    [Serializable]
-    public enum EnumRfPowerPulsingMode
-    {
-        [EnumMember]
-        Close = 0,
-
-        [EnumMember]
-        InnerPulsing = 1,
-
-        [EnumMember]
-        OuterPulsing = 2,
-
-        [EnumMember]
-        OuterPulsingReverse = 3,
-
-        [EnumMember]
-        InnerOuterPulsing = 4,
-    }
-
-    [Serializable]
-    public enum EnumRfPowerWorkMode
-    {
-        [EnumMember]
-        Undefined = 0,
-
-        [EnumMember]
-        ContinuousWaveMode = 1,
-
-        [EnumMember]
-        PulsingMode = 2,
-    }
-
-    [Serializable]
-    public enum EnumRfPowerClockMode
-    {
-        [EnumMember]
-        Undefined = 0,
-
-        [EnumMember]
-        Phase = 1,
-
-        [EnumMember]
-        FreqManual = 2,
-
-        [EnumMember]
-        FreqAuto = 3,
-    }
-
-    [DataContract]
-    [Serializable]
-    public class AITRfPowerData : NotifiableItem, IDeviceData
-    {
-        [DataMember]
-        public string Module { get; set; }
-
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: M122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public string Description { get; set; }
-
-        [DataMember]
-        public string UnitPower { get; set; }
-        [DataMember]
-        public string UnitFrequency { get; set; }
-        [DataMember]
-        public string UnitDuty { get; set; }
-
-        [DataMember]
-        public double ScalePower { get; set; }
-        [DataMember]
-        public double ScaleFrequency { get; set; }
-        [DataMember]
-        public double ScaleDuty { get; set; }
-
-        [DataMember]
-        public float PowerSetPoint { get; set; }
-        [DataMember]
-        public float FrequencySetPoint { get; set; }
-        [DataMember]
-        public float DutySetPoint { get; set; }
-
-        [DataMember]
-        public bool IsInterlockOk { get; set; }
-
-        [DataMember]
-        public bool IsRfOn { get; set; }
-
-        [DataMember]
-        public bool IsRfAlarm { get; set; }
-
-        [DataMember]
-        public float ForwardPower { get; set; }
-
-        [DataMember]
-        public float ReflectPower { get; set; }
-
-        [DataMember]
-        public float LoadPower { get; set; }
-
-
-        [DataMember]
-        public float Frequency { get; set; }
-
-        [DataMember]
-        public float PulsingFrequency { get; set; }
-        [DataMember]
-        public float PulsingDutyCycle { get; set; }
-
-        public string TextOnOff
-        {
-            get
-            {
-                return IsRfOn ? "On" : "Off";
-            }
-        }
-
-        [DataMember]
-        public EnumRfPowerRegulationMode RegulationMode { get; set; }
-
-        [DataMember]
-        public EnumRfPowerControlMode ControlMode { get; set; }
-
-        [DataMember]
-        public EnumRfPowerPulsingMode PulsingMode { get; set; }
- 
-
-        public AITRfPowerData()
-        {
-            DisplayName = "Undefined";
-        }
-
-        public void Update(IDeviceData data)
-        {
-             
-        }
-    }
-
-    public enum AITRfPowerOperation
-    {
-        SetPowerOnOff,
-        SetMode,
-        
-        SetContinuousPower,
-        SetPulsingPower,
-
-        SetPower,
-        SetPulsingFrequency,
-        SetPulsingDuty,
-
-        SetMatchMode,
-        SetMatchProcessMode,
-        SetMatchPosition, //同时设置2个
-        SetMatchPositionC1,
-        SetMatchPositionC2,
-    }
-
-    public class AITRfPowerProperty
-    {
-        public const string RFEnable = "RFEnable";
-        public const string RFSetPoint = "RFSetPoint";
-        public const string RFForwardPower = "RFForwardPower";
-        public const string RFReflectPower = "RFReflectPower";
-        public const string RFRatio = "RFRatio";
-        public const string RFInterlock = "RFInterlock";
-        public const string RFDuty = "RFDuty";
-        public const string RFFrequency = "RFFrequency";
-        public const string RFMode = "RFMode";
-        public const string RFMatchPositionC1Feedback = "RFMatchPositionC1Feedback";
-        public const string RFMatchPositionC2Feedback = "RFMatchPositionC2Feedback";
-        public const string RFMatchPositionC1SetPoint = "RFMatchPositionC1SetPoint";
-        public const string RFMatchPositionC2SetPoint = "RFMatchPositionC2SetPoint";
-        public const string RFAlarm = "RFAlarm";
-
-        public const string Voltage = "Voltage";
-        public const string Current = "Current";
-
-        public const string IsOverTemp = "IsOverTemp";
-
-    }
-
-}

+ 0 - 113
FrameworkLocal/Common/CommonData/DeviceData/AITRfidReaderData.cs

@@ -1,113 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITRfidReaderData : INotifyPropertyChanged, IDeviceData
-    {
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        public void InvokePropertyChanged(string propertyName)
-        {
-            if (PropertyChanged != null)
-            {
-                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-            }
-        }
-
-        public void InvokePropertyChanged()
-        {
-            PropertyInfo[] ps = this.GetType().GetProperties();
-            foreach (PropertyInfo p in ps)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.PropertyType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-
-            FieldInfo[] fi = this.GetType().GetFields();
-            foreach (FieldInfo p in fi)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.FieldType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-        }
-
-        /// <summary>
-        /// 阀的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: V122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public bool IsInitalized { get; set; }
-
-        [DataMember]
-        public bool IsBusy { get; set; }
- 
-        [DataMember]
-        public bool IsError { get; set; }
-
-        [DataMember]
-        public string FoupID { get; set; }
-
-        [DataMember]
-        public string State { get; set; }
-
-        public AITRfidReaderData()
-        {
-            DisplayName = "Undefined";
-        }
-
-        public void Update(IDeviceData data)
-        {
- 
-        }
-    }
-
-    public class AITRfidReaderOperation
-    {
-        public const string TrigOn = "TrigOn";
-        public const string TrigOff = "TrigOff";
-    }
-
-    public class AITRfidReaderPropertyName
-    {
-        public const string Status = "Status";
-    }
-}

+ 0 - 75
FrameworkLocal/Common/CommonData/DeviceData/AITSensorData.cs

@@ -1,75 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITSensorData : NotifiableItem, IDeviceData
-    {
- 
-        /// <summary>
-        /// 阀的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: V122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
- 
-        [DataMember]
-        public bool Value { get; set; }
-
-        [DataMember]
-        public bool IsError { get; set; }
-
-        public AITSensorData()
-        {
-            DisplayName = "Undefined";
-        }
-
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-
-        public override bool Equals(object obj)
-        {
-            if (obj == null || GetType() != obj.GetType())
-            {
-                return false;
-            }
-
-            AITSensorData objAIT = (AITSensorData)obj;
-            if (DeviceSchematicId == objAIT.DeviceSchematicId && Value == objAIT.Value && IsError == objAIT.IsError )
-            {
-                return true;
-            }
-            return false;
-        }
-    }
-
-    public class AITSensorProperty
-    {
-        public const string Value = "Value";
-    }
-}

+ 0 - 204
FrameworkLocal/Common/CommonData/DeviceData/AITServoMotorData.cs

@@ -1,204 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    public enum ServoState
-    {
-         [EnumMember]
-        Unknown,
-
-         [EnumMember]
-        NotInitial,
-
-         [EnumMember]
-        Idle,
-
-         [EnumMember]
-        Moving,
-
-         [EnumMember]
-        Error,
-    }
-    [DataContract]
-    [Serializable]
-    public class AITServoMotorData : NotifiableItem, IDeviceData
-    {
-        [DataMember]
-        public string Module { get; set; }
-
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: V122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public bool IsServoOn { get; set; }
-        [DataMember]
-        public bool IsStopped { get; set; }
-        [DataMember]
-        public bool IsError { get; set; }
-        [DataMember]
-        public bool IsRunning { get; set; }
-        [DataMember]
-        public bool IsEmo { get; set; }
-        [DataMember]
-        public bool IsAuto { get; set; }
-        [DataMember]
-        public bool IsManual { get; set; }
-        [DataMember]
-        public bool IsServoNormal { get; set; }
-        [DataMember]
-        public bool IsServoNoWarning { get; set; }
-        [DataMember]
-        public bool IsServoNoAlarm { get; set; }
-        [DataMember]
-        public bool IsNop { get; set; }
-        [DataMember]
-        public bool IsPositionComplete { get; set; }
-        [DataMember]
-        public bool IsNLimit { get; set; }
-        [DataMember]
-        public bool IsPLimit { get; set; }
-
-        #region Boffotto
-        [DataMember]
-        public bool DiPosFeedBack1 { get; set; }
-        [DataMember]
-        public bool DiPosFeedBack2 { get; set; }
-        [DataMember]
-        public bool DiPosFeedBack3 { get; set; }
-        [DataMember]
-        public bool DiReady { get; set; }
-        [DataMember]
-        public bool DiOnTarget { get; set; }
-        [DataMember]
-        public bool DiOnError { get; set; }
-        [DataMember]
-        public bool DiOnLeftLimit { get; set; }
-        [DataMember]
-        public bool DiOnRightLimit { get; set; }
-        [DataMember]
-        public bool DiOnHomeSensor { get; set; }
-        [DataMember]
-        public bool DoStart { get; set; }
-        [DataMember]
-        public bool DoPos1 { get; set; }
-        [DataMember]
-        public bool DoPos2 { get; set; }
-        [DataMember]
-        public bool DoPos3 { get; set; }
-        [DataMember]
-        public bool DoHomeOn { get; set; }
-        [DataMember]
-        public bool DoFreeOn { get; set; }
-        [DataMember]
-        public bool DoStop { get; set; }
-        [DataMember]
-        public bool DoReset { get; set; }
-        [DataMember]
-        public bool DoJogFwd { get; set; }
-        [DataMember]
-        public bool DoJogRev { get; set; }
-
-        
-
-
-        #endregion
-        [DataMember]
-        public int ErrorCode { get; set; }
-
-        [DataMember]
-        public float CurrentPosition { get; set; }
-
-        [DataMember]
-        public float CurrentSpeed { get; set; }
-
-        [DataMember]
-        public string CurrentStatus { get; set; }
-
-        [DataMember]
-        public float JogSpeedSetPoint { get; set; }
-        [DataMember]
-        public float AutoSpeedSetPoint { get; set; }
-        [DataMember]
-        public float AccSpeedSetPoint { get; set; }
-
-        [DataMember]
-        public ServoState State { get; set; }
-
-
-        public AITServoMotorData()
-        {
-            DisplayName = "Undefined Servo Motor";
-        }
-
-        public void Update(IDeviceData data)
-        {
-
-        }
-    }
-
-    public class AITServoMotorOperation
-    {
-        public const string Home = "Home";
-        public const string SetServoOn = "SetServoOn";
-        public const string SetServoOff = "SetServoOff";
-
-        public const string MoveTo = "MoveTo";
-        public const string MoveBy = "MoveBy";
-
-        public const string Reset = "Reset";
-        public const string Stop = "Stop";
-    }
-
-    public class AITServoMotorProperty
-    {
-        public const string IsServoOn = "IsServoOn";
-
-        public const string IsStopped = "IsStopped";
-        public const string IsError = "IsError";
-
-        public const string CurrentPosition = "CurrentPosition";
-
-        public const string CurrentStatus = "CurrentStatus";
-
-        public const string IsWalkingShaftStart = "IsWalkingShaftStart";
-
-        public const string IsWalkingShaftIn1 = "IsWalkingShaftIn1";
-        public const string IsWalkingShaftIn2 = "IsWalkingShaftIn2";
-
-        public const string IsWalkingShaftIn3 = "IsWalkingShaftIn3";
-
-        public const string IsWalkingShaftHome = "IsWalkingShaftHome";
-
-        public const string IsWalkingShaftFree = "IsWalkingShaftFree";
-
-        public const string IsWalkingShafStop = "IsWalkingShafStop";
-        public const string IsWalkingShaftReset = "IsWalkingShaftReset";
-
-        public const string IsWalkingShaftJogFwd = "IsWalkingShaftJogFwd";
-
-        public const string IsWalkingShaftJogRev = "IsWalkingShaftJogRev";
-
-    }
-}

+ 0 - 169
FrameworkLocal/Common/CommonData/DeviceData/AITSignalTowerData.cs

@@ -1,169 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITSignalTowerData : INotifyPropertyChanged, IDeviceData
-    {
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        public void InvokePropertyChanged(string propertyName)
-        {
-            if (PropertyChanged != null)
-            {
-                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-            }
-        }
-
-        public void InvokePropertyChanged()
-        {
-            PropertyInfo[] ps = this.GetType().GetProperties();
-            foreach (PropertyInfo p in ps)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.PropertyType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-
-            FieldInfo[] fi = this.GetType().GetFields();
-            foreach (FieldInfo p in fi)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.FieldType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-        }
-
-        /// <summary>
-        /// 设备的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: M122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public string Description { get; set; }
-
-        [DataMember]
-        public bool IsRedLightOn
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public bool IsYellowLightOn
-        {
-            get;
-            set;
-        }
- 
-        [DataMember]
-        public bool IsGreenLightOn
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public bool IsBlueLightOn
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public bool IsWhiteLightOn
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public bool IsBuzzerOn
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public bool IsBuzzer1On
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public bool IsBuzzer2On
-        {
-	        get;
-	        set;
-        }
-        [DataMember]
-        public bool IsBuzzer3On
-        {
-	        get;
-	        set;
-        }
-        [DataMember]
-        public bool IsBuzzer4On
-        {
-	        get;
-	        set;
-        }
-        [DataMember]
-        public bool IsBuzzer5On
-        {
-            get;
-            set;
-        }
-        public AITSignalTowerData()
-        {
-            DisplayName = "Undefined";
-        }
-
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-    public enum AITSignalTowerOperation
-    {
-        SwitchOffBuzzer,
-
-        SwitchOffBuzzer1,
-        SwitchOffBuzzer2,
-        SwitchOffBuzzer3,
-        SwitchOffBuzzer4,
-	}
-
-}

+ 0 - 154
FrameworkLocal/Common/CommonData/DeviceData/AITStatisticsData.cs

@@ -1,154 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITStatisticsData : INotifyPropertyChanged, IDeviceData
-    {
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        public void InvokePropertyChanged(string propertyName)
-        {
-            if (PropertyChanged != null)
-            {
-                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-            }
-        }
-
-        public void InvokePropertyChanged()
-        {
-            PropertyInfo[] ps = this.GetType().GetProperties();
-            foreach (PropertyInfo p in ps)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.PropertyType == typeof(ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-
-            FieldInfo[] fi = this.GetType().GetFields();
-            foreach (FieldInfo p in fi)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.FieldType == typeof(ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-        }
-
-        /// <summary>
-        /// 设备的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName
-        {
-            get;
-            set;
-        }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: M122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public string Description
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public string LastPMTime
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public double TimeFromLastPM
-        {
-            get;
-            set;
-        }
-        [DataMember]
-        public double TimeTotal
-        {
-            get;
-            set;
-        }
-        
-        [DataMember]
-        public double PMInterval
-        {
-            get;
-            set;
-        }
-
-        public string TimeFromLastPMDisplay
-        {
-            get
-            {
-                TimeSpan ts = TimeSpan.FromSeconds(TimeFromLastPM);
-                return string.Format("{0} Days {1:D2}:{2:D2}:{3:D2}", ts.Days, ts.Hours, ts.Minutes, ts.Seconds);
-            }
-        }
-
-        public string TimeTotalDisplay
-        {
-            get
-            {
-                TimeSpan ts = TimeSpan.FromSeconds(TimeTotal);
-                return string.Format("{0} Days {1:D2}:{2:D2}:{3:D2}", ts.Days, ts.Hours, ts.Minutes, ts.Seconds);
-            }
-        }
-
-        public AITStatisticsData()
-        {
-            DisplayName = "Undefined";
-        }
-
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-    public enum AITStatisticsOperation
-    {
-        Reset,
-    }
-}

+ 0 - 98
FrameworkLocal/Common/CommonData/DeviceData/AITTempratureHumidityData.cs

@@ -1,98 +0,0 @@
-using Aitex.Core.Common.DeviceData;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace MECF.Framework.Common.CommonData.DeviceData
-{
-     [DataContract]
-    [Serializable]
-    public class AITTempratureHumidityData: AITDeviceData
-    {
-        [DataMember]
-        public string DeviceModule { get; set; }
-
-        [DataMember]
-        public float Temperature { get; set; }
-        [DataMember]
-        public float Humidity { get; set; }
-
-        [DataMember]
-        public float TemperatureSetPoint { get; set; }
-        [DataMember]
-        public float HumiditySetpoint { get; set; }
-        [DataMember]
-        public float TemperaturePFeedback { get; set; }
-        [DataMember]
-        public float TemperatureIFeedback { get; set; }
-        [DataMember]
-        public float TemperatureDFeedback { get; set; }
-        [DataMember]
-        public float TemperatureOffsetFeedback { get; set; }
-        [DataMember]
-        public float TemperaturePSetpoint { get; set; }
-        [DataMember]
-        public float TemperatureISetpoint { get; set; }
-        [DataMember]
-        public float TemperatureDSetpoint { get; set; }
-        [DataMember]
-        public float TemperatureOffsetSetpoint { get; set; }
-
-        [DataMember]
-        public float HumidityPFeedback { get; set; }
-        [DataMember]
-        public float HumidityIFeedback { get; set; }
-        [DataMember]
-        public float HumidityDFeedback { get; set; }
-        [DataMember]
-        public float HumidityOffsetFeedback { get; set; }
-        [DataMember]
-        public float HumidityPSetpoint { get; set; }
-        [DataMember]
-        public float HumidityISetpoint { get; set; }
-        [DataMember]
-        public float HumidityDSetpoint { get; set; }
-        [DataMember]
-        public float HumidityOffsetSetpoint { get; set; }
-
-
-        [DataMember]
-        public bool IsCH1On { get; set; }
-        [DataMember]
-        public bool IsCH2On { get; set; }
-
-        [DataMember]
-        public bool IsCH1Warning { get; set; }
-        [DataMember]
-        public bool IsCH2Warning { get; set; }
-        [DataMember]
-        public bool IsCH1Alarm { get; set; }
-        [DataMember]
-        public bool IsCH2Alarm { get; set; }
-
-        [DataMember]
-        public double CH1WaterFlow { get; set; }
-        [DataMember]
-        public double CH2WaterFlow { get; set; }
-        [DataMember]
-        public float TemperatureHighLimit { get; set; }
-        [DataMember]
-        public float TemperatureLowLimit { get; set; }
-        [DataMember]
-        public float FrequencyFeedback { get; set; }
-        [DataMember]
-        public float FrequencySetpoint { get; set; }
-
-        [DataMember]
-        public string FormatString { get; set; }
-
-        public AITTempratureHumidityData()
-        {
-
-        }
-
-    }
-}

+ 0 - 144
FrameworkLocal/Common/CommonData/DeviceData/AITThermalCoupleData.cs

@@ -1,144 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITDeveloperCoupleData : INotifyPropertyChanged, IDeviceData
-    {
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        public void InvokePropertyChanged(string propertyName)
-        {
-            if (PropertyChanged != null)
-            {
-                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-            }
-        }
-
-        public void InvokePropertyChanged()
-        {
-            PropertyInfo[] ps = this.GetType().GetProperties();
-            foreach (PropertyInfo p in ps)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.PropertyType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-
-            FieldInfo[] fi = this.GetType().GetFields();
-            foreach (FieldInfo p in fi)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.FieldType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-        }
-
-        /// <summary>
-        /// 设备的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: M122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public string Unit { get; set; }
-
-        [DataMember]
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 量程
-        /// </summary>
-        [DataMember]
-        public bool IsWarning { get; set; }
-
-        /// <summary>
-        /// 设定值
-        /// </summary>
-        [DataMember]
-        public bool IsOutOfTolerance { get; set; }
-
-        [DataMember]
-        public double FeedBack { get; set; }
-
-        /// <summary>
-        /// 默认值
-        /// </summary>
-        [DataMember]
-        public bool IsAlarm { get; set; }
-
-        /// <summary>
-        /// 是否有报警
-        /// </summary>
-        [DataMember]
-        public bool IsBroken { get; set; }
-
-        /// <summary>
-        /// alarm或是erro时显示的信息
-        /// </summary>
-        [DataMember]
-        public string ErroMessage { get; set; }
-
-        /// <summary>
-        /// MFC,PC
-        /// </summary>
-        [DataMember]
-        public string Type { get; set; }
-
-
-        [DataMember]
-        public double Factor { get; set; }
-
-        public AITDeveloperCoupleData()
-        {
-            DisplayName = "Undefined";
-            Factor = 1.0;
-            Unit = "℃";
-            Type = "TC";
-        }
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-
-    public class AITDeveloperCoupleProperty
-    {
-        public const string IsTcBroken = "IsTcBroken";
-        public const string Feedback = "Feedback";
-    }
-}

+ 0 - 252
FrameworkLocal/Common/CommonData/DeviceData/AITThrottleValveData.cs

@@ -1,252 +0,0 @@
-using System;
-using System.CodeDom;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Globalization;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Data;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [Serializable]
-    [DataContract]
-    public enum PressureCtrlMode
-    {
-        [EnumMember]
-        Undefined = 0,
-
-        [EnumMember]
-        TVPressureCtrl = 1,
-
-        [EnumMember]
-        TVPositionCtrl = 2,
-
-        [EnumMember]
-        TVOpen = 3,
-
-        [EnumMember]
-        TVClose = 4,
-
-        [EnumMember]
-        TVCalib = 5,
-    }
-
-    [Serializable]
-    [DataContract]
-    public enum PressureControlMode
-    {
-        [EnumMember]
-        Idle = 0,
-
-        [EnumMember]
-        Homing = 1,
-
-        [EnumMember]
-        PositionControl = 2,
-
-        [EnumMember]
-        Hold = 4,
-
-        [EnumMember]
-        Close = 5,
-
-        [EnumMember]
-        Open = 6,
-
-        [EnumMember]
-        Press1Control = 7,
-
-        [EnumMember]
-        Press2Control = 8,
-
-        [EnumMember]
-        SlowVacuum = 16,
-    }
-
-    [DataContract]
-    [Serializable]
-    public class AITThrottleValveData : NotifiableItem, IDeviceData
-    {
-        [DataMember]
-        public string Module { get; set; }
-
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public string UnitPosition { get; set; }
-
-        [DataMember]
-        public string UnitPressure { get; set; }
-
-        [DataMember]
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 量程
-        /// </summary>
-        [DataMember]
-        public double MaxValuePosition { get; set; }
-
-        [DataMember]
-        public double MaxValuePressure { get; set; }
-
-        /// <summary>
-        /// MFC,PC
-        /// </summary>
-        [DataMember]
-        public string Type { get; set; }
-
-
-        [DataMember]
-        public double Factor { get; set; }
-
-        [DataMember]
-        public int Mode { get; set; } 
-
-        [DataMember]
-        public float PositionFeedback { get; set; }
-
-        [DataMember]
-        public float PressureFeedback { get; set; }
-
-        [DataMember]
-        public float Pressure1Feedback { get; set; }
-
-        [DataMember]
-        public float Pressure2Feedback { get; set; }
-
-        [DataMember]
-        public float PressureSetPoint { get; set; }
-
-        [DataMember]
-        public float PositionSetPoint { get; set; }
-
-        [DataMember]
-        public float SlowExhaustRateSetPoint { get; set; }
-
-        [DataMember]
-        public float SlowTargetPressureSetPoint { get; set; }
-
-        [DataMember]
-        public int State { get; set; }
-
-        [DataMember]
-        public int HomingStatus { get; set; }
-
-        [DataMember]
-        public int SelectedController { get; set; }
-
-
-        [DataMember]
-        public string AlarmWatchTable
-        {
-            get;
-            set;
-        }
-
-        public string TextMode
-        {
-            get
-            {
-                switch (Mode)
-                {
-                    case (int)(PressureCtrlMode.TVPositionCtrl):
-                        return "Position";
-                    case (int)(PressureCtrlMode.TVPressureCtrl):
-                        return "Pressure";
-                    case (int)(PressureCtrlMode.TVOpen):
-                        return "Open";
-                    case (int)(PressureCtrlMode.TVClose):
-                        return "Close";
-                    default:
-                        return "Undefined";
-                }
-            }
-        }
-
-        public AITThrottleValveData()
-        {
-            DisplayName = "Undefined";
-            Factor = 1.0;
-            UnitPosition = "%";
-            UnitPressure = "mTorr";
-            Type = "TV";
-            MaxValuePosition = 100;
-            MaxValuePressure = 1000;
-        }
-
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-    public enum AITThrottleValveOperation
-    {
-        SetMode,
-        SetPosition,
-        SetPressure,
-    }
-
-
-    public class AITThrottleValvePropertyName
-    {
-        public const string TVPositionSetPoint = "TVPositionSetPoint";
-        public const string TVPosition = "TVPosition";
-        public const string TVPressureSetPoint = "TVPressureSetPoint";
-        public const string TVPressure = "TVPressure";
- 
-
-    }
-
-
-    public class PressureCtrlModeConverter : IValueConverter
-    {
-        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
-        {
-            if (value == null)
-            {
-                return null;
-            }
-
-            var status = (PressureCtrlMode)value;
-            switch (status)
-            {
-                case PressureCtrlMode.TVOpen:
-                    return "Open";
-                case PressureCtrlMode.TVClose:
-                    return "Close";
-                case PressureCtrlMode.TVPositionCtrl:
-                    return "Position";
-                case PressureCtrlMode.TVPressureCtrl:
-                    return "Pressure";
-                case PressureCtrlMode.TVCalib:
-                    return "Calibration";
-                case PressureCtrlMode.Undefined:
-                    return "Unknown";
-                default:
-                    break;
-            }
-            return null;
-        }
-
-        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-}

+ 0 - 119
FrameworkLocal/Common/CommonData/DeviceData/AITValveData.cs

@@ -1,119 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-using MECF.Framework.Common.CommonData;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITValveData : NotifiableItem, IDeviceData
-    {
-        [DataMember]
-        public string UniqueName { get; set; }
-
-
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: V122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-     /// <summary>
-        /// 当前设定值
-        /// </summary>
-        [DataMember]
-        
-        public bool SetPoint { get; set; }
-
-   [DataMember]
-        public bool ILKDiValue { get; set; }
-
-        /// <summary>
-        /// 默认值
-        /// </summary>
-        [DataMember]
-        public bool DefaultValue { get; set; }
-
-        /// <summary>
-        /// 实际反馈值
-        /// </summary>
-        [DataMember]
-        public bool Feedback { get; set; }
-
-        /// <summary>
-        /// 虚拟反馈值
-        /// </summary>
-        [DataMember]
-        public bool VirtualFeedback { get; set; }
-
-        public bool IsOpen {
-            get { return Feedback;  }
-        }
-
-        public AITValveData()
-        {
-            DisplayName = "未定义阀门";
-        }
-
-        public void Update(IDeviceData data)
-        {
-            AITValveData item = data as AITValveData;
-
-            if (item == null)
-                return;
-
-            this.DefaultValue = item.DefaultValue;
-            this.DeviceSchematicId = item.DeviceSchematicId;
-            this.DeviceName = item.DeviceName;
-            this.DisplayName = item.DisplayName;
-
-            this.Feedback = item.Feedback;
-            this.SetPoint = item.SetPoint;
-            this.VirtualFeedback = item.VirtualFeedback;
-            InvokePropertyChanged();
-        }
-
-        public override bool Equals(object obj)
-        {
-            if (obj == null || GetType() != obj.GetType())
-            {
-                return false;
-            }
-           
-           AITValveData objAIT = (AITValveData)obj;
-            if (IsOpen == objAIT.IsOpen && Feedback == objAIT.Feedback && SetPoint == objAIT.SetPoint && VirtualFeedback == objAIT.VirtualFeedback)
-            {
-                return true;
-            }
-            return false;
-        }
-    }
-
-    public class AITValveOperation
-    {
-        public const string GVTurnValve = "GVTurnValve";
-        public const string GVVirtualTurnValve = "GVVirtualTurnValve";
-    }
-
-    public class AITValveDataPropertyName
-    {
-        public const string Status = "Status";
-        public const string SetPoint = "SetPoint";
-    }
-}

+ 0 - 245
FrameworkLocal/Common/CommonData/DeviceData/AITVaporLineData.cs

@@ -1,245 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Linq;
-using System.Reflection;
-using System.Runtime.Serialization;
-using System.Text;
-using System.Windows;
-using System.Windows.Input;
-using Aitex.Core.UI.MVVM;
-
-namespace Aitex.Core.Common.DeviceData
-{
-    [DataContract]
-    [Serializable]
-    public class AITVaporLineData : INotifyPropertyChanged, IDeviceData
-    {
-        public event PropertyChangedEventHandler PropertyChanged;
-
-        public void InvokePropertyChanged(string propertyName)
-        {
-            if (PropertyChanged != null)
-            {
-                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
-            }
-        }
-
-        public void InvokePropertyChanged()
-        {
-            PropertyInfo[] ps = this.GetType().GetProperties();
-            foreach (PropertyInfo p in ps)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.PropertyType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this, null) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-
-            FieldInfo[] fi = this.GetType().GetFields();
-            foreach (FieldInfo p in fi)
-            {
-                InvokePropertyChanged(p.Name);
-
-                if (p.FieldType == typeof (ICommand))
-                {
-                    DelegateCommand<string> cmd = p.GetValue(this) as DelegateCommand<string>;
-                    if (cmd != null)
-                        cmd.RaiseCanExecuteChanged();
-
-                }
-            }
-        }
-
-        /// <summary>
-        /// 设备的唯一名称,UI与RT交互的ID
-        /// </summary>
-        [DataMember]
-        public string DeviceName { get; set; }
-
-        /// <summary>
-        /// 显示在界面上的名称
-        /// </summary>
-        [DataMember]
-        public string DisplayName { get; set; }
-
-        /// <summary>
-        /// IO 表中定义的物理编号,物理追溯使用 比如: M122
-        /// </summary>
-        [DataMember]
-        public string DeviceSchematicId { get; set; }
-
-        [DataMember]
-        public string Unit { get; set; }
-
-        [DataMember]
-        public string Description { get; set; }
-
-        /// <summary>
-        /// 量程
-        /// </summary>
-        [DataMember]
-        public double Scale { get; set; }
-
-        /// <summary>
-        /// 设定值
-        /// </summary>
-        [DataMember]
-        public double SetPoint { get; set; }
-
-        [DataMember]
-        public double FeedBack { get; set; }
-
-        /// <summary>
-        /// 默认值
-        /// </summary>
-        [DataMember]
-        public double DefaultValue { get; set; }
-
-        /// <summary>
-        /// 是否有报警
-        /// </summary>
-        [DataMember]
-        public bool IsWarning { get; set; }
-
-        /// <summary>
-        /// alarm或是erro时显示的信息
-        /// </summary>
-        [DataMember]
-        public string ErroMessage { get; set; }
-
-        /// <summary>
-        /// MFC,PC
-        /// </summary>
-        [DataMember]
-        public string Type { get; set; }
-
-
-        [DataMember]
-        public double Factor { get; set; }
-
-        private string _title;
-        [DataMember]
-        public string DisplayTitle
-        {
-            get
-            {
-                return string.Format("{0}({1})", DeviceSchematicId, DisplayName);
-            }
-
-            set
-            {
-                _title = value;
-            }
-        }
-
-        [DataMember]
-        public bool HasMFC
-        {
-            get;
-            set;
-        }
-
-        public Visibility MFCVisibility
-        {
-            get
-            {
-                return HasMFC ? Visibility.Visible : Visibility.Hidden;
-            }
-        }
-
-        [DataMember]
-        public AITValveData SupplyValveData
-        {
-            get;
-            set;
-        }
-
-
-        [DataMember]
-        public AITValveData RunValveData
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public AITValveData BypassValveData
-        {
-            get;
-            set;
-        }
-
-
-        [DataMember]
-        public AITValveData FeedValveData
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public AITMfcData SupplyMFCData
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public AITPressureMeterData PressureMeterData
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public AITSensorData HighLevelSensordata
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public AITSensorData MiddleLevelSensordata
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public AITSensorData LowLevelSensordata
-        {
-            get;
-            set;
-        }
-
-        [DataMember]
-        public AITHeaterData HeaterData
-        {
-            get;
-            set;
-        }
-
-        public AITVaporLineData()
-        {
-            DisplayName = "Undefined";
-            Factor = 1.0;
-            Unit = "";
-            Type = "Vapor";
-        }
-        public void Update(IDeviceData data)
-        {
-            throw new NotImplementedException();
-        }
-    }
-
-    public class AITVaporLineOperation
-    {
-        public const string Pump = "Pump";
-    }
-}

+ 0 - 0
FrameworkLocal/Common/CommonData/DeviceData/AITWaferIdReaderData.cs


Някои файлове не бяха показани, защото твърде много файлове са промени