using Rs.Framework; using Rs.Motion.Base; using Rs.Motion.GugaoEcat; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Serialization; namespace Rs.Motion.Ztm { /// /// GLink卡 /// [XmlInclude(typeof(ZtmIO))] public class ZtmIOCard : IIOCard { [XmlIgnore] public short MC { get; set; } public void SetMc(short mc) { foreach (ZtmIO io in DOut) { io.mc = mc; } foreach (ZtmIO io in DIn) { io.mc = mc; } } public void Init() { foreach (IIO iO in DIn) { ((ZtmIO)iO).mc = MC; } foreach (IIO iO in DIn) { ((ZtmIO)iO).mc = MC; } } public override void Init(short cardID,ushort inCount, ushort outCount, ushort slaveNo) { for (ushort i = 0; i < outCount; i++) { ZtmIO io = new ZtmIO(); io.CardID = cardID; io.Name = $"Ztm{cardID}_Out" + i; io.Index = i; io.SlaveNo = (ushort)slaveNo; DOut.Add(io); } for (ushort i = 0; i < inCount; i++) { ZtmIO io = new ZtmIO(); io.CardID = cardID; io.Name = $"Ztm{cardID}_In" + i; io.Index = i; io.SlaveNo = (ushort)slaveNo; DIn.Add(io); } } public override void Save() { string filename = $"config/motion/io/ztm{CardID}.xml"; XmlSerializerHelper.Instance.Serialize(filename, this); } } }