农场设备管理代码(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);

}

}

}

相关推荐
不正经学生2 小时前
C语言预处理详解:编译器真正动手之前的那些事
c语言·开发语言·算法·面试·bug
门思科技3 小时前
LoRaWAN 设备类别:Class A、B、C 对比与选型指南
c语言·开发语言·php
恋恋西风5 小时前
C++ 理解 std::thread 在单核和多核上的行为差异
开发语言·c++
Brilliantwxx5 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
BizzZ_6 小时前
C++(22)——类型转换和IO流
开发语言·c++
小范同学_6 小时前
JDK1.7 与 JDK1.8 HashMap 底层原理对比 + 数组并发扩容死循环详解
java·开发语言
geovindu6 小时前
CSharp: 万年历
开发语言·后端·c#·.net
我找到地球的支点啦7 小时前
Matlab系列(009) 一CRC循环冗余校验详解
开发语言·数据结构·算法·matlab·信息与通信
予昊7 小时前
从零实现“在线五子棋对战“:WebSocket 实时通信 + 段位匹配
java·开发语言·网络·websocket
weixin_461408587 小时前
Mybatis-flex小记
java·开发语言·mybatis