温湿度传感器更新

现在可以手动更新温湿度了
This commit is contained in:
CortexCore
2023-07-10 00:00:20 +08:00
parent 10c90cee9a
commit 6301e2d3ad
19 changed files with 754 additions and 132 deletions

View File

@@ -3,11 +3,14 @@ using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Net.Mime;
using System.Reflection.Metadata;
using BITKit;
using Cysharp.Threading.Tasks;
using Godot;
using Microsoft.EntityFrameworkCore;
using RosSharp.RosBridgeClient.MessageTypes.Sensor;
using Constant = BITKit.Constant;
using String = RosSharp.RosBridgeClient.MessageTypes.Std.String;
namespace BITFactory;
// ReSharper disable once IdentifierTypo
@@ -17,11 +20,11 @@ public abstract class IDIS_Base
/// <summary>
/// 创建时间
/// </summary>
public DateTime CreateDate { get; set; }=DateTime.Now;
public DateTime CreateTime { get; set; }=DateTime.Now;
/// <summary>
/// 更新时间
/// </summary>
public DateTime UpdateDate { get; set; }=DateTime.Now;
public DateTime UpdateTime { get; set; }=DateTime.Now;
}
// ReSharper disable once IdentifierTypo
/// <summary>
@@ -76,6 +79,10 @@ public class IDIS_Data:IDIS_Base
/// 值
/// </summary>
public string Value { get; set; }
/// <summary>
/// 类型,用于解析时对数据条目进行分类
/// </summary>
public string Category { get; set; }
}
/// <summary>
/// 标识的引用或关联
@@ -140,10 +147,10 @@ public class IDIS_DBContext:DbContext
.Select(x => new IDIS_Query()
{
Handle = x.Handle,
CreateDate = x.CreateDate,
UpdateDate = x.UpdateDate,
Datas = Datas.Where(data => data.Handle == key).ToArray(),
References = References.Where(reference => reference.Handle == key).ToArray()
CreateTime = x.CreateTime,
UpdateTime = x.UpdateTime,
Datas = Datas.Where(data => data.Handle == x.Handle).ToArray(),
References = References.Where(reference => reference.Handle == x.Handle).ToArray()
}).ToArray();
return queries.Any();
}
@@ -158,15 +165,6 @@ public class IDIS_DBContext:DbContext
{
Query(key, out IDIS_Query[] queries);
query = queries.FirstOrDefault();
var = Datas
//查询相关的标识
.Where(x => x.Handle == "MyHandle")
.OrderBy(x=>x.CreateDate)
//从标识中查找"MyFormat"
.First(x => x.Format == "Temperature").Value;
return queries.Any();
}
public bool Register(string handle)
@@ -184,7 +182,7 @@ public class IDIS_DBContext:DbContext
SaveChanges();
return true;
}
public void Register(string handle,string format, string value)
public void Register(string handle,string format, string value,string category)
{
var handleExists = Values.Any(x => x.Handle == handle);
if (!handleExists)
@@ -195,7 +193,8 @@ public class IDIS_DBContext:DbContext
{
Handle = handle,
Format = format,
Value = value
Value = value,
Category = category,
};
Datas.Add(data);
SaveChanges();
@@ -210,6 +209,27 @@ public class IDIS_DBContext:DbContext
});
SaveChanges();
}
public void Update(string handle, string format, string value)
{
// var datas =Datas.ToList();
// var result = datas.Where(x => x.Handle == handle && x.Format == format).ToArray();
// foreach (var x in result)
// {
// Datas.Remove(x);
// }
// foreach (var element in result)
// {
// element.Value = value;
// element.UpdateTime=DateTime.Now;
// Datas.Add(element);
// }
// SaveChanges();
var result = Datas.Single(x => x.Handle == handle && x.Format == format);
result.UpdateTime=DateTime.Now;
result.Value = value;
SaveChanges();
}
}
// ReSharper disable once IdentifierTypo
/// <summary>
@@ -224,9 +244,11 @@ public partial class IDIS_Service:Node
BIT4Log.Log<IDIS_Service>("已创建标识数据库");
UniTask.Run(()=>Context.Database.EnsureCreatedAsync());
}
public bool TrySearch(string word,out IDIS_Query[] queries) => Context.Query(word, out queries);
public bool Query(string word,out IDIS_Query[] queries) => Context.Query(word, out queries);
public bool Register(string handle) => Context.Register(handle);
public void Register(string handle, string format, string value) => Context.Register(handle, format, value);
public void Register(string handle, string format, string value,string category) => Context.Register(handle, format, value,category);
public void RegisterReference(string handle,string refenceHandle) => Context.RegisterReference(handle,refenceHandle);
public static string GenerateHandle() => $"88.123.99/{Mathf.Abs(Guid.NewGuid().GetHashCode())}";
public bool Query(string key, out IDIS_Query query) => Context.Query(key, out query);
public void Update(string handle, string format, string value) => Context.Update(handle, format, value);
}