/// <inheritdoc /> public override byte[] Build() { if (string.IsNullOrEmpty(EncodeThis)) { return(new byte[0]); } // Must be even length if (EncodeThis.Length % 2 != 0) { return(new byte[0]); } // Must be numeric if (EncodeThis.ToCharArray().Any(ch => !char.IsDigit(ch))) { return(new byte[0]); } // If user explicitly asks for form 2, otherwise assume 1 var m = (byte)(Form == 2 ? 70 : 5); var payload = Preamble(); payload.AddRange(new byte[] { 0x1D, 0x6B, m }); // mode 2 requires length if (m == 70) { payload.Add((byte)EncodeThis.Length); } var bytes = System.Text.Encoding.ASCII.GetBytes(EncodeThis); payload.AddRange(bytes); // Force null terminated string if (!EncodeThis.EndsWith("\0")) { payload.Add(0); } return(payload.ToArray()); }
public override byte[] Build() { if (string.IsNullOrEmpty(EncodeThis)) { return(new byte[0]); } // deve ser o mesmo comprimento if (EncodeThis.Length % 2 != 0) { return(new byte[0]); } // deve ser numérico if (EncodeThis.ToCharArray().Any(ch => !char.IsDigit(ch))) { return(new byte[0]); } // Se o usuário solicitar explicitamente o formulário 2, caso contrário, suponha 1 var m = (byte)(Form == 2 ? 70 : 5); var payload = Preamble(); payload.AddRange(new byte[] { 0x1D, 0x6B, m }); // modo 2 requer comprimento if (m == 70) { payload.Add((byte)EncodeThis.Length); } var bytes = System.Text.Encoding.ASCII.GetBytes(EncodeThis); payload.AddRange(bytes); // Forçar string terminando com nulo if (!EncodeThis.EndsWith("\0")) { payload.Add(0); } return(payload.ToArray()); }