public HJ212Protocol() { base.ProtocolName = "HJ212"; string configStr = File.ReadAllText(string.Format("{0}.json", ProtocolName)); config = JsonConvert.DeserializeObject <HJ212Config>(configStr); }
/// <summary> /// 组成212协议 /// </summary> /// <param name="config"></param> /// <param name="code"></param> /// <param name="cp"></param> /// <param name="qn"></param> /// <returns></returns> private static string MakeContent(HJ212Config config, MiddleCode code, string cp, string qn) { string rdata = string.Format("QN={0};ST={1};CN={2};PW={3};MN={4};Flag={5};CP=&&{6}&&", qn, config.ST, (int)code, config.PW, config.MN, config.Flag, cp); string dataLength = Util.GetDataLenght(rdata); string crc = Util.GetHj212Crc16(rdata); return(string.Format("##{0}{1}{2}\r\n", dataLength, rdata, crc)); }
/// <summary> /// 上传污染物周期历史数据 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <param name="datatime"></param> /// <param name="datas"></param> /// <returns></returns> public static IEnumerable <string> UploadCycleData(HJ212Config config, string qn, DateTime datatime, IDictionary <string, DataModel> datas) { List <string> contentList = new List <string>(); IEnumerable <string> cpList = SerializeData(datatime.ToString("yyyyMMddHH0000"), datas); foreach (string cp in cpList) { contentList.Add(MakeContent(config, MiddleCode.UploadCycleData, cp, qn)); } return(contentList); }
/// <summary> /// 上传设备运行时间日历史数据 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string UploadDeviceRunTimeDayData(HJ212Config config, string QN, DateTime datatime, IEnumerable <DeviceRunTimeModel> datas) { StringBuilder builder = new StringBuilder(); builder.Append(datatime.ToString("yyyyMMdd000000")); foreach (DeviceRunTimeModel data in datas) { builder.Append(string.Format(";SB{0}-RT={1}", data.DeviceNumber, data.DeviceRunTime)); } return(MakeContent(config, MiddleCode.UploadDeviceRunTimeDayData, builder.ToString(), QN)); }
/// <summary> /// 上传分钟数据间隔 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string UploadMinuteDataInterval(HJ212Config config, string QN, int RtdInterval) { string CP = string.Format("MinInterval={0}", RtdInterval); return(MakeContent(config, MiddleCode.UploadMinuteDataInterval, CP, QN)); }
/// <summary> /// 现场机时间校准请求 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <param name="PolId"></param> /// <returns></returns> public static string SceneDeviceTimeCalibration(HJ212Config config, string QN, string PolId) { string CP = string.Format("PolId={0}", PolId); return(MakeContent(config, MiddleCode.SceneDeviceTimeCalibration, CP, QN)); }
/// <summary> /// 心跳包 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string HeartBeat(HJ212Config config, string qn) { return(MakeContent(config, MiddleCode.HeartBeat, string.Empty, qn)); }
/// <summary> /// 上传超标留样信息 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string UploadSuperstandardSample(HJ212Config config, string QN, DateTime DataTime, int VaseNo) { string CP = string.Format("DataTime={0};VaseNo={1}", DataTime.ToString("yyyyMMddHHmmss"), VaseNo); return(MakeContent(config, MiddleCode.UploadSuperstandardSample, CP, QN)); }
/// <summary> /// 请求应答 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string RequestResponse(HJ212Config config, string qn, CommandResult res) { string cp = string.Format("QnRtn={0}", (int)res); return(MakeContent(config, MiddleCode.RequestResponse, cp, qn)); }
/// <summary> /// 执行结果 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string ExecuteResponse(HJ212Config config, string qn, ExecuteResult res) { string cp = string.Format("ExeRtn={0}", (int)res); return(MakeContent(config, MiddleCode.ExecuteResponse, cp, qn)); }
/// <summary> /// 上传数采仪开机时间 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string UploadComputerPowerOnTime(HJ212Config config, string QN, DateTime DataTime, DateTime RestartTime) { string CP = string.Format("DataTime={0};RestartTime={1}", DataTime.ToString("yyyyMMddHHmmss"), RestartTime.ToString("yyyyMMddHHmmss")); return(MakeContent(config, MiddleCode.UploadComputerPowerOnTime, CP, QN)); }
/// <summary> /// 数据应答 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string DataResponse(HJ212Config config, string qn) { return(MakeContent(config, MiddleCode.DataResponse, string.Empty, qn)); }
/// <summary> /// 上传现场机时间 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string UploadSceneDeviceTime(HJ212Config config, string QN, string PolId, DateTime SystemTime) { string CP = string.Format("PolId={0};SystemTime={1}", PolId, SystemTime.ToString("yyyyMMddHHmmss")); return(MakeContent(config, MiddleCode.UploadSceneDeviceTime, CP, QN)); }
/// <summary> /// 上传现场机信息 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string UploadSceneDeviceInfo(HJ212Config config, string QN, string PolId, string InfoId, object Value, DateTime DataTime) { string CP = string.Format("DataTime={0};PolId={1};{2}-Info={3}", DataTime.ToString("yyyyMMddHHmmss"), PolId, InfoId, Value); return(MakeContent(config, MiddleCode.UploadSceneDeviceInfo, CP, QN)); }
/// <summary> /// 上传设备唯一标识 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string UploadSceneDeviceUUID(HJ212Config config, string QN, string PolId, string SN) { string CP = string.Format("PolId={0};{0}-SN={1}", PolId, SN); return(MakeContent(config, MiddleCode.UploadSceneDeviceUUID, CP, QN)); }
/// <summary> /// 上传出样时间 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string UploadSampleTime(HJ212Config config, string QN, string PolId, int Stime) { string CP = string.Format("PolId={0};Stime={1}", PolId, Stime); return(MakeContent(config, MiddleCode.UploadSampleTime, CP, QN)); }
/// <summary> /// 上传采样时间周期 /// </summary> /// <param name="config"></param> /// <param name="qn"></param> /// <returns></returns> public static string UploadSampleTimeInterval(HJ212Config config, string QN, string PolId, string CstartTime, int CTime) { string CP = string.Format("PolId={0};CstartTime={1};CTime={2}", PolId, CstartTime, CTime); return(MakeContent(config, MiddleCode.UploadSampleTimeInterval, CP, QN)); }