public override void Write(MCDataProcessor target)
        {
            var data  = this.Data;
            var count = data.Length;

            if (target.DataCode == CommunicationDataCode.BINARY)
            {
                target.WriteUShort(this.Offset);
                target.WriteByte(0);
                DeviceCodeSerializer.Write(this.DeviceCode, target);
            }
            else if (target.DataCode == CommunicationDataCode.ASCII)
            {
                DeviceCodeSerializer.Write(this.DeviceCode, target);
                target.WriteUShort(this.Offset);
                target.WriteByte(0);
            }

            target.WriteUShort((ushort)count);

            for (int i = 0; i < count; i++)
            {
                target.WriteUShort(data[i]);
            }
        }
        public override void Write(MCDataProcessor target)
        {
            target.WriteByte(this.NetworkNumber);
            target.WriteByte(this.PLCNumber);
            target.WriteUShort(this.IONumber);
            target.WriteByte(this.StationNumber);

            target.WriteUShort(this.CommandCode);
            target.WriteUShort(this.SubCommandCode);
        }
        public override void Write(MCDataProcessor target)
        {
            if (target.DataCode == CommunicationDataCode.BINARY)
            {
                target.WriteUShort(this.Offset);
                target.WriteByte(0);
                DeviceCodeSerializer.Write(this.DeviceCode, target);
            }
            else if (target.DataCode == CommunicationDataCode.ASCII)
            {
                DeviceCodeSerializer.Write(this.DeviceCode, target);
                target.WriteByte(0);
                target.WriteUShort(this.Offset);
            }

            target.WriteUShort(this.Count);
        }
Example #4
0
        public static void Write(DeviceCode code, MCDataProcessor target)
        {
            if (target.DataCode == CommunicationDataCode.BINARY)
            {
                target.WriteByte((byte)code);
            }
            else if (target.DataCode == CommunicationDataCode.ASCII)
            {
                bool prev = target.IgnoreConvert;
                try
                {
                    target.IgnoreConvert = true;
                    var bytes = Encoding.Default.GetBytes(code.ToString().PadRight(2, '*'));

                    target.WriteBytes(bytes);
                }
                finally
                {
                    target.IgnoreConvert = prev;
                }
            }
        }