public static IBM_ModePage_3D?DecodeIBMModePage_3D(byte[] pageResponse) { if ((pageResponse?[0] &0x40) == 0x40) { return(null); } if ((pageResponse?[0] &0x3F) != 0x3D) { return(null); } if (pageResponse[1] + 2 != pageResponse.Length) { return(null); } if (pageResponse.Length != 5) { return(null); } IBM_ModePage_3D decoded = new IBM_ModePage_3D(); decoded.PS |= (pageResponse[0] & 0x80) == 0x80; decoded.NumberOfWraps = (ushort)((pageResponse[3] << 8) + pageResponse[4]); return(decoded); }
public static string PrettifyIBMModePage_3D(IBM_ModePage_3D?modePage) { if (!modePage.HasValue) { return(null); } IBM_ModePage_3D page = modePage.Value; StringBuilder sb = new StringBuilder(); sb.AppendLine("IBM LEOT Mode Page:"); if (page.PS) { sb.AppendLine("\tParameters can be saved"); } sb.AppendFormat("\t{0} wraps", page.NumberOfWraps).AppendLine(); return(sb.ToString()); }