/// <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)); }
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); } }
private string GetSendValue(SetStatueList statue) { return(string.Format("{0}~~~{1}", (object)Index, (int)statue)); }
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; } }