Przeglądaj źródła

JT1078组包,添加0x9205、0x9206指令

pull/9/head
Administrator 3 lat temu
rodzic
commit
c99b0919db
1 zmienionych plików z 358 dodań i 4 usunięć
  1. +358
    -4
      src/JTTools/Pages/JT1078Pack.razor

+ 358
- 4
src/JTTools/Pages/JT1078Pack.razor Wyświetl plik

@@ -13,6 +13,7 @@
@using OneOf;
@using System.ComponentModel.DataAnnotations;
@using System.Text.Json;
@using System.ComponentModel;

<Space Direction="DirectionVHType.Vertical" Style="width:100%">
<SpaceItem>
@@ -20,6 +21,8 @@
<SelectOptions>
<SelectOption TItemValue="string" TItem="string" Value="@("0x9101")" Label="808_打开看视频" />
<SelectOption TItemValue="string" TItem="string" Value="@("0x9102")" Label="808_关闭看视频" />
<SelectOption TItemValue="string" TItem="string" Value="@("0x9205")" Label="808_查询资源列表" />
<SelectOption TItemValue="string" TItem="string" Value="@("0x9206")" Label="808_文件上传" />
</SelectOptions>
</Select>
</SpaceItem>
@@ -165,6 +168,246 @@
</FormItem>
</Form>
}
else if (MsgType == "0x9205")
{
<Form Model="@jT_0X9205_Form">
<Row Gutter="8">
<GridCol Span="6">
<FormItem>
<AntDesign.Input @bind-Value="@context.Sim" Placeholder="123456789012" AllowClear>
<AddOnBefore>SIM</AddOnBefore>
</AntDesign.Input>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<AntDesign.Input @bind-Value="@context.SN" AllowClear>
<AddOnBefore>流水号</AddOnBefore>
</AntDesign.Input>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<AntDesign.Input @bind-Value="@context.LogicalChannelNo" AllowClear>
</AntDesign.Input>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<DatePicker TValue="DateTime?" ShowTime="@true"
@bind-Value="@context.BeginTime"
Format="yyyy-MM-dd HH:mm:ss"
DisabledDate="date => date <= DateTime.Now">

</DatePicker>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<DatePicker TValue="DateTime?" ShowTime="@true"
@bind-Value="@context.EndTime"
Format="yyyy-MM-dd HH:mm:ss"
DisabledDate="date => date <= DateTime.Now" />
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<Select TItemValue="string" TItem="string" @bind-Value="@context.AlarmFlag">
<SelectOptions>
<SelectOption TItemValue="string" TItem="string" Value="@("00000000000000000000000000000000")" Label="无报警类型" />
<SelectOption TItemValue="string" TItem="string" Value="@("1")" Label="超速报警" />
<SelectOption TItemValue="string" TItem="string" Value="@("2")" Label="疲劳驾驶" />
<SelectOption TItemValue="string" TItem="string" Value="@("3")" Label="预警" />
<SelectOption TItemValue="string" TItem="string" Value="@("4")" Label="GNSS模块发生故障" />
</SelectOptions>
</Select>
</FormItem>
</GridCol>
<GridCol>
<FormItem>
<Select TItemValue="string" TItem="string" @bind-Value="@context.MediaType">
<SelectOptions>
<SelectOption TItemValue="string" TItem="string" Value="@("0")" Label="音视频" />
<SelectOption TItemValue="string" TItem="string" Value="@("1")" Label="音频" />
<SelectOption TItemValue="string" TItem="string" Value="@("2")" Label="视频" />
<SelectOption TItemValue="string" TItem="string" Value="@("3")" Label="视频或音视频" />
</SelectOptions>
</Select>
</FormItem>
</GridCol>
<GridCol>
<FormItem>
<Select TItemValue="string" TItem="string" @bind-Value="@context.StreamType">
<SelectOptions>
<SelectOption TItemValue="string" TItem="string" Value="@("0")" Label="所有码流" />
<SelectOption TItemValue="string" TItem="string" Value="@("1")" Label="主码流" />
<SelectOption TItemValue="string" TItem="string" Value="@("2")" Label="子码流" />
</SelectOptions>
</Select>
</FormItem>
</GridCol>
<GridCol>
<FormItem>
<Select TItemValue="string" TItem="string" @bind-Value="@context.MemoryType">
<SelectOptions>
<SelectOption TItemValue="string" TItem="string" Value="@("0")" Label="所有存储器" />
<SelectOption TItemValue="string" TItem="string" Value="@("1")" Label="主存储器" />
<SelectOption TItemValue="string" TItem="string" Value="@("2")" Label="灾备存储器" />
</SelectOptions>
</Select>
</FormItem>
</GridCol>

</Row>
<FormItem>
<Button Type="@ButtonType.Primary" @onclick="@Pack">组包</Button>
</FormItem>
</Form>
}
else if (MsgType == "0x9206")
{
<Form Model="@jT_0X9206_Form">
<Row Gutter="8">
<GridCol Span="6">
<FormItem>
<AntDesign.Input @bind-Value="@context.Sim" Placeholder="123456789012" AllowClear>
<AddOnBefore>SIM</AddOnBefore>
</AntDesign.Input>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<AntDesign.Input @bind-Value="@context.SN" AllowClear>
<AddOnBefore>流水号</AddOnBefore>
</AntDesign.Input>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<AntDesign.Input @bind-Value="@context.ServerIP" Placeholder="127.0.0.1" AllowClear>
<AddOnBefore>FTP服务器地址</AddOnBefore>
</AntDesign.Input>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<AntDesign.Input @bind-Value="@context.Port" AllowClear>
<AddOnBefore>FTP服务器端口号</AddOnBefore>
</AntDesign.Input>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<AntDesign.Input @bind-Value="@context.UserName" Placeholder="127.0.0.1" AllowClear>
<AddOnBefore>FTP用户名</AddOnBefore>
</AntDesign.Input>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<AntDesign.Input @bind-Value="@context.Password" AllowClear>
<AddOnBefore>FTP密码</AddOnBefore>
</AntDesign.Input>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<AntDesign.Input @bind-Value="@context.Password" AllowClear>
<AddOnBefore>文件上传路径</AddOnBefore>
</AntDesign.Input>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<AntDesign.Input @bind-Value="@context.LogicalChannelNo" AllowClear>
<AddOnBefore>逻辑通道号</AddOnBefore>
</AntDesign.Input>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<DatePicker TValue="DateTime?" ShowTime="@true"
@bind-Value="@context.BeginTime"
Format="yyyy-MM-dd HH:mm:ss"
DisabledDate="date => date <= DateTime.Now">

</DatePicker>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<DatePicker TValue="DateTime?" ShowTime="@true"
@bind-Value="@context.EndTime"
Format="yyyy-MM-dd HH:mm:ss"
DisabledDate="date => date <= DateTime.Now" />
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<Select TItemValue="string" TItem="string" @bind-Value="@context.AlarmFlag">
<SelectOptions>
<SelectOption TItemValue="string" TItem="string" Value="@("00000000000000000000000000000000")" Label="无报警类型" />
<SelectOption TItemValue="string" TItem="string" Value="@("1")" Label="超速报警" />
<SelectOption TItemValue="string" TItem="string" Value="@("2")" Label="疲劳驾驶" />
<SelectOption TItemValue="string" TItem="string" Value="@("3")" Label="预警" />
<SelectOption TItemValue="string" TItem="string" Value="@("4")" Label="GNSS模块发生故障" />
</SelectOptions>
</Select>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<Select TItemValue="string" TItem="string" @bind-Value="@context.MediaType">
<SelectOptions>
<SelectOption TItemValue="string" TItem="string" Value="@("0")" Label="音视频" />
<SelectOption TItemValue="string" TItem="string" Value="@("1")" Label="音频" />
<SelectOption TItemValue="string" TItem="string" Value="@("2")" Label="视频" />
<SelectOption TItemValue="string" TItem="string" Value="@("3")" Label="视频或音视频" />
</SelectOptions>
</Select>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<Select TItemValue="string" TItem="string" @bind-Value="@context.StreamType">
<SelectOptions>
<SelectOption TItemValue="string" TItem="string" Value="@("0")" Label="所有码流" />
<SelectOption TItemValue="string" TItem="string" Value="@("1")" Label="主码流" />
<SelectOption TItemValue="string" TItem="string" Value="@("2")" Label="子码流" />
</SelectOptions>
</Select>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<Select TItemValue="string" TItem="string" @bind-Value="@context.MemoryType">
<SelectOptions>
<SelectOption TItemValue="string" TItem="string" Value="@("0")" Label="所有存储器" />
<SelectOption TItemValue="string" TItem="string" Value="@("1")" Label="主存储器" />
<SelectOption TItemValue="string" TItem="string" Value="@("2")" Label="灾备存储器" />
</SelectOptions>
</Select>
</FormItem>
</GridCol>
<GridCol Span="6">
<FormItem>
<Select TItemValue="string" TItem="string" @bind-Value="@context.TaskExcuteCondition">
<SelectOptions>
<SelectOption TItemValue="string" TItem="string" Value="@("0")" Label="WI-FI可下载" />
<SelectOption TItemValue="string" TItem="string" Value="@("1")" Label="LAN连接时可下载" />
<SelectOption TItemValue="string" TItem="string" Value="@("2")" Label="3G/4G连接时可下载" />
<SelectOption TItemValue="string" TItem="string" Value="@("7")" Label="WIFI,LAN,3G/4G" />
</SelectOptions>
</Select>
</FormItem>
</GridCol>
</Row>
<FormItem>
<Button Type="@ButtonType.Primary" @onclick="@Pack">组包</Button>
</FormItem>
</Form>
}

</SpaceItem>
<SpaceItem>
<TextArea AllowClear="true" AutoSize="true" MinRows="10" MaxRows="30" @bind-Value="@HexData" />
@@ -178,6 +421,15 @@
JT_0x9101_Form jT_0X9101_Form = new JT_0x9101_Form();

JT_0x9102_Form jT_0x9102_Form = new JT_0x9102_Form();
/// <summary>
/// 1078查询资源列表
/// </summary>
JT_0x9205_Form jT_0X9205_Form = new JT_0x9205_Form();
/// <summary>
/// 1078文件上传
/// </summary>
JT_0x9206_Form jT_0X9206_Form = new JT_0x9206_Form();


JT808Serializer JT1078Serializer;

@@ -200,10 +452,11 @@
{
try
{
JT808Package jT808Package = new JT808Package();
JT808Header header = new JT808Header();
if (MsgType == "0x9101")
{
JT808Package jT808Package = new JT808Package();
JT808Header header = new JT808Header();

header.MsgId = 0x9101;
header.ManualMsgNum = (ushort)jT_0X9101_Form.SN;
header.TerminalPhoneNo = jT_0X9101_Form.Sim;
@@ -220,8 +473,7 @@
}
else if (MsgType == "0x9102")
{
JT808Package jT808Package = new JT808Package();
JT808Header header = new JT808Header();

header.MsgId = 0x9102;
header.ManualMsgNum = (ushort)jT_0x9102_Form.SN;
header.TerminalPhoneNo = jT_0x9102_Form.Sim;
@@ -234,6 +486,52 @@
jT808Package.Bodies = jT808_0X9102;
HexData = JT1078Serializer.Serialize(jT808Package).ToHexString();
}
else if (MsgType == "0x9205")
{
header.MsgId = 0x9205;
header.ManualMsgNum = (ushort)jT_0X9205_Form.SN;
header.TerminalPhoneNo = jT_0X9205_Form.Sim;
jT808Package.Header = header;
JT808.Protocol.MessageBody.JT808_0x0200 jT808_0X0200 = new JT808.Protocol.MessageBody.JT808_0x0200();

jT808_0X0200.AlarmFlag = (uint)JT808.Protocol.Enums.JT808Alarm.GNSS天线未接或被剪断;
JT808_0x9205 jT808_0X9205 = new JT808_0x9205();
jT808_0X9205.ChannelNo = jT_0X9205_Form.LogicalChannelNo;
jT808_0X9205.BeginTime = (DateTime)jT_0X9205_Form.BeginTime;
jT808_0X9205.EndTime = (DateTime)jT_0X9205_Form.EndTime;
jT808_0X9205.AlarmFlag = ulong.Parse(jT_0X9205_Form.AlarmFlag);
jT808_0X9205.MediaType = byte.Parse(jT_0X9205_Form.MediaType);
jT808_0X9205.StreamType = byte.Parse(jT_0X9205_Form.MemoryType);
jT808_0X9205.MemoryType = byte.Parse(jT_0X9205_Form.MemoryType);
jT808Package.Bodies = jT808_0X9205;
HexData = JT1078Serializer.Serialize(jT808Package).ToHexString();

}
else if (MsgType == "0x9206")
{
header.MsgId = 0x9206;
header.ManualMsgNum = (ushort)jT_0X9206_Form.SN;
header.TerminalPhoneNo = jT_0X9206_Form.Sim;
jT808Package.Header = header;
JT808_0x9206 jT808_0X9206 = new JT808_0x9206();
jT808_0X9206.ServerIpLength = byte.Parse(jT_0X9206_Form.ServerIP.Length.ToString());
jT808_0X9206.ServerIp = jT_0X9206_Form.ServerIP;
jT808_0X9206.Port = ushort.Parse(jT_0X9206_Form.Port);
jT808_0X9206.UserName = jT_0X9206_Form.UserName;
jT808_0X9206.Password = jT_0X9206_Form.Password;
jT808_0X9206.FileUploadPath = jT_0X9206_Form.FileUploadPath;
jT808_0X9206.BeginTime = (DateTime)jT_0X9206_Form.BeginTime;
jT808_0X9206.EndTime = (DateTime)jT_0X9206_Form.EndTime;
jT808_0X9206.AlarmFlag = ulong.Parse(jT_0X9206_Form.AlarmFlag);
jT808_0X9206.MediaType = byte.Parse(jT_0X9206_Form.MediaType);
jT808_0X9206.StreamType = byte.Parse(jT_0X9206_Form.MemoryType);
jT808_0X9206.MemoryPositon = byte.Parse(jT_0X9206_Form.MemoryType);
jT808_0X9206.TaskExcuteCondition = byte.Parse(jT_0X9206_Form.TaskExcuteCondition);
jT808Package.Bodies = jT808_0X9206;
HexData = JT1078Serializer.Serialize(jT808Package).ToHexString();


}
}
catch (Exception ex)
{
@@ -276,4 +574,60 @@
[Required]
public string SwitchStreamType { get; set; } = "1";
}
public class JT_0x9205_Form
{
[Required]
public string Sim { get; set; } = "123456789012";
[Required]
public int SN { get; set; } = new Random().Next(1, 2000);
[Required, DisplayName("逻辑通道号")]
public byte LogicalChannelNo { get; set; } = 4;

[Required, DisplayName("开始时间")]
public DateTime? BeginTime { get; set; } = DateTime.Today;
[Required, DisplayName("结束时间")]
public DateTime? EndTime { get; set; } = DateTime.Now;
[Required, DisplayName("报警标志")]
public string AlarmFlag { get; set; } = "00000000000000000000000000000000";
[Required, DisplayName("音视频资源类型")]
public string MediaType { get; set; } = "0";
[Required, DisplayName("码流类型")]
public string StreamType { get; set; } = "0";
[Required, DisplayName("存储器类型")]
public string MemoryType { get; set; } = "0";
}

public class JT_0x9206_Form
{
[Required]
public string Sim { get; set; } = "123456789012";
[Required]
public int SN { get; set; } = new Random().Next(1, 2000);
[Required]
public byte LogicalChannelNo { get; set; } = 4;

public string ServerIP { get; set; } = "127.0.0.1";

public string Port { get; set; } = "6201";

public string UserName { get; set; } = "053500";

public string Password { get; set; } = "053500";

public string FileUploadPath { get; set; } = "./aaaaaaa";
[Required, DisplayName("开始时间")]
public DateTime? BeginTime { get; set; } = DateTime.Today;
[Required, DisplayName("结束时间")]
public DateTime? EndTime { get; set; } = DateTime.Now;
[Required, DisplayName("报警标志")]
public string AlarmFlag { get; set; } = "00000000000000000000000000000000";
[Required, DisplayName("音视频资源类型")]
public string MediaType { get; set; } = "0";
[Required, DisplayName("码流类型")]
public string StreamType { get; set; } = "0";
[Required, DisplayName("存储器类型")]
public string MemoryType { get; set; } = "0";

public string TaskExcuteCondition { get; set; } = "7";
}
}

Ładowanie…
Anuluj
Zapisz