Skip to content

Commit

Permalink
Only set bitNumber in address for Write when a bit is written
Browse files Browse the repository at this point in the history
  • Loading branch information
mycroes committed Jul 12, 2018
1 parent 705743e commit ab486e3
Showing 1 changed file with 7 additions and 4 deletions.
11 changes: 7 additions & 4 deletions S7.Net/Protocol/S7WriteMultiple.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ public static int CreateRequest(ByteArray message, DataItem[] dataItems)
Serialization.SetWordAt(message, paramOffset + Parameter.Offsets.Amount, (ushort) value.Length);
Serialization.SetWordAt(message, paramOffset + Parameter.Offsets.DbNumber, (ushort) item.DB);
message[paramOffset + Parameter.Offsets.Area] = (byte) item.DataType;
Serialization.SetAddressAt(message, paramOffset + Parameter.Offsets.Address, item.StartByteAdr, item.BitAdr);

paramOffset += Parameter.Template.Length;

data.Add(0x00);
if (item.Value is bool b)
{
Serialization.SetAddressAt(message, paramOffset + Parameter.Offsets.Address, item.StartByteAdr,
item.BitAdr);

data.Add(0x03);
data.AddWord(1);

Expand All @@ -45,6 +45,8 @@ public static int CreateRequest(ByteArray message, DataItem[] dataItems)
}
else
{
Serialization.SetAddressAt(message, paramOffset + Parameter.Offsets.Address, item.StartByteAdr, 0);

var len = value.Length;
data.Add(0x04);
data.AddWord((ushort) (len << 3));
Expand All @@ -55,8 +57,9 @@ public static int CreateRequest(ByteArray message, DataItem[] dataItems)
data.Add(0);
}
}
}

paramOffset += Parameter.Template.Length;
}

message.Add(data.Array);

Expand Down

0 comments on commit ab486e3

Please sign in to comment.