public void Add(ICommunicationCommand cmd) { ElementModel emodel = null; if (cmd is GeneralWriteCommand) { GeneralWriteCommand gwcmd = (GeneralWriteCommand)cmd; Write(gwcmd.RefElements_A); Write(gwcmd.RefElements_B); } if (cmd is IntrasegmentWriteCommand) { } if (cmd is ForceCancelCommand) { ForceCancelCommand fccmd = (ForceCancelCommand)cmd; emodel = fccmd.RefElement; if (fccmd.IsAll) { foreach (ElementModel _emodel in dict.Values) { Unlock(_emodel); } smodel.SManager.UnlockAll(); } else { Unlock(emodel); } } }
private void Write(ElementModel element) { string value = element.SetValue; byte[] data; element.SetValue = value; switch (element.ShowType) { case "WORD": data = ValueConverter.GetBytes( (UInt16)(Int16.Parse(value))); break; case "UWORD": data = ValueConverter.GetBytes( UInt16.Parse(value)); break; case "BCD": data = ValueConverter.GetBytes( ValueConverter.ToUINT16( UInt16.Parse(value))); break; case "DWORD": data = ValueConverter.GetBytes( (UInt32)(Int32.Parse(value))); break; case "UDWORD": data = ValueConverter.GetBytes( UInt32.Parse(value)); break; case "FLOAT": data = ValueConverter.GetBytes( ValueConverter.FloatToUInt( float.Parse(value))); break; default: data = new byte[0]; break; } if (element.IsIntrasegment) { IntrasegmentWriteCommand command = new IntrasegmentWriteCommand(data, element); command.RefElement = element; _parent.Manager.Add(command); } else { GeneralWriteCommand command = new GeneralWriteCommand(data, element); command.RefElements_A.Add(element); _parent.Manager.Add(command); } }
private void Force(ElementModel element, byte value) { if (_parent.Manager.CanLock) { _parent.Manager.Lock(element); } else { GeneralWriteCommand command = new GeneralWriteCommand(new byte[] { value }, element); command.RefElements_A.Add(element); _parent.Manager.Add(command); } }
private void Write(ElementModel element, byte value) { if (element.IsIntrasegment) { IntrasegmentWriteCommand command = new IntrasegmentWriteCommand(new byte[] { value }, element); command.RefElement = element; _parent.Manager.Add(command); } else { GeneralWriteCommand command = new GeneralWriteCommand(new byte[] { value }, element); command.RefElements_A.Add(element); _parent.Manager.Add(command); } }