农场设备管理代码(1)

using Dias_Interface;

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Dias_Farm

{

public class staticDevice

{

public static List<DeviceInfo> DEVLIST = new List<DeviceInfo>();

public static void Init(string mainid)

{

DEVLIST.Clear();

string path = System.IO.Path.Combine(Environment.CurrentDirectory, "Data", $"DeviceList_{mainid}.Dat");

if (System.IO.File.Exists(path))

{

string data = System.IO.File.ReadAllText(path, Encoding.UTF8);

DEVLIST = DataBus.StringToObject<List<DeviceInfo>>(data);

if (DEVLIST == null)

DEVLIST = new List<DeviceInfo>();

}

if (DEVLIST.Count <= 0)

{

DataDeviceInfo dvi = new DataDeviceInfo(new Setting("Device_Data_Set"))

{

Id = "1001",

Name = "场温度",

Value = 23.50,

Status = 0,

Type = DeviceType.Data,

Description = "场室外温度"

};

dvi.Set.Set("Unit", "℃");

DEVLIST.Add(dvi);

DataDeviceInfo dvi1 = new DataDeviceInfo(new Setting("Device_Contol_Set"))

{

Id = "1002",

Name = "供水闸",

Value = 0,

Status = 0,

Type = DeviceType.Control,

Description = "总水匣开关"

};

DEVLIST.Add(dvi1);

}

}

public static void Add(DeviceInfo dev)

{

if (DEVLIST.Find(s => s.Id == dev.Id) == null)

{

DEVLIST.Add(dev);

}

}

public static DeviceInfo GetDeviceById(string id)

{

return DEVLIST.FirstOrDefault(s => s.Id == id) as DeviceInfo;

}

public static bool RemoveById(string id)

{

return DEVLIST.RemoveAll(s => s.Id == id)==1;

}

public static void Save(string mainid)

{

string path = System.IO.Path.Combine(Environment.CurrentDirectory, "Data", $"DeviceList_{mainid}.Dat");

string data=DataBus.ObjectToString(DEVLIST);

System.IO.File.WriteAllText(path, data,Encoding.UTF8);

}

}

}

相关推荐
BuHuaX9 小时前
Lua 与 ToLua:运行机制及热更新原理
开发语言·unity·junit·c#·lua
xys_6789 小时前
深挖C++:C++入门基础
开发语言·c++
asdzx679 小时前
C# 操作 PDF 元数据:从属性写入到字段提取的完整流程
前端·pdf·c#
幻境如梦丶皆为虚9 小时前
从零写一个 DSH 插件:在左侧菜单栏加一个「测试」
开发语言·javascript·ecmascript
LabVIEW开发10 小时前
LabVIEW 局部变量与数据流:这道 CLAD 题为什么答案是 Undefined
java·开发语言·labview
路溪非溪10 小时前
C++标准库之智能指针
linux·开发语言·c++
衍生星球10 小时前
【Java 语言】— 面向对象:构造方法(无参、有参构造)
java·开发语言
yuniko-n10 小时前
【JVM】对象内存布局
java·开发语言·jvm
何中应11 小时前
【Go-1】变量&常量定义
开发语言·后端·golang