コード例 #1
0
        /// <summary>
        /// <para>MESSAGEREAD</para>
        /// </summary>
        /// <remarks>
        /// <para>Reference: BDK, Appendix 2, p. 11.</para>
        /// </remarks>
        /// <param name="remoteInboxNo">Remote Inbox number</param>
        /// <param name="localInboxNo">Local Inbox number</param>
        /// <param name="remove">Remove? True: clears message from Remote Inbox</param>
        /// <returns>Message data</returns>
        public string MessageRead(NxtMailbox2 remoteInboxNo, NxtMailbox localInboxNo, bool remove)
        {
            byte[] request = new byte[] {
                0x00,
                (byte)NxtCommand.MessageRead,
                (byte)remoteInboxNo,
                (byte)localInboxNo,
                (byte)(remove ? 0xFF : 0x00)
            };

            byte[] reply = Send(request);

            if (reply == null)
            {
                return(null);
            }

            byte localInboxNoOut = reply[3];  // TODO: Validate on this?

            byte messageSize = reply[4];

            string message = Encoding.ASCII.GetString(reply, 5, messageSize).TrimEnd('\0');

            return(message);
        }
コード例 #2
0
        /// <summary>
        /// <para>MESSAGEWRITE</para>
        /// </summary>
        /// <remarks>
        /// <para>Reference: BDK, Appendix 2, p. 9.</para>
        /// </remarks>
        /// <param name="inBox">Inbox number</param>
        /// <param name="messageData">Message data</param>
        public void MessageWrite(NxtMailbox inBox, byte[] messageData)
        {
            int messageSize = messageData.Length + 1;  // Add 1 for the 0-byte at the end.

            if (messageSize > 59)
            {
                throw new ArgumentException("Message may not exceed 59 characters.");
            }

            byte[] request = new byte[4 + messageSize];
            request[0] = (byte)(ReplyRequired ? 0x00 : 0x80);
            request[1] = (byte)NxtCommand.MessageWrite;
            request[2] = (byte)inBox;
            request[3] = (byte)messageSize;
            messageData.CopyTo(request, 4);
            request[request.Length - 1] = 0;

            Send(request);
        }
コード例 #3
0
        /// <summary>
        /// <para>MESSAGEWRITE</para>
        /// </summary>
        /// <remarks>
        /// <para>Reference: BDK, Appendix 2, p. 9.</para>
        /// </remarks>
        /// <param name="inBox">Inbox number</param>
        /// <param name="messageData">Message data</param>
        public void MessageWrite(NxtMailbox inBox, string messageData)
        {
            if (!messageData.EndsWith("\0"))
            {
                messageData += '\0';
            }

            int messageSize = messageData.Length;

            if (messageSize > 59)
            {
                throw new ArgumentException("Message may not exceed 59 characters.");
            }

            byte[] request = new byte[4 + messageSize];
            request[0] = (byte)(ReplyRequired ? 0x00 : 0x80);
            request[1] = (byte)NxtCommand.MessageWrite;
            request[2] = (byte)inBox;
            request[3] = (byte)messageSize;
            Encoding.ASCII.GetBytes(messageData).CopyTo(request, 4);

            Send(request);
        }
コード例 #4
0
        /// <summary>
        /// <para>MESSAGEWRITE</para>
        /// </summary>
        /// <remarks>
        /// <para>Reference: BDK, Appendix 2, p. 9.</para>
        /// </remarks>
        /// <param name="inBox">Inbox number</param>
        /// <param name="messageData">Message data</param>
        public void MessageWrite(NxtMailbox inBox, byte[] messageData)
        {
            int messageSize = messageData.Length + 1;  // Add 1 for the 0-byte at the end.
            if (messageSize > 59)
                throw new ArgumentException("Message may not exceed 59 characters.");

            byte[] request = new byte[4 + messageSize];
            request[0] = (byte)(ReplyRequired ? 0x00 : 0x80);
            request[1] = (byte)NxtCommand.MessageWrite;
            request[2] = (byte)inBox;
            request[3] = (byte)messageSize;
            messageData.CopyTo(request, 4);
            request[request.Length - 1] = 0;

            Send(request);
        }
コード例 #5
0
        /// <summary>
        /// <para>MESSAGEWRITE</para>
        /// </summary>
        /// <remarks>
        /// <para>Reference: BDK, Appendix 2, p. 9.</para>
        /// </remarks>
        /// <param name="inBox">Inbox number</param>
        /// <param name="messageData">Message data</param>
        public void MessageWrite(NxtMailbox inBox, string messageData)
        {
            if (!messageData.EndsWith("\0"))
                messageData += '\0';

            int messageSize = messageData.Length;
            if (messageSize > 59)
                throw new ArgumentException("Message may not exceed 59 characters.");

            byte[] request = new byte[4 + messageSize];
            request[0] = (byte)(ReplyRequired ? 0x00 : 0x80);
            request[1] = (byte)NxtCommand.MessageWrite;
            request[2] = (byte)inBox;
            request[3] = (byte)messageSize;
            Encoding.ASCII.GetBytes(messageData).CopyTo(request, 4);

            Send(request);
        }
コード例 #6
0
        /// <summary>
        /// <para>MESSAGEREAD</para>
        /// </summary>
        /// <remarks>
        /// <para>Reference: BDK, Appendix 2, p. 11.</para>
        /// </remarks>
        /// <param name="remoteInboxNo">Remote Inbox number</param>
        /// <param name="localInboxNo">Local Inbox number</param>
        /// <param name="remove">Remove? True: clears message from Remote Inbox</param>
        /// <returns>Message data</returns>
        public string MessageRead(NxtMailbox2 remoteInboxNo, NxtMailbox localInboxNo, bool remove)
        {
            byte[] request = new byte[] {
                0x00,
                (byte) NxtCommand.MessageRead,
                (byte) remoteInboxNo,
                (byte) localInboxNo,
                (byte) (remove ? 0xFF : 0x00)
            };

            byte[] reply = Send(request);

            if (reply == null) return null;

            byte localInboxNoOut = reply[3];  // TODO: Validate on this?

            byte messageSize = reply[4];

            string message = Encoding.ASCII.GetString(reply, 5, messageSize).TrimEnd('\0');
            return message;
        }