Beispiel #1
0
        private static byte[] FormatMessage(ref LowLevelRequestMessage message)
        {
            var bytes = new ByteArrayBuilder()
                        .Add(Bytes.SYN)
                        .Add(message.Command.acronym);

            if (!message.Parameters.Any())
            {
                message = message.With(parameters: new[] { string.Empty });
            }
            foreach (var parameter in message.Parameters)
            {
                bytes
                .Add(parameter.Length.ToString("000"))
                .Add(parameter);
            }
            bytes.Add(Bytes.ETB);
            var crc = Crc16.Compute(bytes.Skip(1));

            bytes.Add((byte)(crc / 256), (byte)(crc % 256));
            return(bytes.ToArray());
        }
Beispiel #2
0
        public Task SendCommandAsync(LowLevelRequestMessage message)
        {
            var bytes = FormatMessage(ref message);

            return(this.rawPinPad.SendRawMessageAsync(bytes));
        }