private bool UpdateState() { bool flag = false; XmlDocument xmlHeartDoc = new XmlDocument(); responseXML rHeart = new responseXML(); string MediaSql = ""; ServerForm.DeleteFolder(ServerForm.sHeartSourceFilePath);//删除原有XML发送文件的文件夹下的XML string frdStateName = ""; List <Device> lDev = new List <Device>(); try { lDev = GetEBRDTStateFromDataBase("Full"); frdStateName = "10" + SingletonInfo.GetInstance().CurrentResourcecode + BBSHelper.GetSequenceCodes(); string xmlEBMStateFileName = "\\EBDB_" + frdStateName + ".xml"; xmlHeartDoc = rHeart.DeviceStateResponse(lDev, frdStateName); TarXml.AudioResponseXml.CreateXML(xmlHeartDoc, ServerForm.sHeartSourceFilePath + xmlEBMStateFileName); ServerForm.mainFrm.GenerateSignatureFile(ServerForm.sHeartSourceFilePath, frdStateName); ServerForm.tar.CreatTar(ServerForm.sHeartSourceFilePath, ServerForm.sSendTarPath, frdStateName);//使用新TAR string sHeartBeatTarName = ServerForm.sSendTarPath + "\\" + "EBDT_" + frdStateName + ".tar"; string result = SendTar.SendTarOrder.sendHelper.AddPostQueue(SingletonInfo.GetInstance().SendTarAddress, sHeartBeatTarName); if (result == "1") { flag = true; } } catch (Exception ex) { throw new Exception("终端状态变更:" + ex.Message); } return(flag); }
/// <summary> /// 通用反馈 收到tar就回 /// </summary> private void CurrencyTarBack(EBD ebdb, string value) { try { ServerForm.DeleteFolder(ServerForm.strBeSendFileMakeFolder);//删除原有XML发送文件的文件夹下的XML XmlDocument xmlDoc = new XmlDocument(); responseXML rp = new responseXML(); //rp.SourceAreaCode = ServerForm.strSourceAreaCode; //rp.SourceType = ServerForm.strSourceType; //rp.SourceName = ServerForm.strSourceName; //rp.SourceID = ServerForm.strSourceID; //rp.sHBRONO = SingletonInfo.GetInstance().CurrentResourcecode; string fName = "10" + SingletonInfo.GetInstance().CurrentResourcecode + BBSHelper.GetSequenceCodes(); xmlDoc = rp.EBDResponse(ebdb, "EBDResponse", fName, value); string xmlSignFileName = "\\EBDB_" + fName + ".xml"; CreateXML(xmlDoc, ServerForm.strBeSendFileMakeFolder + xmlSignFileName); //进行签名 ServerForm.mainFrm.GenerateSignatureFile(ServerForm.strBeSendFileMakeFolder, fName); ServerForm.tar.CreatTar(ServerForm.strBeSendFileMakeFolder, ServerForm.sSendTarPath, fName);//使用新TAR string sSendTarName = ServerForm.sSendTarPath + "\\EBDT_" + fName + ".tar"; FileStream fsSnd = new FileStream(sSendTarName, FileMode.Open, FileAccess.Read); BinaryReader br = new BinaryReader(fsSnd); //时间戳 int datalen = (int)fsSnd.Length + 2; int bufferLength = 4096; long offset = 0; //开始上传时间 writeHeader(datalen.ToString(), "EBDT_" + fName + ".tar"); byte[] buffer = new byte[4096]; //已上传的字节数 int size = br.Read(buffer, 0, bufferLength); while (size > 0) { outputStream.Write(buffer, 0, size); offset += size; size = br.Read(buffer, 0, bufferLength); } outputStream.Write(Encoding.UTF8.GetBytes(sEndLine), 0, 2); outputStream.Flush();//提交写入的数据 fsSnd.Close(); } catch (Exception esb) { Console.WriteLine("401:" + esb.Message); } }