private void SaveClientStat(string key, STAT stat, POWERSTAT powerstat) { if (clientTable.ContainsKey(key)) { DMClient oldClient = clientTable[key]; oldClient.Stat = stat; oldClient.Powerstat = powerstat; } }
/// <summary> /// 发送到设备 /// </summary> /// <param name="deviceID"></param> /// <param name="command"></param> /// <param name="stat"></param> /// <param name="powerStat"></param> /// <param name="otherinfo"></param> /// <returns></returns> public string SendMsgToClient(string deviceID, COMMAND command, STAT stat, POWERSTAT powerStat, string otherinfo = null) { DMClient c = clientTable[deviceID]; if (c != null) { DMProtocol dmProtocol = null; string msg = null; switch (command) { case COMMAND.ASK: dmProtocol = new DMProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, deviceID, 0, 0, DateTime.Now.ToString("yyyyMMddHHmmss")); msg = dmProtocol.makeMessage(); break; case COMMAND.REMIND: string[] info = new string[1]; info[0] = otherinfo; dmProtocol = new DMProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, deviceID, (int)stat, (int)powerStat, DateTime.Now.ToString("yyyyMMddHHmmss"), info); msg = dmProtocol.makeMessage(); break; case COMMAND.SETUP: dmProtocol = new DMProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, deviceID, (int)stat, (int)powerStat, DateTime.Now.ToString("yyyyMMddHHmmss")); msg = dmProtocol.makeMessage(); break; case COMMAND.UPDATE: dmProtocol = new DMProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), (int)command, deviceID, 0, 0, DateTime.Now.ToString("yyyyMMddHHmmss")); msg = dmProtocol.makeMessage(); break; } //try //{ // c.Send(msg); // return "Success"; //} //catch (Exception ex) //{ // Console.WriteLine(ex.Message); // return "Err:ex.Message"; //} return(c.SendAndReceive(msg)); } else { return(GetErrMessageToLIMS(deviceID, "Device is offline", (int)COMMAND.ERR_CONCET)); } }
public string SendCommandToDeivce(string id, COMMAND command, STAT stat, POWERSTAT powerStat) { MemoryCache cache = MemoryCache.Default; if (cache.Count() > 0) { //Message = cache.Count() + " device(s) have been registered"; //foreach (var oc in cache.Distinct()) //{ // DeviceInformation deviceInformation = (DeviceInformation)oc.Value; // DeviceInfoList.Add("ID: " + deviceInformation.DeviceID + "-IP: " + deviceInformation.IP + " -DeviceStat: " + deviceInformation.DeviceStat + " -PowerStat: " + deviceInformation.PowerStat.ToString("00") + " -Ver: " + deviceInformation.DeviceVer); //} DeviceInformation deviceInformation = (DeviceInformation)cache.Get(id); IPEndPoint ipEndPoint = new IPEndPoint(IPAddress.Parse(deviceInformation.IP), deviceInformation.port); Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); clientSocket.Connect(ipEndPoint); //DMProtocol dmProtocol = null; string msg = null; byte[] data; //switch (command) //{ // case COMMAND.KEEPLIVE: //废弃 // //if (cmd.Equals("111")) // //{ // // // 0 1 2 3 4 5 6 7 // // msg = "SXZL,V0100,01,DM77712,3696,00," + DateTime.Now.ToString("yyyyMMddHHmmss") + ",9910"; // //} // dmProtocol = new DMProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(),deviceInformation.DeviceID,00,0,0, DateTime.Now.ToString("yyyyMMddHHmmss")); // msg = dmProtocol.makeMessage(); // //int count; // try // { // //clientSocket.Send(Encoding.UTF8.GetBytes(msg)); // //data = new byte[1024]; // //count = clientSocket.Receive(data); // //msg = Encoding.UTF8.GetString(data, 0, count); // msg = sendAndReceive(msg, clientSocket); // Console.WriteLine("Receive:" + msg); // } // catch (Exception ex) // { // Console.WriteLine(ex.Message); // } // break; // case COMMAND.ASK: // dmProtocol = new DMProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), deviceInformation.DeviceID, (int)command, 0, 0, DateTime.Now.ToString("yyyyMMddHHmmss")); // msg = dmProtocol.makeMessage(); // try // { // msg = sendAndReceive(msg, clientSocket); // Console.WriteLine("Receive:" + msg); // } // catch (Exception ex) // { // Console.WriteLine(ex.Message); // } // break; // case COMMAND.REMIND: // dmProtocol = new DMProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), deviceInformation.DeviceID, (int)command, 0, 0, DateTime.Now.ToString("yyyyMMddHHmmss")); // msg = dmProtocol.makeMessage(); // try // { // msg = sendAndReceive(msg, clientSocket); // Console.WriteLine("Receive:" + msg); // } // catch (Exception ex) // { // Console.WriteLine(ex.Message); // } // break; // case COMMAND.SETUP: // dmProtocol = new DMProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), deviceInformation.DeviceID, (int)command, (int)stat, (int)powerStat, DateTime.Now.ToString("yyyyMMddHHmmss")); // msg = dmProtocol.makeMessage(); // try // { // msg = sendAndReceive(msg, clientSocket); // Console.WriteLine("Receive:" + msg); // } // catch (Exception ex) // { // Console.WriteLine(ex.Message); // } // break; // case COMMAND.UPDATE: // dmProtocol = new DMProtocol(HEADER.XXZL.ToString(), VERSION.V0100.ToString(), deviceInformation.DeviceID, (int)command, 0, 0, DateTime.Now.ToString("yyyyMMddHHmmss")); // msg = dmProtocol.makeMessage(); // try // { // msg = sendAndReceive(msg, clientSocket); // Console.WriteLine("Receive:" + msg); // } // catch (Exception ex) // { // Console.WriteLine(ex.Message); // } // break; //} return(msg); } else { return("Device pool is empty"); } }
public string SendCommandToDeivce(string id, COMMAND command, STAT stat, POWERSTAT powerStat, string otherinfo) { //Console.WriteLine("SendCommandToDeivce被调用"); return(dmServerThread.SendMsgToClient(id, command, stat, powerStat, otherinfo)); }