优化处理标准物模型值类型的扩展字段
This commit is contained in:
parent
089faa9842
commit
c972c6a8bf
@ -24,6 +24,7 @@ using Microsoft.Extensions.Options;
|
|||||||
using StackExchange.Redis;
|
using StackExchange.Redis;
|
||||||
using Volo.Abp;
|
using Volo.Abp;
|
||||||
using Volo.Abp.Content;
|
using Volo.Abp.Content;
|
||||||
|
using static FreeSql.Internal.GlobalFilter;
|
||||||
|
|
||||||
namespace JiShe.IoT.DeviceAggregation
|
namespace JiShe.IoT.DeviceAggregation
|
||||||
{
|
{
|
||||||
@ -835,7 +836,7 @@ namespace JiShe.IoT.DeviceAggregation
|
|||||||
createDeviceInput.DeviceType = input.DeviceType.Value;
|
createDeviceInput.DeviceType = input.DeviceType.Value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(item.BusinessSystemDeviceDataId.HasValue)
|
if (item.BusinessSystemDeviceDataId.HasValue)
|
||||||
{
|
{
|
||||||
createDeviceInput.BusinessSystemDeviceDataId = item.BusinessSystemDeviceDataId.Value;
|
createDeviceInput.BusinessSystemDeviceDataId = item.BusinessSystemDeviceDataId.Value;
|
||||||
}
|
}
|
||||||
@ -844,7 +845,7 @@ namespace JiShe.IoT.DeviceAggregation
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(batchCreateDeviceInput.DeviceInputs != null || batchCreateDeviceInput.DeviceInputs.Count > 0)
|
if (batchCreateDeviceInput.DeviceInputs != null || batchCreateDeviceInput.DeviceInputs.Count > 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
@ -1142,6 +1143,36 @@ namespace JiShe.IoT.DeviceAggregation
|
|||||||
upgradeRecordInput.UpgradeMessage = upgradeRequest.Serialize();
|
upgradeRecordInput.UpgradeMessage = upgradeRequest.Serialize();
|
||||||
upgradeRecordInput.FirmwareSignature = upgradeRequest.SignatureValue;
|
upgradeRecordInput.FirmwareSignature = upgradeRequest.SignatureValue;
|
||||||
|
|
||||||
|
string upgradeMessageHexString = upgradeRecordInput.UpgradeMessage.ToHexString();
|
||||||
|
|
||||||
|
//检查长度是否超过了OneNET平台升级属性标识符的长度限制
|
||||||
|
var thingModelInfoStr = ((OneNETProductInfos)productInfo).ThingModelInfos;
|
||||||
|
if (string.IsNullOrWhiteSpace(thingModelInfoStr))
|
||||||
|
{
|
||||||
|
logger.LogError($"{nameof(DeviceUpgradeCommandToOneNET)} 通过OneNET产品ID和属性标识符获取属性配置信息失败,属性信息为空");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
var thingModelInfo = thingModelInfoStr.Deserialize<OneNETAllThingModel>();
|
||||||
|
if (thingModelInfo.Properties == null)
|
||||||
|
{
|
||||||
|
logger.LogError($"{nameof(DeviceUpgradeCommandToOneNET)} 通过OneNET产品ID和属性标识符获取属性配置信息失败,属性信息为空");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var property = thingModelInfo.Properties.Where(d => d.Identifier == upgradeProperty.IoTPlatformRawFieldName).FirstOrDefault(); //精准匹配
|
||||||
|
|
||||||
|
if (property == null)
|
||||||
|
{
|
||||||
|
logger.LogError($"{nameof(DeviceUpgradeCommandToOneNET)} 通过OneNET产品ID和属性标识符获取属性配置信息失败,没有找到属性标识升级对应的属性平台信息");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
var length = ((OneNETModelStringSpecs)property.DataType.Specs).Length;
|
||||||
|
if (upgradeMessageHexString.Length > length)
|
||||||
|
{
|
||||||
|
throw new UserFriendlyException($"设备{deviceInfo.DeviceAddress}平台端物模型信息属性标识符{upgradeProperty.IoTPlatformRawFieldName}长度超过OneNET平台限制,请检查物模型属性标识符长度是否超过了{length}");
|
||||||
|
}
|
||||||
|
|
||||||
var insertResult = await deviceUpgradeRecordService.CreateAsync(upgradeRecordInput);
|
var insertResult = await deviceUpgradeRecordService.CreateAsync(upgradeRecordInput);
|
||||||
|
|
||||||
if (insertResult == null)
|
if (insertResult == null)
|
||||||
@ -1152,7 +1183,7 @@ namespace JiShe.IoT.DeviceAggregation
|
|||||||
//发送OneNET平台设备升级指令,HEX格式字符串
|
//发送OneNET平台设备升级指令,HEX格式字符串
|
||||||
taskInput.Commands = new Dictionary<string, object>()
|
taskInput.Commands = new Dictionary<string, object>()
|
||||||
{
|
{
|
||||||
{ upgradeProperty.IoTPlatformRawFieldName, upgradeRecordInput.UpgradeMessage.ToHexString() }
|
{ upgradeProperty.IoTPlatformRawFieldName, upgradeMessageHexString }
|
||||||
};
|
};
|
||||||
|
|
||||||
var commandRequest = new OpenApiRequest()
|
var commandRequest = new OpenApiRequest()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user