ln.ethercat/ln.ethercat/SDOCache.cs

48 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Reflection.Metadata;
using ln.collections;
namespace ln.ethercat
{
// public class SDOCache
// {
// ECMaster ECMaster { get; }
// Dictionary<int, BTree<long,SDO>> slaveCaches = new Dictionary<int, BTree<long, SDO>>();
// public SDOCache(ECMaster ecMaster)
// {
// ECMaster = ecMaster;
// }
// public BTree<long,SDO> GetSlaveCache(int slave)
// {
// if (!slaveCaches.TryGetValue(slave, out BTree<long,SDO> slaveCache))
// {
// slaveCache = new BTree<long, SDO>();
// slaveCaches.Add(slave, slaveCache);
// }
// return slaveCache;
// }
// public SDO GetOrCreateDescriptor(SDOAddr address)
// {
// BTree<long,SDO> slaveCache = GetSlaveCache(address.Slave);
// if (!slaveCache.TryGet(address.Linear, out SDO sdo))
// {
// sdo = SDO.Create(ECMaster, address);
// slaveCache.Add(sdo.Address.Linear, sdo);
// }
// return sdo;
// }
// public void Clear() => slaveCaches.Clear();
// public bool Contains(SDOAddr addr) => GetSlaveCache(addr.Slave).ContainsKey(addr);
// public SDO this[SDOAddr address] => GetSlaveCache(address.Slave)[address.Linear];
// }
}