public bool FeedbackFunction(EBD ebdsr, string BrdStateCode, string TimingTerminalState) { bool flag = false; try { if (string.IsNullOrEmpty(TimingTerminalState)) { bool eb = sendEBMStateResponse(ebdsr, BrdStateCode); if (eb) { flag = true; } } else { bool eb = sendEBMStateResponse(ebdsr, BrdStateCode); bool Up = UpdateState(); if (eb && Up) { flag = true; } } } catch (Exception ex) { } return(flag); }
public bool SendMq(EBD ebd, int Type, string ParamValue, string TsCmd_ID, string TsCmd_ValueID) { if (ebd != null) { string InfoValueStr = "insert into InfoVlaue values('" + ebd.EBDID + "')"; mainForm.dba.UpdateDbBySQL(InfoValueStr); } m_lstProperty = Install(Type, ParamValue, TsCmd_ID, TsCmd_ValueID); return(m_mq.SendMQMessage(true, "Send", m_lstProperty)); }
/// <summary> /// 播发状态反馈 20181213 /// </summary> /// <param name="ebdsr"></param> /// <param name="BrdStateDesc"></param> /// <param name="BrdStateCode"></param> /// <returns></returns> private bool sendEBMStateResponse(EBD ebdsr, string BrdStateCode) { //*反馈 #region 先删除解压缩包中的文件 bool flag = false; foreach (string xmlfiledel in Directory.GetFileSystemEntries(ServerForm.sEBMStateResponsePath)) { if (File.Exists(xmlfiledel)) { FileInfo fi = new FileInfo(xmlfiledel); if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1) { fi.Attributes = FileAttributes.Normal; } File.Delete(xmlfiledel);//直接删除其中的文件 } } #endregion End XmlDocument xmlHeartDoc = new XmlDocument(); responseXML rHeart = new responseXML(); //rHeart.SourceAreaCode = ServerForm. strSourceAreaCode; //rHeart.SourceType = ServerForm.strSourceType; //rHeart.SourceName = ServerForm.strSourceName; //rHeart.SourceID = ServerForm.strSourceID; //rHeart.sHBRONO = SingletonInfo.GetInstance().CurrentResourcecode; string frdStateName = "10" + SingletonInfo.GetInstance().CurrentResourcecode + GetSequenceCodes(); string xmlEBMStateFileName = "\\EBDB_" + frdStateName + ".xml"; xmlHeartDoc = rHeart.EBMStateRequestResponse(ebdsr, frdStateName, BrdStateCode); TarXml.AudioResponseXml.CreateXML(xmlHeartDoc, ServerForm.sEBMStateResponsePath + xmlEBMStateFileName); ServerForm.mainFrm.GenerateSignatureFile(ServerForm.sEBMStateResponsePath, frdStateName); ServerForm.tar.CreatTar(ServerForm.sEBMStateResponsePath, ServerForm.sSendTarPath, frdStateName);// "HB000000000001");//使用新TAR string sHeartBeatTarName = ServerForm.sSendTarPath + "\\EBDT_" + frdStateName + ".tar"; try { string result = HttpSendFile.UploadFilesByPost(SingletonInfo.GetInstance().SendTarAddress, sHeartBeatTarName); if (result != "0") { return(true); } } catch (Exception w) { Log.Instance.LogWrite("应急消息播发状态反馈发送平台错误:" + w.Message); } return(flag); }
public bool SendMq(EBD ebd, string TsCmd_ID, string TsCmd_ValueID) { if (ebd != null) { string InfoValueStr = "insert into InfoVlaue values('" + ebd.EBDID + "')"; mainForm.dba.UpdateDbBySQL(InfoValueStr); } if (!HttpServerFrom.MQStartFlag) { Console.WriteLine("MQ标识未启用,取消发送!"); return(false); } List <Property> m_lstProperty = new List <Property>(); // m_lstProperty = Install(Type, ParamValue, TsCmd_ID, TsCmd_ValueID); return(m_mq.SendMQMessage(true, "Send", m_lstProperty)); }
public bool SendMq(EBD ebd, int Type, string ParamValue, string TsCmd_ID, string TsCmd_ValueID) { if (ebd != null) { string InfoValueStr = "insert into InfoVlaue values('" + ebd.EBDID + "')"; mainForm.dba.UpdateDbBySQL(InfoValueStr); } if (!ServerForm.MQStartFlag) { Console.WriteLine("MQ标识未启用,取消发送!"); return(false); } //"1~D:\\rhtest_6_1\\apache-tomcat-7.0.69\\webapps\\ch-eoc\\upload/1109.mp3~0~1000~128~0~0~0" m_lstProperty = Install(Type, ParamValue, TsCmd_ID, TsCmd_ValueID);//~0~1200~192~0~1~1应急 // m_lstProperty = MQCommandPackage(Type, ParamValue, TsCmd_ID); return(m_mq.SendMQMessage(true, "Send", m_lstProperty)); }
/// <summary> /// 播放 /// </summary> /// <returns></returns> public bool AudioPlay(int type, string ParamValue, string TsCmd_ID, string TsCmd_ValueID, string EBMInfoID) { try { ServerForm.SetManager("EBM开始时间: " + AudioModel.PlayingTime + "===>EBM结束时间: " + AudioModel.PlayEndTime, Color.Green); ServerForm.SetManager("播放开始时间: " + AudioModel.PlayingTime + "===>播放结束时间: " + AudioModel.PlayEndTime, Color.Green); ServerForm.SetManager("等待播放" + AudioModel.PlayingContent, Color.Green); EBD ebd = GetEBD(AudioModel.XmlFilaPath); string AreaString = CombinationArea(); #region 未播放 if (DateTime.Compare(AudioModel.PlayingTime, DateTime.Now) > 0) { AudioPlayState = AudioMessage.AudioPlayState.NotPlay; lock (ServerForm.PlayBackObject) { ServerForm.PlayBack = ServerForm.PlaybackStateType.NotBroadcast; } string strSql = string.Format("update EBMInfo set EBMState = '{0}' where id='{1}'", "1", EBMInfoID); mainForm.dba.UpdateDbBySQL(strSql); Task.Factory.StartNew(() => { PlayStateInterface.NotPlay(TsCmd_ID, AudioModel.XmlFilaPath, "1"); ServerForm.SetManager("反馈未播放状态", Color.Green); }); } #endregion 未播放代码 //播放中 #region 播放中 while (true) { DateTime current = DateTime.Now; Thread.Sleep(1000); if (DateTime.Compare(current, AudioModel.PlayingTime) > 0)//当前时间大于播放开始时间 { ServerForm.SetManager("播放开始:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), Color.Green); lock (ServerForm.PlayBackObject) { ServerForm.PlayBack = ServerForm.PlaybackStateType.Playback; } AudioPlayState = AudioMessage.AudioPlayState.Playing; // MqSendOrder sendOrder = new MqSendOrder(); bool result = SendMQ.MqSendOrder.sendOrder.SendMq(ebd, type, ParamValue, TsCmd_ID, TsCmd_ValueID); string strSql = string.Format("update EBMInfo set EBMState = '{0}' where id='{1}'", "2", EBMInfoID); mainForm.dba.UpdateDbBySQL(strSql); Task.Factory.StartNew(() => { PlayStateInterface.Playing(TsCmd_ID, AudioModel.XmlFilaPath, "2", "播发中"); ServerForm.SetManager("反馈播发中状态", Color.Green); }); ServerForm.SetManager("播放中的反馈已发送", Color.Green); break; } } #endregion 播放中代码 //播放完成 #region 播放完 ServerForm.SetManager("进入等待播放完成流程", Color.Green); while (true) { Thread.Sleep(1000); // ServerForm.SetManager("未到结束时间在播放过程中:"+tmp.ToString(), Color.Green); if (DateTime.Compare(DateTime.Now, AudioModel.PlayEndTime) < 0)//结束时间大于当前时间 { string MediaSql = "select TsCmd_ID,TsCmd_ExCute from TsCmdStore where TsCmd_ID='" + TsCmd_ID + "'"; // MediaSql = "select top(1)TsCmd_ID,TsCmd_XmlFile from TsCmdStore where TsCmd_ValueID = '" + ebd.EBMStateRequest.EBM.EBMID + "' order by TsCmd_Date desc"; DataTable dtMedia = mainForm.dba.getQueryInfoBySQL(MediaSql); if (dtMedia != null && dtMedia.Rows.Count > 0) { if (dtMedia.Rows[0]["TsCmd_ExCute"].ToString().Contains("播放完毕")) { string strSql = string.Format("update EBMInfo set EBMState = '{0}' where id='{1}'", "3", EBMInfoID); mainForm.dba.UpdateDbBySQL(strSql); ServerForm.SetManager("播放结束", Color.Green); lock (ServerForm.PlayBackObject) { ServerForm.PlayBack = ServerForm.PlaybackStateType.PlayOut; } AudioPlayState = AudioMessage.AudioPlayState.PlayingOver; Task.Factory.StartNew(() => { PlayStateInterface.PlayOver(TsCmd_ID, AudioModel.XmlFilaPath, "3", "开机/运行中"); ServerForm.SetManager("反馈播放完成状态", Color.Green); }); if (SingletonInfo.GetInstance().DicTsCmd_ID.ContainsKey(AreaString)) { SingletonInfo.GetInstance().DicTsCmd_ID.Remove(AreaString); } if (SingletonInfo.GetInstance().DicPlayingThread.ContainsKey(AudioModel.AeraCodeReal)) { SingletonInfo.GetInstance().DicPlayingThread.Remove(AudioModel.AeraCodeReal); // MessageBox.Show("文件播放完了->删除" + AudioModel.AeraCodeReal + "的字典值"); } break; } } } else { lock (ServerForm.PlayBackObject) { ServerForm.PlayBack = ServerForm.PlaybackStateType.PlayOut; } ServerForm.SetManager("播放结束", Color.Green); Task.Factory.StartNew(() => { PlayStateInterface.PlayOver(TsCmd_ID, AudioModel.XmlFilaPath, "3", "开机/运行中"); ServerForm.SetManager("反馈播放完成状态", Color.Green); }); string strSqlupdateEBMInfo = string.Format("update EBMInfo set EBMState = '{0}' where id='{1}'", "3", EBMInfoID); mainForm.dba.UpdateDbBySQL(strSqlupdateEBMInfo); //没播放完 但是文件时间到了 string strSql = ""; if (type == 1) { strSql = string.Format("update PLAYRECORD set PR_REC_STATUS = '{0}' where PR_SourceID='{1}'", "删除", TsCmd_ID); mainForm.dba.UpdateDbBySQL(strSql); string strSqlTsCmdStore = string.Format("update TsCmdStore set TsCmd_ExCute = '{0}' where TsCmd_ID='{1}'", "播放完毕", TsCmd_ID); mainForm.dba.UpdateDbBySQL(strSqlTsCmdStore); } else if (type == 2) { strSql = string.Format("update PLAYRECORD set PR_REC_STATUS = '{0}' ", "删除"); mainForm.dba.UpdateDbBySQL(strSql); } if (SingletonInfo.GetInstance().DicTsCmd_ID.ContainsKey(AreaString)) { SingletonInfo.GetInstance().DicTsCmd_ID.Remove(AreaString); } if (SingletonInfo.GetInstance().DicPlayingThread.ContainsKey(AudioModel.AeraCodeReal)) { SingletonInfo.GetInstance().DicPlayingThread.Remove(AudioModel.AeraCodeReal); // MessageBox.Show("播放时间到了->删除"+ AudioModel.AeraCodeReal+"的字典值"); } break; } } #endregion 播放完代码 GC.Collect(); return(true); } catch (Exception ex) { AudioPlayState = AudioMessage.AudioPlayState.error; // MessageBox.Show(ex.Message + ex.StackTrace); } return(false); }
public override void OnPost(HttpRequest request, HttpResponse response, string SavePath, string FileName) { string UnpackTarPath = ""; string FileSavePath = SavePath + "\\" + FileName; UnpackTarPath = sUnTarPath + "\\" + FileName.Split('.')[0]; if (File.Exists(FileSavePath)) { if (!Directory.Exists(UnpackTarPath)) { Directory.CreateDirectory(UnpackTarPath); } TarHelper tar = new TarHelper(); tar.DeleteFolder(UnpackTarPath); tar.UnpackTarFiles(FileSavePath, UnpackTarPath); string[] xmlfilenames = Directory.GetFiles(UnpackTarPath, "*.xml");//从解压XML文件夹下获取解压的XML文件名 string sTmpFile = string.Empty; string sAnalysisFileName = ""; string sSignFileName = ""; for (int i = 0; i < xmlfilenames.Length; i++) { sTmpFile = Path.GetFileName(xmlfilenames[i]); if (sTmpFile.ToUpper().IndexOf("EBDB") > -1 && sTmpFile.ToUpper().IndexOf("EBDS_EBDB") < 0) { sAnalysisFileName = xmlfilenames[i]; } //else if (sTmpFile.ToUpper().IndexOf("EBDS_EBDB") > -1)//签名文件 //{ // sSignFileName = xmlfilenames[i];//签名文件 //} } EBD ebd = null; try { using (FileStream fstream = new FileStream(sAnalysisFileName, FileMode.Open)) { StreamReader sr = new StreamReader(fstream, System.Text.Encoding.UTF8); String xmlInfo = sr.ReadToEnd(); xmlInfo = xmlInfo.Replace("xmlns:xs", "xmlns"); sr.Close(); xmlInfo = XmlSerialize.ReplaceLowOrderASCIICharacters(xmlInfo); xmlInfo = XmlSerialize.GetLowOrderASCIICharacters(xmlInfo); ebd = XmlSerialize.DeserializeXML <EBD>(xmlInfo); } IniFiles serverini = new IniFiles(StartupPath + "\\Config.ini"); CombineXML cx = new CombineXML(serverini); string strHBRONO = serverini.ReadValue("INFOSET", "HBRONO"); //实体编号 Random rd = new Random(); // string fName = "10" + rp.sHBRONO + "00000000000" + rd.Next(100, 999).ToString(); string fName = "10" + strHBRONO + "0000000000000" + rd.Next(100, 999).ToString(); XmlDocument xmlDoc = cx.CombineResponse(ebd, "EBDResponse", fName); string xmlSignFileName = "\\EBDB_" + fName + ".xml"; string BeXmlFilesPath = serverini.ReadValue("FolderSet", "BeXmlFileMakeFolder"); tar.DeleteFolder(BeXmlFilesPath);//新增20180816 cx.CreateXML(xmlDoc, BeXmlFilesPath + xmlSignFileName); //进行签名 string m_UsbPwsSupport = serverini.ReadValue("USBPSW", "USBPSWSUPPART"); Attestation Attestation = new Attestation(); // TarHelper tar = new TarHelper(); // ServerForm.mainFrm.AudioGenerateSignatureFile(ServerForm.strBeSendFileMakeFolder,"EBDI",fName); // Attestation.GenerateSignatureFile(m_UsbPwsSupport, SendFilePath, fName, StartupPath + "\\Config.ini"); 测试注释 20180814 tar.CreatTar(serverini.ReadValue("FolderSet", "BeXmlFileMakeFolder"), SendFilePath, fName);//使用新TAR string sSendTarName = SendFilePath + "\\EBDT_" + fName + ".tar"; response.SendNew(sSendTarName); } catch (Exception ex) { HttpModel.Log.Instance.LogWrite("异常:" + ex.Message); } } }
private bool sendEBMStateResponse(EBD ebdsr, string BrdStateDesc, string BrdStateCode) { //*反馈 #region 先删除解压缩包中的文件 bool flag = false; foreach (string xmlfiledel in Directory.GetFileSystemEntries(HttpServerFrom.sEBMStateResponsePath)) { if (File.Exists(xmlfiledel)) { FileInfo fi = new FileInfo(xmlfiledel); if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1) { fi.Attributes = FileAttributes.Normal; } File.Delete(xmlfiledel);//直接删除其中的文件 } } #endregion End XmlDocument xmlHeartDoc = new XmlDocument(); responseXML rHeart = new responseXML(); rHeart.SourceAreaCode = HttpServerFrom.strSourceAreaCode; rHeart.SourceType = HttpServerFrom.strSourceType; rHeart.SourceName = HttpServerFrom.strSourceName; rHeart.SourceID = HttpServerFrom.strSourceID; rHeart.sHBRONO = HttpServerFrom.strHBRONO; //try //{ //.HeartBeatResponse(); // rState.EBMStateResponse(ebd); Random rd = new Random(); string fName = HttpServerFrom.ebd.EBDID.ToString(); Random rdState = new Random(); string frdStateName = "10" + rHeart.sHBRONO + GetSequenceCodes(); string xmlEBMStateFileName = "\\EBDB_" + frdStateName + ".xml"; // string xmlEBMStateFileName = "\\EBDB_" + ebd.EBDID.ToString() + ".xml"; // string xmlSignFileName = "\\EBDI_" + ebd.EBDID.ToString() + ".xml"; //xmlHeartDoc = rHeart.EBMStateResponse(ebd, "EBMStateResponse", fName, BrdStateDesc, BrdStateCode); xmlHeartDoc = rHeart.EBMStateRequestResponse(ebdsr, fName, BrdStateDesc, BrdStateCode); //string xmlStateFileName = "\\EBDB_000000000001.xml"; TarXml.AudioResponseXml.CreateXML(xmlHeartDoc, HttpServerFrom.sEBMStateResponsePath + xmlEBMStateFileName); // ServerForm.mainFrm.AudioGenerateSignatureFile(sEBMStateResponsePath, "EBDI",ebd.EBDID.ToString()); HttpServerFrom.mainFrm.GenerateSignatureFile(HttpServerFrom.sEBMStateResponsePath, frdStateName); //string pp= frdStateName HttpServerFrom.tar.CreatTar(HttpServerFrom.sEBMStateResponsePath, HttpServerFrom.sSendTarPath, frdStateName);// "HB000000000001");//使用新TAR //} //catch (Exception ec) //{ // Log.Instance.LogWrite("应急消息播发状态反馈组包错误:" + ec.Message); //} //string sHeartBeatTarName = sSendTarPath + "\\" + "HB000000000001" + ".tar"; string sHeartBeatTarName = HttpServerFrom.sSendTarPath + "\\EBDT_" + frdStateName + ".tar"; try { string result = HttpSendFile.UploadFilesByPost(HttpServerFrom.sZJPostUrlAddress, sHeartBeatTarName); if (result != "0") { return(true); } } catch (Exception w) { Log.Instance.LogWrite("应急消息播发状态反馈发送平台错误:" + w.Message); } return(flag); }
/// <summary> /// 播放 /// </summary> /// <returns></returns> public bool AudioPlay(int type, string ParamValue, string TsCmd_ID, string TsCmd_ValueID) { try { HttpServerFrom.SetManager("EBM开始时间: " + AudioModel.PlayingTime + "===>EBM结束时间: " + AudioModel.PlayEndTime, Color.Green); HttpServerFrom.SetManager("播放开始时间: " + AudioModel.PlayingTime + "===>播放结束时间: " + AudioModel.PlayEndTime, Color.Green); HttpServerFrom.SetManager("等待播放" + AudioModel.PlayingContent, Color.Green); EBD ebd = GetEBD(AudioModel.XmlFilaPath); string AreaString = CombinationArea(); ///未播放 AudioPlayState = AudioMessage.AudioPlayState.NotPlay; lock (HttpServerFrom.PlayBackObject) { HttpServerFrom.PlayBack = HttpServerFrom.PlaybackStateType.NotBroadcast; } #region 未播放 PlayStateInterface.NotPlay(TsCmd_ID, AudioModel.XmlFilaPath, "未播放", "1"); #endregion 未播放代码 //播放中 #region 播放中 while (true) { DateTime current = DateTime.Now; Thread.Sleep(500); if (DateTime.Compare(current, AudioModel.PlayingTime) > 0) { HttpServerFrom.SetManager("播放开始", Color.Green); lock (HttpServerFrom.PlayBackObject) { HttpServerFrom.PlayBack = HttpServerFrom.PlaybackStateType.Playback; } AudioPlayState = AudioMessage.AudioPlayState.Playing; bool result = SendMQ.MqSendOrder.sendOrder.SendMq(ebd, type, ParamValue, TsCmd_ID, TsCmd_ValueID); PlayStateInterface.Playing(TsCmd_ID, AudioModel.XmlFilaPath, "播放中", "2", "播发中"); break; } } #endregion 播放中代码 //播放完成 #region 播放完 while (true) { Thread.Sleep(500); if (DateTime.Compare(DateTime.Now, AudioModel.PlayEndTime) < 0)//结束时间大于当前时间 { string MediaSql = "select TsCmd_ID,TsCmd_ExCute from TsCmdStore where TsCmd_ID='" + TsCmd_ID + "'"; DataTable dtMedia = mainForm.dba.getQueryInfoBySQL(MediaSql); if (dtMedia.Rows[0]["TsCmd_ExCute"].ToString().Contains("播放完毕")) { HttpServerFrom.SetManager("播放结束", Color.Green); lock (HttpServerFrom.PlayBackObject) { HttpServerFrom.PlayBack = HttpServerFrom.PlaybackStateType.PlayOut; } AudioPlayState = AudioMessage.AudioPlayState.PlayingOver; PlayStateInterface.PlayOver(TsCmd_ID, AudioModel.XmlFilaPath, "播放完成", "3", "开机/运行中"); SingletonInfo.GetInstance().DicTsCmd_ID.Remove(AreaString); break; } } else { lock (HttpServerFrom.PlayBackObject) { HttpServerFrom.PlayBack = HttpServerFrom.PlaybackStateType.PlayOut; } HttpServerFrom.SetManager("播放结束", Color.Green); //没播放完 但是文件时间到了 string strSql = ""; if (type == 1) { strSql = string.Format("update PLAYRECORD set PR_REC_STATUS = '{0}' where PR_SourceID='{1}'", "删除", TsCmd_ID); mainForm.dba.UpdateDbBySQL(strSql); string strSqlTsCmdStore = string.Format("update TsCmdStore set TsCmd_ExCute = '{0}' where TsCmd_ID='{1}'", "播放完毕", TsCmd_ID); mainForm.dba.UpdateDbBySQL(strSqlTsCmdStore); } else if (type == 2) { strSql = string.Format("update PLAYRECORD set PR_REC_STATUS = '{0}' ", "删除"); mainForm.dba.UpdateDbBySQL(strSql); } SingletonInfo.GetInstance().DicTsCmd_ID.Remove(AreaString); break; } } #endregion 播放完代码 GC.Collect(); return(true); } catch (Exception ex) { AudioPlayState = AudioMessage.AudioPlayState.error; Log.Instance.LogWrite(ex.Message); } return(false); }