chushi
This commit is contained in:
parent
4644bccbb3
commit
de790170f0
@ -26,6 +26,7 @@ using YunDa.SOMS.DataTransferObject.GeneralInformation.ProtectionDeviceInfoDto;
|
||||
using YunDa.SOMS.DataTransferObject.GeneralInformation.ProtectionDeviceInfoDto.HistoryData;
|
||||
using YunDa.SOMS.DataTransferObject.GeneralInformation.ProtectionDeviceInfoDto.SearchCondition;
|
||||
using YunDa.SOMS.DataTransferObject.GeneralInformation.ProtectionSettingDto;
|
||||
using YunDa.SOMS.DataTransferObject.MainStationMaintenanceInfo.OperationReport;
|
||||
using YunDa.SOMS.Entities.GeneralInformation;
|
||||
|
||||
namespace YunDa.ISAS.Application.GeneralInformation
|
||||
@ -46,7 +47,7 @@ namespace YunDa.ISAS.Application.GeneralInformation
|
||||
|
||||
private readonly IRepository<ImProtectDevice,string> _imProtectDeviceRepository;
|
||||
private readonly IUnitOfWorkManager _unitOfWorkManager;
|
||||
IRedisRepository<List<NameIntValueProperty>, string> _deviceBoardStatesRedis;
|
||||
IRedisRepository<DeviceBoardStates, string> _deviceBoardStatesRedis;
|
||||
string deviceIORedisKey = "deviceIO";
|
||||
IRedisRepository<IOState, string> _deviceIOsRedis;
|
||||
|
||||
@ -70,7 +71,7 @@ namespace YunDa.ISAS.Application.GeneralInformation
|
||||
IRepository<BoardCardInfo, Guid> boardCardInfoRepository,
|
||||
IRepository<BoardCardHistory, Guid> boardCardHistoryRepository,
|
||||
IRepository<ManufacturerInfo, Guid> manufacturerInfoRepository,
|
||||
IRedisRepository<List<NameIntValueProperty>, string> deviceBoardStatesRedis,
|
||||
IRedisRepository<DeviceBoardStates, string> deviceBoardStatesRedis,
|
||||
IRedisRepository<IOState, string> deviceIOsRedis,
|
||||
IRepository<ProtectionDeviceType, Guid> protectionDeviceTypeRepository,
|
||||
ISessionAppService sessionAppService
|
||||
@ -361,7 +362,7 @@ namespace YunDa.ISAS.Application.GeneralInformation
|
||||
{
|
||||
|
||||
var state = await _deviceBoardStatesRedis.HashSetGetAllAsync(deviceBoardStatesRedisKey, protectionDeviceInfo.DeviceAddress.ToString());
|
||||
rst.ResultData = state.Select(t=>new DeviceRunState { Name = t.Name,State = t.Value}).ToList();
|
||||
rst.ResultData = state.States.Select(t=>new DeviceRunState { Name = t.Name,State = t.Value}).ToList();
|
||||
rst.Flag = true;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,21 @@
|
||||
using MessagePack;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Security.Permissions;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using YunDa.SOMS.DataTransferObject.CommonDto;
|
||||
|
||||
namespace YunDa.SOMS.DataTransferObject.MainStationMaintenanceInfo.OperationReport
|
||||
{
|
||||
[MessagePackObject(keyAsPropertyName: true)]
|
||||
public class DeviceBoardStates
|
||||
{
|
||||
public Guid EquipmentInfoId { get; set; }
|
||||
public string EquipmentInfoName { get; set; }
|
||||
public List<NameIntValueProperty> States { get; set; }
|
||||
[MessagePackFormatter(typeof(DateTimeAsUnixTimeFormatter))]
|
||||
public DateTime Time { get; set; }
|
||||
}
|
||||
}
|
@ -102,6 +102,9 @@ namespace YunDa.ISAS.Redis
|
||||
IocManager.Register<IRedisRepository<BCodeAndNTP, string>, RedisRepository<BCodeAndNTP, string>>();
|
||||
IocManager.Register<IRedisRepository<List<NameIntValueProperty>, string>, RedisRepository<List<NameIntValueProperty>, string>>();
|
||||
IocManager.Register<IRedisRepository<List<NameValueProperty>, string>, RedisRepository<List<NameValueProperty>, string>>();
|
||||
IocManager.Register<IRedisRepository<DeviceBoardStates, string>, RedisRepository<DeviceBoardStates, string>>();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -31,14 +31,11 @@ namespace Yunda.SOMS.DataMonitoringServer.ProtectionDeviceHandle
|
||||
FtpFile _ftpFile;
|
||||
DotNettyTcpServer _dotNettyTcpServer;
|
||||
private readonly RedisDataRepository _redisDataRepository;
|
||||
private readonly IRedisRepository<List<NameIntValueProperty>, string> _deviceBoardStatesRedis;
|
||||
private readonly IRedisRepository<Dictionary<string, object>, string> _dicRedis;
|
||||
private readonly IRedisRepository<DeviceBoardStates, string> _deviceBoardStatesRedis;
|
||||
public ProtectionDeviceRunInfoHandle(
|
||||
FtpFile ftpFile,
|
||||
DotNettyTcpServer dotNettyTcpServer,
|
||||
IRedisRepository<List<string>, string> redisRepository,
|
||||
IRedisRepository<List<NameIntValueProperty>, string> deviceBoardStatesRedis,
|
||||
IRedisRepository<Dictionary<string, object>, string> dicRedis,
|
||||
IRedisRepository<DeviceBoardStates, string> redisRepository,
|
||||
WebApiRequest webApiRequest,
|
||||
RedisDataRepository redisDataRepository
|
||||
)
|
||||
@ -48,8 +45,7 @@ namespace Yunda.SOMS.DataMonitoringServer.ProtectionDeviceHandle
|
||||
_dotNettyTcpServer = dotNettyTcpServer;
|
||||
_redisDataRepository = redisDataRepository;
|
||||
_dotNettyTcpServer.MessageReceived += OnMessageReceived; // 订阅事件
|
||||
_deviceBoardStatesRedis = deviceBoardStatesRedis;
|
||||
_dicRedis = dicRedis;
|
||||
_deviceBoardStatesRedis = redisRepository;
|
||||
|
||||
}
|
||||
//Dictionary<byte, DeviceInfo> _deviceRunStates = new Dictionary<byte, DeviceInfo>();
|
||||
@ -210,11 +206,15 @@ namespace Yunda.SOMS.DataMonitoringServer.ProtectionDeviceHandle
|
||||
boardStates[4].Value = bit2[2] ? 0 : 1;
|
||||
boardStates[5].Value = bit2[3] ? 0 : 1;
|
||||
boardStates[6].Value = bit2[4] ? 0 : 1;
|
||||
_deviceBoardStatesRedis.HashSetUpdateOneAsync(deviceBoardStatesRedisKey, address.ToString(), boardStates);
|
||||
Dictionary<string,object> keyValuePairs = boardStates.ToDictionary(t=>t.Name,t=>(object)t.Value);
|
||||
keyValuePairs.Add("EquipmentInfoId", device.EquipmentInfoId);
|
||||
keyValuePairs.Add("EquipmentInfoName", device.EquipmentInfoName);
|
||||
_dicRedis.PublishAsync(deviceBoardStatesRedisChannelKey, keyValuePairs);
|
||||
DeviceBoardStates deviceBoardStates = new DeviceBoardStates()
|
||||
{
|
||||
EquipmentInfoId = device.EquipmentInfoId,
|
||||
EquipmentInfoName = device.EquipmentInfoName,
|
||||
States = boardStates,
|
||||
Time = DateTime.Now,
|
||||
};
|
||||
_deviceBoardStatesRedis.HashSetUpdateOneAsync(deviceBoardStatesRedisKey, address.ToString(), deviceBoardStates);
|
||||
_deviceBoardStatesRedis.PublishAsync(deviceBoardStatesRedisChannelKey, deviceBoardStates);
|
||||
}
|
||||
string deviceBoardStatesRedisKey = "deviceBoardStates";
|
||||
string deviceBoardStatesRedisChannelKey = "deviceBoardStatesChannel";
|
||||
|
Loading…
x
Reference in New Issue
Block a user