using System;
|
using System.Collections.Generic;
|
|
namespace WIDESEAWCS_S7Simulator.Core.Interfaces
|
{
|
/// <summary>
|
/// 内存存储接口
|
/// 提供统一的内存访问接口,支持地址格式读写
|
/// </summary>
|
public interface IMemoryStore : IDisposable
|
{
|
/// <summary>
|
/// 读取字节数据
|
/// </summary>
|
/// <param name="address">地址(如 "M100", "DB1.DBD0", "I0.0", "T1")</param>
|
/// <param name="length">长度</param>
|
/// <returns>字节数组</returns>
|
byte[] ReadBytes(string address, ushort length);
|
|
/// <summary>
|
/// 读取指定类型数据
|
/// </summary>
|
/// <typeparam name="T">值类型</typeparam>
|
/// <param name="address">地址</param>
|
/// <returns>数据值</returns>
|
T Read<T>(string address) where T : struct;
|
|
/// <summary>
|
/// 写入字节数据
|
/// </summary>
|
/// <param name="address">地址</param>
|
/// <param name="data">数据</param>
|
void WriteBytes(string address, byte[] data);
|
|
/// <summary>
|
/// 写入指定类型数据
|
/// </summary>
|
/// <typeparam name="T">值类型</typeparam>
|
/// <param name="address">地址</param>
|
/// <param name="value">数据值</param>
|
void Write<T>(string address, T value) where T : struct;
|
|
/// <summary>
|
/// 获取内存区域
|
/// </summary>
|
/// <param name="regionType">区域类型(M/DB/I/Q/T/C)</param>
|
/// <returns>内存区域接口</returns>
|
IMemoryRegion GetRegion(string regionType);
|
|
/// <summary>
|
/// 清空所有内存
|
/// </summary>
|
void Clear();
|
|
/// <summary>
|
/// 导出内存数据
|
/// </summary>
|
/// <returns>区域类型 -> 字节数组的字典</returns>
|
Dictionary<string, byte[]> Export();
|
|
/// <summary>
|
/// 导入内存数据
|
/// </summary>
|
/// <param name="data">区域类型 -> 字节数组的字典</param>
|
void Import(Dictionary<string, byte[]> data);
|
}
|
}
|