/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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); }
/// <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; }