增加新的wifi上报接口
This commit is contained in:
parent
4e9bf32859
commit
50a66a813d
|
|
@ -8,7 +8,7 @@ using Waste.Domain;
|
||||||
namespace Waste.Application
|
namespace Waste.Application
|
||||||
{
|
{
|
||||||
public class ResultList : W_Result
|
public class ResultList : W_Result
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 商户名称
|
/// 商户名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
@ -191,4 +191,34 @@ namespace Waste.Application
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsWeight { get; set; } = false;
|
public bool IsWeight { get; set; } = false;
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// wifi模块上传的数据包体
|
||||||
|
/// </summary>
|
||||||
|
public class WifiPackage
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 设备机器码
|
||||||
|
/// </summary>
|
||||||
|
public string sn { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 桶大小
|
||||||
|
/// </summary>
|
||||||
|
public string size { get; set; } = "";
|
||||||
|
/// <summary>
|
||||||
|
/// 垃圾桶编号
|
||||||
|
/// </summary>
|
||||||
|
public string trashcode { get; set; } = "";
|
||||||
|
/// <summary>
|
||||||
|
/// 垃圾类别
|
||||||
|
/// </summary>
|
||||||
|
public string WasteType { get; set; } = "";
|
||||||
|
/// <summary>
|
||||||
|
/// 重量,KG
|
||||||
|
/// </summary>
|
||||||
|
public string Weight { get; set; } = "0";
|
||||||
|
/// <summary>
|
||||||
|
/// 是否为心跳包
|
||||||
|
/// </summary>
|
||||||
|
public bool IsHeart { get; set; } = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,5 +30,11 @@ namespace Waste.Application
|
||||||
/// <param name="myPackage"></param>
|
/// <param name="myPackage"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task InsertResultBy4GAsync(nMyPackage myPackage);
|
Task InsertResultBy4GAsync(nMyPackage myPackage);
|
||||||
|
/// <summary>
|
||||||
|
/// wifi模块测量结果增加
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task InsertResultByWifiAsync(WifiPackage data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -93,7 +93,7 @@ namespace Waste.Application
|
||||||
NetWeight = x.NetWeight,
|
NetWeight = x.NetWeight,
|
||||||
Registration = x.Registration,
|
Registration = x.Registration,
|
||||||
CreateTime = x.CreateTime,
|
CreateTime = x.CreateTime,
|
||||||
PostStatus= -1
|
PostStatus = -1
|
||||||
})
|
})
|
||||||
.Mapper((it, cache) =>
|
.Mapper((it, cache) =>
|
||||||
{
|
{
|
||||||
|
|
@ -116,13 +116,13 @@ namespace Waste.Application
|
||||||
it.DeviceEcode = dev.Ecode;
|
it.DeviceEcode = dev.Ecode;
|
||||||
it.DeviceAddress = dev.Address;
|
it.DeviceAddress = dev.Address;
|
||||||
}
|
}
|
||||||
var allres = cache.Get(list =>
|
var allres = cache.Get(list =>
|
||||||
{
|
{
|
||||||
var ids = list.Select(e => e.Id).ToList();
|
var ids = list.Select(e => e.Id).ToList();
|
||||||
return dbClient.Queryable<W_ResultExt>().Where(e => ids.Contains(e.ResultId)).ToList();
|
return dbClient.Queryable<W_ResultExt>().Where(e => ids.Contains(e.ResultId)).ToList();
|
||||||
});
|
});
|
||||||
var res = allres.FirstOrDefault(e => e.ResultId == it.Id);
|
var res = allres.FirstOrDefault(e => e.ResultId == it.Id);
|
||||||
if(res != null)
|
if (res != null)
|
||||||
{
|
{
|
||||||
it.PostStatus = res.Status;
|
it.PostStatus = res.Status;
|
||||||
}
|
}
|
||||||
|
|
@ -136,6 +136,53 @@ namespace Waste.Application
|
||||||
limit = param.limit
|
limit = param.limit
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// wifi模块测量结果增加
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task InsertResultByWifiAsync(WifiPackage data)
|
||||||
|
{
|
||||||
|
//查找设备
|
||||||
|
var device = await dbClient.Queryable<W_Device>().FirstAsync(x => data.sn == x.Ecode);
|
||||||
|
// _loggerService.AddLogger($"接收到的数据,参数:{myPackage.ToJson()}", 3);
|
||||||
|
if (device == null)
|
||||||
|
{
|
||||||
|
//记录日志
|
||||||
|
_loggerService.AddLogger($"设备未找到,参数:{data.ToJson()}", 3);
|
||||||
|
}
|
||||||
|
var devicedata = await dbClient.Queryable<W_DeviceData>().FirstAsync(x => x.DeviceId == device.Id);
|
||||||
|
var resultid = IDGen.NextID();
|
||||||
|
DateTime time = DateTime.Now;
|
||||||
|
//检查设备是否为今天第一次上报
|
||||||
|
bool isfrist = false;
|
||||||
|
if (device.LastHeartTime.HasValue && device.LastHeartTime.Value.Date != DateTime.Now.Date)
|
||||||
|
{
|
||||||
|
isfrist = true;
|
||||||
|
}
|
||||||
|
//记录数据
|
||||||
|
await dbClient.Ado.UseStoredProcedure().ExecuteCommandAsync("Proc_InsertResult", new
|
||||||
|
{
|
||||||
|
deviceid = device.Id,
|
||||||
|
businessid = device.Businessid,
|
||||||
|
resultid = resultid,
|
||||||
|
imei = devicedata.IMSI,
|
||||||
|
iccid = devicedata.ICCID,
|
||||||
|
imsi = devicedata.IMSI,
|
||||||
|
time = time,
|
||||||
|
latitude = "",
|
||||||
|
longitude = "",
|
||||||
|
sign = "",
|
||||||
|
city = "",
|
||||||
|
area = data.trashcode,
|
||||||
|
wastetype = data.WasteType,
|
||||||
|
weigth = data.Weight,
|
||||||
|
isheart = data.IsHeart,
|
||||||
|
tare = device.Tare,
|
||||||
|
isfrist = isfrist
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 新的4G模块测量结果增加
|
/// 新的4G模块测量结果增加
|
||||||
|
|
@ -207,7 +254,7 @@ namespace Waste.Application
|
||||||
{
|
{
|
||||||
//查找设备
|
//查找设备
|
||||||
var device = await dbClient.Queryable<W_Device>().FirstAsync(x => myPackage.IMEI == x.Ecode);
|
var device = await dbClient.Queryable<W_Device>().FirstAsync(x => myPackage.IMEI == x.Ecode);
|
||||||
// _loggerService.AddLogger($"接收到的数据,参数:{myPackage.ToJson()}", 3);
|
// _loggerService.AddLogger($"接收到的数据,参数:{myPackage.ToJson()}", 3);
|
||||||
if (device == null)
|
if (device == null)
|
||||||
{
|
{
|
||||||
//记录日志
|
//记录日志
|
||||||
|
|
@ -255,7 +302,7 @@ namespace Waste.Application
|
||||||
myPackage.Area = Convert.ToInt32(typeHex, 16).ToString();
|
myPackage.Area = Convert.ToInt32(typeHex, 16).ToString();
|
||||||
}
|
}
|
||||||
//000F000002.16进制
|
//000F000002.16进制
|
||||||
// var areaHex = Convert.ToHexString(areaBytes);
|
// var areaHex = Convert.ToHexString(areaBytes);
|
||||||
|
|
||||||
}
|
}
|
||||||
//记录数据
|
//记录数据
|
||||||
|
|
|
||||||
|
|
@ -207,4 +207,52 @@ namespace Waste.Application.ThirdApiInfo
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string ExceptionInfo { get; set; }
|
public string ExceptionInfo { get; set; }
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// wifi模块发送的数据
|
||||||
|
/// </summary>
|
||||||
|
public class WifiRequestC2SDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 参数,包含sn和测量数据
|
||||||
|
/// </summary>
|
||||||
|
public string @params { get; set; }
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// wifi模块发送的数据解析
|
||||||
|
/// </summary>
|
||||||
|
public class WifiRequestS2SDto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 设备机器码
|
||||||
|
/// </summary>
|
||||||
|
public string sn { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 包头,固定为A9
|
||||||
|
/// </summary>
|
||||||
|
public string Header { get; set; } = "";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 分隔符,固定为00
|
||||||
|
/// </summary>
|
||||||
|
public string splitstr { get; set; } = "";
|
||||||
|
/// <summary>
|
||||||
|
/// 解密出的16进制数据
|
||||||
|
/// </summary>
|
||||||
|
public string data { get; set; } = "";
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 数据是否验证通过
|
||||||
|
/// </summary>
|
||||||
|
public bool ischecked { get; set; } = true;
|
||||||
|
/// <summary>
|
||||||
|
/// 是否为心跳包
|
||||||
|
/// </summary>
|
||||||
|
public bool IsHeart { get; set; } = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 结果集
|
||||||
|
/// </summary>
|
||||||
|
public byte[] databyte { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -44,5 +44,11 @@ namespace Waste.Application.ThirdApiInfo
|
||||||
/// <param name="data"></param>
|
/// <param name="data"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task UpdateVersionAsync(DeviceVerS2SDto data);
|
Task UpdateVersionAsync(DeviceVerS2SDto data);
|
||||||
|
/// <summary>
|
||||||
|
/// 通过ailink wifi模式发送的数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
Task<object> WifiPostAsync(WifiRequestC2SDto data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -299,5 +299,15 @@ namespace Waste.Application.ThirdApiInfo
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 通过ailink wifi模式发送的数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<object> WifiAsync(WifiRequestC2SDto data)
|
||||||
|
{
|
||||||
|
return await _openService.WifiPostAsync(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
using Furion;
|
using Furion;
|
||||||
using Furion.DependencyInjection;
|
using Furion.DependencyInjection;
|
||||||
using Furion.DistributedIDGenerator;
|
using Furion.DistributedIDGenerator;
|
||||||
|
using Microsoft.Extensions.Caching.Distributed;
|
||||||
using Nirvana.Common;
|
using Nirvana.Common;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using System;
|
using System;
|
||||||
|
|
@ -30,13 +31,18 @@ namespace Waste.Application.ThirdApiInfo
|
||||||
private readonly ISuZhouService _suZhouService;
|
private readonly ISuZhouService _suZhouService;
|
||||||
private readonly ILoggerService _loggerService;
|
private readonly ILoggerService _loggerService;
|
||||||
private readonly ICapPublisher _capBus;
|
private readonly ICapPublisher _capBus;
|
||||||
public OpenService(ISqlSugarRepository<W_Device> sqlSugarRepository, ISuZhouService suZhouService, ILoggerService loggerService, ICapPublisher capPublisher)
|
private readonly IDistributedCache _cahce;
|
||||||
|
private readonly IResultService _resultService;
|
||||||
|
|
||||||
|
public OpenService(ISqlSugarRepository<W_Device> sqlSugarRepository, ISuZhouService suZhouService, ILoggerService loggerService, ICapPublisher capPublisher, IDistributedCache distributedCache, IResultService resultService)
|
||||||
{
|
{
|
||||||
repository = sqlSugarRepository;
|
repository = sqlSugarRepository;
|
||||||
dbClient = repository.Context;
|
dbClient = repository.Context;
|
||||||
_suZhouService = suZhouService;
|
_suZhouService = suZhouService;
|
||||||
_loggerService = loggerService;
|
_loggerService = loggerService;
|
||||||
_capBus = capPublisher;
|
_capBus = capPublisher;
|
||||||
|
_cahce = distributedCache;
|
||||||
|
_resultService = resultService;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 更新上报状态
|
/// 更新上报状态
|
||||||
|
|
@ -376,5 +382,159 @@ namespace Waste.Application.ThirdApiInfo
|
||||||
{
|
{
|
||||||
await _capBus.PublishAsync("device.service.updatever", data);
|
await _capBus.PublishAsync("device.service.updatever", data);
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 通过ailink wifi模式发送的数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<object> WifiPostAsync(WifiRequestC2SDto data)
|
||||||
|
{
|
||||||
|
//记录发送过来的数据
|
||||||
|
_loggerService.AddLogger($"wifi发送原始数据,data={data.ToJson()}", 3);
|
||||||
|
var successdata = Encoding.UTF8.GetBytes("A901019A");
|
||||||
|
var returndata = new
|
||||||
|
{
|
||||||
|
status = "1",
|
||||||
|
data = Convert.ToBase64String(successdata)
|
||||||
|
};
|
||||||
|
//数据解析
|
||||||
|
var result = AnalyProto(data);
|
||||||
|
if (!result.ischecked)
|
||||||
|
{
|
||||||
|
return returndata;
|
||||||
|
}
|
||||||
|
if (result.databyte.Length == 0)
|
||||||
|
{
|
||||||
|
return returndata;
|
||||||
|
}
|
||||||
|
//小于14则表示结束
|
||||||
|
if (result.databyte.Length < 14)
|
||||||
|
{
|
||||||
|
var databytes = await _cahce.GetAsync(result.sn);
|
||||||
|
if (databytes != null && databytes.Length > 0)
|
||||||
|
{
|
||||||
|
byte[] newval = new byte[databytes.Length + result.databyte.Length];
|
||||||
|
databytes.CopyTo(newval, 0);
|
||||||
|
result.databyte.CopyTo(newval, databytes.Length);
|
||||||
|
var datastr = Encoding.GetEncoding("gb2312").GetString(newval);
|
||||||
|
datastr.Replace(@"\r\n", "");
|
||||||
|
var arr = datastr.Split('@');
|
||||||
|
string wastetype = arr[2];//垃圾类型
|
||||||
|
string weight = arr[3];//重量,kg
|
||||||
|
string trashno = string.Empty; //垃圾桶编号
|
||||||
|
string size = string.Empty;//桶大小
|
||||||
|
var sizebytes = Encoding.Default.GetBytes(arr[0]);
|
||||||
|
size = Convert.ToHexString(sizebytes);
|
||||||
|
var trashbytes = Encoding.Default.GetBytes(arr[1]);
|
||||||
|
//长度为5个字节,后三位为垃圾桶编号(16进制)
|
||||||
|
if (trashbytes.Length == 5)
|
||||||
|
{
|
||||||
|
var typeBytes = new byte[3];
|
||||||
|
for (var i = 0; i < 3; i++)
|
||||||
|
{
|
||||||
|
typeBytes[i] = trashbytes[i + 2];
|
||||||
|
}
|
||||||
|
var typeHex = Convert.ToHexString(typeBytes);
|
||||||
|
trashno = Convert.ToInt32(typeHex, 16).ToString();
|
||||||
|
}
|
||||||
|
await _resultService.InsertResultByWifiAsync(new WifiPackage
|
||||||
|
{
|
||||||
|
sn = result.sn,
|
||||||
|
WasteType = wastetype,
|
||||||
|
Weight = weight,
|
||||||
|
trashcode = trashno,
|
||||||
|
size = size,
|
||||||
|
IsHeart = result.IsHeart
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
var val = await _cahce.GetAsync(result.sn);
|
||||||
|
var time = new DistributedCacheEntryOptions().SetSlidingExpiration(TimeSpan.FromSeconds(60));
|
||||||
|
if (val != null && val.Length > 0)
|
||||||
|
{
|
||||||
|
byte[] newval = new byte[val.Length + result.databyte.Length];
|
||||||
|
val.CopyTo(newval, 0);
|
||||||
|
result.databyte.CopyTo(newval, val.Length);
|
||||||
|
await _cahce.SetAsync(result.sn, newval, time);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
await _cahce.SetAsync(result.sn, result.databyte, time);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return returndata;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// wifi数据解析
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private WifiRequestS2SDto AnalyProto(WifiRequestC2SDto data)
|
||||||
|
{
|
||||||
|
WifiRequestS2SDto dto = new WifiRequestS2SDto();
|
||||||
|
//检查是否为有效的base64数据
|
||||||
|
if (!AESEncrypt.IsBase64(data.@params))
|
||||||
|
{
|
||||||
|
dto.data = data.@params;
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
//数据为base64加密
|
||||||
|
byte[] resultByte = Convert.FromBase64String(data.@params);
|
||||||
|
dto.data = BytesToHexStr(resultByte);
|
||||||
|
//574D07884A1882FCC2FE346BA1D80E 00 A903000D0A1A9A
|
||||||
|
_loggerService.AddLogger($"wifi结果推送,解析出的数据:{dto.data}", 3);
|
||||||
|
int len = resultByte.Count();//数据总长度
|
||||||
|
//长度格式是否正确,固定长度为36位
|
||||||
|
if (len < 23)
|
||||||
|
{
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
//前15个字节为sn。中间以 00 分隔。后面为测量结果数据 A9 03 00 0D 0A 1A 9A
|
||||||
|
int i = 0;
|
||||||
|
byte[] snbyte = new byte[15];
|
||||||
|
for (i = 0; i < 15; i++)
|
||||||
|
{
|
||||||
|
snbyte[i] = resultByte[i];
|
||||||
|
}
|
||||||
|
dto.sn = BytesToHexStr(snbyte).Replace(" ", "");
|
||||||
|
dto.splitstr = ByteToHexStr(resultByte[i]);
|
||||||
|
i++;
|
||||||
|
dto.Header = ByteToHexStr(resultByte[i]);//固定为A9
|
||||||
|
if (dto.Header != "A9") //固定为A9
|
||||||
|
{
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
string heartstr = ByteToHexStr(resultByte[i + 2]);//是否为测量数据
|
||||||
|
if (heartstr != "00")
|
||||||
|
{
|
||||||
|
dto.IsHeart = true;
|
||||||
|
}
|
||||||
|
dto.ischecked = true;
|
||||||
|
string datalenstr = ByteToHexStr(resultByte[i + 1]); //数据体长度
|
||||||
|
int datalen = HextToDec(datalenstr).ToInt();
|
||||||
|
i += 3;
|
||||||
|
dto.databyte = new byte[datalen - 1];
|
||||||
|
for (int j = 0; j < datalen; j++)
|
||||||
|
{
|
||||||
|
if (i < len - 2)
|
||||||
|
{
|
||||||
|
dto.databyte[j] = resultByte[i];
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
return dto;
|
||||||
|
}
|
||||||
|
|
||||||
|
///<summary>
|
||||||
|
/// 字节转16进制
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="bt"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
private string ByteToHexStr(byte bt)
|
||||||
|
{
|
||||||
|
return ((int)bt).ToString("X2");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1752,6 +1752,36 @@
|
||||||
是否为有效测量
|
是否为有效测量
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:Waste.Application.WifiPackage">
|
||||||
|
<summary>
|
||||||
|
wifi模块上传的数据包体
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.WifiPackage.sn">
|
||||||
|
<summary>
|
||||||
|
设备机器码
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.WifiPackage.size">
|
||||||
|
<summary>
|
||||||
|
桶大小
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.WifiPackage.trashcode">
|
||||||
|
<summary>
|
||||||
|
垃圾桶编号
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.WifiPackage.WasteType">
|
||||||
|
<summary>
|
||||||
|
垃圾类别
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.WifiPackage.Weight">
|
||||||
|
<summary>
|
||||||
|
重量,KG
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:Waste.Application.IResultService">
|
<member name="T:Waste.Application.IResultService">
|
||||||
<summary>
|
<summary>
|
||||||
投放记录
|
投放记录
|
||||||
|
|
@ -1778,6 +1808,13 @@
|
||||||
<param name="myPackage"></param>
|
<param name="myPackage"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Waste.Application.IResultService.InsertResultByWifiAsync(Waste.Application.WifiPackage)">
|
||||||
|
<summary>
|
||||||
|
wifi模块测量结果增加
|
||||||
|
</summary>
|
||||||
|
<param name="data"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:Waste.Application.ResultInfos.ResultAppService">
|
<member name="T:Waste.Application.ResultInfos.ResultAppService">
|
||||||
<summary>
|
<summary>
|
||||||
投放记录
|
投放记录
|
||||||
|
|
@ -1809,6 +1846,13 @@
|
||||||
<param name="param"></param>
|
<param name="param"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Waste.Application.ResultService.InsertResultByWifiAsync(Waste.Application.WifiPackage)">
|
||||||
|
<summary>
|
||||||
|
wifi模块测量结果增加
|
||||||
|
</summary>
|
||||||
|
<param name="data"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:Waste.Application.ResultService.InsertResultBy4GAsync(Waste.Application.nMyPackage)">
|
<member name="M:Waste.Application.ResultService.InsertResultBy4GAsync(Waste.Application.nMyPackage)">
|
||||||
<summary>
|
<summary>
|
||||||
新的4G模块测量结果增加
|
新的4G模块测量结果增加
|
||||||
|
|
@ -2577,6 +2621,56 @@
|
||||||
错误信息
|
错误信息
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:Waste.Application.ThirdApiInfo.WifiRequestC2SDto">
|
||||||
|
<summary>
|
||||||
|
wifi模块发送的数据
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestC2SDto.params">
|
||||||
|
<summary>
|
||||||
|
参数,包含sn和测量数据
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:Waste.Application.ThirdApiInfo.WifiRequestS2SDto">
|
||||||
|
<summary>
|
||||||
|
wifi模块发送的数据解析
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.sn">
|
||||||
|
<summary>
|
||||||
|
设备机器码
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.Header">
|
||||||
|
<summary>
|
||||||
|
包头,固定为A9
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.splitstr">
|
||||||
|
<summary>
|
||||||
|
分隔符,固定为00
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.data">
|
||||||
|
<summary>
|
||||||
|
解密出的16进制数据
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.ischecked">
|
||||||
|
<summary>
|
||||||
|
数据是否验证通过
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.IsHeart">
|
||||||
|
<summary>
|
||||||
|
是否为心跳包
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:Waste.Application.ThirdApiInfo.WifiRequestS2SDto.databyte">
|
||||||
|
<summary>
|
||||||
|
结果集
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:Waste.Application.ThirdApiInfo.IOpenService">
|
<member name="T:Waste.Application.ThirdApiInfo.IOpenService">
|
||||||
<summary>
|
<summary>
|
||||||
设备对接接口
|
设备对接接口
|
||||||
|
|
@ -2617,6 +2711,13 @@
|
||||||
<param name="data"></param>
|
<param name="data"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Waste.Application.ThirdApiInfo.IOpenService.WifiPostAsync(Waste.Application.ThirdApiInfo.WifiRequestC2SDto)">
|
||||||
|
<summary>
|
||||||
|
通过ailink wifi模式发送的数据
|
||||||
|
</summary>
|
||||||
|
<param name="data"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:Waste.Application.ThirdApiInfo.OpenAppService">
|
<member name="T:Waste.Application.ThirdApiInfo.OpenAppService">
|
||||||
<summary>
|
<summary>
|
||||||
开放数据
|
开放数据
|
||||||
|
|
@ -2678,6 +2779,13 @@
|
||||||
<param name="ecode"></param>
|
<param name="ecode"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Waste.Application.ThirdApiInfo.OpenAppService.WifiAsync(Waste.Application.ThirdApiInfo.WifiRequestC2SDto)">
|
||||||
|
<summary>
|
||||||
|
通过ailink wifi模式发送的数据
|
||||||
|
</summary>
|
||||||
|
<param name="data"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:Waste.Application.ThirdApiInfo.OpenService">
|
<member name="T:Waste.Application.ThirdApiInfo.OpenService">
|
||||||
<summary>
|
<summary>
|
||||||
设备对接接口
|
设备对接接口
|
||||||
|
|
@ -2739,6 +2847,27 @@
|
||||||
<param name="data"></param>
|
<param name="data"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Waste.Application.ThirdApiInfo.OpenService.WifiPostAsync(Waste.Application.ThirdApiInfo.WifiRequestC2SDto)">
|
||||||
|
<summary>
|
||||||
|
通过ailink wifi模式发送的数据
|
||||||
|
</summary>
|
||||||
|
<param name="data"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Waste.Application.ThirdApiInfo.OpenService.AnalyProto(Waste.Application.ThirdApiInfo.WifiRequestC2SDto)">
|
||||||
|
<summary>
|
||||||
|
wifi数据解析
|
||||||
|
</summary>
|
||||||
|
<param name="data"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Waste.Application.ThirdApiInfo.OpenService.ByteToHexStr(System.Byte)">
|
||||||
|
<summary>
|
||||||
|
字节转16进制
|
||||||
|
</summary>
|
||||||
|
<param name="bt"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:Waste.Application.IWasteService.GetTypeListAsync(Nirvana.Common.QueryParams)">
|
<member name="M:Waste.Application.IWasteService.GetTypeListAsync(Nirvana.Common.QueryParams)">
|
||||||
<summary>
|
<summary>
|
||||||
垃圾分类列表
|
垃圾分类列表
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@
|
||||||
<PackageReference Include="Furion.Extras.DatabaseAccessor.SqlSugar" Version="2.20.6" />
|
<PackageReference Include="Furion.Extras.DatabaseAccessor.SqlSugar" Version="2.20.6" />
|
||||||
<PackageReference Include="Furion.Extras.Logging.Serilog" Version="2.20.6" />
|
<PackageReference Include="Furion.Extras.Logging.Serilog" Version="2.20.6" />
|
||||||
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="2.20.6" />
|
<PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="2.20.6" />
|
||||||
|
<PackageReference Include="Microsoft.Extensions.Caching.StackExchangeRedis" Version="5.0.1" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ using Serilog;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Waste.Core;
|
using Waste.Core;
|
||||||
|
|
||||||
|
|
@ -70,12 +71,22 @@ namespace Waste.Web.Core
|
||||||
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
|
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
|
||||||
MyHttpContext.serviceCollection = services;
|
MyHttpContext.serviceCollection = services;
|
||||||
#endregion
|
#endregion
|
||||||
|
//添加redis缓存
|
||||||
|
services.AddStackExchangeRedisCache(options =>
|
||||||
|
{
|
||||||
|
// 连接字符串,这里也可以读取配置文件
|
||||||
|
options.Configuration = "localhost";
|
||||||
|
// 键名前缀
|
||||||
|
options.InstanceName = "jt_";
|
||||||
|
});
|
||||||
//添加即时通讯
|
//添加即时通讯
|
||||||
// services.AddSignalR();
|
// services.AddSignalR();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
|
||||||
{
|
{
|
||||||
|
//启用 GB2312(按需)
|
||||||
|
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
|
||||||
app.UseSession();
|
app.UseSession();
|
||||||
if (env.IsDevelopment())
|
if (env.IsDevelopment())
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue