public void AddLiteralHeader(bool pSecret, bool pBinary, int pLength, bool pSynchronising) { cByteList lLengthBytes = cTools.IntToBytesReverse(pLength); lLengthBytes.Reverse(); if (mTracing) { if (pBinary) { mCurrentTraceBuffer.Add(cASCII.TILDA); } mCurrentTraceBuffer.Add(cASCII.LBRACE); if (pSecret) { mCurrentTraceBuffer.Add(cASCII.NUL); } else { mCurrentTraceBuffer.AddRange(lLengthBytes); } if (!pSynchronising) { mCurrentTraceBuffer.Add(cASCII.PLUS); } mCurrentTraceBuffer.Add(cASCII.RBRACE); mCurrentTraceBuffer.Add(cASCII.CR); mCurrentTraceBuffer.Add(cASCII.LF); if (pSecret) { mContainsSecrets = true; } mLastByteWasSecret = false; } if (pBinary) { mSendBuffer.Add(cASCII.TILDA); } mSendBuffer.Add(cASCII.LBRACE); mSendBuffer.AddRange(lLengthBytes); if (!pSynchronising) { mSendBuffer.Add(cASCII.PLUS); } mSendBuffer.Add(cASCII.RBRACE); mSendBuffer.Add(cASCII.CR); mSendBuffer.Add(cASCII.LF); }
private static cByteList ZIntToBytes(int pNumber, int pMinLength) { if (pNumber < 0) { throw new ArgumentOutOfRangeException(nameof(pNumber)); } cByteList lBytes = cTools.IntToBytesReverse(pNumber); for (int i = lBytes.Count; i < pMinLength; i++) { lBytes.Add(cASCII.ZERO); } lBytes.Reverse(); return(lBytes); }
public cTextCommandPart(cSequenceSet pSequenceSet) : base(false, false) { cByteList lBytes = new cByteList(); cByteList lTemp = new cByteList(); bool lFirst = true; foreach (var lItem in pSequenceSet) { if (lFirst) { lFirst = false; } else { lBytes.Add(cASCII.COMMA); } if (lItem == cSequenceSetItem.Asterisk) { lBytes.Add(cASCII.ASTERISK); continue; } if (lItem is cSequenceSetNumber lNumber) { lTemp = cTools.UIntToBytesReverse(lNumber.Number); lTemp.Reverse(); lBytes.AddRange(lTemp); continue; } if (!(lItem is cSequenceSetRange lRange)) { throw new ArgumentException("invalid form 1", nameof(pSequenceSet)); } if (lRange.From == cSequenceSetItem.Asterisk) { lBytes.Add(cASCII.ASTERISK); continue; } if (!(lRange.From is cSequenceSetNumber lFrom)) { throw new ArgumentException("invalid form 2", nameof(pSequenceSet)); } lTemp = cTools.UIntToBytesReverse(lFrom.Number); lTemp.Reverse(); lBytes.AddRange(lTemp); lBytes.Add(cASCII.COLON); if (lRange.To == cSequenceSetItem.Asterisk) { lBytes.Add(cASCII.ASTERISK); continue; } if (!(lRange.To is cSequenceSetNumber lTo)) { throw new ArgumentException("invalid form 3", nameof(pSequenceSet)); } lTemp = cTools.UIntToBytesReverse(lTo.Number); lTemp.Reverse(); lBytes.AddRange(lTemp); } Bytes = new cBytes(lBytes); }