internal static byte[] BuildAdsBuffer(ITcAdsHeader adsHeader, byte[] adsData) { byte[] buffer = null; if (adsHeader != null) { int num = Marshal.SizeOf(adsHeader); buffer = (adsData == null) ? new byte[num] : new byte[num + adsData.Length]; BinaryWriter writer = new BinaryWriter(new MemoryStream(buffer)); adsHeader.WriteToBuffer(writer); if (adsData != null) { writer.Write(adsData); } } return(buffer); }
private AdsErrorCode AdsResponse(AmsAddress rAddr, uint invokeId, ushort serviceId, uint cbLength, ITcAdsHeader adsHeader, byte[] adsData) { TcAmsHeader amsHeader = new TcAmsHeader(rAddr, this.Address, serviceId, 5, ((uint)Marshal.SizeOf(adsHeader)) + cbLength, 0, invokeId); return(this._amsServer.Send(new TcAmsCommand(amsHeader, TcAdsParser.BuildAdsBuffer(adsHeader, adsData)))); }
private AdsErrorCode AdsRequest(AmsAddress rAddr, uint invokeId, ushort serviceId, uint cbLength, ITcAdsHeader adsHeader, byte[] adsData) { uint num = 0; if (adsHeader != null) { num = (uint)Marshal.SizeOf(adsHeader); } TcAmsHeader amsHeader = new TcAmsHeader(rAddr, this.Address, serviceId, 4, num + cbLength, 0, invokeId); return(this._amsServer.Send(new TcAmsCommand(amsHeader, TcAdsParser.BuildAdsBuffer(adsHeader, adsData)))); }