using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Parser.BinaryParser.Util; namespace WayneChina_IcCardReader_SinoChem.MessageEntity.Outgoing { public class DisplayRequest : IcCardReaderMessageBase { /// /// /// /// max 64 bytes ASCII chars. less than 64 will auto padding right with space. the `format control chars` are device dependency, pls refer device spec. /// 西文ASCII / 中文GB码,中文码的第一字节必须是在奇数位上 /// the expecting time that the device will keep this text on screen for how long, by second /// 0 indicates display forever, and during this time, all keyboard event will be routed and need to be handled by FC as well public DisplayRequest(byte[] textWithFormat, int howLongToStayOnScreen) { if (textWithFormat.Length > 64) throw new ArgumentOutOfRangeException("textWithFormat length must <=64"); if (howLongToStayOnScreen > 65536) throw new ArgumentOutOfRangeException("howLongToStayOnScreen must <=65536"); base.RawData = new List(); base.RawData.Add(0x03); base.RawData.AddRange(howLongToStayOnScreen.GetBCDBytes(2)); var displayData = textWithFormat; base.RawData.AddRange(displayData); } } }