Пример #1
0
        /// <summary>
        /// The channel wrote message.
        /// </summary>
        /// <param name="clientId">
        /// The client id.
        /// </param>
        /// <param name="ioId">
        /// The io id.
        /// </param>
        /// <param name="dataType">
        /// The data type.
        /// </param>
        /// <param name="dataCount">
        /// The data count.
        /// </param>
        /// <param name="status">
        /// The status.
        /// </param>
        /// <returns>
        /// </returns>
        internal byte[] channelWroteMessage(
            int clientId, int ioId, EpicsType dataType, int dataCount, EpicsTransitionStatus status)
        {
            var mem    = new MemoryStream();
            var writer = new BinaryWriter(mem);

            mem.Capacity = 16;

            writer.Write(NetworkByteConverter.ToByteArray(CommandID.CA_PROTO_WRITE_NOTIFY));
            writer.Write(new byte[2]);
            writer.Write(NetworkByteConverter.ToByteArray((UInt16)dataType));
            writer.Write(NetworkByteConverter.ToByteArray((UInt16)dataCount));
            writer.Write(NetworkByteConverter.ToByteArray((UInt32)status));
            writer.Write(NetworkByteConverter.ToByteArray((UInt32)ioId));

            var buffer = mem.GetBuffer();

            writer.Close();
            mem.Dispose();

            return(buffer);
        }
        public byte[] ErrorMessage(int clientId, EpicsTransitionStatus status, string errorMessage, byte[] header)
        {
            MemoryStream mem    = new MemoryStream();
            BinaryWriter writer = new BinaryWriter(mem);

            mem.Capacity = 16 + 16 + errorMessage.Length + 1;

            writer.Write(((UInt16)CommandID.CA_PROTO_ERROR).ToByteArray());
            writer.Write((errorMessage.Length + 16).ToByteArray());
            writer.Write(new byte[4]);
            writer.Write(((UInt32)clientId).ToByteArray());
            writer.Write(((UInt32)status).ToByteArray());

            //emptyheader
            writer.Write(header);
            writer.Write(errorMessage.ToByteArray());

            byte[] buffer = mem.ToArray();
            writer.Close();
            mem.Dispose();

            return(buffer);
        }
Пример #3
0
        /// <summary>
        /// The error message.
        /// </summary>
        /// <param name="clientId">
        /// The client id.
        /// </param>
        /// <param name="status">
        /// The status.
        /// </param>
        /// <param name="errorMessage">
        /// The error message.
        /// </param>
        /// <param name="header">
        /// The header.
        /// </param>
        /// <returns>
        /// </returns>
        internal byte[] errorMessage(int clientId, EpicsTransitionStatus status, string errorMessage, byte[] header)
        {
            var mem    = new MemoryStream();
            var writer = new BinaryWriter(mem);

            mem.Capacity = 16 + 16 + errorMessage.Length + 1;

            writer.Write(NetworkByteConverter.ToByteArray(CommandID.CA_PROTO_ERROR));
            writer.Write(NetworkByteConverter.ToByteArray(errorMessage.Length + 16));
            writer.Write(new byte[4]);
            writer.Write(NetworkByteConverter.ToByteArray((UInt32)clientId));
            writer.Write(NetworkByteConverter.ToByteArray((UInt32)status));

            // emptyheader
            writer.Write(header);
            writer.Write(NetworkByteConverter.ToByteArray(errorMessage));

            var buffer = mem.GetBuffer();

            writer.Close();
            mem.Dispose();

            return(buffer);
        }
        internal byte[] ChannelWroteMessage(int clientId, int ioId, EpicsType dataType, int dataCount, EpicsTransitionStatus status)
        {
            MemoryStream mem    = new MemoryStream();
            BinaryWriter writer = new BinaryWriter(mem);

            mem.Capacity = 16;

            writer.Write(((ushort)CommandID.CA_PROTO_WRITE_NOTIFY).ToByteArray());
            writer.Write(new byte[2]);
            writer.Write(((UInt16)dataType).ToByteArray());
            writer.Write(((UInt16)dataCount).ToByteArray());
            writer.Write(((UInt32)status).ToByteArray());
            writer.Write(((UInt32)ioId).ToByteArray());

            byte[] buffer = mem.GetBuffer();
            writer.Close();
            mem.Dispose();

            return(buffer);
        }
Пример #5
0
		/// <summary>
		/// The error message.
		/// </summary>
		/// <param name="clientId">
		/// The client id.
		/// </param>
		/// <param name="status">
		/// The status.
		/// </param>
		/// <param name="errorMessage">
		/// The error message.
		/// </param>
		/// <param name="header">
		/// The header.
		/// </param>
		/// <returns>
		/// </returns>
		internal byte[] errorMessage(int clientId, EpicsTransitionStatus status, string errorMessage, byte[] header)
		{
			var mem = new MemoryStream();
			var writer = new BinaryWriter(mem);

			mem.Capacity = 16 + 16 + errorMessage.Length + 1;

			writer.Write(NetworkByteConverter.ToByteArray(CommandID.CA_PROTO_ERROR));
			writer.Write(NetworkByteConverter.ToByteArray(errorMessage.Length + 16));
			writer.Write(new byte[4]);
			writer.Write(NetworkByteConverter.ToByteArray((UInt32)clientId));
			writer.Write(NetworkByteConverter.ToByteArray((UInt32)status));

			// emptyheader
			writer.Write(header);
			writer.Write(NetworkByteConverter.ToByteArray(errorMessage));

			var buffer = mem.GetBuffer();
			writer.Close();
			mem.Dispose();

			return buffer;
		}
Пример #6
0
		/// <summary>
		/// The channel wrote message.
		/// </summary>
		/// <param name="clientId">
		/// The client id.
		/// </param>
		/// <param name="ioId">
		/// The io id.
		/// </param>
		/// <param name="dataType">
		/// The data type.
		/// </param>
		/// <param name="dataCount">
		/// The data count.
		/// </param>
		/// <param name="status">
		/// The status.
		/// </param>
		/// <returns>
		/// </returns>
		internal byte[] channelWroteMessage(
			int clientId, int ioId, EpicsType dataType, int dataCount, EpicsTransitionStatus status)
		{
			var mem = new MemoryStream();
			var writer = new BinaryWriter(mem);

			mem.Capacity = 16;

			writer.Write(NetworkByteConverter.ToByteArray(CommandID.CA_PROTO_WRITE_NOTIFY));
			writer.Write(new byte[2]);
			writer.Write(NetworkByteConverter.ToByteArray((UInt16)dataType));
			writer.Write(NetworkByteConverter.ToByteArray((UInt16)dataCount));
			writer.Write(NetworkByteConverter.ToByteArray((UInt32)status));
			writer.Write(NetworkByteConverter.ToByteArray((UInt32)ioId));

			var buffer = mem.GetBuffer();
			writer.Close();
			mem.Dispose();

			return buffer;
		}
        internal byte[] ChannelWroteMessage(int clientId, int ioId, EpicsType dataType, int dataCount, EpicsTransitionStatus status)
        {
            MemoryStream mem = new MemoryStream();
            BinaryWriter writer = new BinaryWriter(mem);

            mem.Capacity = 16;

            writer.Write(((ushort)CommandID.CA_PROTO_WRITE_NOTIFY).ToByteArray());
            writer.Write(new byte[2]);
            writer.Write(((UInt16)dataType).ToByteArray());
            writer.Write(((UInt16)dataCount).ToByteArray());
            writer.Write(((UInt32)status).ToByteArray());
            writer.Write(((UInt32)ioId).ToByteArray());

            byte[] buffer = mem.GetBuffer();
            writer.Close();
            mem.Dispose();

            return buffer;
        }
        public byte[] ErrorMessage(int clientId, EpicsTransitionStatus status, string errorMessage, byte[] header)
        {
            MemoryStream mem = new MemoryStream();
            BinaryWriter writer = new BinaryWriter(mem);

            mem.Capacity = 16 + 16 + errorMessage.Length + 1;

            writer.Write(((UInt16)CommandID.CA_PROTO_ERROR).ToByteArray());
            writer.Write((errorMessage.Length + 16).ToByteArray());
            writer.Write(new byte[4]);
            writer.Write(((UInt32)clientId).ToByteArray());
            writer.Write(((UInt32)status).ToByteArray());

            //emptyheader
            writer.Write(header);
            writer.Write(errorMessage.ToByteArray());

            byte[] buffer = mem.ToArray();
            writer.Close();
            mem.Dispose();

            return buffer;
        }
Пример #9
0
 /// <summary>
 /// The send monitor change.
 /// </summary>
 /// <param name="subscriptionId">
 /// The subscription id.
 /// </param>
 /// <param name="dataType">
 /// The data type.
 /// </param>
 /// <param name="dataCount">
 /// The data count.
 /// </param>
 /// <param name="status">
 /// The status.
 /// </param>
 /// <param name="data">
 /// The data.
 /// </param>
 internal void sendMonitorChange(
     int subscriptionId, EpicsType dataType, int dataCount, EpicsTransitionStatus status, byte[] data)
 {
     this.Conn.Send(this.Server.Codec.monitorChangeMessage(subscriptionId, this.ClientId, dataType, dataCount, data));
 }
Пример #10
0
		/// <summary>
		/// The send monitor change.
		/// </summary>
		/// <param name="subscriptionId">
		/// The subscription id.
		/// </param>
		/// <param name="dataType">
		/// The data type.
		/// </param>
		/// <param name="dataCount">
		/// The data count.
		/// </param>
		/// <param name="status">
		/// The status.
		/// </param>
		/// <param name="data">
		/// The data.
		/// </param>
		internal void sendMonitorChange(
			int subscriptionId, EpicsType dataType, int dataCount, EpicsTransitionStatus status, byte[] data)
		{
			this.Conn.Send(this.Server.Codec.monitorChangeMessage(subscriptionId, this.ClientId, dataType, dataCount, data));
		}