/// <summary> /// 封装环境数据包 /// </summary> /// <param name="Heart">解析后的控制器心跳包</param> /// <returns>封装后的环境数据包</returns> public string PacketEnviroumentData(HeartStruct Heart) { string DataPacket = string.Empty; string CRCCode = string.Empty; DataPacket = string.Format("cmd=Enviroument\tControlStatus={0}\tTemp={1}\tHum={2}\tLight={3}\tNoise={4}", Heart.Status, Heart.Temp, Heart.Hum, Heart.Light, Heart.Noise); CRCCode = GetCRCCode(DataPacket); DataPacket += string.Format(":CRC={0}\r\n", CRCCode); return(DataPacket); }
/// <summary> /// 封装设备状态数据包 /// </summary> /// <param name="Heart">解析后的控制器心跳包</param> /// <returns>封装后的设备状态数据包</returns> public string PacketDeviceStatusData(HeartStruct Heart) { string DataPacket = string.Empty; string CRCCode = string.Empty; DataPacket = string.Format("cmd=DeviceStatus\tControlStatus={0}\tProjector={1}\tVideoIn={2}\tVideoOut={3}\tCameraPower={4}", Heart.Status, Heart.Projector, Heart.VideoIn, Heart.VideoOut, Heart.CameraPower); CRCCode = GetCRCCode(DataPacket); DataPacket += string.Format(":CRC={0}\r\n", CRCCode); return(DataPacket); }
/// <summary> /// 获取心跳包内容 /// </summary> /// <param name="Data"></param> /// <returns>心跳包结构体</returns> public HeartStruct GetHeartbeat(string Data) { var Heart = new HeartStruct(); string Key = string.Empty; string Value = string.Empty; if (CheckData(Data)) { string HeartData = Data.Split(':')[0]; foreach (string item in HeartData.Split('\t')) { Key = item.Split('=')[0]; Value = item.Split('=')[1]; switch (Key) { case "Status": Heart.Status = Value; break; case "Runtime": Heart.Runtime = Value; break; case "Temp": Heart.Temp = Value.Insert(Value.Length - 1, "."); break; case "Hum": Heart.Hum = Value.Insert(Value.Length - 1, "."); break; case "Light": Heart.Light = Value; break; case "Noise": Heart.Noise = Value; break; case "Relays": Heart.Relays = Value; break; case "VideoIn": Heart.VideoIn = Value; break; case "VideoOut": Heart.VideoOut = Value; break; case "Projector": Heart.Projector = Value; break; case "CameraPower": Heart.CameraPower = Value; break; default: break; } } } else { throw new Exception("获取到错误数据"); } return(Heart); }