Não pode escolher mais do que 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.
 
 
 

101 linhas
3.4 KiB

  1. using JT808.DotNetty.Client;
  2. using JT808.Protocol.MessageBody;
  3. using JT808.Protocol.Enums;
  4. using JT808.Protocol.Extensions;
  5. using Microsoft.Extensions.Hosting;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Text;
  9. using System.Threading;
  10. using System.Threading.Tasks;
  11. namespace JT808.DotNetty.SimpleClient.Services
  12. {
  13. public class UpService : IHostedService
  14. {
  15. private readonly IJT808TcpClientFactory jT808TcpClientFactory;
  16. public UpService(IJT808TcpClientFactory jT808TcpClientFactory)
  17. {
  18. this.jT808TcpClientFactory = jT808TcpClientFactory;
  19. }
  20. public Task StartAsync(CancellationToken cancellationToken)
  21. {
  22. string sim = "11111111111";
  23. JT808TcpClient client1 = jT808TcpClientFactory.Create(new JT808DeviceConfig(sim, "127.0.0.1", 808));
  24. string sim2 = "33333333333";
  25. JT808TcpClient client2 = jT808TcpClientFactory.Create(new JT808DeviceConfig(sim2, "127.0.0.1", 808));
  26. Thread.Sleep(5000);
  27. //1.终端注册
  28. client1.Send(JT808MsgId.终端注册.Create(sim, new JT808_0x0100()
  29. {
  30. PlateNo = "粤A12345",
  31. PlateColor = 2,
  32. AreaID = 0,
  33. CityOrCountyId = 0,
  34. MakerId = "Koike001",
  35. TerminalId = "Koike001",
  36. TerminalModel = "Koike001"
  37. }));
  38. client2.Send(JT808MsgId.终端注册.Create(sim2, new JT808_0x0100()
  39. {
  40. PlateNo = "粤A12345",
  41. PlateColor = 2,
  42. AreaID = 0,
  43. CityOrCountyId = 0,
  44. MakerId = "Koike001",
  45. TerminalId = "Koike001",
  46. TerminalModel = "Koike001"
  47. }));
  48. //2.终端鉴权
  49. client1.Send(JT808MsgId.终端鉴权.Create(sim, new JT808_0x0102()
  50. {
  51. Code = "1234"
  52. }));
  53. //2.终端鉴权
  54. client2.Send(JT808MsgId.终端鉴权.Create(sim2, new JT808_0x0102()
  55. {
  56. Code = "1234"
  57. }));
  58. Task.Run(() => {
  59. while (true)
  60. {
  61. var i = 0;
  62. //3.每5秒发一次
  63. client1.Send(JT808MsgId.位置信息汇报.Create(sim, new JT808_0x0200()
  64. {
  65. Lat = 110000 + i,
  66. Lng = 100000 + i,
  67. GPSTime = DateTime.Now,
  68. Speed = 50,
  69. Direction = 30,
  70. AlarmFlag = 5,
  71. Altitude = 50,
  72. StatusFlag = 10
  73. }));
  74. client2.Send(JT808MsgId.位置信息汇报.Create(sim2, new JT808_0x0200()
  75. {
  76. Lat = 110000 + i,
  77. Lng = 100000 + i,
  78. GPSTime = DateTime.Now,
  79. Speed = 50,
  80. Direction = 30,
  81. AlarmFlag = 5,
  82. Altitude = 50,
  83. StatusFlag = 10
  84. }));
  85. i++;
  86. Thread.Sleep(5000);
  87. }
  88. });
  89. return Task.CompletedTask;
  90. }
  91. public Task StopAsync(CancellationToken cancellationToken)
  92. {
  93. return Task.CompletedTask;
  94. }
  95. }
  96. }