예제 #1
0
        public byte[] ProcessData(byte[] data)
        {
            Builder.BuildFromBytes(data);
            EgtsPacket inPacket = Builder.GetPacket();

            ProcessingResult procResult = new ProcessingResult();

            ProcessingCode code = CheckPacket(inPacket, data);

            if (code == ProcessingCode.EGTS_PC_OK)
            {
                inPacket.SetProcessor(PacketProcessor);
                inPacket.Process(ref procResult);
            }
            else
            {
                procResult.PacketId = inPacket.Header.PID;
                procResult.Result   = code;
            }

            Builder.BuildFromProcessingResult(procResult);
            EgtsPacket outPacket = Builder.GetPacket();

            return(outPacket.GetBytes());
        }
예제 #2
0
        public byte[] ProcessData(byte[] data)
        {
            Builder.BuildFromBytes(data);
            EgtsPacket inPacket = Builder.GetPacket();

            Log.Debug("Получен пакет EGTS {@packet}", inPacket);
            ProcessingResult procResult = new ProcessingResult();

            ProcessingCode code = CheckPacket(inPacket, data);

            if (code == ProcessingCode.EGTS_PC_OK)
            {
                Log.Debug("Результат проверки полученного пакета #{PacketId} - {ProcessingCode}", inPacket.Header.PID, code);
                inPacket.SetProcessor(PacketProcessor);
                inPacket.Process(ref procResult);
            }
            else
            {
                Log.Warning("Результат проверки полученного пакета #{PacketId} - {ProcessingCode}", inPacket.Header.PID, code);
                procResult.PacketId = inPacket.Header.PID;
                procResult.Result   = code;
            }

            Builder.BuildFromProcessingResult(procResult);
            EgtsPacket outPacket = Builder.GetPacket();

            return(outPacket.GetBytes());
        }