diff --git a/src/JTTools/Controllers/JTToolsController.cs b/src/JTTools/Controllers/JTToolsController.cs index 3eb0784..7a87c34 100644 --- a/src/JTTools/Controllers/JTToolsController.cs +++ b/src/JTTools/Controllers/JTToolsController.cs @@ -61,13 +61,24 @@ namespace JTTools.Controllers [Route("Parse809")] [HttpPost] - public ActionResult Parse809([FromBody]JTRequestDto parameter) + public ActionResult Parse809([FromBody]JT809RequestDto parameter) { JTResultDto jTResultDto = new JTResultDto(); try { + if (parameter.IsEncrypt) + { + IJT809Config jt809ConfigInternal = new JT809Config(Guid.NewGuid().ToString()); + jt809ConfigInternal.EncryptOptions = parameter.EncryptOptions; + JT809Serializer jT809SerializerInternal = new JT809Serializer(jt809ConfigInternal); + jTResultDto.Data = jT809SerializerInternal.Deserialize(parameter.HexData.ToHexBytes()); + } + else + { + jTResultDto.Data = jT809Serializer.Deserialize(parameter.HexData.ToHexBytes()); + } jTResultDto.Code = 200; - jTResultDto.Data = jT809Serializer.Deserialize(parameter.HexData.ToHexBytes()); + } catch (JT809Exception ex) { @@ -100,4 +111,14 @@ namespace JTTools.Controllers return jTResultDto; } } + + class JT809Config : JT809.Protocol.Interfaces.GlobalConfigBase + { + public JT809Config(string configId) + { + ConfigId = configId; + } + + public override string ConfigId { get; } + } } diff --git a/src/JTTools/Dtos/JT809RequestDto.cs b/src/JTTools/Dtos/JT809RequestDto.cs new file mode 100644 index 0000000..61ff239 --- /dev/null +++ b/src/JTTools/Dtos/JT809RequestDto.cs @@ -0,0 +1,14 @@ +using JT809.Protocol.Configs; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace JTTools.Dtos +{ + public class JT809RequestDto: JTRequestDto + { + public bool IsEncrypt { get; set; } = false; + public JT809EncryptOptions EncryptOptions { get; set; } + } +}