Beispiel #1
0
        /// <summary>
        /// 发送请求
        /// </summary>
        /// <param name="statue"></param>
        /// <returns></returns>
        public bool Write(SetStatueList statue)
        {
            List <int> value = new List <int>();

            value.Add((int)statue);
            return(WriteInternal <int>(value, null));
        }
Beispiel #2
0
        public override bool WriteInternal <T>(List <T> value, Dictionary <string, string> parm)
        {
            try
            {
                if (value == null || value.Count <= 0)
                {
                    All.Class.Error.Add("SSLockClient,当前不包含写入的数据");
                    return(false);
                }
                int tmpValue = 0;
                switch (All.Class.TypeUse.GetType <T>())
                {
                case Class.TypeUse.TypeList.Int:
                    tmpValue = (int)(object)value[0];
                    break;

                case Class.TypeUse.TypeList.Long:
                    tmpValue = (int)(long)(object)value[0];
                    break;

                case Class.TypeUse.TypeList.Byte:
                    tmpValue = (int)(byte)(object)value[0];
                    break;

                case Class.TypeUse.TypeList.UShort:
                    tmpValue = (int)(ushort)(object)value[0];
                    break;

                case Class.TypeUse.TypeList.String:
                    tmpValue = Enum.GetNames(typeof(SetStatueList)).ToList().IndexOf((string)(object)value[0]);
                    return(false);

                default:
                    All.Class.Error.Add(string.Format("SSLockClient,不支持当前的数据类型,{0}", typeof(T)));
                    return(false);
                }
                if (tmpValue < 0 || tmpValue >= Enum.GetNames(typeof(SetStatueList)).Length)
                {
                    All.Class.Error.Add(string.Format("SSLockClient,不包含当前可写入的执行命令,{0}", value[0]));
                    return(false);
                }
                All.Class.Log.Add(string.Format("SSLockClient,开始执行指定命令,{0}", (SetStatueList)tmpValue));
                currentSetStatue = (SetStatueList)tmpValue;
                return(Loop());
            }
            catch (Exception e)
            {
                All.Class.Error.Add(e);
                return(false);
            }
        }
Beispiel #3
0
 private string GetSendValue(SetStatueList statue)
 {
     return(string.Format("{0}~~~{1}", (object)Index, (int)statue));
 }
Beispiel #4
0
        private void lockUdp_GetStringArgs(Udp sender, ReciveString reciveArgs)
        {
            string value = reciveArgs.Value;

            string[] buff = value.Split(new string[] { "~~~" }, StringSplitOptions.None);

            LockMain <T> .GetStatueList statue = (LockMain <T> .GetStatueList)Num.ToInt(buff[0]);
            switch (statue)
            {
            case LockMain <T> .GetStatueList.收到请求:
                nowStatueList = SetStatueList.请求;
                getRemotValue = true;
                break;

            case LockMain <T> .GetStatueList.等待:
                SetRemotInfo(statue, "远程主机已收到请求,请等待分配执行");
                break;

            case LockMain <T> .GetStatueList.允许执行互锁要求:
                SetRemotInfo(statue, "远程主机已允许执行互锁前的开关切换");
                isPlease = false;
                switch (nowStatueList)
                {
                case SetStatueList.请求:
                    if (SwitchOpen != null)
                    {
                        SwitchOpen();
                    }
                    nowStatueList = SetStatueList.执行要求完毕;
                    break;
                }
                break;

            case LockMain <T> .GetStatueList.正在执行互锁动作:

                SetRemotInfo(statue, "远程主机正在执行互锁动作");
                if (buff.Length > 1)
                {
                    if (GetRemotHostTestingValue != null)
                    {
                        GetRemotHostTestingValue(buff[1]);
                    }
                }
                break;

            case LockMain <T> .GetStatueList.互锁动作执行完毕:
                if (isStart)
                {
                    isStart = false;
                    SetRemotInfo(statue, "远程操作完成");
                    if (GetRemotHostTestValue != null)
                    {
                        GetRemotHostTestValue(buff[1]);
                    }
                    if (SwitchClose != null)
                    {
                        SwitchClose();
                    }
                }
                break;

            case LockMain <T> .GetStatueList.互锁请求正常结束:
                SetRemotInfo(statue, "远程主机已收到请求,互锁请求正常结束");
                nowStatueList = SetStatueList.除;
                isStop        = false;
                isPlease      = false;
                isStart       = false;
                break;

            case LockMain <T> .GetStatueList.除请求成功:
                SetRemotInfo(statue, "远程主机已收到请求,互锁请求已删除");
                nowStatueList = SetStatueList.除;
                isDel         = false;
                isPlease      = false;
                isStart       = false;
                isStop        = false;
                break;
            }
        }