CHANGELOG.md 7.13 KB
Newer Older
1
2
3
4
# CHANGELOG

**Note:** I'll try to keep the changelog up-to-date, but please be patient, I might forget it.

5
6
----

Andreas Müller's avatar
Andreas Müller committed
7
8
9
10
11
12
13
14
15
16
17
18
## 1.2.0 (2021-07-08)

### Added (1 change)

- New property to disable the transaction id check (not recommended but requested)

### Fixed (1 change)

- Optimized an issue with non-responding Modbus TCP servers.



Andreas Müller's avatar
Andreas Müller committed
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
## 1.1.0 (2021-04-30)

### Added (1 change)

- Extensions to convert from/to naive data types have a parameter to `inverseRegisters` order. (by @Luke092) (Closing Issue #15 more precisely)

### Fixed (1 change)

- Better async behaviour for serial client.

### Updated (2 changes)

- Updated to C# 9.0
- Updated packages



36
37
38
39
40
41
42
43
## 1.0.4 (2021-04-13)

### Added (1 change)

- Extension to convert from/to string enhanced by switch to flip bytes (endianness). (Closing Issue #15)



44
45
46
47
48
49
50
51
52
53
54
55
## 1.0.3 (2021-03-29)

### Fixed (1 change)

- Resolved null reference errors while reconnecting (TCP and Serial). (Closing Issue #14)

### Added (1 change)

- Extensions to convert values back to `ModbusObject`s are now available.



Andreas Müller's avatar
Andreas Müller committed
56
57
58
59
60
61
62
63
64
65
66
67
## 1.0.2 (2020-12-08)

### Fixed (1 change)

- Removed a potential dead-lock scenario when disconnecting while on reconnect.

### Added (1 change)

- Modbus clients have a optional `CancellationToken` on `Connect()` and `Disconnect()`.



68
69
70
71
72
73
74
75
## 1.0.1 (2020-11-30)

### Fixed (1 change)

- The Modbus TCP client on unix systems creates an `IOException` on connection loss - catch that exception instead of the `EndOfStreamException`.



Andreas Müller's avatar
Andreas Müller committed
76
## 1.0.0 (2020-11-28)
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280

### Fixed (3 changes)

##### Client

- The Modbus TCP client will now recognize (again) a connection close from the remote and start the reconnect cycle

##### Server

- The Modbus TCP server recognizes the connection close from the client as well and terminate the running tasks.
- The Modbus TCP server catches the rising `NotImplementedException`s and will not crash anymore on invalid requests.

### Added (5 changes)

- Added this changelog.
- Added a `ModbusObject` as base class for `Coil`s, `DiscreteInput`s and `Register`s. The property `Type` of `ModbusObjectType` will tell you the actual meaning.    
  For naming reasons the old classes are still present and used.
- `*.snupkg` (Debug Symbols) for the NuGet packages are available on my Gitlab.
- New package `AMWD.Modbus.Proxy`
  - *TCP to TCP* can be used when a remote device only accepts one connection but multiple clients want to request the information (or as Gateway [on a NAT device]).
  - *TCP to Serial* can be used to bring a Modbus RTU (RS485) device into your local network.
- Added a custom console logger to the console demo application.

### Changed (5 changes)

- The `Value` property of all structure classes is replaced by `RegisterValue` for 16-bit values ([Holding | Input] `Register`) and `BoolValue` for 1-bit values (`Coil`, `DiscreteInput`).
- All servers and clients can use an `ILogger` implementation for detailed logging in the instances.
- Using more `TimeSpan` for timeouts instead of integer values with different meanings (seconds, milliseconds?!?).
- Updated Gitlab CI procedure for automatic deployment to NuGet.org.
- Code cleanup and C# 8.0

### Removed (1 change)

- git attributes not needed and therefore deleted.
- `FakeSynchronizationContext` was never used.



## 0.9.10 (2020-07-07)

### Fixed (1 change)

- Changed handling with a broken serial port for a clean shutdown.



## 0.9.9 (2020-06-29)

### Fixed (2 changes)

- Fixed an issue where the serial client crashed during a request.
- SemVer tagging only allowes 3 sections (major, minor, patch).

### Added (2 changes)

- More specific evaluation of property ranges for the serial client.
- Added license information to the nuget packages.



## 0.9.8.1 (2020-06-24)

### Fixed (1 change)

- Fixed an issue with an incompatible buffer size on the serial client.



## 0.9.8 (2020-06-19)

### Fixed (2 changes)

- Requests from clients can be cancelled with a `CancelleationToken`.
- Read/Write async on serial connections is now available.    
  (The .NET implementation ignores cancellation tokens)

### Added (3 changes)

- New package to create Modbus request proxies.    
  Needed to translate requests from TCP to Serial and vice versa or to make a device with only one (1) connection at a time available to multiple clients.    
  **Note:** Not deployed on NuGet.org.
- Enhanced the console demo application to provide a server.
- Modbus servers have custom request handlers.

### Changed (2 changes)

- The clients have a new parameter to provide a `CancellationToken`.
- The `ModbusDevice` uses a more flexible `ReaderWriterLockSlim`.



## 0.9.7 (2020-05-10)

### Fixed (1 change)

- Reverted changes from a merge request to keep .NET Standard 2.0 as target framework.



## 0.9.6 (2020-05-10)

- Merging requests #10 and #11 into the `master`.

### Fixed (1 change)

- Less garbage collecting needed while reading a network stream (from [mishun](https://github.com/mishun)).

### Added (1 change)

- Additional constructor parameter to change the max. connect timeout (from [madfisht3](https://github.com/madfisht3)).



## 0.9.5 (2020-05-08)

### Fixed (2 changes)

- Serial client did not filter an error response function code.
- Reverted some incompatible package versions.

### Added (2 changes)

- `.editorconfig` added for a unified look and feel.
- `CodMaid.config` added for a unified code cleanup and structure.



## 0.9.4 (2020-02-14)

### Fixed (2 changes)

- Null reference error on disconnect fixed.
- `ReceiveLoop` not accessing a disposed stream.

### Added (2 changes)

- Logging available for the Modbus TCP server.
- Some internal extensions.

### Changed (1 change)

- Version tag on compiletime changed (NetRevisionTask).

### Removed (1 change)

- `Task.Forget()` only internal available to prevent conflicts with other implementations.



## 0.9.3 (2019-07-24)

### Fixed (2 changes)

- Catch some exceptions to keep the client more quiet.
- Fixed an issue during diconnect when the client was reconnecting.

### Added (2 changes)

- Custom console logger for UnitTests.
- More UnitTests.

### Changed (3 changes)

- Modbus TCP client uses `TaskCompletionSource`.
- Modbus Serial cient enhanced to be more async.
- Updating to C# 7.1 and more up-to-date packages.



## 0.9.2 (2019-04-12)

### Fixed (1 change)

- Modbus TCP server was not able to write multiple registers (from [hmarius](https://github.com/hmarius)).

### Added (1 change)

- Change dual driver (RS232/RS485) to RS485 state (tested with sysWORXX CTR 700).



## 0.9.1 (2019-04-02)

### Fixed (1 change)

- First working Modbus serial implementation.

### Added (3 changes)

- Implementation of function 43 (0x2B read device information).
- UnitTests.
- Gitlab CI builds.

### Changed (1 change)

- NuGet information of projects updated.



## 0.9.0 (2018-06-14) | *First Release*

- Modbus TCP Client implementation with all common functions available.
- Modbus TCP Server implementation (not well tested).
- Basic Modbus Serial implementation (not tested!).