/// <summary> /// build message from raw data /// </summary> /// <param name="rawdata"></param> public PackedMessage(byte[] rawdata) : this() { if (FidonetHelpers.GetUShort(rawdata, 0) != 2) { return; } orig.node = FidonetHelpers.GetUShort(rawdata, 2); dest.node = FidonetHelpers.GetUShort(rawdata, 4); orig.net = FidonetHelpers.GetUShort(rawdata, 6); dest.net = FidonetHelpers.GetUShort(rawdata, 8); attr = new MsgAttributes(FidonetHelpers.GetUShort(rawdata, 10)); Cost = FidonetHelpers.GetUShort(rawdata, 12); Timestamp = FidonetHelpers.BytesToString(rawdata, 14, 20); int ptr = 34; DestUser = FidonetHelpers.NullTerminatedBytesToString(rawdata, ptr); ptr += DestUser.Length + 1; FromUser = FidonetHelpers.NullTerminatedBytesToString(rawdata, ptr); ptr += FromUser.Length + 1; Subject = FidonetHelpers.NullTerminatedBytesToString(rawdata, ptr); ptr += Subject.Length + 1; Text = new MsgText(FidonetHelpers.NullTerminatedBytesToString(rawdata, ptr)); }
/// <summary> /// Empty constructor /// </summary> public PackedMessage() { orig = new FidoAddress(); dest = new FidoAddress(); attr = new MsgAttributes(); Cost = 0; FromUser = string.Empty; DestUser = string.Empty; Text = new MsgText(); Timestamp = FidonetHelpers.FidoFormatDatetime(DateTime.Now); }