Sfoglia il codice sorgente

1.增加ASCII读写器及对应测试

2.修改文档
tags/v2.1.7
SmallChi(Koike) 5 anni fa
parent
commit
3c8abc978d
5 ha cambiato i file con 34 aggiunte e 0 eliminazioni
  1. +1
    -0
      README.md
  2. +8
    -0
      src/JT808.Protocol.Test/MessagePack/JT808MessagePackReaderTest.cs
  3. +11
    -0
      src/JT808.Protocol.Test/MessagePack/JT808MessagePackWriterTest.cs
  4. +6
    -0
      src/JT808.Protocol/MessagePack/JT808MessagePackReader.cs
  5. +8
    -0
      src/JT808.Protocol/MessagePack/JT808MessagePackWriter.cs

+ 1
- 0
README.md Vedi File

@@ -261,6 +261,7 @@ JT808Serializer JT808Serializer = new JT808Serializer(jT808Coonfig);
| Package Name | Version | Downloads |
| --------------------- | -------------------------------------------------- | --------------------------------------------------- |
| Install-Package JT808 | ![JT808](https://img.shields.io/nuget/v/JT808.svg) | ![JT808](https://img.shields.io/nuget/dt/JT808.svg) |
| Install-Package JT808.Protocol.Extensions.JT1078 | ![JT808.Protocol.Extensions.JT1078](https://img.shields.io/nuget/v/JT808.Protocol.Extensions.JT1078.svg) | ![JT808](https://img.shields.io/nuget/dt/JT808.Protocol.Extensions.JT1078.svg) |

## 使用BenchmarkDotNet性能测试报告(只是玩玩,不能当真)



+ 8
- 0
src/JT808.Protocol.Test/MessagePack/JT808MessagePackReaderTest.cs Vedi File

@@ -83,6 +83,14 @@ namespace JT808.Protocol.Test.MessagePack
Assert.Equal(JT808Package.EndFlag, jT808MessagePackReader.ReadEnd());
}

[Fact]
public void ReadASCIITest()
{
byte[] array1 = new byte[] { 0x53, 0x56, 0x31, 0x2E, 0x31, 0x2E, 0x30 };
JT808MessagePackReader jT808MessagePackReader = new JT808MessagePackReader(array1);
Assert.Equal("SV1.1.0", jT808MessagePackReader.ReadASCII(7));
}

[Theory]
[InlineData("0000000000000000000000ABCDEF1234")]
public void ReadHexTest(string hexStr)


+ 11
- 0
src/JT808.Protocol.Test/MessagePack/JT808MessagePackWriterTest.cs Vedi File

@@ -402,6 +402,17 @@ namespace JT808.Protocol.Test.MessagePack
}
}

[Fact]
public void WriteASCII()
{
byte[] array = new byte[4096];
byte[] array1 = new byte[] { 0x53,0x56,0x31,0x2E,0x31,0x2E,0x30 };
var msgpackWriter = new JT808MessagePackWriter(array);
msgpackWriter.WirteASCII("SV1.1.0");
var writeRealBytes = msgpackWriter.FlushAndGetRealArray();
Assert.Equal(array1, writeRealBytes);
}

[Fact]
public void CompositeTest1()
{


+ 6
- 0
src/JT808.Protocol/MessagePack/JT808MessagePackReader.cs Vedi File

@@ -205,6 +205,12 @@ namespace JT808.Protocol.MessagePack
string value = JT808Constants.Encoding.GetString(readOnlySpan.Slice(0, len).ToArray());
return value.Trim('\0');
}
public string ReadASCII(int len)
{
var readOnlySpan = GetReadOnlySpan(len);
string value = Encoding.ASCII.GetString(readOnlySpan.Slice(0, len).ToArray());
return value;
}
public string ReadRemainStringContent()
{
var readOnlySpan = ReadContent(0);


+ 8
- 0
src/JT808.Protocol/MessagePack/JT808MessagePackWriter.cs Vedi File

@@ -2,6 +2,7 @@
using System;
using System.Buffers;
using System.Buffers.Binary;
using System.Text;

namespace JT808.Protocol.MessagePack
{
@@ -285,6 +286,13 @@ namespace JT808.Protocol.MessagePack
}
writer.Advance(byteIndex);
}
public void WirteASCII(string value)
{
var spanFree = writer.Free;
var bytes = Encoding.ASCII.GetBytes(value).AsSpan();
bytes.CopyTo(spanFree);
writer.Advance(bytes.Length);
}
public void WriteFullEncode()
{
var tmpSpan = writer.Written;


Caricamento…
Annulla
Salva