public Package(CmdEnum cmd, Opcode_enum opcode, byte[] uid, byte id, byte[] data, byte offset, byte len) { int pos = 0; this.CMD = cmd; this.ReaderID = id; this.States = 0x00; if ((uid != null) && (uid.Length >= 8)) { this.Opcode = opcode; } else { this.Opcode = Opcode_enum.NON_ADDRESS_MODE; } this.Ant = Antenna_enum.ANT_1; if (this.Opcode == Opcode_enum.ADDRESS_MODE) { this.DataLen = (byte)(len + 8); Array.Copy(uid, 0, this.Datas, pos, 8); pos += 8; } else { this.DataLen = len; } Array.Copy(data, offset, this.Datas, pos, len); this.BCC = tool.GetBCC(this.Datas, 0, this.DataLen); }
public static void ReceiveData(CmdEnum cmd, byte[] data) { if (cmd == CmdEnum.ResLogin) { ResponseLogin login = SerializeTool.Deserialize <ResponseLogin>(data); ResponseLogin(login); } else if (cmd == CmdEnum.ResAlive) { ResponseAlive alive = SerializeTool.Deserialize <ResponseAlive>(data); ResponseAlive(alive); } else if (cmd == CmdEnum.ResRegister) { ResponseRegister response = SerializeTool.Deserialize <ResponseRegister>(data); ResponseRegister(response); } else if (cmd == CmdEnum.ResCreateRoom) { ResponseCreateRoom response = SerializeTool.Deserialize <ResponseCreateRoom>(data); ResponseCreateRoom(response); } else if (cmd == CmdEnum.ResGetRooms) { ResponseGetRooms response = SerializeTool.Deserialize <ResponseGetRooms>(data); ResponseGetRooms(response); } else if (cmd == CmdEnum.ResDeleteRoom) { ResponseDeleteRoom response = SerializeTool.Deserialize <ResponseDeleteRoom>(data); ResponseDeleteRoom(response); } }
private Status_enum WaitResp(CmdEnum CMD, ref byte[] data, ref byte len, int timeout) { int CheckTime = timeout / checkInterval; RespInit(); while (CheckTime-- != 0)//等待接收 { lock (Resp) { if (Resp.CMD == CMD) { if (Resp.States == 0x00) { for (int i = 0; i < Resp.DataLen; i++) { if (data == null) { break; } data[i] = Resp.Datas[i]; } len = Resp.DataLen; } break; } } System.Threading.Thread.Sleep(checkInterval); } return(CheckTime > 0 ? (Status_enum)Resp.States : Status_enum.NO_RESPONSE); }
/// <summary> /// 检测命令参数 /// </summary> /// <param name="cmdLine">命令行</param> /// <param name="cmd">命令</param> /// <param name="args">参数</param> /// <returns></returns> private static bool CheckCmd(string cmdLine, out CmdEnum cmd, out List <string> args) { cmd = default(CmdEnum); if (string.IsNullOrEmpty(cmdLine)) { args = new List <string>(); return(false); } args = cmdLine.Trim().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList(); var c = args.FirstOrDefault(); args.RemoveAt(0); try { cmd = (CmdEnum)Enum.Parse(typeof(CmdEnum), c); return(true); } catch { return(false); } }
//绑定操作类型到类并指定回调函数 internal static void Bind <T>() where T : BaseCmd { using (T tmp = (T)(Activator.CreateInstance(typeof(T), new byte[] { }))) { CmdEnum cmd = tmp.type; CmdLenghtDic[cmd] = tmp.Used + tmp.Length; CmdDynamicMapDic[cmd] = tmp.isDynamic; } }
public Package(CmdEnum cmd, byte id, Antenna_enum ant) { this.CMD = cmd; this.ReaderID = id; this.States = 0x00; this.Opcode = Opcode_enum.NON_ADDRESS_MODE; this.Ant = ant; this.DataLen = 0x00; this.BCC = 0x00; }
public Package(CmdEnum cmd, byte id, byte[] data, byte offset, byte len) { this.CMD = cmd; this.ReaderID = id; this.States = 0x00; this.Opcode = Opcode_enum.NON_ADDRESS_MODE; this.Ant = Antenna_enum.ANT_1; this.DataLen = len; Array.Copy(data, offset, this.Datas, 0, len); this.BCC = tool.GetBCC(this.Datas, 0, this.DataLen); }
public Package CreateCommand(CmdEnum cmd, byte[] param) { Package result = null; switch (cmd) { case CmdEnum.SetColor: result = new Package(1, (int)CmdEnum.SetColor, param); break; } return result; }
//转为指令形式,从value中的current位置开始输出数组指令到cmd public static CmdEnum ToCmd(byte[] value, ref int current, out byte[] array) { //Debug.Log("当前位置" + current); CmdEnum cmd = ByteToCmd(value, current); if (cmd != CmdEnum.Null) //如果指令映射的长度大于当前指令值 { //根据获取的类型值查询对应数组长度 int length = CmdLenghtDic[cmd]; //获取动态数据的长度 if (CmdDynamicMapDic[cmd]) { length += value[current + 1] + (value[current + 2] << 8) + (value[current + 3] << 16) + (value[current + 4] << 24); } if (length > 0) { array = new byte[length]; } else { array = new byte[1] { (byte)CmdEnum.Null }; //current += 1; return(CmdEnum.Null); } for (int i = 0; i < length; i++) { array[i] = value[current + i]; } //移动游标 current += length - 1; } else { //current += 1; cmd = CmdEnum.Heartbeat; array = new byte[1] { (byte)cmd }; } return(cmd); }
public Frame CreateFrameByCmdEnum(CmdEnum cmdEnum, TimeSpan startTime) { Frame result = null; Command cmd = null; switch (cmdEnum) { case CmdEnum.SetColor: cmd = new SetColor(Colors.Black){Channel = Command.DefaultChannel}; break; case CmdEnum.Fade: var length = (short)(DefaultLength.TotalSeconds * TicksPerSec); cmd = new FadeColor(Colors.Black, Colors.Black, length){Channel = Command.DefaultChannel}; break; case CmdEnum.Blink: cmd = new BlinkColor(Colors.Black, 50){Channel = Command.DefaultChannel}; break; } if(cmd != null) result = new Frame(startTime, DefaultLength) { Command = cmd }; return result; }
/// <summary> /// 执行命令 /// </summary> /// <param name="cmd">指令</param> /// <param name="args">参数</param> /// <param name="port">服务器端口</param> /// <returns></returns> private static string Exec(CmdEnum cmd, List <string> args, int port) { using (var memCached = MemCached.Create(new IPEndPoint(IPAddress.Loopback, port))) { switch (cmd) { case CmdEnum.get: if (args.Count != 1) { return(string.Empty); } try { var result = memCached.Get(args[0]); if (result.Status != OprationStatus.No_Error) { return(result.Status.ToString()); } return(result.Value.ToString()); } catch { return("The Value Is A Unknow Object"); } case CmdEnum.set: if (args.Count != 3) { return(string.Empty); } var state = memCached.Set(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state.ToString()); case CmdEnum.add: if (args.Count != 3) { return(string.Empty); } state = memCached.Add(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state.ToString()); case CmdEnum.replace: if (args.Count != 3) { return(string.Empty); } state = memCached.Replace(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state.ToString()); case CmdEnum.delete: if (args.Count != 1) { return(string.Empty); } state = memCached.Delete(args[0]); return(state.ToString()); case CmdEnum.flush: if (args.Count != 1) { return(string.Empty); } memCached.Flush(TimeSpan.FromSeconds(int.Parse(args[0]))); return("OK"); case CmdEnum.touch: if (args.Count != 2) { return(string.Empty); } state = memCached.Touch(args[0], TimeSpan.FromSeconds(int.Parse(args[1]))); return(state.ToString()); case CmdEnum.stat: var lines = memCached.Stat().Select(item => string.Format("{0} => {1}", item.Key, item.Value)); return(string.Join(Environment.NewLine, lines)); default: return(string.Empty); } } }
/// <summary> /// Sent a command to the TellyMate /// </summary> public void SendCommand(CmdEnum tellyMateCmd) { _ezb.Uart.SendSerial(TellyMatePort, TellyMateBaudRate, new byte[] { 27, (byte)tellyMateCmd }); }
private void OnRadio_CheckedChanged(object sender, EventArgs e) { var radioBtn = sender as RadioButton; if(radioBtn != null && radioBtn.Checked) { int en = Int32.Parse(radioBtn.Tag.ToString()); _cmdEnum = (CmdEnum) en; } }
public LoomInfo(CmdEnum _proto, byte[] _data) { Proto = _proto; data = new byte[_data.Length]; Array.Copy(_data, 0, data, 0, _data.Length); }
public static void Request(CmdEnum cmd, byte[] data) { EasyLoom.Instance.AddSendInfo(new LoomInfo(cmd, data)); }
private Status_enum WaitResp(CmdEnum CMD, ref byte[] data, ref byte len) { return(WaitResp(CMD, ref data, ref len, DEFAULT_TIMEOUT)); }
public static void SendData(CmdEnum cmd, byte[] data) { SocketManager.Instance.mSocket.SendMessage(data); }
/// <summary> /// 执行命令 /// </summary> /// <param name="cmd">指令</param> /// <param name="args">参数</param> /// <param name="port">服务器端口</param> /// <returns></returns> private static string Exec(CmdEnum cmd, List <string> args, int port) { var keyNotExists = "The Key Is Not Exists"; var keyHasExists = "The Key Has Exists"; var ok = "OK"; using (var memCached = MemCached.Create(new IPEndPoint(IPAddress.Loopback, port))) { switch (cmd) { case CmdEnum.get: if (args.Count != 1) { return(string.Empty); } try { var result = memCached.Get(args[0]); if (result.Status == false) { return(keyNotExists); } return(result.Value.ToString()); } catch { return("The Value Is A Unknow Object"); } case CmdEnum.set: if (args.Count != 3) { return(string.Empty); } var state = memCached.Set(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state ? ok : keyNotExists); case CmdEnum.add: if (args.Count != 3) { return(string.Empty); } state = memCached.Add(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state ? ok : keyHasExists); case CmdEnum.replace: if (args.Count != 3) { return(string.Empty); } state = memCached.Replace(args[0], args[1], TimeSpan.FromSeconds(int.Parse(args[2]))); return(state ? ok : keyNotExists); case CmdEnum.delete: if (args.Count != 1) { return(string.Empty); } state = memCached.Delete(args[0]); return(state ? ok : keyNotExists); case CmdEnum.flush: if (args.Count != 1) { return(string.Empty); } memCached.Flush(TimeSpan.FromSeconds(int.Parse(args[0]))); return(ok); default: return(string.Empty); } } }
public static void Receive(CmdEnum cmd, byte[] data) { EasyLoom.Instance.AddReceiveInfo(new LoomInfo(cmd, data)); }