Serge Camille
2a451bc049
TSDU: Use Array.Copy for Read functions.
2020-09-02 20:09:51 +02:00
Serge Camille
bd8177d39e
Add nullable support throughout the whole library.
...
This requires reference types that can be null to be annotated by a ? operator, similar to value types.
This gives the advantage that the compiler can warn against any null dereference exceptions, of which this commits elimits a few.
To make the underlying protocol implementation not any more complicated and to eliminate existing problems, and not that precise error reporting, I replaced some return null statements with explicit Exceptions. This lead to the assumption that those core protocoll functions always return non-null objects if they do not throw, making the PLC code simpler.
Adjust some NotConnected tests to look for explicit PlcException instead of NullReferenceException.
2020-08-31 22:48:45 +02:00
Michael Croes
647d4c7ae2
AppVeyor and infra updates
...
- Change build image to VS 2019
- Update Microsoft.SourceLink.GitHub package
- Update solution file
- Build separate symbol package (.snupkg)
2020-08-31 22:28:59 +02:00
Serge Camille
7035d22506
Convert UnitTest project to SDK project type.
2020-08-18 09:20:31 +02:00
Serge Camille
28257f28b3
Dtl: Add TypeLengthInBytes constant instead of always rewriting 12.
2020-08-17 19:20:19 +02:00
Serge Camille
a1d87de2d9
Rename DTL to DateTimeLong
2020-08-17 19:14:28 +02:00
Serge Camille
4be5765fc9
Run Resharper cleanup on DTL class, fix Dtl.ToByteArray list capacity.
2020-08-16 22:50:23 +02:00
Serge Camille
6614c7330a
Hook up DTL to VarType enum and PLCHelper.
2020-08-16 22:36:23 +02:00
Serge Camille
5d59c8284d
Add DTL type
...
Add new class Types.Dtl by taking the DateTime type and adjusting things.
Also add unit test with binary data calculated by hand. (Need to verify with actual S7 data)
2020-08-16 22:31:26 +02:00
Michael Croes
0b6226327b
PLC: Improve exceptions on Read
...
Close #258 .
2020-08-13 22:47:32 +02:00
Michael Croes
0a8ee0e091
PLCAddress: Add OB, OW, OD types from PR #277
...
PR #246 included most types also included in #277 , this adds OB, OW and
OD that were only in #277 .
Close #277 .
2020-08-13 22:04:53 +02:00
Michael Croes
9ea54be524
Types/Class: Start arrays on even bytes
...
Addresses #175
2020-08-13 21:40:44 +02:00
Tim Verwaal
8dc89867e9
Extended PLCAddress.Parse method
2019-12-19 10:55:51 +01:00
Michael Croes
6a84b6f124
Use ToBitArray overload with length in ParseBytes
2019-07-17 21:46:18 +02:00
Michael Croes
b3cb45de37
Add ToBitArray overload with length
2019-07-17 21:46:17 +02:00
Michael Croes
4fcab9a167
Fix VarTypeToByteLength for bit arrays
2019-07-17 21:46:17 +02:00
Michael Croes
2a4485941f
Calculate PDU size constraints
2019-07-17 21:39:41 +02:00
Michael Croes
0e5651b37f
Merge branch 'develop' into develop
2019-07-17 21:22:45 +02:00
Michael Croes
427d8124de
Add DateTime support for read/write methods
2019-07-17 21:07:45 +02:00
Michael Croes
735f1d4533
Add support for DateTime array conversion
2019-07-17 21:07:45 +02:00
Michael Croes
2aa4f08836
Add Types.DateTime
2019-07-17 21:07:44 +02:00
Michael Croes
cf64c65c23
Provide a clear message on Encoding.ASCII.GetString exceptions
2019-07-17 21:04:26 +02:00
tatzemax
3872e638aa
Merge branch 'develop' into develop
2019-07-11 17:57:14 +02:00
Thomas Jager
e124c70fb1
Merge branch 'develop' into develop
2019-07-11 12:24:07 +02:00
Max
b2183dd760
rename PORT to Port
...
add a Space
2019-07-10 20:42:52 +02:00
max
f2d33855ca
add Port Setting for PLC.
...
is required for port forwarding
2019-07-10 18:44:04 +02:00
max
b1d2d11904
add Port Setting for PLC.
...
is required for port forwarding
2019-07-10 18:17:02 +02:00
Evgeniy
23796de8bf
Update PlcSynchronous.cs
...
MaxPDUSize for WriteBytes
2019-07-03 13:04:33 +05:00
Thomas Jäger
02b38326c8
Fix padding of last dataitem in WriteMulitple fixes #222
2019-06-19 13:02:53 +02:00
Смирнов Виталий
2fbabd5517
style: updated code style.
2019-05-28 10:01:28 +03:00
Смирнов Виталий
800a790b89
feature: added changing ReadTimeout and WriteTimeout for connected tcpClient.
2019-05-28 08:56:06 +03:00
Смирнов Виталий
0dbe401ce9
feature: added ReadTimeout and WriteTimeout to PLC class for NetworkStream.
2019-05-27 13:52:38 +03:00
Michael Croes
ce359789dc
Add explicit support for Logo0BA8
...
Unsure if the PLC actually requires the specfically provided TSAP's,
but these have been verified to work.
2019-03-14 23:04:26 +01:00
Michael Croes
4ae905ffd5
Set PDU size to 960
...
Allows communication with Siemens Logo 0BA8, currently no Siemens PLC
is known to support >960 PDU size.
2019-03-14 23:04:26 +01:00
Michael Croes
70506e7dba
Throw InvalidDataException in Open(Async)
2019-03-14 23:02:15 +01:00
Michael Croes
20458d4b46
Add InvalidDataException
2019-03-14 23:02:14 +01:00
Michael Croes
898b870221
Expose TPKT on TPDU
...
Temporary hack to allow access to the received TPKT data.
2019-03-14 23:02:14 +01:00
Adam Oleksy
de084394a6
Fix writing nested classes
2018-10-04 18:14:44 +02:00
Adam Oleksy
370fd6b3d9
Fix reading nested classes
2018-09-26 14:43:49 +02:00
Michael Croes
e44cb1571c
Validate BitAdr when writing a bit
2018-07-12 20:51:37 +02:00
Michael Croes
ab486e3d1f
Only set bitNumber in address for Write when a bit is written
2018-07-12 20:51:20 +02:00
Michael Croes
705743e5f1
Convert bitNumber '-1' to 0 in DataItem
2018-07-12 20:49:44 +02:00
Michael Croes
09d323925a
Add length to String.ToByteArray(...)
2018-07-11 22:07:08 +02:00
Michael Croes
bf4550655e
Add support for creating DataItem from string ( #149 )
...
* Refactor PLCAddress
- Change fields into properties
- Apply PascalCase naming to all properties
- Make Parse public static with out parameters
* Support creating DataItem from string
* Rename PlcAddress.Address to StartByte
2018-07-11 10:21:49 +02:00
Raphael Schlameuß
214a7a73c8
Read many bytes 1500 (develop branch) ( #160 )
...
* ReadBytesWithSingleRequest cannot read >491 Bytes on S7-1500
2018-07-11 10:15:08 +02:00
Michael Croes
a5d3c70373
Add SourceLink.Copy.PdbFiles to add missing .pdb files ( #163 )
2018-07-11 09:53:33 +02:00
Michael Croes
2204ab360c
Fix write stringex ( #162 )
...
* Add StringEx.ToByteArray(...)
* Add Serialization.SerializeDataItem(DataItem)
Supports StringEx VarType or offloads to SerializeValue method.
* Use SerializeDataItem in S7WriteMultiple
* Assume string length without header in StringEx.ToByteArray
VarTypeToByteLength already assumed that StringEx declared count for
the number of characters without the header, this now matches that
behavior.
* Add unit tests for StringEx conversions
* Fix incorrect value passed to Encoding.GetBytes
The length must actually be within string limits.
2018-07-11 09:47:43 +02:00
Michael Croes
1538de148b
Replace LastErrorCode and LastErrorString with exceptions
2018-07-09 20:07:47 +02:00
Michael Croes
ab11cc8e3e
Add SourceLink support
2018-07-06 22:24:07 +02:00
Michael Croes
9740224966
Add NuGet tags to S7.Net.csproj
2018-07-06 22:24:07 +02:00