Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
c9f23ea
Local IP port managment
maxsonramonanjos Sep 22, 2022
4848b29
Merge branch 'v2.2_develop' into TestTool_Development
ibekaddour Nov 24, 2023
4700fa6
Updating TLS
ibekaddour Nov 24, 2023
56c64df
Possibility of changing TLS version on server side
ibekaddour Nov 27, 2023
43bd90d
Adding function to get the number messages in the queue
ibekaddour Jun 4, 2024
ab9c140
- some code format updates
mzillgith Jun 5, 2024
6668d2d
Showing number of queues when increasing
ibekaddour Jun 5, 2024
7b8fec0
Latest update
ibekaddour Jun 7, 2024
089668f
Adding redundancy group in server example
ibekaddour Jun 11, 2024
44c3c78
Adding CONNECTION_IS_REDUNDANCY_GROUP
ibekaddour Jun 12, 2024
5d5774d
Removing bin and obj folders
ibekaddour Jun 12, 2024
105a52f
Latest update with test cases
ibekaddour Jun 14, 2024
6872d89
- CS104 Slave: Add function to get number of ASDU in queue
mzillgith Jun 15, 2024
80584f4
- added log message when STARTDT received while connection is already
mzillgith Jun 15, 2024
f8ffd2e
- added new certificates for TLS examples
mzillgith Oct 28, 2024
889bd6c
- updated TLS examples
mzillgith Oct 28, 2024
735ced7
- updated CHANGELOG
mzillgith Nov 22, 2024
994bac2
- CS104 server: added code to send outstanding S-message when STOPDT-…
mzillgith Nov 22, 2024
5198e23
- code format updates
mzillgith Nov 22, 2024
665ac13
- Add methods to support RawMessageHandler to CS101Slave (L870NET-20)
mzillgith Dec 6, 2024
898c995
CS104 slave: check IOA of received commands where IOA is fixed to 0
ibekaddour Jan 8, 2025
7b42263
Disable support for C_TS_NA_1 for CS104 by default
ibekaddour Jan 8, 2025
8b5266f
CS101 Unbalanced Slave: updated behavior when FCB bit did not change
ibekaddour Jan 13, 2025
77af938
Latest update
ibekaddour Jan 16, 2025
e2453b4
Merge
ibekaddour Jan 16, 2025
868c851
CS101 balanced link layer: Send request-status-of-link before calling…
ibekaddour Jan 16, 2025
d42019f
Fixed issue in CS101 Secondary Link Layer Unbalanced
ibekaddour Jan 20, 2025
495db22
Merge branch 'develop/v2.3.0_L870NET-16' into develop/v2.3_20
ibekaddour Jan 20, 2025
76a12aa
Disable support for C_TS_NA_1 and C_CD_NA_1 for CS104 by default
ibekaddour Jan 20, 2025
a5253f4
CS101 balanced link layer: Send request-status-of-link before calling…
ibekaddour Jan 21, 2025
9f688fe
CS101 unbalanced master: Send request-status-of-link before calling r…
ibekaddour Jan 21, 2025
e89b84a
CS104 slave: check IOA of received commands where IOA is fixed to 0
ibekaddour Jan 21, 2025
9285cbe
Updating TLS v1.3
ibekaddour Jan 22, 2025
a91c402
CS 104 server: connection is closed by server when receiving S messag…
ibekaddour Jan 22, 2025
9ed14c4
Allowing server to use only TLS versions 1.2 and 1.3
ibekaddour Jan 24, 2025
ceedcb2
Implementing Master connection state
ibekaddour Jan 27, 2025
e7e12c6
Implementing CS104 Client Connection State
ibekaddour Jan 28, 2025
62f1dbe
Implementing test case for Unconfirmed stop state
ibekaddour Jan 29, 2025
a5c6a6e
Changing type for scaledValue
ibekaddour Jan 30, 2025
bfc1274
Commenting some conditions, (to be checked)
ibekaddour Jan 31, 2025
39618e4
merge
ibekaddour Jan 31, 2025
e1dc82b
Implementing test cases
ibekaddour Jan 31, 2025
3b0e65a
Implementing other test cases (other ASDU types, etc...)
ibekaddour Feb 3, 2025
1cc8648
Implementing other test cases
ibekaddour Feb 4, 2025
44fbea1
Implementing test case when add until overflow
ibekaddour Feb 4, 2025
c692a32
Implementing Test Command test case
ibekaddour Feb 5, 2025
266e3bb
Test cases implementation and fix
ibekaddour Feb 13, 2025
432a07f
Adjust sleep time
ibekaddour Feb 13, 2025
186a6b8
Fixing master connection state
ibekaddour Feb 13, 2025
6d59179
Implement unconfirmed messages for low and high priority queues
ibekaddour Feb 17, 2025
b0e6025
Update 2016-2022 to 2016-2022 in all the files
maxsonramonanjos Mar 4, 2025
54f1361
Add readme for nuget package
maxsonramonanjos Feb 18, 2025
abd89bb
Add nuget properties to project
maxsonramonanjos Feb 18, 2025
9a872e2
Update package properties and add icon
maxsonramonanjos Feb 18, 2025
939e64d
Add readme for nuget package
maxsonramonanjos Feb 18, 2025
88c2595
->Remove all unused references;
maxsonramonanjos Mar 6, 2025
32d36c1
-> Separet the ASDUQueue in another .cs file
maxsonramonanjos Mar 7, 2025
e379914
Only send last ASDU if lastSendASDU!= null
maxsonramonanjos Mar 18, 2025
63fce72
->Filx bug - confirm all unconfirmed messages before stopping the con…
maxsonramonanjos Mar 18, 2025
4e2274b
Fix bug on nof
maxsonramonanjos Mar 18, 2025
dc2a5f4
Clean auto commented code
maxsonramonanjos Mar 18, 2025
82f011c
Check COT = FileTranfer on fileHandler for every case and return UNKN…
maxsonramonanjos Mar 18, 2025
93b6d4b
Fix -> Problem in normalized value handling
maxsonramonanjos Mar 20, 2025
3fb6fd7
Updating documentation
ibekaddour Mar 21, 2025
5cac48d
Adding logo
ibekaddour Mar 21, 2025
1717185
Add doxigen html
maxsonramonanjos Mar 21, 2025
14d7d0f
merge branch develop/v2.3.0
maxsonramonanjos Mar 21, 2025
3dfe86c
Merge bug fixed
maxsonramonanjos Mar 21, 2025
c51ca86
user guide update
maxsonramonanjos Mar 21, 2025
c053423
Add dotnet 8 lib project
maxsonramonanjos Mar 21, 2025
1d3395b
Add framework project
maxsonramonanjos Mar 21, 2025
416aff7
remove doxigen html pages
maxsonramonanjos Mar 21, 2025
f70a202
Add lock to increment port in each test case
maxsonramonanjos Mar 21, 2025
63e8ea9
Remove frameowrk lib version;
maxsonramonanjos Mar 21, 2025
cf9a0b5
Add release script
maxsonramonanjos Mar 24, 2025
6a0c9ee
Format all -cs files
maxsonramonanjos Mar 24, 2025
03c21aa
Formating all .cs files removing tabs
maxsonramonanjos Mar 24, 2025
a277f07
- fixed two test cases to run on Linux
mzillgith Mar 25, 2025
40e9e27
update examples and tests to .net8
maxsonramonanjos Mar 25, 2025
35a0a8f
FIx port problem on test tests.Test.TestConnectSameConnectionMultiple…
maxsonramonanjos Mar 25, 2025
4ad2923
fix tests - if (enqueuedMessage == server.MaxQueueSize)
maxsonramonanjos Mar 25, 2025
e513d70
Add ServerStateEvent
juwiefer-btc Mar 25, 2025
1cfe1bb
Make connections and their queues accessible.
juwiefer-btc Mar 25, 2025
f13774c
Remove condition on CallConnectionEventHandler()
juwiefer-btc Mar 25, 2025
5dc3c0f
Allow to send S Message for faster acknowledgement.
juwiefer-btc Apr 23, 2025
a3be03c
#36: Confirmations in highPrioQueue could act on lowPrioQueue
juwiefer-btc Jun 18, 2025
2e4f22d
#35/KRITISAPP-2405: Repeated ASDUs on long interrogation
juwiefer-btc Jun 18, 2025
5df6331
Make race condition somewhat less likely.
juwiefer-btc Sep 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
94 changes: 94 additions & 0 deletions .net8/lib60870.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<Authors>Michael Zillgith</Authors>
<Company>MZ Automation</Company>
<PackageId>lib60870</PackageId>
<Version>2.3.0</Version>
<RootNamespace>lib60870</RootNamespace>
<AssemblyName>lib60870</AssemblyName>
<ReleaseVersion>2.3.0</ReleaseVersion>
<TargetFramework>net8.0</TargetFramework>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
<PackageIcon>icon.png</PackageIcon>
<Description>
lib60870.NET library for IEC 60870-5 based protocols in C#
The current implementation contains code for the IEC 60870-5-101/104 protocols only.
</Description>
<PackageReadmeFile>readme.md</PackageReadmeFile>
<PackageOutputPath>nupkg</PackageOutputPath>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<PackageLicenseExpression>GPL-3.0-only</PackageLicenseExpression>
</PropertyGroup>
<ItemGroup>
<Compile Include="ASDUQueue.cs" />
<Compile Include="CS101\ApplicationLayerParameters.cs" />
<Compile Include="CS101\ASDU.cs" />
<Compile Include="CS101\BinaryCounterReading.cs" />
<Compile Include="CS101\Bitstring32.cs" />
<Compile Include="CS101\CauseOfTransmission.cs" />
<Compile Include="CS101\CS101Master.cs" />
<Compile Include="CS101\CS101Slave.cs" />
<Compile Include="CS101\DoublePointInformation.cs" />
<Compile Include="CS101\EndOfInitialization.cs" />
<Compile Include="CS101\EventOfProtectionEquipment.cs" />
<Compile Include="CS101\FileObjects.cs" />
<Compile Include="CS101\FileServices.cs" />
<Compile Include="CS101\InformationObject.cs" />
<Compile Include="CS101\IntegratedTotals.cs" />
<Compile Include="CS101\Master.cs" />
<Compile Include="CS101\MeasuredValueNormalized.cs" />
<Compile Include="CS101\MeasuredValueScaled.cs" />
<Compile Include="CS101\MeasuredValueShort.cs" />
<Compile Include="CS101\OutputCircuitInfo.cs" />
<Compile Include="CS101\PackedOutputCircuitInfo.cs" />
<Compile Include="CS101\PackedStartEventsOfProtectionEquipment.cs" />
<Compile Include="CS101\ParameterMeasuredValues.cs" />
<Compile Include="CS101\QualityDescriptor.cs" />
<Compile Include="CS101\QualityDescriptorP.cs" />
<Compile Include="CS101\ScaledValue.cs" />
<Compile Include="CS101\SetpointCommandQualifier.cs" />
<Compile Include="CS101\SetpointCommands.cs" />
<Compile Include="CS101\SingleCommand.cs" />
<Compile Include="CS101\SingleCommandQualifier.cs" />
<Compile Include="CS101\SingleEvent.cs" />
<Compile Include="CS101\SinglePointInformation.cs" />
<Compile Include="CS101\Slave.cs" />
<Compile Include="CS101\StartEvent.cs" />
<Compile Include="CS101\StatusAndStatusChangeDetection.cs" />
<Compile Include="CS101\StepPositionInformation.cs" />
<Compile Include="CS101\SystemInformationCommands.cs" />
<Compile Include="CS101\TypeID.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="CP56Time2a.cs" />
<Compile Include="SystemUtils.cs" />
<Compile Include="CP24Time2a.cs" />
<Compile Include="CP16Time2a.cs" />
<Compile Include="Frame.cs" />
<Compile Include="LibraryCommon.cs" />
<Compile Include="CP32Time2a.cs" />
<Compile Include="ASDUParsingException.cs" />
<Compile Include="CS104\APCIParameters.cs" />
<Compile Include="CS104\Connection.cs" />
<Compile Include="CS104\Server.cs" />
<Compile Include="CS104\TlsSecurityInformation.cs" />
<Compile Include="LinkLayer\LinkLayer.cs" />
<Compile Include="LinkLayer\PrimaryLinkLayer.cs" />
<Compile Include="LinkLayer\SecondaryLinkLayer.cs" />
<Compile Include="LinkLayer\SerialTransceiverFT12.cs" />
<Compile Include="ConnectionException.cs" />
<Compile Include="BufferFrame.cs" />
<Compile Include="LinkLayer\PrimaryLinkLayerBalanced.cs" />
<Compile Include="LinkLayer\PrimaryLinkLayerUnbalanced.cs" />
<Compile Include="LinkLayer\SecondaryLinkLayerBalanced.cs" />
<Compile Include="LinkLayer\SecondaryLinkLayerUnbalanced.cs" />
<Compile Include="LinkLayer\TcpServerVirtualSerialPort.cs" />
<Compile Include="LinkLayer\TcpClientVirtualSerialPort.cs" />
<Compile Include="CS104\ClientConnection.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.IO.Ports" Version="8.0.0" />
<None Include="images\icon.png" Pack="true" PackagePath="\" />
<None Include="readme.md" Pack="true" PackagePath="\" />
</ItemGroup>
</Project>
21 changes: 21 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,27 @@ Changes to version 2.3.0
- changed examples target frameworks to .NET 6
- Added copy constructors for messages types in monitoring direction
- CS104 client: Allow setting of local IP address and TCP port (to allow redundancy setups)
- Allow user to set TLS version
- Updated TLS client/server examples
- Extend test cases
- CS101 slave: updated behavior in unbalanced mode when FCB bit did not change (L870NET-21)
- CS104 server: implement pending unconfirmed stop state (L870NET-22)
- CS104 server: connection is closed by server when receiving S message in inactive state (L870NET-23)
- CS101 balanced link layer: Send request-status-of-link before calling reset-of-remote-link (L870NET-25)
- CS101 unbalanced master: Send request-status-of-link before calling reset-of-remote-link, added delay before repeating request-status-of-link. (L870NET-26)
- CS104 slave: check IOA of received commands where IOA is fixed to 0 (L870NET-28)
- CS 104 slave: only send S message after receiving STOPDT-ACT when there are unconfirmed outstanding I messages to be compliant with test case IEC 60870-5-604:2016-5.3.2.70 (L870NET-29)
- Disable support for C_TS_NA_1 and C_CD_NA_1 for CS104 by default (L870NET-30)
- TLS: support for TLS 1.3 (L870NET-31)
- Implementing Master connection state (Stopped, Started, and Unconfirmed Stopped) (L870NET-32)
- Divide the queue into low and high priority (L870NET-33)
- Implementing CS104 Client Connection State (L870NET-34)
- Fixed: Problem in normalized value handling and add scaled value test case
- Check COT = FileTranfer on fileHandler for every case and return UNKNOWN_CAUSE_OF_TRANSMISSION asdu when different
- Fixed: Confirm all unconfirmed messages before stopping the connection; -> Fix - send unconfirmed messages before closing the socket
- Only send last ASDU if lastSendASDU!= null -> on linkLayer.SendVariableLengthFramePrimary
- Separate the ASDUQueue in another .cs file -> Manage high and low priorities queues -> Fix bug on sending ASDU in HighPriorityQueue


Changes to version 2.2.0
------------------------
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# README lib60870.NET v2
# README lib60870.NET v2.3.0

lib60870.NET library for IEC 60870-5 based protocols in C#

Expand Down
Loading