public static GetDateTimeInBytes ( System.DateTime date ) : byte[] | ||
date | System.DateTime | |
리턴 | byte[] |
private byte[] CreateRequest(String terminalNo, int messageType, Command cmd, byte[] data, int dataLen) { /* General Message for Request * XX Length * ASCII Terminal Serial * XX Message Type * BCD SequenceNum * BCD Date * BCD Time * [Detail] * XX LRC */ Encoding encode = Encoding.GetEncoding(1254); List <byte> reqPacket = new List <byte>(); List <byte> msgPacket = new List <byte>(); int allLen = dataLen; this.command = cmd; this.data = data; this.sequence = (MainForm.SequenceNumber++) % MAX_PRCSS_SEC_NUM; //SEQUNCE reqPacket.AddRange(MessageBuilder.HexToByteArray(GMPCommonTags.TAG_SEQUNCE)); reqPacket.Add((byte)GMPConstants.LEN_SEQUENCE); byte[] arrVal = MessageBuilder.ConvertIntToBCD(this.Sequence, GMPConstants.LEN_SEQUENCE); reqPacket.AddRange(arrVal); //DATE and TIME reqPacket.AddRange(MessageBuilder.GetDateTimeInBytes(DateTime.Now)); // Fiscal Command if (cmd != Command.NULL) { reqPacket.AddRange(MessageBuilder.HexToByteArray(FPUCommonTags.FPU_FISCAL_COMMAND)); reqPacket.Add((byte)GMPConstants.LEN_FISCAL_COMMAND); reqPacket.Add((byte)cmd); } if (dataLen > 0) { reqPacket.AddRange(data); } // Terminal ID msgPacket.AddRange(encode.GetBytes(terminalNo.PadLeft(12, ' '))); // Message TAG msgPacket.AddRange(MessageBuilder.HexToByteArray(messageType)); // Message length int msgLen = reqPacket.Count; msgPacket.AddRange(MessageBuilder.AddLength(msgLen)); // Message Data msgPacket.AddRange(reqPacket); // CRC short crc = MessageBuilder.CalculateCRC(msgPacket.ToArray(), 0, msgPacket.Count); msgPacket.Add((byte)(crc >> 8)); msgPacket.Add((byte)(crc)); // All Length allLen = msgPacket.Count; msgPacket.Insert(0, (byte)(allLen % 256)); msgPacket.Insert(0, (byte)(allLen / 256)); return(msgPacket.ToArray()); }