Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

62 linhas
1.7 KiB

  1. using Microsoft.AspNetCore.Mvc;
  2. using System.Net.NetworkInformation;
  3. using JTTools.Configs;
  4. using System.IO;
  5. using System.Reflection;
  6. using System.Text;
  7. using System.Text.Encodings.Web;
  8. using System.Text.Unicode;
  9. using JT808.Protocol.Interfaces;
  10. using JTTools.Dtos;
  11. using System.Reflection.Emit;
  12. using JT905.Protocol;
  13. using JT808.Protocol.Extensions;
  14. namespace JTTools.Controllers
  15. {
  16. /// <summary>
  17. ///
  18. /// </summary>
  19. [ApiController]
  20. [Route("jtt/[controller]")]
  21. public class JT905Controller : ControllerBase
  22. {
  23. IJT905Config config;
  24. JT905Serializer serializer;
  25. /// <summary>
  26. ///
  27. /// </summary>
  28. /// <param name="config"></param>
  29. public JT905Controller(IJT905Config config)
  30. {
  31. this.config = config;
  32. this.serializer = new JT905Serializer(config);
  33. }
  34. /// <summary>
  35. ///
  36. /// </summary>
  37. /// <param name="request">7E02000023103456789012007D02000000010000000200BA7F0E07E4F11C003C002110152110100104000000640202007D01347E</param>
  38. /// <returns></returns>
  39. [HttpPost]
  40. [Route("Analyze")]
  41. public ResultDto<JT905AnalyzeResultDto> Analyze(JT905AnalyzeDto request)
  42. {
  43. ResultDto<JT905AnalyzeResultDto> result = new ResultDto<JT905AnalyzeResultDto>();
  44. result.Result = new JT905AnalyzeResultDto();
  45. try
  46. {
  47. var data = request.Hex.ToHexBytes();
  48. result.Result.JsonValue = serializer.Analyze(data, options: JTJsonWriterOptions.Instance);
  49. }
  50. catch (Exception ex)
  51. {
  52. result.Error(ex);
  53. }
  54. return result;
  55. }
  56. }
  57. }