コード例 #1
0
        private void WriteData(int nb)
        {
            // | 0x0000 | 00 07 CB C1 35 5D       | 
            if (nb == 0)
            {
                _sb.Append("|        |                         | ");
                //return false;
                return;
            }

            int i = 0;
            while (_dataEnum.MoveNext())
            {
                if (i == 0)
                    _sb.AppendFormat("| 0x{0} |", ((ushort)_dataEnum.Index).zToHex());
                _sb.AppendFormat(" {0}", _dataEnum.Current.zToHex());
                if (++i == nb)
                    break;
            }
            if (i == 0)
                _sb.AppendFormat("|        |");
            while (i < _maxDataPerLine1)
            {
                _sb.Append("   ");
                i++;
            }
            _sb.Append(" | ");
        }
コード例 #2
0
        private void WritePayloadData(int nb, EnumerableWithCounter<byte> dataEnum = null)
        {
            //|        |                         | data                                                              |                     |
            //| 0x0022 | CD 67 01 BB E9 DF 53 5D | data                                                              |                     |
            //| 0x002A | 91 1F 42 06 50 10 40 3D |                                                                   |                     |
            //| 0x0032 | FF 81 00 00 00          |                                                                   |                     |


            //| 0x000E | 00 01 08 00 06 04 00 02 00 01 08 00 06 04 00 02 | "................"                        | data length    48   |
            //| 0x000E | 00 01 08 00 06 04 00 02 00 01 08 00 06 04 00 02 | "................"                        |                     |
            //| 0x000E | 00 01 08 00 06 04 00 02 00 01 08 00 06 04 00 02 | "................"                        |                     |


            if (dataEnum == null)
                dataEnum = _dataEnum;

            StringBuilder sb = new StringBuilder();
            bool firstLine = true;

            while (nb > 0)
            {
                int n = Math.Min(_maxDataPerLine2, nb);
                int i = 0;
                sb.Append("\"");
                while (dataEnum.MoveNext())
                {
                    if (i == 0)
                        _sb.AppendFormat("| 0x{0} |", ((ushort)dataEnum.Index).zToHex());
                    byte b = dataEnum.Current;
                    _sb.AppendFormat(" {0}", b.zToHex());
                    if (b >= 32)
                        sb.Append((char)b);
                    else
                        sb.Append(".");
                    if (++i == n)
                        break;
                }
                sb.Append("\"");
                if (i == 0)
                {
                    _sb.AppendFormat("|        |");
                    sb.Clear();
                    sb.Append("  ");
                }
                while (i < _maxDataPerLine2)
                {
                    _sb.Append("   ");
                    sb.Append(" ");
                    i++;
                }
                _sb.Append(" | ");
                //if (firstLine)
                //    _sb.Append("data  ");
                //else
                //    _sb.Append("      ");
                _sb.Append(sb.ToString());
                //_sb.Append("                                                  |                     |");




                //_sb.Append("                        |                     |");
                _sb.Append("                        ");
                //_sb.Append("|                     |");


                if (firstLine)
                {
                    _sb.Append("| ");
                    _sb.Append("data length".PadRight(15));
                    _sb.Append(_dataLength.ToString().PadRight(5));
                    _sb.Append("|");
                }
                else
                    _sb.Append("|                     |");





                WriteLine();
                sb.Clear();
                nb -= n;
                firstLine = false;
                if (dataEnum.EndOfData)
                    break;
            }
        }