using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading.Tasks; namespace Uestc.Auto6.Dso.Hardware.Calibration.Data.Base { public interface ICaliData { CaliDataType DataType { get; } Int32 TotalBytes { get; } byte[] Serialize(); private string CaliDataPath { get => AppDomain.CurrentDomain.BaseDirectory + @"CaliData\"; } void Deserialize(byte[] content); /// /// 该函数只能在与Hardware同进程的函数中使用。 /// void SaveToFile() { string fileName = CaliDataPath + DataType.ToString()+".bin"; if (!Directory.Exists(CaliDataPath)) Directory.CreateDirectory(CaliDataPath); if (File.Exists(fileName)) File.Delete(fileName); File.WriteAllBytes(fileName, Serialize()); } /// /// 该函数只能在与Hardware同进程的函数中使用。 /// /// Boolean LoadFromFile() { string fileName = CaliDataPath + DataType.ToString() + ".bin"; if (!File.Exists(fileName)) return false; Deserialize(File.ReadAllBytes(fileName)); return true; } /// /// 该函数只能在Tools中使用 /// public void SaveToFile(string path) { string fileName = path + DataType.ToString() + ".bin"; if (File.Exists(fileName)) File.Delete(fileName); File.WriteAllBytes(fileName, Serialize()); } /// /// 该函数只能在Tools中使用 /// Boolean LoadFromFile(string path) { string fileName = path + DataType.ToString() + ".bin"; if (!File.Exists(fileName)) return false; Deserialize(File.ReadAllBytes(fileName)); return true; } void LoadDefaultValue() { } } }