From 79a33bcd45528792c6919c929234f9d674222371 Mon Sep 17 00:00:00 2001 From: Chris Pulman Date: Thu, 14 Dec 2023 09:35:09 +0000 Subject: [PATCH 1/3] Use collection Initialisers --- .editorconfig | 2 +- global.json | 2 +- src/S7PlcRx.sln | 1 + src/S7PlcRx/Core/S7SocketRx.cs | 8 ++--- src/S7PlcRx/PlcTypes/ByteArray.cs | 6 ++-- src/S7PlcRx/PlcTypes/Class.cs | 2 +- src/S7PlcRx/PlcTypes/Counter.cs | 2 +- src/S7PlcRx/PlcTypes/DInt.cs | 2 +- src/S7PlcRx/PlcTypes/DWord.cs | 2 +- src/S7PlcRx/PlcTypes/Int.cs | 2 +- src/S7PlcRx/PlcTypes/LReal.cs | 2 +- src/S7PlcRx/PlcTypes/Real.cs | 6 ++-- src/S7PlcRx/PlcTypes/Struct.cs | 6 ++-- src/S7PlcRx/PlcTypes/Timer.cs | 2 +- src/S7PlcRx/PlcTypes/Word.cs | 2 +- src/S7PlcRx/RxS7.cs | 59 +++++++++++++++++-------------- 16 files changed, 57 insertions(+), 49 deletions(-) diff --git a/.editorconfig b/.editorconfig index 9510b5b..6343a27 100644 --- a/.editorconfig +++ b/.editorconfig @@ -304,7 +304,7 @@ dotnet_diagnostic.SA1006.severity = error dotnet_diagnostic.SA1007.severity = error dotnet_diagnostic.SA1008.severity = error dotnet_diagnostic.SA1009.severity = error -dotnet_diagnostic.SA1010.severity = error +dotnet_diagnostic.SA1010.severity = none dotnet_diagnostic.SA1011.severity = error dotnet_diagnostic.SA1012.severity = error dotnet_diagnostic.SA1013.severity = error diff --git a/global.json b/global.json index 9cbd28e..5e9f854 100644 --- a/global.json +++ b/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "7.0.400" + "version": "8.0.10" } } diff --git a/src/S7PlcRx.sln b/src/S7PlcRx.sln index c2ec8b3..a539f76 100644 --- a/src/S7PlcRx.sln +++ b/src/S7PlcRx.sln @@ -9,6 +9,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ProjectConfig", "ProjectCon ..\.gitignore = ..\.gitignore ..\.github\dependabot.yml = ..\.github\dependabot.yml ..\Directory.Build.props = ..\Directory.Build.props + ..\global.json = ..\global.json ..\LICENSE = ..\LICENSE ..\README.md = ..\README.md ..\Images\S7PlcRx.ico = ..\Images\S7PlcRx.ico diff --git a/src/S7PlcRx/Core/S7SocketRx.cs b/src/S7PlcRx/Core/S7SocketRx.cs index 2ce88be..cbb73fc 100644 --- a/src/S7PlcRx/Core/S7SocketRx.cs +++ b/src/S7PlcRx/Core/S7SocketRx.cs @@ -328,8 +328,8 @@ public int Send(Tag tag, byte[] buffer, int size) internal (byte[] data, ushort size) GetSZLData(ushort szlArea, ushort index = 0) { //// 0, 1, 2, 3 , 4, 5, 6, 7, 8, 9, 10,11,12,13,14,15,16,17,18,19, 20,21, 22, 23,24,25, 26,27,28,29,30,31,32 - byte[] s7_SZL1 = { 3, 0, 0, 33, 2, 240, 128, 50, 7, 0, 0, 5, 0, 0, 8, 0, 8, 0, 1, 18, 4, 17, 68, 1, 0, 255, 9, 0, 4, 0, 0, 0, 0 }; - byte[] s7_SZL2 = { 3, 0, 0, 33, 2, 240, 128, 50, 7, 0, 0, 6, 0, 0, 12, 0, 4, 0, 1, 18, 8, 18, 68, 1, 1, 0, 0, 0, 0, 10, 0, 0, 0 }; + byte[] s7_SZL1 = [3, 0, 0, 33, 2, 240, 128, 50, 7, 0, 0, 5, 0, 0, 8, 0, 8, 0, 1, 18, 4, 17, 68, 1, 0, 255, 9, 0, 4, 0, 0, 0, 0]; + byte[] s7_SZL2 = [3, 0, 0, 33, 2, 240, 128, 50, 7, 0, 0, 6, 0, 0, 12, 0, 4, 0, 1, 18, 8, 18, 68, 1, 1, 0, 0, 0, 0, 10, 0, 0, 0]; const int size = 1024; var data = new byte[size]; var resultData = new byte[size]; @@ -507,7 +507,7 @@ private async Task InitialiseSiemensConnectionAsync() } //// //0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21// - byte[] bSend1 = { 3, 0, 0, 22, 17, 224, 0, 0, 0, 46, 0, 193, 2, 1, 0, 194, 2, 3, 0, 192, 1, 9 }; + byte[] bSend1 = [3, 0, 0, 22, 17, 224, 0, 0, 0, 46, 0, 193, 2, 1, 0, 194, 2, 3, 0, 192, 1, 9]; switch (PLCType) { @@ -558,7 +558,7 @@ private async Task InitialiseSiemensConnectionAsync() } //// 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25// - byte[] bsend2 = { 3, 0, 0, 25, 2, 240, 128, 50, 1, 0, 0, 4, 0, 0, 8, 0, 0, 240, 0, 0, 1, 0, 1, 0, 30 }; + byte[] bsend2 = [3, 0, 0, 25, 2, 240, 128, 50, 1, 0, 0, 4, 0, 0, 8, 0, 0, 240, 0, 0, 1, 0, 1, 0, 30]; // (23,24) PDU Length Requested = HI-LO Here Default 480 bytes Word.ToByteArray(DataReadLength, bsend2, 23); diff --git a/src/S7PlcRx/PlcTypes/ByteArray.cs b/src/S7PlcRx/PlcTypes/ByteArray.cs index b7df208..6d8ed39 100644 --- a/src/S7PlcRx/PlcTypes/ByteArray.cs +++ b/src/S7PlcRx/PlcTypes/ByteArray.cs @@ -5,12 +5,12 @@ namespace S7PlcRx.PlcTypes; internal class ByteArray { - private List _list = new(); + private List _list; /// /// Initializes a new instance of the class. /// - public ByteArray() => _list = new(); + public ByteArray() => _list = []; /// /// Initializes a new instance of the class. @@ -45,5 +45,5 @@ internal class ByteArray /// /// Clears this instance. /// - public void Clear() => _list = new(); + public void Clear() => _list = []; } diff --git a/src/S7PlcRx/PlcTypes/Class.cs b/src/S7PlcRx/PlcTypes/Class.cs index 273e6d7..dc031f8 100644 --- a/src/S7PlcRx/PlcTypes/Class.cs +++ b/src/S7PlcRx/PlcTypes/Class.cs @@ -120,7 +120,7 @@ public static void FromBytes(object? sourceClass, Type classType, byte[] bytes) } // hier auswerten - property.SetValue(sourceClass, LReal.FromByteArray(new byte[] { bytes[(int)numBytes], bytes[(int)numBytes + 1], bytes[(int)numBytes + 2], bytes[(int)numBytes + 3] }), null); + property.SetValue(sourceClass, LReal.FromByteArray([bytes[(int)numBytes], bytes[(int)numBytes + 1], bytes[(int)numBytes + 2], bytes[(int)numBytes + 3]]), null); numBytes += 4; break; diff --git a/src/S7PlcRx/PlcTypes/Counter.cs b/src/S7PlcRx/PlcTypes/Counter.cs index 99f3606..74eace4 100644 --- a/src/S7PlcRx/PlcTypes/Counter.cs +++ b/src/S7PlcRx/PlcTypes/Counter.cs @@ -43,7 +43,7 @@ public static ushort[] ToArray(byte[] bytes) var counter = 0; for (var cnt = 0; cnt < bytes.Length / 2; cnt++) { - values[cnt] = FromByteArray(new byte[] { bytes[counter++], bytes[counter++] }); + values[cnt] = FromByteArray([bytes[counter++], bytes[counter++]]); } return values; diff --git a/src/S7PlcRx/PlcTypes/DInt.cs b/src/S7PlcRx/PlcTypes/DInt.cs index 934a011..88c8233 100644 --- a/src/S7PlcRx/PlcTypes/DInt.cs +++ b/src/S7PlcRx/PlcTypes/DInt.cs @@ -62,7 +62,7 @@ public static int[] ToArray(byte[] bytes) var counter = 0; for (var cnt = 0; cnt < bytes.Length / 4; cnt++) { - values[cnt] = FromByteArray(new byte[] { bytes[counter++], bytes[counter++], bytes[counter++], bytes[counter++] }); + values[cnt] = FromByteArray([bytes[counter++], bytes[counter++], bytes[counter++], bytes[counter++]]); } return values; diff --git a/src/S7PlcRx/PlcTypes/DWord.cs b/src/S7PlcRx/PlcTypes/DWord.cs index 4a2467b..7b5a9d9 100644 --- a/src/S7PlcRx/PlcTypes/DWord.cs +++ b/src/S7PlcRx/PlcTypes/DWord.cs @@ -47,7 +47,7 @@ public static uint[] ToArray(byte[] bytes) var counter = 0; for (var cnt = 0; cnt < bytes.Length / 4; cnt++) { - values[cnt] = FromByteArray(new byte[] { bytes[counter++], bytes[counter++], bytes[counter++], bytes[counter++] }); + values[cnt] = FromByteArray([bytes[counter++], bytes[counter++], bytes[counter++], bytes[counter++]]); } return values; diff --git a/src/S7PlcRx/PlcTypes/Int.cs b/src/S7PlcRx/PlcTypes/Int.cs index 8695fb2..c0a0672 100644 --- a/src/S7PlcRx/PlcTypes/Int.cs +++ b/src/S7PlcRx/PlcTypes/Int.cs @@ -60,7 +60,7 @@ public static short[] ToArray(byte[] bytes) var counter = 0; for (var cnt = 0; cnt < bytes.Length / 2; cnt++) { - values[cnt] = FromByteArray(new byte[] { bytes[counter++], bytes[counter++] }); + values[cnt] = FromByteArray([bytes[counter++], bytes[counter++]]); } return values; diff --git a/src/S7PlcRx/PlcTypes/LReal.cs b/src/S7PlcRx/PlcTypes/LReal.cs index db48afd..2a4f118 100644 --- a/src/S7PlcRx/PlcTypes/LReal.cs +++ b/src/S7PlcRx/PlcTypes/LReal.cs @@ -102,7 +102,7 @@ public static double[] ToArray(byte[] bytes) var counter = 0; for (var cnt = 0; cnt < bytes!.Length / 4; cnt++) { - values[cnt] = FromByteArray(new byte[] { bytes[counter++], bytes[counter++], bytes[counter++], bytes[counter++] }); + values[cnt] = FromByteArray([bytes[counter++], bytes[counter++], bytes[counter++], bytes[counter++]]); } return values; diff --git a/src/S7PlcRx/PlcTypes/Real.cs b/src/S7PlcRx/PlcTypes/Real.cs index 5705dd2..32bc38a 100644 --- a/src/S7PlcRx/PlcTypes/Real.cs +++ b/src/S7PlcRx/PlcTypes/Real.cs @@ -19,7 +19,7 @@ public static float FromByteArray(byte[] bytes) if (BitConverter.IsLittleEndian) { // create deep copy of the array and reverse - bytes = new byte[] { bytes[3], bytes[2], bytes[1], bytes[0] }; + bytes = [bytes[3], bytes[2], bytes[1], bytes[0]]; } return BitConverter.ToSingle(bytes, 0); @@ -39,7 +39,7 @@ public static byte[] ToByteArray(float value) } // create deep copy of the array and reverse - return new byte[] { bytes[3], bytes[2], bytes[1], bytes[0] }; + return [bytes[3], bytes[2], bytes[1], bytes[0]]; } /// @@ -67,7 +67,7 @@ public static float[] ToArray(byte[] bytes) var counter = 0; for (var cnt = 0; cnt < bytes.Length / 4; cnt++) { - values[cnt] = FromByteArray(new byte[] { bytes[counter++], bytes[counter++], bytes[counter++], bytes[counter++] }); + values[cnt] = FromByteArray([bytes[counter++], bytes[counter++], bytes[counter++], bytes[counter++]]); } return values; diff --git a/src/S7PlcRx/PlcTypes/Struct.cs b/src/S7PlcRx/PlcTypes/Struct.cs index f98df8e..ddb29c1 100644 --- a/src/S7PlcRx/PlcTypes/Struct.cs +++ b/src/S7PlcRx/PlcTypes/Struct.cs @@ -125,13 +125,13 @@ internal static class Struct } // Evaluating here - info.SetValue(structValue, LReal.FromByteArray(new byte[] - { + info.SetValue(structValue, LReal.FromByteArray( + [ bytes[(int)numBytes], bytes[(int)numBytes + 1], bytes[(int)numBytes + 2], bytes[(int)numBytes + 3] - })); + ])); numBytes += 4; break; diff --git a/src/S7PlcRx/PlcTypes/Timer.cs b/src/S7PlcRx/PlcTypes/Timer.cs index 807ca84..28c7170 100644 --- a/src/S7PlcRx/PlcTypes/Timer.cs +++ b/src/S7PlcRx/PlcTypes/Timer.cs @@ -64,7 +64,7 @@ public static double[] ToArray(byte[] bytes) var counter = 0; for (var cnt = 0; cnt < bytes.Length / 2; cnt++) { - values[cnt] = FromByteArray(new byte[] { bytes[counter++], bytes[counter++] }); + values[cnt] = FromByteArray([bytes[counter++], bytes[counter++]]); } return values; diff --git a/src/S7PlcRx/PlcTypes/Word.cs b/src/S7PlcRx/PlcTypes/Word.cs index a59ffee..6cf63e4 100644 --- a/src/S7PlcRx/PlcTypes/Word.cs +++ b/src/S7PlcRx/PlcTypes/Word.cs @@ -43,7 +43,7 @@ public static ushort[] ToArray(byte[] bytes) var counter = 0; for (var cnt = 0; cnt < bytes.Length / 2; cnt++) { - values[cnt] = FromByteArray(new byte[] { bytes[counter++], bytes[counter++] }); + values[cnt] = FromByteArray([bytes[counter++], bytes[counter++]]); } return values; diff --git a/src/S7PlcRx/RxS7.cs b/src/S7PlcRx/RxS7.cs index 69e68a1..7139fa3 100644 --- a/src/S7PlcRx/RxS7.cs +++ b/src/S7PlcRx/RxS7.cs @@ -21,18 +21,18 @@ namespace S7PlcRx; public class RxS7 : IRxS7 { private readonly S7SocketRx _socketRx; - private readonly ISubject _dataRead = new Subject(); + private readonly Subject _dataRead = new(); private readonly CompositeDisposable _disposables = new(); - private readonly ISubject _lastError = new Subject(); - private readonly ISubject _lastErrorCode = new Subject(); - private readonly ISubject _pLCRequestSubject = new Subject(); - private readonly ISubject _status = new Subject(); - private readonly ISubject _readTime = new Subject(); + private readonly Subject _lastError = new Subject(); + private readonly Subject _lastErrorCode = new Subject(); + private readonly Subject _pLCRequestSubject = new Subject(); + private readonly Subject _status = new Subject(); + private readonly Subject _readTime = new Subject(); private readonly SemaphoreSlim _lock = new(1); private readonly SemaphoreSlim _lockTagList = new(1); private readonly object _socketLock = new(); private readonly Stopwatch _stopwatch = new(); - private readonly ISubject _paused = new Subject(); + private readonly Subject _paused = new Subject(); private bool _pause; /// @@ -175,7 +175,7 @@ public RxS7(CpuType type, string ip, short rack, short slot, string? watchDogAdd /// Gets the tag list. A) Name, B) Address, C) Value. /// /// The tag list. - public Tags TagList { get; } = new(); + public Tags TagList { get; } = []; /// /// Gets the watch dog address. @@ -305,7 +305,7 @@ public IObservable GetCpuInfo() => $"V2: {orderCode.data[orderCode.size - 2]}", // Version 2 $"V3: {orderCode.data[orderCode.size - 1]}", // Version 3 }; - obs.OnNext(l.ToArray()); + obs.OnNext([.. l]); obs.OnCompleted(); } else @@ -417,7 +417,14 @@ protected virtual void Dispose(bool disposing) {//// ignored } + _dataRead?.Dispose(); + _lastError?.Dispose(); _socketRx?.Dispose(); + _lastErrorCode?.Dispose(); + _paused?.Dispose(); + _pLCRequestSubject?.Dispose(); + _status?.Dispose(); + _readTime?.Dispose(); } IsDisposed = true; @@ -432,7 +439,7 @@ private static ByteArray CreateReadDataRequestPackage(DataType dataType, int db, { // single data register = 12 var package = new ByteArray(12); - package.Add(new byte[] { 18, 10, 16 }); + package.Add([18, 10, 16]); switch (dataType) { case DataType.Timer: @@ -469,15 +476,15 @@ private static ByteArray ReadHeaderPackage(int amount = 1) { // header size = 19 bytes var package = new ByteArray(19); - package.Add(new byte[] { 3, 0, 0 }); + package.Add([3, 0, 0]); // complete package size package.Add((byte)(19 + (12 * amount))); - package.Add(new byte[] { 2, 240, 128, 50, 1, 0, 0, 0, 0 }); + package.Add([2, 240, 128, 50, 1, 0, 0, 0, 0]); // data part size package.Add(Word.ToByteArray((ushort)(2 + (amount * 12)))); - package.Add(new byte[] { 0, 0, 4 }); + package.Add([0, 0, 4]); // amount of requests package.Add((byte)amount); @@ -551,20 +558,20 @@ private bool WriteBytes(Tag tag, DataType dataType, int db, int startByteAdr, by var packageSize = 35 + value.Length; var package = new ByteArray(packageSize); - package.Add(new byte[] { 3, 0, 0 }); + package.Add([3, 0, 0]); package.Add((byte)packageSize); - package.Add(new byte[] { 2, 240, 128, 50, 1, 0, 0 }); + package.Add([2, 240, 128, 50, 1, 0, 0]); package.Add(Word.ToByteArray((ushort)(varCount - 1))); - package.Add(new byte[] { 0, 14 }); + package.Add([0, 14]); package.Add(Word.ToByteArray((ushort)(varCount + 4))); - package.Add(new byte[] { 5, 1, 18, 10, 16, 2 }); + package.Add([5, 1, 18, 10, 16, 2]); package.Add(Word.ToByteArray((ushort)varCount)); package.Add(Word.ToByteArray((ushort)db)); package.Add((byte)dataType); var overflow = (int)(startByteAdr * 8 / 0xffffU); // handles words with address bigger than 8191 package.Add((byte)overflow); package.Add(Word.ToByteArray((ushort)(startByteAdr * 8))); - package.Add(new byte[] { 0, 4 }); + package.Add([0, 4]); package.Add(Word.ToByteArray((ushort)(varCount * 8))); // now join the header and the data @@ -777,7 +784,7 @@ private void GetTagValue(Tag? tag) switch (correctVariable!.Substring(0, 2)) { case "DB": - var strings = correctVariable.Split(new char[] { '.' }); + var strings = correctVariable.Split(['.']); if (strings.Length < 2) { throw new Exception(); @@ -1163,7 +1170,7 @@ private byte[] ReadMultipleBytes(Tag tag, DataType dataType, int db, int startBy if (bytes == null) { - return Array.Empty(); + return []; } resultBytes.AddRange(bytes); @@ -1171,7 +1178,7 @@ private byte[] ReadMultipleBytes(Tag tag, DataType dataType, int db, int startBy index += maxToRead; } - return resultBytes.ToArray(); + return [.. resultBytes]; } private IObservable TagReaderObservable(double interval) => @@ -1211,7 +1218,7 @@ private IObservable TagReaderObservable(double interval) => catch (Exception ex) { _lastError.OnNext(ex.Message); - _status.OnNext($"{tag.Name} could not be read from {tag.Address}. Error: " + ex.ToString()); + _status.OnNext($"{tag.Name} could not be read from {tag.Address}. Error: " + ex); } } @@ -1288,7 +1295,7 @@ private bool Write(Tag tag, DataType dataType, int db, int startByteAdr, object? { case "Boolean": case "Byte": - package = new byte[] { (byte)(value ?? Convert.ChangeType(tag.NewValue, typeof(byte)))! }; + package = [(byte)(value ?? Convert.ChangeType(tag.NewValue, typeof(byte)))!]; break; case "Int16": @@ -1303,7 +1310,7 @@ private bool Write(Tag tag, DataType dataType, int db, int startByteAdr, object? var parsed = ushort.Parse(value.ToString()!); var vOut = BitConverter.GetBytes(parsed); - package = new byte[] { vOut[1], vOut[0] }; + package = [vOut[1], vOut[0]]; break; case "ushort": @@ -1391,7 +1398,7 @@ private bool WriteMultipleBytes(Tag tag, List bytes, int db, int startByte { var maxToWrite = Math.Min(bytes.Count, 200); var part = bytes.ToList().GetRange(0, maxToWrite); - errCode = WriteBytes(tag, DataType.DataBlock, db, index, part.ToArray()); + errCode = WriteBytes(tag, DataType.DataBlock, db, index, [.. part]); bytes.RemoveRange(0, maxToWrite); index += maxToWrite; if (!errCode) @@ -1432,7 +1439,7 @@ private bool WriteString(Tag? tag) switch (tagAddress.Substring(0, 2)) { case "DB": - var strings = tagAddress.Split(new char[] { '.' }); + var strings = tagAddress.Split(['.']); if (strings.Length < 2) { throw new Exception(); From 2ba3ad63e085b2926a7b978a0a7c1166099ffaf6 Mon Sep 17 00:00:00 2001 From: Chris Pulman Date: Tue, 19 Dec 2023 17:47:01 +0000 Subject: [PATCH 2/3] Add exception handler to Close Block release on every PR --- .github/workflows/BuildDeploy.yml | 16 +++++++++++++ Directory.Build.props | 2 +- Version.json | 2 +- build/Build.cs | 28 +++++++++++----------- build/_build.csproj | 4 ++-- src/S7PlcRx.TestApp/S7PlcRx.TestApp.csproj | 1 - src/S7PlcRx/Core/S7SocketRx.cs | 14 +++++++---- src/S7PlcRx/S7PlcRx.csproj | 3 +-- 8 files changed, 45 insertions(+), 25 deletions(-) diff --git a/.github/workflows/BuildDeploy.yml b/.github/workflows/BuildDeploy.yml index f396595..7cf2b5c 100644 --- a/.github/workflows/BuildDeploy.yml +++ b/.github/workflows/BuildDeploy.yml @@ -25,6 +25,8 @@ jobs: windows-latest: name: windows-latest runs-on: windows-latest + environment: + name: release steps: - uses: actions/checkout@v3 with: @@ -45,3 +47,17 @@ jobs: with: name: output path: output + + - name: Changelog + uses: glennawatson/ChangeLog@v1 + id: changelog + + - name: Create Release + uses: actions/create-release@v1.1.4 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token + with: + tag_name: ${{ steps.nbgv.outputs.SemVer2 }} + release_name: ${{ steps.nbgv.outputs.SemVer2 }} + body: | + ${{ steps.changelog.outputs.commitLog }} diff --git a/Directory.Build.props b/Directory.Build.props index ef74709..b143468 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -54,7 +54,7 @@ - + diff --git a/Version.json b/Version.json index bea4518..58dfc3a 100644 --- a/Version.json +++ b/Version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/main/src/NerdBank.GitVersioning/version.schema.json", - "version": "1.2.4", + "version": "1.2.5", "publicReleaseRefSpec": [ "^refs/heads/master$", "^refs/heads/main$" diff --git a/build/Build.cs b/build/Build.cs index 66031d4..c6a8303 100644 --- a/build/Build.cs +++ b/build/Build.cs @@ -11,19 +11,19 @@ using Nuke.Common.Tools.PowerShell; using CP.BuildTools; -[GitHubActions( - "BuildOnly", - GitHubActionsImage.WindowsLatest, - OnPushBranchesIgnore = new[] { "main" }, - FetchDepth = 0, - InvokedTargets = new[] { nameof(Compile) })] -[GitHubActions( - "BuildDeploy", - GitHubActionsImage.WindowsLatest, - OnPushBranches = new[] { "main" }, - FetchDepth = 0, - ImportSecrets = new[] { nameof(NuGetApiKey) }, - InvokedTargets = new[] { nameof(Compile), nameof(Deploy) })] +////[GitHubActions( +//// "BuildOnly", +//// GitHubActionsImage.WindowsLatest, +//// OnPushBranchesIgnore = new[] { "main" }, +//// FetchDepth = 0, +//// InvokedTargets = new[] { nameof(Compile) })] +////[GitHubActions( +//// "BuildDeploy", +//// GitHubActionsImage.WindowsLatest, +//// OnPushBranches = new[] { "main" }, +//// FetchDepth = 0, +//// ImportSecrets = new[] { nameof(NuGetApiKey) }, +//// InvokedTargets = new[] { nameof(Compile), nameof(Deploy) })] partial class Build : NukeBuild { //// Support plugins are available for: @@ -57,7 +57,7 @@ partial class Build : NukeBuild PackagesDirectory.CreateOrCleanDirectory(); ////await this.UpdateVisualStudio(); - await this.InstallDotNetSdk("3.1.x", "5.x.x", "6.x.x", "7.x.x"); + await this.InstallDotNetSdk("6.x.x", "7.x.x", "8.x.x"); }); Target Restore => _ => _ diff --git a/build/_build.csproj b/build/_build.csproj index e01672d..50e96bd 100644 --- a/build/_build.csproj +++ b/build/_build.csproj @@ -3,7 +3,7 @@ Exe net7.0 - $(NoWarn);CS0649;CS0169;CA1822;IDE1006 + $(NoWarn);CS0649;CS0169;CA1822;IDE1006;IDE0051 false .. @@ -12,7 +12,7 @@ - + diff --git a/src/S7PlcRx.TestApp/S7PlcRx.TestApp.csproj b/src/S7PlcRx.TestApp/S7PlcRx.TestApp.csproj index 9707d9f..8b27008 100644 --- a/src/S7PlcRx.TestApp/S7PlcRx.TestApp.csproj +++ b/src/S7PlcRx.TestApp/S7PlcRx.TestApp.csproj @@ -4,7 +4,6 @@ Exe net7.0 enable - enable false diff --git a/src/S7PlcRx/Core/S7SocketRx.cs b/src/S7PlcRx/Core/S7SocketRx.cs index cbb73fc..f516af4 100644 --- a/src/S7PlcRx/Core/S7SocketRx.cs +++ b/src/S7PlcRx/Core/S7SocketRx.cs @@ -20,7 +20,7 @@ internal class S7SocketRx : IDisposable { private const string Failed = nameof(Failed); private const string Success = nameof(Success); - private readonly ISubject _socketExceptionSubject = new Subject(); + private readonly Subject _socketExceptionSubject = new(); private IDisposable _disposable; private bool _disposedValue; private bool _initComplete; @@ -480,9 +480,15 @@ private static void CloseSocket(Socket? socket) { if (socket?.Connected == true) { - socket.Shutdown(SocketShutdown.Both); - socket.Close(); - socket.Dispose(); + try + { + socket.Shutdown(SocketShutdown.Both); + socket.Close(); + socket.Dispose(); + } + catch + { + } } } diff --git a/src/S7PlcRx/S7PlcRx.csproj b/src/S7PlcRx/S7PlcRx.csproj index 41aeaec..adfd174 100644 --- a/src/S7PlcRx/S7PlcRx.csproj +++ b/src/S7PlcRx/S7PlcRx.csproj @@ -1,9 +1,8 @@  - netstandard2.0;net6.0;net7.0 + netstandard2.0;net6.0;net7.0;net8.0 enable - enable $(NoWarn);IDE0042; From ea2bd116b17171b077d62c6303f2c64f98685626 Mon Sep 17 00:00:00 2001 From: Chris Pulman Date: Tue, 19 Dec 2023 17:49:39 +0000 Subject: [PATCH 3/3] Update global.json --- global.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/global.json b/global.json index 5e9f854..4c31281 100644 --- a/global.json +++ b/global.json @@ -1,5 +1,6 @@ { "sdk": { - "version": "8.0.10" + "version": "8.0.10", + "rollForward": "latestMinor" } }