Browse Source

implémentation fonctionnelle des caméras et des alarmes

FARINA Louis 4 months ago
parent
commit
7701a41e91
100 changed files with 15162 additions and 344 deletions
  1. 3
    0
      RSTP_DSLink/.vs/ProjectSettings.json
  2. BIN
      RSTP_DSLink/.vs/RSTP_DSLink/DesignTimeBuild/.dtbcache.v2
  3. BIN
      RSTP_DSLink/.vs/RSTP_DSLink/v16/.suo
  4. 7
    0
      RSTP_DSLink/.vs/VSWorkspaceState.json
  5. BIN
      RSTP_DSLink/.vs/slnx.sqlite
  6. 170
    0
      RSTP_DSLink/RSTP_DSLink/Driver.cs
  7. 36
    0
      RSTP_DSLink/RSTP_DSLink/Helpers.cs
  8. 2789
    0
      RSTP_DSLink/RSTP_DSLink/PigpiodIf.cs
  9. 8
    0
      RSTP_DSLink/RSTP_DSLink/Properties/launchSettings.json
  10. 264
    60
      RSTP_DSLink/RSTP_DSLink/RSTP_DSLink.cs
  11. 2
    0
      RSTP_DSLink/RSTP_DSLink/RSTP_DSLink.csproj
  12. 156
    0
      RSTP_DSLink/RSTP_DSLink/TcpConnection.cs
  13. 1
    0
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/.keys
  14. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Microsoft.Win32.Registry.dll
  15. 934
    51
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/RSTP_DSLink.deps.json
  16. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/RSTP_DSLink.dll
  17. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/RSTP_DSLink.pdb
  18. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Swan.Lite.dll
  19. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Swan.dll
  20. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/System.Device.Gpio.dll
  21. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/System.Security.AccessControl.dll
  22. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/System.Security.Principal.Windows.dll
  23. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Unosquare.Raspberry.Abstractions.dll
  24. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Unosquare.RaspberryIO.Peripherals.dll
  25. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Unosquare.RaspberryIO.dll
  26. 5
    0
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/log-20210730.txt
  27. 137
    0
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/log-20210802.txt
  28. 129
    0
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/log-20210803.txt
  29. 46
    0
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/nodes.json
  30. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll
  31. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll
  32. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll
  33. BIN
      RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll
  34. BIN
      RSTP_DSLink/RSTP_DSLink/obj/Debug/netcoreapp3.1/RSTP_DSLink.assets.cache
  35. 1
    1
      RSTP_DSLink/RSTP_DSLink/obj/Debug/netcoreapp3.1/RSTP_DSLink.csproj.CoreCompileInputs.cache
  36. 16
    4
      RSTP_DSLink/RSTP_DSLink/obj/Debug/netcoreapp3.1/RSTP_DSLink.csproj.FileListAbsolute.txt
  37. BIN
      RSTP_DSLink/RSTP_DSLink/obj/Debug/netcoreapp3.1/RSTP_DSLink.dll
  38. BIN
      RSTP_DSLink/RSTP_DSLink/obj/Debug/netcoreapp3.1/RSTP_DSLink.pdb
  39. 8
    0
      RSTP_DSLink/RSTP_DSLink/obj/RSTP_DSLink.csproj.nuget.dgspec.json
  40. 4
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs
  41. 33
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/ILog.cs
  42. 40
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/ILogProvider.cs
  43. 562
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogExtensions.cs
  44. 45
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogLevel.cs
  45. 318
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProvider.cs
  46. 26
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/DisposableAction.cs
  47. 42
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/LibLogException.cs
  48. 381
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/Log4NetLogProvider.cs
  49. 96
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/LogMessageFormatter.cs
  50. 135
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/LogProviderBase.cs
  51. 142
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/LoupeLogProvidercs.cs
  52. 539
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/NLogLogProvider.cs
  53. 246
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/SerilogLogProvider.cs
  54. 33
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/TraceEventTypeValues.cs
  55. 25
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/TypeExtensions.cs
  56. 21
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LoggerDelegate.cs
  57. 85
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LoggerExecutionWrapper.cs
  58. 23
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/RSTP_DSLink.AssemblyInfo.cs
  59. 1
    0
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/RSTP_DSLink.AssemblyInfoInputs.cache
  60. BIN
      RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/RSTP_DSLink.assets.cache
  61. 2998
    220
      RSTP_DSLink/RSTP_DSLink/obj/project.assets.json
  62. 62
    8
      RSTP_DSLink/RSTP_DSLink/obj/project.nuget.cache
  63. BIN
      Test_GPIO/.vs/Test_GPIO/DesignTimeBuild/.dtbcache.v2
  64. BIN
      Test_GPIO/.vs/Test_GPIO/v16/.suo
  65. 25
    0
      Test_GPIO/Test_GPIO.sln
  66. 169
    0
      Test_GPIO/Test_GPIO/Driver.cs
  67. 36
    0
      Test_GPIO/Test_GPIO/Helpers.cs
  68. 2789
    0
      Test_GPIO/Test_GPIO/PigpiodIf.cs
  69. 42
    0
      Test_GPIO/Test_GPIO/Program.cs
  70. 24
    0
      Test_GPIO/Test_GPIO/ReadMe.md
  71. 156
    0
      Test_GPIO/Test_GPIO/TcpConnection.cs
  72. 14
    0
      Test_GPIO/Test_GPIO/Test_GPIO.csproj
  73. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Iot.Device.Bindings.dll
  74. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Microsoft.Extensions.Logging.Abstractions.dll
  75. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Microsoft.Win32.SystemEvents.dll
  76. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/SixLabors.ImageSharp.dll
  77. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Swan.Lite.dll
  78. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Swan.dll
  79. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/System.CodeDom.dll
  80. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/System.Device.Gpio.dll
  81. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/System.Drawing.Common.dll
  82. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/System.IO.Ports.dll
  83. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/System.Management.dll
  84. 1321
    0
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Test_GPIO.deps.json
  85. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Test_GPIO.dll
  86. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Test_GPIO.exe
  87. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Test_GPIO.pdb
  88. 8
    0
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Test_GPIO.runtimeconfig.dev.json
  89. 9
    0
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Test_GPIO.runtimeconfig.json
  90. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/UnitsNet.dll
  91. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Unosquare.PiGpio.dll
  92. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/Unosquare.Raspberry.Abstractions.dll
  93. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/ref/Test_GPIO.dll
  94. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/runtimes/linux-arm/native/libSystem.IO.Ports.Native.so
  95. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/runtimes/linux-arm64/native/libSystem.IO.Ports.Native.so
  96. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/runtimes/linux-x64/native/libSystem.IO.Ports.Native.so
  97. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/runtimes/linux/lib/netstandard2.0/System.IO.Ports.dll
  98. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/runtimes/osx-x64/native/libSystem.IO.Ports.Native.dylib
  99. BIN
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/runtimes/osx/lib/netstandard2.0/System.IO.Ports.dll
  100. 0
    0
      Test_GPIO/Test_GPIO/bin/Debug/net5.0/runtimes/unix/lib/netcoreapp3.0/System.Drawing.Common.dll

+ 3
- 0
RSTP_DSLink/.vs/ProjectSettings.json View File

@@ -0,0 +1,3 @@
1
+{
2
+  "CurrentProjectSetting": null
3
+}

BIN
RSTP_DSLink/.vs/RSTP_DSLink/DesignTimeBuild/.dtbcache.v2 View File


BIN
RSTP_DSLink/.vs/RSTP_DSLink/v16/.suo View File


+ 7
- 0
RSTP_DSLink/.vs/VSWorkspaceState.json View File

@@ -0,0 +1,7 @@
1
+{
2
+  "ExpandedNodes": [
3
+    ""
4
+  ],
5
+  "SelectedNode": "\\RSTP_DSLink.sln",
6
+  "PreviewInSolutionExplorer": false
7
+}

BIN
RSTP_DSLink/.vs/slnx.sqlite View File


+ 170
- 0
RSTP_DSLink/RSTP_DSLink/Driver.cs View File

@@ -0,0 +1,170 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Device.Gpio;
4
+using System.Net;
5
+using System.Threading;
6
+using System.Threading.Tasks;
7
+
8
+namespace Iot.Device.Pigpio
9
+{
10
+    /// <summary>
11
+    /// 
12
+    /// </summary>
13
+    public class Driver : GpioDriver
14
+    {
15
+        private readonly IPEndPoint _endpoint;
16
+        private readonly PigpiodIf _proxy;
17
+        private readonly List<int> _openPins;
18
+
19
+        /// <summary>
20
+        /// 
21
+        /// </summary>
22
+        /// <param name="endpoint"></param>
23
+        public Driver(IPEndPoint endpoint)
24
+        {
25
+            _endpoint = endpoint;
26
+            _proxy = new PigpiodIf();
27
+
28
+            _openPins = new List<int>();
29
+        }
30
+
31
+        /// <summary>
32
+        /// 
33
+        /// </summary>
34
+        /// <returns></returns>
35
+        public Task ConnectAsync()
36
+        {
37
+            _proxy.pigpio_start(_endpoint.Address.ToString(), _endpoint.Port.ToString());
38
+
39
+            return Task.CompletedTask;
40
+        }
41
+
42
+        /// <inheritdoc/>
43
+        protected override int PinCount => PigpiodIf.PI_MAX_USER_GPIO;
44
+
45
+        /// <summary>
46
+        /// 
47
+        /// </summary>
48
+        /// <param name="pinNumber"></param>
49
+        /// <param name="eventTypes"></param>
50
+        /// <param name="callback"></param>
51
+        protected override void AddCallbackForPinValueChangedEvent(int pinNumber, PinEventTypes eventTypes, PinChangeEventHandler callback)
52
+        {
53
+            throw new NotImplementedException();
54
+        }
55
+
56
+        /// <inheritdoc/>
57
+        protected override void ClosePin(int pinNumber)
58
+        {
59
+            if (_openPins.Contains(pinNumber))
60
+            {
61
+                _openPins.Remove(pinNumber);
62
+            }
63
+            else
64
+            {
65
+                throw new InvalidOperationException($"Pin '{pinNumber}' hasn't been opened");
66
+            }
67
+        }
68
+
69
+        /// <inheritdoc/>
70
+        protected override int ConvertPinNumberToLogicalNumberingScheme(int pinNumber)
71
+        {
72
+            throw new NotImplementedException();
73
+        }
74
+
75
+        /// <inheritdoc/>
76
+        protected override PinMode GetPinMode(int pinNumber)
77
+        {
78
+            var mode = _proxy.get_mode((uint)pinNumber);
79
+
80
+            switch (mode)
81
+            {
82
+                case PigpiodIf.PI_INPUT: return PinMode.Input;
83
+                case PigpiodIf.PI_OUTPUT: return PinMode.Output;
84
+                default: throw new ArgumentException($"Unknown PinMode value '{mode}'");
85
+            }
86
+        }
87
+
88
+        /// <inheritdoc/>
89
+        protected override bool IsPinModeSupported(int pinNumber, PinMode mode)
90
+        {
91
+            switch (mode)
92
+            {
93
+                case PinMode.Input: return true;
94
+                case PinMode.InputPullUp: return true;
95
+                case PinMode.InputPullDown: return true;
96
+                case PinMode.Output: return true;
97
+                default: return false; // Only input & output supported ATM. Should be increased to support input-pullup/pulldown
98
+            }
99
+        }
100
+
101
+        /// <inheritdoc/>
102
+        protected override void OpenPin(int pinNumber)
103
+        {
104
+            if (!_openPins.Contains(pinNumber))
105
+            {
106
+                _openPins.Add(pinNumber);
107
+            }
108
+            else
109
+            {
110
+                throw new InvalidOperationException($"Pin '{pinNumber}' is already been open");
111
+            }
112
+        }
113
+
114
+        /// <inheritdoc/>
115
+        protected override PinValue Read(int pinNumber)
116
+        {
117
+            return _proxy.gpio_read((uint)pinNumber);
118
+        }
119
+
120
+        /// <inheritdoc/>
121
+        protected override void RemoveCallbackForPinValueChangedEvent(int pinNumber, PinChangeEventHandler callback)
122
+        {
123
+            throw new NotImplementedException();
124
+        }
125
+
126
+        /// <inheritdoc/>
127
+        protected override void SetPinMode(int pinNumber, PinMode pinMode)
128
+        {
129
+            var mode = pinMode.AsMode();
130
+            var pud = pinMode.AsPullUpDown();
131
+
132
+            _proxy.set_mode((uint)pinNumber, mode);
133
+            _proxy.set_pull_up_down((uint)pinNumber, pud);
134
+        }
135
+
136
+        /// <inheritdoc/>
137
+        protected override WaitForEventResult WaitForEvent(int pinNumber, PinEventTypes eventTypes, CancellationToken cancellationToken)
138
+        {
139
+            bool eventDetected = false;
140
+            int oldValue = _proxy.gpio_read((uint)pinNumber);
141
+            int newValue;
142
+            while (!eventDetected && !cancellationToken.IsCancellationRequested)
143
+            {
144
+                newValue = _proxy.gpio_read ((uint)pinNumber);
145
+                //Console.WriteLine(newValue);
146
+
147
+                if ((eventTypes == PinEventTypes.Rising && newValue == 1 && oldValue == 0)
148
+                || (eventTypes == PinEventTypes.Falling && newValue == 0 && oldValue == 1))
149
+                    eventDetected = true;
150
+
151
+                oldValue = newValue;
152
+                //System.Threading.Thread.Sleep(500);
153
+            }
154
+            
155
+            WaitForEventResult result;
156
+            result.EventTypes = cancellationToken.IsCancellationRequested?PinEventTypes.None:eventTypes;
157
+            //If the task was cancelled, the event type is none
158
+            result.TimedOut = false;
159
+            return result;
160
+        }
161
+
162
+        /// <inheritdoc/>
163
+        protected override void Write(int pinNumber, PinValue pinValue)
164
+        {
165
+            var value = pinValue.AsValue();
166
+
167
+            _proxy.gpio_write((uint)pinNumber, value);
168
+        }
169
+    }
170
+}

+ 36
- 0
RSTP_DSLink/RSTP_DSLink/Helpers.cs View File

@@ -0,0 +1,36 @@
1
+using System;
2
+using System.Device.Gpio;
3
+
4
+namespace Iot.Device.Pigpio
5
+{
6
+    internal static class Helpers
7
+    {
8
+        public static uint AsMode(this PinMode mode)
9
+        {
10
+            switch (mode)
11
+            {
12
+                case PinMode.Input: return PigpiodIf.PI_INPUT;
13
+                case PinMode.InputPullUp: return PigpiodIf.PI_INPUT;
14
+                case PinMode.InputPullDown: return PigpiodIf.PI_INPUT;
15
+                case PinMode.Output: return PigpiodIf.PI_OUTPUT;
16
+                default: throw new ArgumentException($"PinMode value of '{mode}' is not valid");
17
+            }
18
+        }
19
+
20
+        public static uint AsPullUpDown(this PinMode mode)
21
+        {
22
+            switch (mode)
23
+            {
24
+                case PinMode.InputPullUp: return PigpiodIf.PI_PUD_UP;
25
+                case PinMode.InputPullDown: return PigpiodIf.PI_PUD_DOWN;
26
+                default: return PigpiodIf.PI_PUD_OFF;
27
+            }
28
+        }
29
+
30
+
31
+        public static uint AsValue(this PinValue value)
32
+        {
33
+            return (uint)(int)value;
34
+        }
35
+    }
36
+}

+ 2789
- 0
RSTP_DSLink/RSTP_DSLink/PigpiodIf.cs
File diff suppressed because it is too large
View File


+ 8
- 0
RSTP_DSLink/RSTP_DSLink/Properties/launchSettings.json View File

@@ -0,0 +1,8 @@
1
+{
2
+  "profiles": {
3
+    "RSTP_DSLink": {
4
+      "commandName": "Project",
5
+      "commandLineArgs": "--name RTSP --broker http://192.168.1.54:8080/conn"
6
+    }
7
+  }
8
+}

+ 264
- 60
RSTP_DSLink/RSTP_DSLink/RSTP_DSLink.cs View File

@@ -7,24 +7,44 @@ using System;
7 7
 using System.Collections.Generic;
8 8
 using System.Threading;
9 9
 using System.Threading.Tasks;
10
+using System.Net.NetworkInformation;
11
+using System.Net;
12
+using System.Text.RegularExpressions;
13
+using System.Diagnostics;
14
+using Iot.Device.Pigpio;
10 15
 using Serilog;
11 16
 using CommandLine;
12 17
 using System.IO;
13 18
 using RTSP_DSLink;
19
+using System.Device.Gpio;
14 20
 
15 21
 namespace RTSP_DSLink
16 22
 {
17 23
     public class RSTP_DSLink : DSLinkContainer
18 24
     {
19
-        private readonly Dictionary<string, Node> _rngValues;
20
-        private readonly Random _random;
21
-        private readonly Thread _randomNumberThread;
25
+        private readonly Dictionary<string, System.Diagnostics.Process> _processes; 
26
+        private readonly Dictionary<string, CancellationTokenSource> _alarmCTs; 
27
+        public static bool PortInUse(int port)
28
+        {
29
+            bool inUse = false;
22 30
 
31
+            IPGlobalProperties ipProperties = IPGlobalProperties.GetIPGlobalProperties();
32
+            IPEndPoint[] ipEndPoints = ipProperties.GetActiveTcpListeners();
33
+            foreach (IPEndPoint endPoint in ipEndPoints)
34
+            {
35
+                if (endPoint.Port == port)
36
+                {
37
+                    inUse = true;
38
+                    break;
39
+                }
40
+            }
41
+            return inUse;
42
+        }
23 43
         private static void Main(string[] args)
24 44
         {
25 45
             Parser.Default.ParseArguments<CommandLineArguments>(args)
26 46
                 .WithParsed(cmdLineOptions =>
27
-                {
47
+                 {
28 48
                     cmdLineOptions = ProcessDSLinkJson(cmdLineOptions);
29 49
 
30 50
                     //Init the logging engine
@@ -49,11 +69,13 @@ namespace RTSP_DSLink
49 69
         public static async Task InitializeLink(RSTP_DSLink dsLink)
50 70
         {
51 71
             await dsLink.Connect();
52
-            await dsLink.SaveNodes();
72
+            //dsLink.ClearNodes();
53 73
         }
54 74
 
55 75
         public RSTP_DSLink(Configuration config, CommandLineArguments cmdLineOptions) : base(config)
56 76
         {
77
+            _processes = new Dictionary<string, Process>();
78
+            _alarmCTs = new Dictionary<string, CancellationTokenSource>();
57 79
             //Perform any configuration overrides from command line options
58 80
             if (cmdLineOptions.BrokerUrl != null)
59 81
             {
@@ -75,97 +97,279 @@ namespace RTSP_DSLink
75 97
                 config.KeysFolder = cmdLineOptions.KeysFolder;
76 98
             }
77 99
 
78
-            _rngValues = new Dictionary<string, Node>();
79
-            _random = new Random();
100
+            Responder.AddNodeClass("streamAdd", delegate(Node node)
101
+            {
102
+                node.Configs.Set(ConfigType.DisplayName, new Value("Add Stream"));
103
+                node.AddParameter(new Parameter
104
+                {
105
+                    Name = "RSTP URL",
106
+                    ValueType = DSLink.Nodes.ValueType.String
107
+                }
108
+                );
109
+                node.AddParameter(new Parameter
110
+                {
111
+                    Name = "Stream name",
112
+                    ValueType = DSLink.Nodes.ValueType.String
113
+                }
114
+                );
115
+                node.SetAction(new ActionHandler(Permission.Config, _createStreamAction));
116
+            });
80 117
 
81
-            Responder.AddNodeClass("rngAdd", delegate(Node node)
118
+            Responder.AddNodeClass("alarmAdd", delegate (Node node)
82 119
             {
83
-                node.Configs.Set(ConfigType.DisplayName, new Value("Create RNG"));
120
+                node.Configs.Set(ConfigType.DisplayName, new Value("Add Alarm"));
84 121
                 node.AddParameter(new Parameter
85 122
                 {
86
-                    Name = "rngName",
123
+                    Name = "Alarm name",
87 124
                     ValueType = DSLink.Nodes.ValueType.String
88
-                });
89
-                node.SetAction(new ActionHandler(Permission.Config, _createRngAction));
125
+                }
126
+                );
127
+                /*node.AddParameter(new Parameter
128
+                {
129
+                    Name = "Camera name",
130
+                    ValueType = DSLink.Nodes.ValueType.String
131
+                }
132
+                ); */
133
+                node.AddParameter(new Parameter
134
+                {
135
+                    Name = "Raspberry Pi IP Address",
136
+                    ValueType = DSLink.Nodes.ValueType.String
137
+                }
138
+                );
139
+                node.AddParameter(new Parameter
140
+                {
141
+                    Name = "Port Number",
142
+                    ValueType = DSLink.Nodes.ValueType.Number
143
+                }
144
+                );
145
+                node.AddParameter(new Parameter
146
+                {
147
+                    Name = "GPIO Pin",
148
+                    ValueType = DSLink.Nodes.ValueType.Number
149
+                }
150
+                );
151
+                
152
+                node.SetAction(new ActionHandler(Permission.Config, _createAlarmAction));
90 153
             });
91 154
 
92
-            Responder.AddNodeClass("rng", delegate(Node node)
155
+            Responder.AddNodeClass("removeNode", delegate (Node node)
156
+            {
157
+                node.Configs.Set(ConfigType.DisplayName, new Value("Remove"));
158
+                node.SetAction(new ActionHandler(Permission.Config, removeNodeAction));
159
+            });
160
+
161
+            Responder.AddNodeClass("stream", delegate (Node node)
93 162
             {
94 163
                 node.Configs.Set(ConfigType.Writable, new Value(Permission.Read.Permit));
95 164
                 node.Configs.Set(ConfigType.ValueType, DSLink.Nodes.ValueType.Number.TypeValue);
96
-                node.Value.Set(0);
165
+                
166
+                node.Value.Set(-1);
167
+            });
97 168
 
98
-                lock (_rngValues)
99
-                {
100
-                    _rngValues.Add(node.Name, node);
101
-                }
169
+            Responder.AddNodeClass("alarm", delegate (Node node)
170
+            {
171
+                node.Configs.Set(ConfigType.Writable, new Value(Permission.Read.Permit));
172
+                node.Configs.Set(ConfigType.ValueType, DSLink.Nodes.ValueType.Boolean.TypeValue);
173
+                node.Value.Set(false);
102 174
             });
103 175
 
104
-            Responder.AddNodeClass("number", delegate (Node node)
176
+            /*Responder.AddNodeClass("rng", delegate(Node node)
105 177
             {
106 178
                 node.Configs.Set(ConfigType.Writable, new Value(Permission.Read.Permit));
107 179
                 node.Configs.Set(ConfigType.ValueType, DSLink.Nodes.ValueType.Number.TypeValue);
108 180
                 node.Value.Set(0);
109
-            });
110 181
 
111
-            _randomNumberThread = new Thread(_updateRandomNumbers);
112
-            _randomNumberThread.Start();
182
+            });*/
183
+        }
184
+        public void ClearNodes()
185
+        {
186
+            foreach (var key in Responder.SuperRoot.Children.Keys)
187
+            {
188
+                Responder.SuperRoot.Children.TryGetValue(key, out Node oldStream);
189
+                if (oldStream.ClassName == "stream")
190
+                {
191
+                    //Console.WriteLine(key);
192
+                    Responder.SuperRoot.RemoveChild(key);
193
+                }
194
+            }
113 195
         }
114 196
 
115 197
         public override void InitializeDefaultNodes()
116 198
         {
117
-            Responder.SuperRoot.CreateChild("createRNG", "rngAdd").BuildNode();
199
+            Responder.SuperRoot.CreateChild("createStream", "streamAdd").BuildNode();
200
+            Responder.SuperRoot.CreateChild("createAlarm", "alarmAdd").BuildNode();
201
+            SaveNodes();
202
+            //Responder.SuperRoot.CreateChild("removeStream", "remove").BuildNode();
203
+        }
204
+
205
+        private async void _createStreamAction(InvokeRequest request)
206
+        {
207
+            try
208
+            {
209
+                var address = request.Parameters["RSTP URL"].Value<string>();
210
+                var streamName = request.Parameters["Stream name"].Value<string>();
211
+                int port = 8081;
212
+
213
+                if (string.IsNullOrEmpty(address)) return;
214
+
215
+                while (PortInUse(port))
216
+                    port++;
217
+
218
+               /*foreach (var oldStreamName in Responder.SuperRoot.Children.Keys)
219
+                {
220
+
221
+                    Responder.SuperRoot.Children.TryGetValue(oldStreamName, out Node oldStream);
222
+                    if (oldStream.ClassName == "stream")
223
+                    {
224
+                        //Console.WriteLine(oldStreamName);
225
+                        if (oldStream.Value.Int == port)
226
+                        {
227
+                            Responder.SuperRoot.RemoveChild(oldStreamName);
228
+                        }
229
+                    }
230
+                }*/
231
+
232
+                if (string.IsNullOrEmpty(streamName)) return;
233
+                if (Responder.SuperRoot.Children.ContainsKey(streamName)) return;
234
+
235
+                var stream = Responder.SuperRoot.CreateChild(streamName, "stream").BuildNode();
236
+
237
+                stream.Value.Set(port);
238
+                stream.CreateChild("remove", "removeNode").BuildNode();
239
+
240
+                /*System.Diagnostics.Process.Start("CMD.exe", "/C \"C:\\Program Files\\VideoLAN\\VLC\\VLC.exe\"" +
241
+                    " -vvv -Idummy " + address + " --sout #transcode{vcodec=MJPG,venc=ffmpeg{strict=1}}" +
242
+                    ":standard{access=http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a}," +
243
+                    "mux=mpjpeg,dst=:" + port + "/} vlc://quit;");*/
244
+                var proc = new Process {
245
+                    StartInfo = new ProcessStartInfo
246
+                    {
247
+                        FileName = "C:\\Program Files\\VideoLAN\\VLC\\VLC.exe",
248
+                        Arguments = " -vvv -Idummy " + address + " --sout #transcode{vcodec=MJPG,venc=ffmpeg{strict=1}}" +
249
+                        ":standard{access=http{mime=multipart/x-mixed-replace;boundary=--7b3cc56e5f51db803f790dad720ed50a}," +
250
+                        "mux=mpjpeg,dst=:" + port + "/} vlc://quit;",
251
+                        UseShellExecute = false,
252
+                        RedirectStandardOutput = false,
253
+                        CreateNoWindow = true
254
+                    }};
255
+                proc.Start();
256
+                _processes.Add(streamName, proc);
257
+
258
+                await request.Close();
259
+                await SaveNodes();
260
+            }
261
+            catch(Exception e)
262
+            {
263
+                Console.WriteLine(e.GetType() + ":" + e.Message);
264
+            }
118 265
         }
119 266
 
120
-        private void _updateRandomNumbers()
267
+        private async void _createAlarmAction(InvokeRequest request)
121 268
         {
122
-            while (Thread.CurrentThread.IsAlive)
269
+            try
123 270
             {
124
-                lock (_rngValues)
271
+                var alarmName = request.Parameters["Alarm name"].Value<string>();
272
+                //var cameraName = request.Parameters["Camera name"].Value<string>();
273
+                var address = request.Parameters["Raspberry Pi IP Address"].Value<string>();
274
+                var port = request.Parameters["Port Number"].Value<int>();
275
+                var pin = request.Parameters["GPIO Pin"].Value<int>();
276
+
277
+                if (string.IsNullOrEmpty(alarmName)) return;
278
+                //if (string.IsNullOrEmpty(cameraName)) return;
279
+                if (Responder.SuperRoot.Children.ContainsKey(alarmName)) return;
280
+                //if (!Responder.SuperRoot.Children.ContainsKey(cameraName)) return;
281
+
282
+                var alarm = Responder.SuperRoot.CreateChild(alarmName, "alarm").BuildNode();
283
+
284
+                alarm.CreateChild("remove", "removeNode").BuildNode();
285
+                var ts = new CancellationTokenSource();
286
+                CancellationToken ct = ts.Token;
287
+                Task.Run(() => _updateAlarm(alarm, address, port, pin, ct));
288
+                _alarmCTs.Add(alarmName, ts);
289
+
290
+                
291
+
292
+                await request.Close();
293
+                await SaveNodes();
294
+            }
295
+            catch (Exception e)
296
+            {
297
+                Console.WriteLine(e.GetType() + ":" + e.Message);
298
+            }
299
+        }
300
+        private async void removeNodeAction(InvokeRequest request)
301
+        {
302
+            try
303
+            {
304
+                //Console.WriteLine(request.Path);
305
+
306
+                //on récupère le nom du noeud ayant envoyé la requête
307
+                //dans le chemin de la requête en utilisant une regex (le chemin se terminant par /noeud/remove)
308
+                var nodeName = Regex.Replace(request.Path, "^.*\\/([^\\/]*)\\/remove$", "$1");
309
+                //Console.WriteLine(streamName);
310
+                
311
+                
312
+                Responder.SuperRoot.Children.TryGetValue(nodeName, out Node node);
313
+                if (node != null)
125 314
                 {
126
-                    foreach (var n in _rngValues)
315
+                    if (node.ClassName == "stream")
127 316
                     {
128
-                        Node minChild, maxChild;
129
-                        n.Value.Children.TryGetValue("min", out minChild);
130
-                        n.Value.Children.TryGetValue("max", out maxChild);
131
-                        //Si les enfants ne sont pas initialisés, on met les valeurs de min et max à 0
132
-                        // Code équivalent à :
133
-                        //int min, max;
134
-                        //if (minChild != null) {
135
-                        //    min = minChild.Value.Int;
136
-                        //}
137
-                        //else {
138
-                        //    min = 0;
139
-                        //}
140
-                        //if (maxChild != null) {
141
-                        //    max = maxChild.Value.Int;
142
-                        //}
143
-                        //else {
144
-                        //    max = 0;
145
-                        //}
146
-                        int min = (minChild != null ? minChild.Value.Int : 0);
147
-                        int max = (maxChild != null ? maxChild.Value.Int : 0);
148
-
149
-                       n.Value.Value.Set(_random.Next(min, max+1));
317
+                        var port = node.Value.Int;
318
+                        _processes.TryGetValue(nodeName, out Process proc);
319
+                        if (proc != null)
320
+                            proc.Kill();
321
+                        _processes.Remove(nodeName);
322
+
323
+                        /*System.Diagnostics.Process.Start("CMD.exe", "/C FOR /F \"tokens=5 delims= \" %P IN ('netstat -a -n -o ^|" +
324
+                            "findstr :" + stream.Value.Int + "') DO @ECHO taskkill /F /PID %P");*/
325
+
326
+                        //FOR /F "tokens=5 delims= " %P IN('netstat -a -n -o | findstr :8081') DO @ECHO TaskKill.exe /PID %P
150 327
                     }
328
+                    else if (node.ClassName == "alarm")
329
+                    {
330
+                        _alarmCTs.TryGetValue(nodeName, out CancellationTokenSource ts);
331
+                        if(ts != null)
332
+                            ts.Cancel();
333
+                    }
334
+                    Responder.SuperRoot.RemoveChild(nodeName);
151 335
                 }
152
-                
153
-                Thread.Sleep(10000);
336
+
337
+                await request.Close();
338
+                await SaveNodes();
339
+            }
340
+            catch (Exception e)
341
+            {
342
+                Console.WriteLine(e.GetType() + ":" + e.Message);
154 343
             }
155 344
         }
156 345
 
157
-        private async void _createRngAction(InvokeRequest request)
346
+        private async void _updateAlarm(Node alarm, string addr, int port, int pin, CancellationToken ct)
158 347
         {
159
-            var rngName = request.Parameters["rngName"].Value<string>();
160
-            if (string.IsNullOrEmpty(rngName)) return;
161
-            if (Responder.SuperRoot.Children.ContainsKey(rngName)) return;
348
+            using (var driver = new Driver(new IPEndPoint(IPAddress.Parse(addr), port)))
349
+            {
350
+                await driver.ConnectAsync();
351
+                await Task.Delay(TimeSpan.FromSeconds(1)); //Give the socket time to get connected
162 352
 
163
-            var newRng = Responder.SuperRoot.CreateChild(rngName, "rng").BuildNode();
164
-            newRng.CreateChild("min", "number").BuildNode();
165
-            newRng.CreateChild("max", "number").BuildNode();
353
+                Console.WriteLine("Connected");
166 354
 
167
-            await request.Close();
168
-            await SaveNodes();
355
+                using (var controller = new GpioController(PinNumberingScheme.Logical, driver))
356
+                {
357
+                    controller.OpenPin(pin);
358
+                    controller.SetPinMode(pin, PinMode.InputPullUp);
359
+
360
+                    while (!ct.IsCancellationRequested)
361
+                    {
362
+                        controller.WaitForEvent(pin, PinEventTypes.Falling, ct);
363
+                        if(!ct.IsCancellationRequested)
364
+                        {
365
+                            Console.WriteLine("Beep boop");
366
+                            alarm.Value.Set(true);
367
+                        }
368
+                    }
369
+                    Console.WriteLine("Task cancelled");
370
+                    controller.ClosePin(pin);
371
+                }
372
+            }
169 373
         }
170 374
 
171 375
         #region Initialize Logging

+ 2
- 0
RSTP_DSLink/RSTP_DSLink/RSTP_DSLink.csproj View File

@@ -22,6 +22,8 @@
22 22
     <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
23 23
     <PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" />
24 24
     <PackageReference Include="StandardStorage" Version="0.1.1" />
25
+    <PackageReference Include="System.Device.Gpio" Version="1.5.0" />
26
+    <PackageReference Include="Unosquare.RaspberryIO.Peripherals" Version="0.5.0" />
25 27
   </ItemGroup>
26 28
 
27 29
   <ItemGroup>

+ 156
- 0
RSTP_DSLink/RSTP_DSLink/TcpConnection.cs View File

@@ -0,0 +1,156 @@
1
+using System;
2
+using System.Net.Sockets;
3
+
4
+namespace Iot.Device.Pigpio
5
+{
6
+    internal class TcpConnection
7
+    {
8
+        #region # event
9
+
10
+        public event EventHandler StreamChanged;
11
+
12
+        #endregion
13
+
14
+
15
+        #region # private field
16
+
17
+        private TcpClient tcp = null;
18
+        private string ipOrHost;
19
+        private int port;
20
+
21
+        #endregion
22
+
23
+
24
+        #region # public property
25
+
26
+        public bool IsOpened
27
+        {
28
+            get
29
+            {
30
+                return tcp != null;
31
+            }
32
+        }
33
+
34
+        private NetworkStream _stream = null;
35
+        public NetworkStream Stream
36
+        {
37
+            get
38
+            {
39
+                return _stream;
40
+            }
41
+            set
42
+            {
43
+                _stream = value;
44
+                if (StreamChanged != null)
45
+                {
46
+                    StreamChanged.Invoke(this, new EventArgs());
47
+                }
48
+            }
49
+        }
50
+
51
+        #endregion
52
+
53
+
54
+        #region # Implementation of IDisposable
55
+
56
+        bool disposed = false;
57
+        public void Dispose()
58
+        {
59
+            Dispose(true);
60
+            GC.SuppressFinalize(this);
61
+        }
62
+        protected virtual void Dispose(bool disposing)
63
+        {
64
+            if (disposed)
65
+                return;
66
+
67
+            if (disposing)
68
+            {
69
+                // Release managed objects
70
+                Close();
71
+            }
72
+
73
+            // Release unmanaged objects
74
+
75
+            disposed = true;
76
+        }
77
+        ~TcpConnection()
78
+        {
79
+            Dispose(false);
80
+        }
81
+
82
+        #endregion
83
+
84
+
85
+        #region # public method
86
+
87
+        public bool Open(string ipOrHost, int port)
88
+        {
89
+            if (tcp == null)
90
+            {
91
+                try
92
+                {
93
+                    this.ipOrHost = ipOrHost;
94
+                    this.port = port;
95
+
96
+                    tcp = new TcpClient();
97
+                    tcp.BeginConnect(ipOrHost, port, new AsyncCallback(NetConnectCallback), null);
98
+
99
+                    Console.WriteLine("Connecting to {0}:{1}...", ipOrHost, port);
100
+                }
101
+                catch (Exception ex)
102
+                {
103
+                    Console.WriteLine("Connection failed({0}).", ex.Message);
104
+                    Close();
105
+                    return false;
106
+                }
107
+            }
108
+            return true;
109
+        }
110
+
111
+        public void Close()
112
+        {
113
+            if (Stream != null)
114
+            {
115
+                // Execute handlers of StreamChanged event, and call Dispose()
116
+                var stream = Stream;
117
+                Stream = null;
118
+                stream.Dispose();
119
+            }
120
+            if (tcp != null)
121
+            {
122
+                tcp.Close();
123
+                tcp = null;
124
+
125
+                Console.WriteLine("{0}:{1} was disconnected.", ipOrHost, port);
126
+            }
127
+            ipOrHost = string.Empty;
128
+            port = 0;
129
+        }
130
+
131
+        #endregion
132
+
133
+
134
+        #region # private method
135
+
136
+        private void NetConnectCallback(IAsyncResult result)
137
+        {
138
+            if (tcp == null)
139
+                return;
140
+
141
+            if (tcp.Connected)
142
+            {
143
+                Console.WriteLine("Connected to LAN {0}:{1}.",
144
+                    ((System.Net.IPEndPoint)tcp.Client.RemoteEndPoint).Address,
145
+                    ((System.Net.IPEndPoint)tcp.Client.RemoteEndPoint).Port);
146
+
147
+                var stream = tcp.GetStream();
148
+                stream.ReadTimeout = 10000;
149
+                stream.WriteTimeout = 10000;
150
+                Stream = stream;
151
+            }
152
+        }
153
+
154
+        #endregion
155
+    }
156
+}

+ 1
- 0
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/.keys View File

@@ -0,0 +1 @@
1
+AO39Mq3F7NNBl0JDFl0Vz5c99i8+xKqU6Z+X4IZqHLxN BB55A01yuewbt8+/lKZ9hNVvpvEAv9BAuY/y/M0KjvHxUzcFdGdmGrftSjQVtITmD5c83eFyBRMUeK9Ca7Eybn8=

BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Microsoft.Win32.Registry.dll View File


+ 934
- 51
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/RSTP_DSLink.deps.json
File diff suppressed because it is too large
View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/RSTP_DSLink.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/RSTP_DSLink.pdb View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Swan.Lite.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Swan.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/System.Device.Gpio.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/System.Security.AccessControl.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/System.Security.Principal.Windows.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Unosquare.Raspberry.Abstractions.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Unosquare.RaspberryIO.Peripherals.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/Unosquare.RaspberryIO.dll View File


+ 5
- 0
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/log-20210730.txt View File

@@ -0,0 +1,5 @@
1
+2021-07-30 09:43:15.793 +02:00 [Information] Handshaking with http://localhost:8080/conn?dsId=RSTP_Test3-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
2
+2021-07-30 09:43:18.537 +02:00 [Information] Handshake successful
3
+2021-07-30 09:43:19.001 +02:00 [Information] Connecting
4
+2021-07-30 09:43:19.031 +02:00 [Information] WebSocket connecting to ws://localhost:8080/ws?dsId=RSTP_Test3-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=ZI0S3FYjOpJ6RFGUB0AJdQz1L66DY40JexmnWbFRdW0&format=msgpack
5
+2021-07-30 09:43:21.172 +02:00 [Information] Connected to ws://localhost:8080/ws?dsId=RSTP_Test3-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=ZI0S3FYjOpJ6RFGUB0AJdQz1L66DY40JexmnWbFRdW0&format=msgpack

+ 137
- 0
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/log-20210802.txt View File

@@ -0,0 +1,137 @@
1
+2021-08-02 13:50:42.944 +02:00 [Information] Handshaking with http://localhost:8080/conn?dsId=RSTP_Test3-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
2
+2021-08-02 13:51:41.611 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
3
+2021-08-02 13:51:42.663 +02:00 [Information] Handshake successful
4
+2021-08-02 13:51:43.442 +02:00 [Information] Connecting
5
+2021-08-02 13:51:43.489 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=uhl97qol-LJctTsc1JFBBvNw_sEimFGBhB3faZZJtnU&format=msgpack
6
+2021-08-02 13:51:43.635 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=uhl97qol-LJctTsc1JFBBvNw_sEimFGBhB3faZZJtnU&format=msgpack
7
+2021-08-02 14:34:19.228 +02:00 [Warning] Failed to load nodes.json
8
+2021-08-02 14:34:19.348 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
9
+2021-08-02 14:34:19.565 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
10
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
11
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
12
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
13
+2021-08-02 14:34:19.708 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
14
+2021-08-02 14:34:20.422 +02:00 [Information] Handshake successful
15
+2021-08-02 14:34:21.158 +02:00 [Information] Connecting
16
+2021-08-02 14:34:21.216 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=ODxOscstQta0tvbEL7qP9asNm-ruY0cO5FS59ic3iLg&format=msgpack
17
+2021-08-02 14:34:21.361 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=ODxOscstQta0tvbEL7qP9asNm-ruY0cO5FS59ic3iLg&format=msgpack
18
+2021-08-02 14:35:38.680 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
19
+2021-08-02 14:35:39.471 +02:00 [Information] Handshake successful
20
+2021-08-02 14:35:39.956 +02:00 [Information] Connecting
21
+2021-08-02 14:35:40.030 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=imEeLF8hF0q7ChooQmo5CsGjIf25PFZcRNR1EozTcog&format=msgpack
22
+2021-08-02 14:35:40.142 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=imEeLF8hF0q7ChooQmo5CsGjIf25PFZcRNR1EozTcog&format=msgpack
23
+2021-08-02 14:36:55.341 +02:00 [Warning] Failed to load nodes.json
24
+2021-08-02 14:36:55.501 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
25
+2021-08-02 14:36:55.670 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
26
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
27
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
28
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
29
+2021-08-02 14:36:55.743 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
30
+2021-08-02 14:36:56.450 +02:00 [Information] Handshake successful
31
+2021-08-02 14:36:56.788 +02:00 [Information] Connecting
32
+2021-08-02 14:36:56.867 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=PQrt57OWxkEJODmDyqmYIGr81Cd6LkMSxeMd9IDGNTk&format=msgpack
33
+2021-08-02 14:36:57.006 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=PQrt57OWxkEJODmDyqmYIGr81Cd6LkMSxeMd9IDGNTk&format=msgpack
34
+2021-08-02 14:45:15.520 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
35
+2021-08-02 14:45:16.224 +02:00 [Information] Handshake successful
36
+2021-08-02 14:45:16.858 +02:00 [Information] Connecting
37
+2021-08-02 14:45:16.953 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=LliHPiJv3YLrT1AwlAPUj3s52vEcvswjBMhX3n9hsIQ&format=msgpack
38
+2021-08-02 14:45:17.043 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=LliHPiJv3YLrT1AwlAPUj3s52vEcvswjBMhX3n9hsIQ&format=msgpack
39
+2021-08-02 15:05:11.773 +02:00 [Warning] Failed to load nodes.json
40
+2021-08-02 15:05:11.895 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
41
+2021-08-02 15:05:12.135 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
42
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
43
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
44
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
45
+2021-08-02 15:05:12.216 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
46
+2021-08-02 15:05:12.775 +02:00 [Information] Handshake successful
47
+2021-08-02 15:05:13.146 +02:00 [Information] Connecting
48
+2021-08-02 15:05:13.200 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=8_IBgIIzs9F0GftK--bSy47OJ47V8iQZQbu5Zn_HdC0&format=msgpack
49
+2021-08-02 15:05:13.301 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=8_IBgIIzs9F0GftK--bSy47OJ47V8iQZQbu5Zn_HdC0&format=msgpack
50
+2021-08-02 15:23:30.345 +02:00 [Warning] Failed to load nodes.json
51
+2021-08-02 15:23:30.945 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
52
+2021-08-02 15:23:31.041 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
53
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
54
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
55
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
56
+2021-08-02 15:23:31.147 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
57
+2021-08-02 15:23:32.012 +02:00 [Information] Handshake successful
58
+2021-08-02 15:23:32.694 +02:00 [Information] Connecting
59
+2021-08-02 15:23:32.783 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=MqtkDt1G1TO0CnxkbQrTNvU3LGNOeqsBHeI_XL_M6Q4&format=msgpack
60
+2021-08-02 15:23:33.134 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=MqtkDt1G1TO0CnxkbQrTNvU3LGNOeqsBHeI_XL_M6Q4&format=msgpack
61
+2021-08-02 15:24:27.414 +02:00 [Warning] Failed to load nodes.json
62
+2021-08-02 15:24:27.517 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
63
+2021-08-02 15:24:27.624 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
64
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
65
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
66
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
67
+2021-08-02 15:24:27.720 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
68
+2021-08-02 15:24:28.544 +02:00 [Information] Handshake successful
69
+2021-08-02 15:24:28.956 +02:00 [Information] Connecting
70
+2021-08-02 15:24:29.016 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=91NDc7aEGIm0ZaI1idI5PZcvlzF2NJlKp0vqN5zGk_A&format=msgpack
71
+2021-08-02 15:24:29.156 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=91NDc7aEGIm0ZaI1idI5PZcvlzF2NJlKp0vqN5zGk_A&format=msgpack
72
+2021-08-02 15:36:07.616 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
73
+2021-08-02 15:36:08.470 +02:00 [Information] Handshake successful
74
+2021-08-02 15:36:08.910 +02:00 [Information] Connecting
75
+2021-08-02 15:36:08.971 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=kNXRX8md71HUGQYqMdfmhFkEiC7SsQeVn87VyuxajK8&format=msgpack
76
+2021-08-02 15:36:09.047 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=kNXRX8md71HUGQYqMdfmhFkEiC7SsQeVn87VyuxajK8&format=msgpack
77
+2021-08-02 15:37:13.892 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
78
+2021-08-02 15:37:14.418 +02:00 [Information] Handshake successful
79
+2021-08-02 15:37:14.765 +02:00 [Information] Connecting
80
+2021-08-02 15:37:14.819 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=8zvw8rDqIFXrIKvqE1ftulG7BM_rLNb7bb-AdHK37ks&format=msgpack
81
+2021-08-02 15:37:14.947 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=8zvw8rDqIFXrIKvqE1ftulG7BM_rLNb7bb-AdHK37ks&format=msgpack
82
+2021-08-02 15:37:59.300 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
83
+2021-08-02 15:37:59.804 +02:00 [Information] Handshake successful
84
+2021-08-02 15:38:00.225 +02:00 [Information] Connecting
85
+2021-08-02 15:38:00.299 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=p1_Cwft2j9YTdcwyz2KcIDSZXii5JQUNSUkT4FQwUUA&format=msgpack
86
+2021-08-02 15:38:00.365 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=p1_Cwft2j9YTdcwyz2KcIDSZXii5JQUNSUkT4FQwUUA&format=msgpack
87
+2021-08-02 15:40:46.878 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
88
+2021-08-02 15:40:47.752 +02:00 [Information] Handshake successful
89
+2021-08-02 15:40:48.027 +02:00 [Information] Connecting
90
+2021-08-02 15:40:48.090 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=hmcLWMoqCo7LV889eG8XN-epvd8iyxXAwUPgIE49bk0&format=msgpack
91
+2021-08-02 15:40:48.145 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=hmcLWMoqCo7LV889eG8XN-epvd8iyxXAwUPgIE49bk0&format=msgpack
92
+2021-08-02 15:42:44.204 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
93
+2021-08-02 15:42:44.899 +02:00 [Information] Handshake successful
94
+2021-08-02 15:42:45.251 +02:00 [Information] Connecting
95
+2021-08-02 15:42:45.317 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=BBaRuoEhEOnDNHdd225-F9s2w_BWRaiFU7RvoHNye70&format=msgpack
96
+2021-08-02 15:42:45.419 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=BBaRuoEhEOnDNHdd225-F9s2w_BWRaiFU7RvoHNye70&format=msgpack
97
+2021-08-02 15:44:48.828 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
98
+2021-08-02 15:44:49.600 +02:00 [Information] Handshake successful
99
+2021-08-02 15:44:49.997 +02:00 [Information] Connecting
100
+2021-08-02 15:44:50.084 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=-w52j8pLBXA9LKUVoeIMzIjQLBLC3cfaU4UcBsscqAI&format=msgpack
101
+2021-08-02 15:44:50.248 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=-w52j8pLBXA9LKUVoeIMzIjQLBLC3cfaU4UcBsscqAI&format=msgpack
102
+2021-08-02 16:04:38.986 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
103
+2021-08-02 16:04:39.683 +02:00 [Information] Handshake successful
104
+2021-08-02 16:04:39.993 +02:00 [Information] Connecting
105
+2021-08-02 16:04:40.036 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=MKQAEE5Jis75YBh0JZDlzVoj6ug03k22oVjNtKWXlRc&format=msgpack
106
+2021-08-02 16:04:40.124 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=MKQAEE5Jis75YBh0JZDlzVoj6ug03k22oVjNtKWXlRc&format=msgpack
107
+2021-08-02 16:07:26.733 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
108
+2021-08-02 16:07:27.487 +02:00 [Information] Handshake successful
109
+2021-08-02 16:07:28.240 +02:00 [Information] Connecting
110
+2021-08-02 16:07:28.320 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=xU27aIt1tzrE-2jGTf3f10AGbRHl4Kpiormd5gRmDhU&format=msgpack
111
+2021-08-02 16:07:28.421 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=xU27aIt1tzrE-2jGTf3f10AGbRHl4Kpiormd5gRmDhU&format=msgpack
112
+2021-08-02 16:10:00.222 +02:00 [Warning] Failed to load nodes.json
113
+2021-08-02 16:10:00.334 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
114
+2021-08-02 16:10:00.499 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
115
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
116
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
117
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
118
+2021-08-02 16:10:00.566 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
119
+2021-08-02 16:10:01.090 +02:00 [Information] Handshake successful
120
+2021-08-02 16:10:01.437 +02:00 [Information] Connecting
121
+2021-08-02 16:10:01.466 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=t09OJX_lXJF71GtOiQjXu-V6kEfCxohRpXqGKTRfOsA&format=msgpack
122
+2021-08-02 16:10:01.525 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=t09OJX_lXJF71GtOiQjXu-V6kEfCxohRpXqGKTRfOsA&format=msgpack
123
+2021-08-02 16:12:57.439 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
124
+2021-08-02 16:12:58.046 +02:00 [Information] Handshake successful
125
+2021-08-02 16:12:58.325 +02:00 [Information] Connecting
126
+2021-08-02 16:12:58.438 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=JQUHQceTDOsUz3-5IWBWgSVznZ8o_bpsBxRFR2WGSNY&format=msgpack
127
+2021-08-02 16:12:58.580 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=JQUHQceTDOsUz3-5IWBWgSVznZ8o_bpsBxRFR2WGSNY&format=msgpack
128
+2021-08-02 16:13:57.017 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
129
+2021-08-02 16:13:57.507 +02:00 [Information] Handshake successful
130
+2021-08-02 16:13:57.873 +02:00 [Information] Connecting
131
+2021-08-02 16:13:58.022 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=KEgjreMZ8LATOlDfPf1a0v2s0XPAx6wBhQKJpXTMuYg&format=msgpack
132
+2021-08-02 16:13:58.174 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=KEgjreMZ8LATOlDfPf1a0v2s0XPAx6wBhQKJpXTMuYg&format=msgpack
133
+2021-08-02 16:15:10.931 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
134
+2021-08-02 16:15:11.735 +02:00 [Information] Handshake successful
135
+2021-08-02 16:15:11.937 +02:00 [Information] Connecting
136
+2021-08-02 16:15:11.984 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=8BcKgvQO1DR6vVdJO0GeIuubq7_80xDV-zpxb6ZVhXI&format=msgpack
137
+2021-08-02 16:15:12.087 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=8BcKgvQO1DR6vVdJO0GeIuubq7_80xDV-zpxb6ZVhXI&format=msgpack

+ 129
- 0
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/log-20210803.txt View File

@@ -0,0 +1,129 @@
1
+2021-08-03 11:03:44.122 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
2
+2021-08-03 11:03:45.752 +02:00 [Information] Handshake successful
3
+2021-08-03 11:03:46.945 +02:00 [Information] Connecting
4
+2021-08-03 11:03:47.010 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=B0sKiYxR4Q-MphyQBZJEF9-5YYiOtHyJGAAXimqympI&format=msgpack
5
+2021-08-03 11:03:47.254 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=B0sKiYxR4Q-MphyQBZJEF9-5YYiOtHyJGAAXimqympI&format=msgpack
6
+2021-08-03 11:30:52.942 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
7
+2021-08-03 11:30:53.558 +02:00 [Information] Handshake successful
8
+2021-08-03 11:30:53.749 +02:00 [Information] Connecting
9
+2021-08-03 11:30:53.791 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=VhcS9rCG3lgMQWshLxv2rHK0XRwZTgl3WuHzfxqncSQ&format=msgpack
10
+2021-08-03 11:30:53.856 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=VhcS9rCG3lgMQWshLxv2rHK0XRwZTgl3WuHzfxqncSQ&format=msgpack
11
+2021-08-03 11:31:27.638 +02:00 [Warning] Failed to load nodes.json
12
+2021-08-03 11:31:27.724 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
13
+2021-08-03 11:31:28.350 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
14
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
15
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
16
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
17
+2021-08-03 11:31:28.416 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
18
+2021-08-03 11:31:29.164 +02:00 [Information] Handshake successful
19
+2021-08-03 11:31:29.535 +02:00 [Information] Connecting
20
+2021-08-03 11:31:29.647 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=gpv5jA0dwOIVN0zc439RLXHK0GXBSxInZeKmYucTRUU&format=msgpack
21
+2021-08-03 11:31:29.867 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=gpv5jA0dwOIVN0zc439RLXHK0GXBSxInZeKmYucTRUU&format=msgpack
22
+2021-08-03 11:33:10.676 +02:00 [Warning] Failed to load nodes.json
23
+2021-08-03 11:33:10.790 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
24
+2021-08-03 11:33:10.939 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
25
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
26
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
27
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
28
+2021-08-03 11:33:11.166 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
29
+2021-08-03 11:33:12.404 +02:00 [Information] Handshake successful
30
+2021-08-03 11:33:12.778 +02:00 [Information] Connecting
31
+2021-08-03 11:33:12.812 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=Bli_OxHVHntLF9zADsjwqEbn8EhWQ-CGJmK9WIDLf10&format=msgpack
32
+2021-08-03 11:33:12.930 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=Bli_OxHVHntLF9zADsjwqEbn8EhWQ-CGJmK9WIDLf10&format=msgpack
33
+2021-08-03 11:35:36.583 +02:00 [Warning] Failed to load nodes.json
34
+2021-08-03 11:35:36.671 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
35
+2021-08-03 11:35:36.770 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
36
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
37
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
38
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
39
+2021-08-03 11:35:36.833 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
40
+2021-08-03 11:35:37.483 +02:00 [Information] Handshake successful
41
+2021-08-03 11:35:37.965 +02:00 [Information] Connecting
42
+2021-08-03 11:35:38.069 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=N3aAK1S7jWsz6Xeixb3agtCf8MXr0x-e7HATwPWPX1o&format=msgpack
43
+2021-08-03 11:35:38.136 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=N3aAK1S7jWsz6Xeixb3agtCf8MXr0x-e7HATwPWPX1o&format=msgpack
44
+2021-08-03 11:37:18.243 +02:00 [Warning] Failed to load nodes.json
45
+2021-08-03 11:37:18.376 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
46
+2021-08-03 11:37:18.465 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
47
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
48
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
49
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
50
+2021-08-03 11:37:18.539 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
51
+2021-08-03 11:37:19.334 +02:00 [Information] Handshake successful
52
+2021-08-03 11:37:19.657 +02:00 [Information] Connecting
53
+2021-08-03 11:37:19.696 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=betMIA8Xy-p4Z0R9lN1fKBUZJNled2t8JabU8eH2GAk&format=msgpack
54
+2021-08-03 11:37:19.827 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=betMIA8Xy-p4Z0R9lN1fKBUZJNled2t8JabU8eH2GAk&format=msgpack
55
+2021-08-03 11:40:24.309 +02:00 [Warning] Failed to load nodes.json
56
+2021-08-03 11:40:24.489 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
57
+2021-08-03 11:40:24.607 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
58
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
59
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
60
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
61
+2021-08-03 11:40:25.009 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
62
+2021-08-03 11:40:25.869 +02:00 [Information] Handshake successful
63
+2021-08-03 11:40:26.442 +02:00 [Information] Connecting
64
+2021-08-03 11:40:26.566 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=fdos6OENq6v54imFbTDefeYyc3_m5841nu8NI-hcF58&format=msgpack
65
+2021-08-03 11:40:26.656 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=fdos6OENq6v54imFbTDefeYyc3_m5841nu8NI-hcF58&format=msgpack
66
+2021-08-03 11:41:08.851 +02:00 [Warning] Failed to load nodes.json
67
+2021-08-03 11:41:09.031 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
68
+2021-08-03 11:41:09.144 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
69
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
70
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
71
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
72
+2021-08-03 11:41:09.385 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
73
+2021-08-03 11:41:10.111 +02:00 [Information] Handshake successful
74
+2021-08-03 11:41:10.598 +02:00 [Information] Connecting
75
+2021-08-03 11:41:10.692 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=vr8C6A6On9Xh-q70n8L-RfXcmOBdfraXoOykU3cwUQA&format=msgpack
76
+2021-08-03 11:41:10.825 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=vr8C6A6On9Xh-q70n8L-RfXcmOBdfraXoOykU3cwUQA&format=msgpack
77
+2021-08-03 11:42:10.520 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
78
+2021-08-03 11:42:10.898 +02:00 [Information] Handshake successful
79
+2021-08-03 11:42:11.108 +02:00 [Information] Connecting
80
+2021-08-03 11:42:11.177 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=ojurIILA78q0aJt4grkJzFbgw3DwfS2r_WC5R8pwpSo&format=msgpack
81
+2021-08-03 11:42:11.297 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=ojurIILA78q0aJt4grkJzFbgw3DwfS2r_WC5R8pwpSo&format=msgpack
82
+2021-08-03 11:42:29.808 +02:00 [Warning] Failed to load nodes.json
83
+2021-08-03 11:42:29.898 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
84
+2021-08-03 11:42:29.967 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
85
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
86
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
87
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
88
+2021-08-03 11:42:30.137 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
89
+2021-08-03 11:42:30.532 +02:00 [Information] Handshake successful
90
+2021-08-03 11:42:30.906 +02:00 [Information] Connecting
91
+2021-08-03 11:42:30.985 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=tKi9TXyt1wXcsIjPytryaX6sHgpTDBzJElA1hEl2zu8&format=msgpack
92
+2021-08-03 11:42:31.134 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=tKi9TXyt1wXcsIjPytryaX6sHgpTDBzJElA1hEl2zu8&format=msgpack
93
+2021-08-03 11:43:35.267 +02:00 [Warning] Failed to load nodes.json
94
+2021-08-03 11:43:35.366 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
95
+2021-08-03 11:43:35.434 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
96
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
97
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
98
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
99
+2021-08-03 11:43:35.867 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
100
+2021-08-03 11:43:36.274 +02:00 [Information] Handshake successful
101
+2021-08-03 11:43:36.493 +02:00 [Information] Connecting
102
+2021-08-03 11:43:36.530 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=bubQ2UGVXRlMIbYSrt2gA4KZAuS0kKos4x5vjlx__Rc&format=msgpack
103
+2021-08-03 11:43:36.663 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=bubQ2UGVXRlMIbYSrt2gA4KZAuS0kKos4x5vjlx__Rc&format=msgpack
104
+2021-08-03 11:46:24.951 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
105
+2021-08-03 11:46:25.564 +02:00 [Information] Handshake successful
106
+2021-08-03 11:46:25.871 +02:00 [Information] Connecting
107
+2021-08-03 11:46:25.945 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=bpl3In8B0JhkN53rTf4afrZMF0tA-NEHz3pfcSpwkB8&format=msgpack
108
+2021-08-03 11:46:26.102 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=bpl3In8B0JhkN53rTf4afrZMF0tA-NEHz3pfcSpwkB8&format=msgpack
109
+2021-08-03 11:56:02.197 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
110
+2021-08-03 11:56:02.727 +02:00 [Information] Handshake successful
111
+2021-08-03 11:56:03.109 +02:00 [Information] Connecting
112
+2021-08-03 11:56:03.172 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=4IsqPIISg-NycVkNpVfgaULTURZ6Sdi-Zh3B5X9pmwM&format=msgpack
113
+2021-08-03 11:56:03.418 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=4IsqPIISg-NycVkNpVfgaULTURZ6Sdi-Zh3B5X9pmwM&format=msgpack
114
+2021-08-03 11:56:48.024 +02:00 [Warning] Failed to load nodes.json
115
+2021-08-03 11:56:48.146 +02:00 [Warning] File does not exist: C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\nodes.json
116
+2021-08-03 11:56:48.307 +02:00 [Warning]    at StandardStorage.Folder.GetFileAsync(String name, CancellationToken cancellationToken)
117
+   at DSLink.VFS.SystemVFS._getFile(String fileName)
118
+   at DSLink.VFS.SystemVFS.ReadAsync(String fileName)
119
+   at DSLink.Respond.DiskSerializer.DeserializeFromDisk()
120
+2021-08-03 11:56:48.628 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
121
+2021-08-03 11:56:49.971 +02:00 [Information] Handshake successful
122
+2021-08-03 11:56:50.534 +02:00 [Information] Connecting
123
+2021-08-03 11:56:50.874 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=ypWQIh8FPOQNhPAXbRN1meG0gWc_sw2va2g3Cg0nMd4&format=msgpack
124
+2021-08-03 11:56:51.227 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=ypWQIh8FPOQNhPAXbRN1meG0gWc_sw2va2g3Cg0nMd4&format=msgpack
125
+2021-08-03 12:02:42.774 +02:00 [Information] Handshaking with http://192.168.1.54:8080/conn?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs
126
+2021-08-03 12:02:43.276 +02:00 [Information] Handshake successful
127
+2021-08-03 12:02:43.454 +02:00 [Information] Connecting
128
+2021-08-03 12:02:43.489 +02:00 [Information] WebSocket connecting to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=Fz0kksH0XedbyZ5rz1bOhD5ET8QuDRpvOK88ot6khuA&format=msgpack
129
+2021-08-03 12:02:43.562 +02:00 [Information] Connected to ws://192.168.1.54:8080/ws?dsId=RTSP-OMdrHg0avIBTMlApcGJyO6F7_WThL5P0aIxLoTJwYrs&auth=Fz0kksH0XedbyZ5rz1bOhD5ET8QuDRpvOK88ot6khuA&format=msgpack

+ 46
- 0
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/nodes.json View File

@@ -0,0 +1,46 @@
1
+{
2
+  "$is": "node",
3
+  "privateConfigs": {},
4
+  "createStream": {
5
+    "$is": "streamAdd",
6
+    "$name": "Add Stream",
7
+    "$params": [
8
+      {
9
+        "name": "RSTP URL",
10
+        "type": "string"
11
+      },
12
+      {
13
+        "name": "Stream name",
14
+        "type": "string"
15
+      }
16
+    ],
17
+    "$invokable": "config",
18
+    "privateConfigs": {},
19
+    "?class": "streamAdd"
20
+  },
21
+  "createAlarm": {
22
+    "$is": "alarmAdd",
23
+    "$name": "Add Alarm",
24
+    "$params": [
25
+      {
26
+        "name": "Alarm name",
27
+        "type": "string"
28
+      },
29
+      {
30
+        "name": "Raspberry Pi IP Address",
31
+        "type": "string"
32
+      },
33
+      {
34
+        "name": "Port Number",
35
+        "type": "number"
36
+      },
37
+      {
38
+        "name": "GPIO Pin",
39
+        "type": "number"
40
+      }
41
+    ],
42
+    "$invokable": "config",
43
+    "privateConfigs": {},
44
+    "?class": "alarmAdd"
45
+  }
46
+}

BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/runtimes/unix/lib/netcoreapp2.1/System.Security.Principal.Windows.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/runtimes/win/lib/netcoreapp2.0/System.Security.AccessControl.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/runtimes/win/lib/netcoreapp2.1/System.Security.Principal.Windows.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/bin/Debug/netcoreapp3.1/runtimes/win/lib/netstandard2.0/Microsoft.Win32.Registry.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/obj/Debug/netcoreapp3.1/RSTP_DSLink.assets.cache View File


+ 1
- 1
RSTP_DSLink/RSTP_DSLink/obj/Debug/netcoreapp3.1/RSTP_DSLink.csproj.CoreCompileInputs.cache View File

@@ -1 +1 @@
1
-28da4aa5ebde6007021646d01b238b1b362bbd7c
1
+38f2e3c6f718af46c0bc45eb96010e1b0699066e

+ 16
- 4
RSTP_DSLink/RSTP_DSLink/obj/Debug/netcoreapp3.1/RSTP_DSLink.csproj.FileListAbsolute.txt View File

@@ -1,7 +1,3 @@
1
-C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\obj\Debug\netcoreapp3.1\RSTP_DSLink.csproj.AssemblyReference.cache
2
-C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\obj\Debug\netcoreapp3.1\RSTP_DSLink.AssemblyInfoInputs.cache
3
-C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\obj\Debug\netcoreapp3.1\RSTP_DSLink.AssemblyInfo.cs
4
-C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\obj\Debug\netcoreapp3.1\RSTP_DSLink.csproj.CoreCompileInputs.cache
5 1
 C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\RSTP_DSLink.exe
6 2
 C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\RSTP_DSLink.deps.json
7 3
 C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\RSTP_DSLink.runtimeconfig.json
@@ -21,7 +17,23 @@ C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreap
21 17
 C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\System.CodeDom.dll
22 18
 C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\System.Security.Permissions.dll
23 19
 C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\DSLink.dll
20
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\obj\Debug\netcoreapp3.1\RSTP_DSLink.AssemblyInfoInputs.cache
21
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\obj\Debug\netcoreapp3.1\RSTP_DSLink.AssemblyInfo.cs
22
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\obj\Debug\netcoreapp3.1\RSTP_DSLink.csproj.CoreCompileInputs.cache
24 23
 C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\obj\Debug\netcoreapp3.1\RSTP_DSLink.csproj.CopyComplete
25 24
 C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\obj\Debug\netcoreapp3.1\RSTP_DSLink.dll
26 25
 C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\obj\Debug\netcoreapp3.1\RSTP_DSLink.pdb
27 26
 C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\obj\Debug\netcoreapp3.1\RSTP_DSLink.genruntimeconfig.cache
27
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\Unosquare.Raspberry.Abstractions.dll
28
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\Unosquare.RaspberryIO.dll
29
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\Unosquare.RaspberryIO.Peripherals.dll
30
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\Swan.dll
31
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\Swan.Lite.dll
32
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\Microsoft.Win32.Registry.dll
33
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\System.Device.Gpio.dll
34
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\System.Security.AccessControl.dll
35
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\System.Security.Principal.Windows.dll
36
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\runtimes\win\lib\netstandard2.0\Microsoft.Win32.Registry.dll
37
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.0\System.Security.AccessControl.dll
38
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\runtimes\unix\lib\netcoreapp2.1\System.Security.Principal.Windows.dll
39
+C:\Users\l.farina\Desktop\UCRM_stage\RSTP_DSLink\RSTP_DSLink\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp2.1\System.Security.Principal.Windows.dll

BIN
RSTP_DSLink/RSTP_DSLink/obj/Debug/netcoreapp3.1/RSTP_DSLink.dll View File


BIN
RSTP_DSLink/RSTP_DSLink/obj/Debug/netcoreapp3.1/RSTP_DSLink.pdb View File


+ 8
- 0
RSTP_DSLink/RSTP_DSLink/obj/RSTP_DSLink.csproj.nuget.dgspec.json View File

@@ -93,6 +93,14 @@
93 93
             "StandardStorage": {
94 94
               "target": "Package",
95 95
               "version": "[0.1.1, )"
96
+            },
97
+            "System.Device.Gpio": {
98
+              "target": "Package",
99
+              "version": "[1.5.0, )"
100
+            },
101
+            "Unosquare.RaspberryIO.Peripherals": {
102
+              "target": "Package",
103
+              "version": "[0.5.0, )"
96 104
             }
97 105
           },
98 106
           "imports": [

+ 4
- 0
RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/.NETCoreApp,Version=v3.1.AssemblyAttributes.cs View File

@@ -0,0 +1,4 @@
1
+// <autogenerated />
2
+using System;
3
+using System.Reflection;
4
+[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v3.1", FrameworkDisplayName = "")]

+ 33
- 0
RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/ILog.cs View File

@@ -0,0 +1,33 @@
1
+// <auto-generated/>
2
+// ReSharper disable CheckNamespace
3
+namespace RSTP_DSLink.Logging
4
+{
5
+    using System;
6
+
7
+    /// <summary>
8
+    ///     Simple interface that represent a logger.
9
+    /// </summary>
10
+#if LIBLOG_PUBLIC
11
+    public
12
+#else
13
+    internal
14
+#endif
15
+        interface ILog
16
+    {
17
+        /// <summary>
18
+        ///     Log a message the specified log level.
19
+        /// </summary>
20
+        /// <param name="logLevel">The log level.</param>
21
+        /// <param name="messageFunc">The message function.</param>
22
+        /// <param name="exception">An optional exception.</param>
23
+        /// <param name="formatParameters">Optional format parameters for the message generated by the messagefunc. </param>
24
+        /// <returns>true if the message was logged. Otherwise false.</returns>
25
+        /// <remarks>
26
+        ///     Note to implementers: the message func should not be called if the loglevel is not enabled
27
+        ///     so as not to incur performance penalties.
28
+        ///     To check IsEnabled call Log with only LogLevel and check the return value, no event will be written.
29
+        /// </remarks>
30
+        bool Log(LogLevel logLevel, Func<string> messageFunc, Exception exception = null,
31
+            params object[] formatParameters);
32
+    }
33
+}

+ 40
- 0
RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/ILogProvider.cs View File

@@ -0,0 +1,40 @@
1
+// <auto-generated/>
2
+// ReSharper disable CheckNamespace
3
+using System;
4
+
5
+namespace RSTP_DSLink.Logging
6
+{
7
+    /// <summary>
8
+    /// Represents a way to get a <see cref="Logger"/>
9
+    /// </summary>
10
+#if LIBLOG_PROVIDERS_ONLY
11
+    internal
12
+#else
13
+    public
14
+#endif
15
+    interface ILogProvider
16
+    {
17
+        /// <summary>
18
+        /// Gets the specified named logger.
19
+        /// </summary>
20
+        /// <param name="name">Name of the logger.</param>
21
+        /// <returns>The logger reference.</returns>
22
+        Logger GetLogger(string name);
23
+
24
+        /// <summary>
25
+        /// Opens a nested diagnostics context. Not supported in EntLib logging.
26
+        /// </summary>
27
+        /// <param name="message">The message to add to the diagnostics context.</param>
28
+        /// <returns>A disposable that when disposed removes the message from the context.</returns>
29
+        IDisposable OpenNestedContext(string message);
30
+
31
+        /// <summary>
32
+        /// Opens a mapped diagnostics context. Not supported in EntLib logging.
33
+        /// </summary>
34
+        /// <param name="key">A key.</param>
35
+        /// <param name="value">A value.</param>
36
+        /// <param name="destructure">Determines whether to call the destructor or not.</param>
37
+        /// <returns>A disposable that when disposed removes the map from the context.</returns>
38
+        IDisposable OpenMappedContext(string key, object value, bool destructure = false);
39
+    }
40
+}

+ 562
- 0
RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogExtensions.cs View File

@@ -0,0 +1,562 @@
1
+// <auto-generated/>
2
+// ReSharper disable CheckNamespace
3
+namespace RSTP_DSLink.Logging
4
+{
5
+    using System;
6
+#if LIBLOG_EXCLUDE_CODE_COVERAGE
7
+    using System.Diagnostics.CodeAnalysis;
8
+#endif
9
+
10
+    /// <summary>
11
+    ///     Extension methods for the <see cref="ILog"/> interface.
12
+    /// </summary>
13
+#if LIBLOG_EXCLUDE_CODE_COVERAGE
14
+    [ExcludeFromCodeCoverage]
15
+#endif
16
+#if LIBLOG_PUBLIC
17
+    public
18
+#else
19
+    internal
20
+#endif
21
+    static class LogExtensions
22
+    {
23
+        internal static readonly object[] EmptyParams = new object[0];
24
+
25
+        /// <summary>
26
+        ///     Check if the <see cref="LogLevel.Debug"/> log level is enabled.
27
+        /// </summary>
28
+        /// <param name="logger">The <see cref="ILog"/> to check with.</param>
29
+        /// <returns>True if the log level is enabled; false otherwise.</returns>
30
+        public static bool IsDebugEnabled(this ILog logger)
31
+        {
32
+            GuardAgainstNullLogger(logger);
33
+            return logger.Log(LogLevel.Debug, null, null, EmptyParams);
34
+        }
35
+
36
+        /// <summary>
37
+        ///     Check if the <see cref="LogLevel.Error"/> log level is enabled.
38
+        /// </summary>
39
+        /// <param name="logger">The <see cref="ILog"/> to check with.</param>
40
+        /// <returns>True if the log level is enabled; false otherwise.</returns>
41
+        public static bool IsErrorEnabled(this ILog logger)
42
+        {
43
+            GuardAgainstNullLogger(logger);
44
+            return logger.Log(LogLevel.Error, null, null, EmptyParams);
45
+        }
46
+
47
+        /// <summary>
48
+        ///     Check if the <see cref="LogLevel.Fatal"/> log level is enabled.
49
+        /// </summary>
50
+        /// <param name="logger">The <see cref="ILog"/> to check with.</param>
51
+        /// <returns>True if the log level is enabled; false otherwise.</returns>
52
+        public static bool IsFatalEnabled(this ILog logger)
53
+        {
54
+            GuardAgainstNullLogger(logger);
55
+            return logger.Log(LogLevel.Fatal, null, null, EmptyParams);
56
+        }
57
+
58
+        /// <summary>
59
+        ///     Check if the <see cref="LogLevel.Info"/> log level is enabled.
60
+        /// </summary>
61
+        /// <param name="logger">The <see cref="ILog"/> to check with.</param>
62
+        /// <returns>True if the log level is enabled; false otherwise.</returns>
63
+        public static bool IsInfoEnabled(this ILog logger)
64
+        {
65
+            GuardAgainstNullLogger(logger);
66
+            return logger.Log(LogLevel.Info, null, null, EmptyParams);
67
+        }
68
+
69
+        /// <summary>
70
+        ///     Check if the <see cref="LogLevel.Trace"/> log level is enabled.
71
+        /// </summary>
72
+        /// <param name="logger">The <see cref="ILog"/> to check with.</param>
73
+        /// <returns>True if the log level is enabled; false otherwise.</returns>
74
+        public static bool IsTraceEnabled(this ILog logger)
75
+        {
76
+            GuardAgainstNullLogger(logger);
77
+            return logger.Log(LogLevel.Trace, null, null, EmptyParams);
78
+        }
79
+
80
+        /// <summary>
81
+        ///     Check if the <see cref="LogLevel.Warn"/> log level is enabled.
82
+        /// </summary>
83
+        /// <param name="logger">The <see cref="ILog"/> to check with.</param>
84
+        /// <returns>True if the log level is enabled; false otherwise.</returns>
85
+        public static bool IsWarnEnabled(this ILog logger)
86
+        {
87
+            GuardAgainstNullLogger(logger);
88
+            return logger.Log(LogLevel.Warn, null, null, EmptyParams);
89
+        }
90
+
91
+        /// <summary>
92
+        ///     Logs a message at the <see cref="LogLevel.Debug"/> log level, if enabled.
93
+        /// </summary>
94
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
95
+        /// <param name="messageFunc">The message function.</param>
96
+        public static void Debug(this ILog logger, Func<string> messageFunc)
97
+        {
98
+            GuardAgainstNullLogger(logger);
99
+            logger.Log(LogLevel.Debug, WrapLogInternal(messageFunc), null, EmptyParams);
100
+        }
101
+
102
+        /// <summary>
103
+        ///     Logs a message at the <see cref="LogLevel.Debug"/> log level, if enabled.
104
+        /// </summary>
105
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
106
+        /// <param name="message">The message.</param>
107
+        public static void Debug(this ILog logger, string message)
108
+        {
109
+            if (logger.IsDebugEnabled()) logger.Log(LogLevel.Debug, message.AsFunc(), null, EmptyParams);
110
+        }
111
+
112
+        /// <summary>
113
+        ///     Logs a message at the <see cref="LogLevel.Debug"/> log level, if enabled.
114
+        /// </summary>
115
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
116
+        /// <param name="message">The message.</param>
117
+        /// <param name="args">Optional format parameters for the message.</param>
118
+        public static void Debug(this ILog logger, string message, params object[] args)
119
+        {
120
+            logger.DebugFormat(message, args);
121
+        }
122
+
123
+        /// <summary>
124
+        ///     Logs an exception at the <see cref="LogLevel.Debug"/> log level, if enabled.
125
+        /// </summary>
126
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
127
+        /// <param name="exception">The exception.</param>
128
+        /// <param name="message">The message.</param>
129
+        /// <param name="args">Optional format parameters for the message.</param>
130
+        public static void Debug(this ILog logger, Exception exception, string message, params object[] args)
131
+        {
132
+            logger.DebugException(message, exception, args);
133
+        }
134
+
135
+        /// <summary>
136
+        ///     Logs a message at the <see cref="LogLevel.Debug"/> log level, if enabled.
137
+        /// </summary>
138
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
139
+        /// <param name="message">The message.</param>
140
+        /// <param name="args">Optional format parameters for the message.</param>
141
+        public static void DebugFormat(this ILog logger, string message, params object[] args)
142
+        {
143
+            if (logger.IsDebugEnabled()) logger.LogFormat(LogLevel.Debug, message, args);
144
+        }
145
+
146
+        /// <summary>
147
+        ///     Logs an exception at the <see cref="LogLevel.Debug"/> log level, if enabled.
148
+        /// </summary>
149
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
150
+        /// <param name="message">The message.</param>
151
+        /// <param name="exception">The exception.</param>
152
+        public static void DebugException(this ILog logger, string message, Exception exception)
153
+        {
154
+            if (logger.IsDebugEnabled()) logger.Log(LogLevel.Debug, message.AsFunc(), exception, EmptyParams);
155
+        }
156
+
157
+        /// <summary>
158
+        ///     Logs an exception at the <see cref="LogLevel.Debug"/> log level, if enabled.
159
+        /// </summary>
160
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
161
+        /// <param name="message">The message.</param>
162
+        /// <param name="exception">The exception.</param>
163
+        /// <param name="args">Optional format parameters for the message.</param>
164
+        public static void DebugException(this ILog logger, string message, Exception exception,
165
+            params object[] args)
166
+        {
167
+            if (logger.IsDebugEnabled()) logger.Log(LogLevel.Debug, message.AsFunc(), exception, args);
168
+        }
169
+
170
+        /// <summary>
171
+        ///     Logs a message at the <see cref="LogLevel.Error"/> log level, if enabled.
172
+        /// </summary>
173
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
174
+        /// <param name="messageFunc">The message function.</param>
175
+        public static void Error(this ILog logger, Func<string> messageFunc)
176
+        {
177
+            GuardAgainstNullLogger(logger);
178
+            logger.Log(LogLevel.Error, WrapLogInternal(messageFunc), null, EmptyParams);
179
+        }
180
+
181
+        /// <summary>
182
+        ///     Logs a message at the <see cref="LogLevel.Error"/> log level, if enabled.
183
+        /// </summary>
184
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
185
+        /// <param name="message">The message.</param>
186
+        public static void Error(this ILog logger, string message)
187
+        {
188
+            if (logger.IsErrorEnabled()) logger.Log(LogLevel.Error, message.AsFunc(), null, EmptyParams);
189
+        }
190
+
191
+        /// <summary>
192
+        ///     Logs a message at the <see cref="LogLevel.Error"/> log level, if enabled.
193
+        /// </summary>
194
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
195
+        /// <param name="message">The message.</param>
196
+        /// <param name="args">Optional format parameters for the message.</param>
197
+        public static void Error(this ILog logger, string message, params object[] args)
198
+        {
199
+            logger.ErrorFormat(message, args);
200
+        }
201
+
202
+        /// <summary>
203
+        ///     Logs an exception at the <see cref="LogLevel.Error"/> log level, if enabled.
204
+        /// </summary>
205
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
206
+        /// <param name="exception">The exception.</param>
207
+        /// <param name="message">The message.</param>
208
+        /// <param name="args">Optional format parameters for the message.</param>
209
+        public static void Error(this ILog logger, Exception exception, string message, params object[] args)
210
+        {
211
+            logger.ErrorException(message, exception, args);
212
+        }
213
+
214
+        /// <summary>
215
+        ///     Logs a message at the <see cref="LogLevel.Error"/> log level, if enabled.
216
+        /// </summary>
217
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
218
+        /// <param name="message">The message.</param>
219
+        /// <param name="args">Optional format parameters for the message.</param>
220
+        public static void ErrorFormat(this ILog logger, string message, params object[] args)
221
+        {
222
+            if (logger.IsErrorEnabled()) logger.LogFormat(LogLevel.Error, message, args);
223
+        }
224
+
225
+        /// <summary>
226
+        ///     Logs an exception at the <see cref="LogLevel.Error"/> log level, if enabled.
227
+        /// </summary>
228
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
229
+        /// <param name="message">The message.</param>
230
+        /// <param name="exception">The exception.</param>
231
+        /// <param name="args">Optional format parameters for the message.</param>
232
+        public static void ErrorException(this ILog logger, string message, Exception exception,
233
+            params object[] args)
234
+        {
235
+            if (logger.IsErrorEnabled()) logger.Log(LogLevel.Error, message.AsFunc(), exception, args);
236
+        }
237
+
238
+        /// <summary>
239
+        ///     Logs a message at the <see cref="LogLevel.Fatal"/> log level, if enabled.
240
+        /// </summary>
241
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
242
+        /// <param name="messageFunc">The message function.</param>
243
+        public static void Fatal(this ILog logger, Func<string> messageFunc)
244
+        {
245
+            logger.Log(LogLevel.Fatal, WrapLogInternal(messageFunc), null, EmptyParams);
246
+        }
247
+
248
+        /// <summary>
249
+        ///     Logs a message at the <see cref="LogLevel.Fatal"/> log level, if enabled.
250
+        /// </summary>
251
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
252
+        /// <param name="message">The message.</param>
253
+        public static void Fatal(this ILog logger, string message)
254
+        {
255
+            if (logger.IsFatalEnabled()) logger.Log(LogLevel.Fatal, message.AsFunc(), null, EmptyParams);
256
+        }
257
+
258
+        /// <summary>
259
+        ///     Logs a message at the <see cref="LogLevel.Fatal"/> log level, if enabled.
260
+        /// </summary>
261
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
262
+        /// <param name="message">The message.</param>
263
+        /// <param name="args">Optional format parameters for the message.</param>
264
+        public static void Fatal(this ILog logger, string message, params object[] args)
265
+        {
266
+            logger.FatalFormat(message, args);
267
+        }
268
+
269
+        /// <summary>
270
+        ///     Logs an exception at the <see cref="LogLevel.Fatal"/> log level, if enabled.
271
+        /// </summary>
272
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
273
+        /// <param name="exception">The exception.</param>
274
+        /// <param name="message">The message.</param>
275
+        /// <param name="args">Optional format parameters for the message.</param>
276
+        public static void Fatal(this ILog logger, Exception exception, string message, params object[] args)
277
+        {
278
+            logger.FatalException(message, exception, args);
279
+        }
280
+
281
+        /// <summary>
282
+        ///     Logs a message at the <see cref="LogLevel.Fatal"/> log level, if enabled.
283
+        /// </summary>
284
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
285
+        /// <param name="message">The message.</param>
286
+        /// <param name="args">Optional format parameters for the message.</param>
287
+        public static void FatalFormat(this ILog logger, string message, params object[] args)
288
+        {
289
+            if (logger.IsFatalEnabled()) logger.LogFormat(LogLevel.Fatal, message, args);
290
+        }
291
+
292
+        /// <summary>
293
+        ///     Logs an exception at the <see cref="LogLevel.Fatal"/> log level, if enabled.
294
+        /// </summary>
295
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
296
+        /// <param name="message">The message.</param>
297
+        /// <param name="exception">The exception.</param>
298
+        /// <param name="args">Optional format parameters for the message.</param>
299
+        public static void FatalException(this ILog logger, string message, Exception exception,
300
+            params object[] args)
301
+        {
302
+            if (logger.IsFatalEnabled()) logger.Log(LogLevel.Fatal, message.AsFunc(), exception, args);
303
+        }
304
+
305
+        /// <summary>
306
+        ///     Logs a message at the <see cref="LogLevel.Info"/> log level, if enabled.
307
+        /// </summary>
308
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
309
+        /// <param name="messageFunc">The message function.</param>
310
+        public static void Info(this ILog logger, Func<string> messageFunc)
311
+        {
312
+            GuardAgainstNullLogger(logger);
313
+            logger.Log(LogLevel.Info, WrapLogInternal(messageFunc), null, EmptyParams);
314
+        }
315
+
316
+        /// <summary>
317
+        ///     Logs a message at the <see cref="LogLevel.Info"/> log level, if enabled.
318
+        /// </summary>
319
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
320
+        /// <param name="message">The message.</param>
321
+        public static void Info(this ILog logger, string message)
322
+        {
323
+            if (logger.IsInfoEnabled()) logger.Log(LogLevel.Info, message.AsFunc(), null, EmptyParams);
324
+        }
325
+
326
+        /// <summary>
327
+        ///     Logs a message at the <see cref="LogLevel.Info"/> log level, if enabled.
328
+        /// </summary>
329
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
330
+        /// <param name="message">The message.</param>
331
+        /// <param name="args">Optional format parameters for the message.</param>
332
+        public static void Info(this ILog logger, string message, params object[] args)
333
+        {
334
+            logger.InfoFormat(message, args);
335
+        }
336
+
337
+        /// <summary>
338
+        ///     Logs an exception at the <see cref="LogLevel.Info"/> log level, if enabled.
339
+        /// </summary>
340
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
341
+        /// <param name="exception">The exception.</param>
342
+        /// <param name="message">The message.</param>
343
+        /// <param name="args">Optional format parameters for the message.</param>
344
+        public static void Info(this ILog logger, Exception exception, string message, params object[] args)
345
+        {
346
+            logger.InfoException(message, exception, args);
347
+        }
348
+
349
+        /// <summary>
350
+        ///     Logs a message at the <see cref="LogLevel.Info"/> log level, if enabled.
351
+        /// </summary>
352
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
353
+        /// <param name="message">The message.</param>
354
+        /// <param name="args">Optional format parameters for the message.</param>
355
+        public static void InfoFormat(this ILog logger, string message, params object[] args)
356
+        {
357
+            if (logger.IsInfoEnabled()) logger.LogFormat(LogLevel.Info, message, args);
358
+        }
359
+
360
+        /// <summary>
361
+        ///     Logs an exception at the <see cref="LogLevel.Info"/> log level, if enabled.
362
+        /// </summary>
363
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
364
+        /// <param name="message">The message.</param>
365
+        /// <param name="exception">The exception.</param>
366
+        /// <param name="args">Optional format parameters for the message.</param>
367
+        public static void InfoException(this ILog logger, string message, Exception exception,
368
+            params object[] args)
369
+        {
370
+            if (logger.IsInfoEnabled()) logger.Log(LogLevel.Info, message.AsFunc(), exception, args);
371
+        }
372
+
373
+        /// <summary>
374
+        ///     Logs a message at the <see cref="LogLevel.Trace"/> log level, if enabled.
375
+        /// </summary>
376
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
377
+        /// <param name="messageFunc">The message function.</param>
378
+        public static void Trace(this ILog logger, Func<string> messageFunc)
379
+        {
380
+            GuardAgainstNullLogger(logger);
381
+            logger.Log(LogLevel.Trace, WrapLogInternal(messageFunc), null, EmptyParams);
382
+        }
383
+
384
+        /// <summary>
385
+        ///     Logs a message at the <see cref="LogLevel.Trace"/> log level, if enabled.
386
+        /// </summary>
387
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
388
+        /// <param name="message">The message.</param>
389
+        public static void Trace(this ILog logger, string message)
390
+        {
391
+            if (logger.IsTraceEnabled()) logger.Log(LogLevel.Trace, message.AsFunc(), null, EmptyParams);
392
+        }
393
+
394
+        /// <summary>
395
+        ///     Logs a message at the <see cref="LogLevel.Trace"/> log level, if enabled.
396
+        /// </summary>
397
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
398
+        /// <param name="message">The message.</param>
399
+        /// <param name="args">Optional format parameters for the message.</param>
400
+        public static void Trace(this ILog logger, string message, params object[] args)
401
+        {
402
+            logger.TraceFormat(message, args);
403
+        }
404
+
405
+        /// <summary>
406
+        ///     Logs an exception at the <see cref="LogLevel.Trace"/> log level, if enabled.
407
+        /// </summary>
408
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
409
+        /// <param name="exception">The exception.</param>
410
+        /// <param name="message">The message.</param>
411
+        /// <param name="args">Optional format parameters for the message.</param>
412
+        public static void Trace(this ILog logger, Exception exception, string message, params object[] args)
413
+        {
414
+            logger.TraceException(message, exception, args);
415
+        }
416
+
417
+        /// <summary>
418
+        ///     Logs a message at the <see cref="LogLevel.Trace"/> log level, if enabled.
419
+        /// </summary>
420
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
421
+        /// <param name="message">The message.</param>
422
+        /// <param name="args">Optional format parameters for the message.</param>
423
+        public static void TraceFormat(this ILog logger, string message, params object[] args)
424
+        {
425
+            if (logger.IsTraceEnabled()) logger.LogFormat(LogLevel.Trace, message, args);
426
+        }
427
+
428
+        /// <summary>
429
+        ///     Logs an exception at the <see cref="LogLevel.Trace"/> log level, if enabled.
430
+        /// </summary>
431
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
432
+        /// <param name="message">The message.</param>
433
+        /// <param name="exception">The exception.</param>
434
+        /// <param name="args">Optional format parameters for the message.</param>
435
+        public static void TraceException(this ILog logger, string message, Exception exception,
436
+            params object[] args)
437
+        {
438
+            if (logger.IsTraceEnabled()) logger.Log(LogLevel.Trace, message.AsFunc(), exception, args);
439
+        }
440
+
441
+        /// <summary>
442
+        ///     Logs a message at the <see cref="LogLevel.Warn"/> log level, if enabled.
443
+        /// </summary>
444
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
445
+        /// <param name="messageFunc">The message function.</param>
446
+        public static void Warn(this ILog logger, Func<string> messageFunc)
447
+        {
448
+            GuardAgainstNullLogger(logger);
449
+            logger.Log(LogLevel.Warn, WrapLogInternal(messageFunc), null, EmptyParams);
450
+        }
451
+
452
+        /// <summary>
453
+        ///     Logs a message at the <see cref="LogLevel.Warn"/> log level, if enabled.
454
+        /// </summary>
455
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
456
+        /// <param name="message">The message.</param>
457
+        public static void Warn(this ILog logger, string message)
458
+        {
459
+            if (logger.IsWarnEnabled()) logger.Log(LogLevel.Warn, message.AsFunc(), null, EmptyParams);
460
+        }
461
+
462
+        /// <summary>
463
+        ///     Logs a message at the <see cref="LogLevel.Warn"/> log level, if enabled.
464
+        /// </summary>
465
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
466
+        /// <param name="message">The message.</param>
467
+        /// <param name="args">Optional format parameters for the message.</param>
468
+        public static void Warn(this ILog logger, string message, params object[] args)
469
+        {
470
+            logger.WarnFormat(message, args);
471
+        }
472
+
473
+        /// <summary>
474
+        ///     Logs an exception at the <see cref="LogLevel.Warn"/> log level, if enabled.
475
+        /// </summary>
476
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
477
+        /// <param name="exception">The exception.</param>
478
+        /// <param name="message">The message.</param>
479
+        /// <param name="args">Optional format parameters for the message.</param>
480
+        public static void Warn(this ILog logger, Exception exception, string message, params object[] args)
481
+        {
482
+            logger.WarnException(message, exception, args);
483
+        }
484
+
485
+        /// <summary>
486
+        ///     Logs a message at the <see cref="LogLevel.Warn"/> log level, if enabled.
487
+        /// </summary>
488
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
489
+        /// <param name="message">The message.</param>
490
+        /// <param name="args">Optional format parameters for the message.</param>
491
+        public static void WarnFormat(this ILog logger, string message, params object[] args)
492
+        {
493
+            if (logger.IsWarnEnabled()) logger.LogFormat(LogLevel.Warn, message, args);
494
+        }
495
+
496
+        /// <summary>
497
+        ///     Logs an exception at the <see cref="LogLevel.Warn"/> log level, if enabled.
498
+        /// </summary>
499
+        /// <param name="logger">The <see cref="ILog"/> to use.</param>
500
+        /// <param name="message">The message.</param>
501
+        /// <param name="exception">The exception.</param>
502
+        /// <param name="args">Optional format parameters for the message.</param>
503
+        public static void WarnException(this ILog logger, string message, Exception exception,
504
+            params object[] args)
505
+        {
506
+            if (logger.IsWarnEnabled()) logger.Log(LogLevel.Warn, message.AsFunc(), exception, args);
507
+        }
508
+
509
+        // ReSharper disable once UnusedParameter.Local
510
+        private static void GuardAgainstNullLogger(ILog logger)
511
+        {
512
+            if (logger == null) throw new ArgumentNullException("logger");
513
+        }
514
+
515
+        private static void LogFormat(this ILog logger, LogLevel logLevel, string message, params object[] args)
516
+        {
517
+            logger.Log(logLevel, message.AsFunc(), null, args);
518
+        }
519
+
520
+        // Avoid the closure allocation, see https://gist.github.com/AArnott/d285feef75c18f6ecd2b
521
+        private static Func<T> AsFunc<T>(this T value) where T : class
522
+        {
523
+            return value.Return;
524
+        }
525
+
526
+        private static T Return<T>(this T value)
527
+        {
528
+            return value;
529
+        }
530
+
531
+        // Allow passing callsite-logger-type to LogProviderBase using messageFunc
532
+        internal static Func<string> WrapLogSafeInternal(LoggerExecutionWrapper logger, Func<string> messageFunc)
533
+        {
534
+            var WrappedMessageFunc = new Func<string>(() => {
535
+                try
536
+                {
537
+                    return messageFunc();
538
+                }
539
+                catch (Exception ex)
540
+                {
541
+                    logger.WrappedLogger(LogLevel.Error, () => LoggerExecutionWrapper.FailedToGenerateLogMessage, ex,
542
+                        EmptyParams);
543
+                }
544
+
545
+                return null;
546
+            });
547
+
548
+            return WrappedMessageFunc;
549
+        }
550
+
551
+        // Allow passing callsite-logger-type to LogProviderBase using messageFunc
552
+        private static Func<string> WrapLogInternal(Func<string> messageFunc)
553
+        {
554
+            var WrappedMessageFunc = new Func<string>(() =>
555
+            {
556
+                return messageFunc();
557
+            });
558
+
559
+            return WrappedMessageFunc;
560
+        }
561
+    }
562
+}

+ 45
- 0
RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogLevel.cs View File

@@ -0,0 +1,45 @@
1
+// <auto-generated/>
2
+// ReSharper disable CheckNamespace
3
+namespace RSTP_DSLink.Logging
4
+{
5
+    /// <summary>
6
+    ///     The log level.
7
+    /// </summary>
8
+#if LIBLOG_PROVIDERS_ONLY
9
+    internal
10
+#else
11
+    public
12
+#endif
13
+        enum LogLevel
14
+    {
15
+        /// <summary>
16
+        /// Trace
17
+        /// </summary>
18
+        Trace,
19
+
20
+        /// <summary>
21
+        /// Debug
22
+        /// </summary>
23
+        Debug,
24
+
25
+        /// <summary>
26
+        /// Info
27
+        /// </summary>
28
+        Info,
29
+
30
+        /// <summary>
31
+        /// Warn
32
+        /// </summary>
33
+        Warn,
34
+
35
+        /// <summary>
36
+        /// Error
37
+        /// </summary>
38
+        Error,
39
+
40
+        /// <summary>
41
+        /// Fatal
42
+        /// </summary>
43
+        Fatal
44
+    }
45
+}

+ 318
- 0
RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProvider.cs View File

@@ -0,0 +1,318 @@
1
+// <auto-generated/>
2
+// ReSharper disable CheckNamespace
3
+//===============================================================================
4
+// LibLog
5
+//
6
+// https://github.com/damianh/LibLog
7
+//===============================================================================
8
+// Copyright © 2011-2017 Damian Hickey.  All rights reserved.
9
+//
10
+// Permission is hereby granted, free of charge, to any person obtaining a copy
11
+// of this software and associated documentation files (the "Software"), to deal
12
+// in the Software without restriction, including without limitation the rights
13
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
14
+// copies of the Software, and to permit persons to whom the Software is
15
+// furnished to do so, subject to the following conditions:
16
+//
17
+// The above copyright notice and this permission notice shall be included in
18
+// all copies or substantial portions of the Software.
19
+//
20
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
21
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
25
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
+// SOFTWARE.
27
+//===============================================================================
28
+
29
+// @formatter:off — disable resharper formatter after this line
30
+// ReSharper disable PossibleNullReferenceException
31
+
32
+// Define LIBLOG_PUBLIC to enable ability to GET a logger (LogProvider.For<>() etc) from outside this library. NOTE:
33
+// this can have unintended consequences of consumers of your library using your library to resolve a logger. If the
34
+// reason is because you want to open this functionality to other projects within your solution,
35
+// consider [InternalsVisibleTo] instead.
36
+// 
37
+// Define LIBLOG_PROVIDERS_ONLY if your library provides its own logging API and you just want to use the
38
+// LibLog providers internally to provide built in support for popular logging frameworks.
39
+
40
+#pragma warning disable 1591
41
+
42
+using global::System.Diagnostics.CodeAnalysis;
43
+
44
+[assembly: SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "RSTP_DSLink.Logging")]
45
+[assembly: SuppressMessage("Microsoft.Design", "CA1026:DefaultParametersShouldNotBeUsed", Scope = "member", Target = "RSTP_DSLink.Logging.Logger.#Invoke(RSTP_DSLink.Logging.LogLevel,System.Func`1<System.String>,System.Exception,System.Object[])")]
46
+
47
+// If you copied this file manually, you need to change all "YourRootNameSpace" so not to clash with other libraries
48
+// that use LibLog
49
+namespace RSTP_DSLink.Logging
50
+{
51
+    using global::System.Collections.Generic;
52
+    using global::System.Diagnostics.CodeAnalysis;
53
+    using global::RSTP_DSLink.Logging.LogProviders;
54
+    using global::System;
55
+#if !LIBLOG_PROVIDERS_ONLY
56
+    using global::System.Diagnostics;
57
+    using global::System.Runtime.CompilerServices;
58
+#endif
59
+
60
+#if LIBLOG_EXCLUDE_CODE_COVERAGE
61
+    [ExcludeFromCodeCoverage]
62
+#endif
63
+#if LIBLOG_PROVIDERS_ONLY
64
+    /// <summary>
65
+    /// Provides a mechanism to set the <see cref="ILogProvider" />
66
+	/// and create instances of <see cref="ILog" /> objects. 
67
+    /// </summary>
68
+    internal
69
+#else
70
+    /// <summary>
71
+    /// Provides a mechanism to set the <see cref="ILogProvider" />.
72
+    /// </summary>
73
+    public
74
+#endif
75
+    static class LogProvider
76
+    {
77
+        private static readonly Lazy<ILogProvider> ResolvedLogProvider = new Lazy<ILogProvider>(ForceResolveLogProvider);
78
+#if !LIBLOG_PROVIDERS_ONLY
79
+        private static ILogProvider s_currentLogProvider;
80
+        private static Action<ILogProvider> s_onCurrentLogProviderSet;
81
+
82
+        [SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline")]
83
+        static LogProvider()
84
+        {
85
+            IsDisabled = false;
86
+        }
87
+
88
+        /// <summary>
89
+        /// Sets the current log provider.
90
+        /// </summary>
91
+        /// <param name="logProvider">The log provider.</param>
92
+        public static void SetCurrentLogProvider(ILogProvider logProvider)
93
+        {
94
+            s_currentLogProvider = logProvider;
95
+
96
+            RaiseOnCurrentLogProviderSet();
97
+        }
98
+
99
+        /// <summary>
100
+        /// Gets or sets a value indicating whether this is logging is disabled.
101
+        /// </summary>
102
+        /// <value>
103
+        /// <c>true</c> if logging is disabled; otherwise, <c>false</c>.
104
+        /// </value>
105
+        public static bool IsDisabled { get; set; }
106
+
107
+        /// <summary>
108
+        /// Sets an action that is invoked when a consumer of your library has called SetCurrentLogProvider. It is 
109
+        /// important that hook into this if you are using child libraries (especially ilmerged ones) that are using
110
+        /// LibLog (or other logging abstraction) so you adapt and delegate to them.
111
+        /// <see cref="SetCurrentLogProvider"/> 
112
+        /// </summary>
113
+        internal static Action<ILogProvider> OnCurrentLogProviderSet
114
+        {
115
+            set
116
+            {
117
+                s_onCurrentLogProviderSet = value;
118
+                RaiseOnCurrentLogProviderSet();
119
+            }
120
+        }
121
+
122
+        internal static ILogProvider CurrentLogProvider
123
+        { 
124
+            get { return s_currentLogProvider; } 
125
+        }
126
+
127
+        /// <summary>
128
+        /// Gets a logger for the specified type.
129
+        /// </summary>
130
+        /// <typeparam name="T">The type whose name will be used for the logger.</typeparam>
131
+        /// <returns>An instance of <see cref="ILog"/></returns>
132
+#if LIBLOG_PUBLIC
133
+        public
134
+#else
135
+        internal
136
+#endif
137
+        static ILog For<T>() 
138
+        {
139
+            return GetLogger(typeof(T));
140
+        }
141
+
142
+        /// <summary>
143
+        /// Gets a logger for the current class.
144
+        /// </summary>
145
+        /// <returns>An instance of <see cref="ILog"/></returns>
146
+        [MethodImpl(MethodImplOptions.NoInlining)]
147
+#if LIBLOG_PUBLIC
148
+        public
149
+#else
150
+        internal
151
+#endif
152
+        static ILog GetCurrentClassLogger()
153
+        {
154
+            var stackFrame = new StackFrame(1, false);
155
+            return GetLogger(stackFrame.GetMethod().DeclaringType);
156
+        }
157
+
158
+        /// <summary>
159
+        /// Gets a logger for the specified type.
160
+        /// </summary>
161
+        /// <param name="type">The type whose name will be used for the logger.</param>
162
+        /// <param name="fallbackTypeName">If the type is null then this name will be used as the log name instead</param>
163
+        /// <returns>An instance of <see cref="ILog"/></returns>
164
+#if LIBLOG_PUBLIC
165
+        public
166
+#else
167
+        internal
168
+#endif
169
+        static ILog GetLogger(Type type, string fallbackTypeName = "System.Object")
170
+        {
171
+            // If the type passed in is null then fallback to the type name specified
172
+            return GetLogger(type != null ? type.ToString() : fallbackTypeName);
173
+        }
174
+
175
+        /// <summary>
176
+        /// Gets a logger with the specified name.
177
+        /// </summary>
178
+        /// <param name="name">The name.</param>
179
+        /// <returns>An instance of <see cref="ILog"/></returns>
180
+#if LIBLOG_PUBLIC
181
+        public
182
+#else
183
+        internal
184
+#endif
185
+        static ILog GetLogger(string name)
186
+        {
187
+            var logProvider = CurrentLogProvider ?? ResolveLogProvider();
188
+            return logProvider == null
189
+                ? NoOpLogger.Instance
190
+                : (ILog)new LoggerExecutionWrapper(logProvider.GetLogger(name), () => IsDisabled);
191
+        }
192
+
193
+        /// <summary>
194
+        /// Opens a nested diagnostics context.
195
+        /// </summary>
196
+        /// <param name="message">A message.</param>
197
+        /// <returns>An <see cref="IDisposable"/> that closes context when disposed.</returns>
198
+        [SuppressMessage("Microsoft.Naming", "CA2204:Literals should be spelled correctly", MessageId = "SetCurrentLogProvider")]
199
+#if LIBLOG_PUBLIC
200
+        public
201
+#else
202
+        internal
203
+#endif
204
+        static IDisposable OpenNestedContext(string message)
205
+        {
206
+            var logProvider = CurrentLogProvider ?? ResolveLogProvider();
207
+
208
+            return logProvider == null
209
+                ? new DisposableAction(() => { })
210
+                : logProvider.OpenNestedContext(message);
211
+        }
212
+
213
+        /// <summary>
214
+        /// Opens a mapped diagnostics context.
215
+        /// </summary>
216
+        /// <param name="key">A key.</param>
217
+        /// <param name="value">A value.</param>
218
+        /// <param name="destructure">A optional paramater to indicate message should be destructured.</param>
219
+        /// <returns>An <see cref="IDisposable"/> that closes context when disposed.</returns>
220
+        [SuppressMessage("Microsoft.Naming", "CA2204:Literals should be spelled correctly", MessageId = "SetCurrentLogProvider")]
221
+#if LIBLOG_PUBLIC
222
+        public
223
+#else
224
+        internal
225
+#endif
226
+        static IDisposable OpenMappedContext(string key, object value, bool destructure = false)
227
+        {
228
+            var logProvider = CurrentLogProvider ?? ResolveLogProvider();
229
+
230
+            return logProvider == null
231
+                ? new DisposableAction(() => { })
232
+                : logProvider.OpenMappedContext(key, value, destructure);
233
+        }
234
+#endif
235
+
236
+#if LIBLOG_PROVIDERS_ONLY
237
+    private
238
+#else
239
+        internal
240
+#endif
241
+        delegate bool IsLoggerAvailable();
242
+
243
+#if LIBLOG_PROVIDERS_ONLY
244
+        private
245
+#else
246
+        internal
247
+#endif
248
+        delegate ILogProvider CreateLogProvider();
249
+
250
+#if LIBLOG_PROVIDERS_ONLY
251
+        private
252
+#else
253
+        internal
254
+#endif
255
+        static readonly List<Tuple<IsLoggerAvailable, CreateLogProvider>> LogProviderResolvers =
256
+                new List<Tuple<IsLoggerAvailable, CreateLogProvider>>
257
+        {
258
+            new Tuple<IsLoggerAvailable, CreateLogProvider>(SerilogLogProvider.IsLoggerAvailable, () => new SerilogLogProvider()),
259
+            new Tuple<IsLoggerAvailable, CreateLogProvider>(NLogLogProvider.IsLoggerAvailable, () => new NLogLogProvider()),
260
+            new Tuple<IsLoggerAvailable, CreateLogProvider>(Log4NetLogProvider.IsLoggerAvailable, () => new Log4NetLogProvider()),
261
+            new Tuple<IsLoggerAvailable, CreateLogProvider>(LoupeLogProvider.IsLoggerAvailable, () => new LoupeLogProvider()),
262
+        };
263
+
264
+#if !LIBLOG_PROVIDERS_ONLY
265
+        private static void RaiseOnCurrentLogProviderSet()
266
+        {
267
+            if (s_onCurrentLogProviderSet != null)
268
+            {
269
+                s_onCurrentLogProviderSet(s_currentLogProvider);
270
+            }
271
+        }
272
+#endif
273
+
274
+        internal static ILogProvider ResolveLogProvider()
275
+        {
276
+            return ResolvedLogProvider.Value;
277
+        }
278
+
279
+        [SuppressMessage("Microsoft.Globalization", "CA1303:Do not pass literals as localized parameters", MessageId = "System.Console.WriteLine(System.String,System.Object,System.Object)")]
280
+        [SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
281
+        internal static ILogProvider ForceResolveLogProvider()
282
+        {
283
+            try
284
+            {
285
+                foreach (var providerResolver in LogProviderResolvers)
286
+                {
287
+                    if (providerResolver.Item1())
288
+                    {
289
+                        return providerResolver.Item2();
290
+                    }
291
+                }
292
+            }
293
+            catch (Exception ex)
294
+            {
295
+                Console.WriteLine(
296
+                    "Exception occurred resolving a log provider. Logging for this assembly {0} is disabled. {1}",
297
+                    typeof(LogProvider).Assembly.FullName,
298
+                    ex);
299
+            }
300
+            return null;
301
+        }
302
+
303
+#if !LIBLOG_PROVIDERS_ONLY
304
+#if LIBLOG_EXCLUDE_CODE_COVERAGE
305
+    [ExcludeFromCodeCoverage]
306
+#endif
307
+        internal class NoOpLogger : ILog
308
+        {
309
+            internal static readonly NoOpLogger Instance = new NoOpLogger();
310
+
311
+            public bool Log(LogLevel logLevel, Func<string> messageFunc, Exception exception, params object[] formatParameters)
312
+            { 
313
+                return false; 
314
+            }
315
+        }
316
+#endif
317
+    }
318
+}

+ 26
- 0
RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/DisposableAction.cs View File

@@ -0,0 +1,26 @@
1
+// <auto-generated/>
2
+// ReSharper disable CheckNamespace
3
+namespace RSTP_DSLink.Logging.LogProviders
4
+{
5
+    using System;
6
+
7
+#if LIBLOG_EXCLUDE_CODE_COVERAGE
8
+    using System.Diagnostics.CodeAnalysis;
9
+
10
+    [ExcludeFromCodeCoverage]
11
+#endif
12
+    internal class DisposableAction : IDisposable
13
+    {
14
+        private readonly Action _onDispose;
15
+
16
+        public DisposableAction(Action onDispose = null)
17
+        {
18
+            _onDispose = onDispose;
19
+        }
20
+
21
+        public void Dispose()
22
+        {
23
+            if(_onDispose != null) _onDispose.Invoke();
24
+        }
25
+    }
26
+}

+ 42
- 0
RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/LibLogException.cs View File

@@ -0,0 +1,42 @@
1
+// <auto-generated/>
2
+// ReSharper disable CheckNamespace
3
+namespace RSTP_DSLink.Logging.LogProviders
4
+{
5
+    using System;
6
+#if LIBLOG_EXCLUDE_CODE_COVERAGE
7
+    using System.Diagnostics.CodeAnalysis;
8
+#endif
9
+
10
+#if LIBLOG_EXCLUDE_CODE_COVERAGE
11
+    [ExcludeFromCodeCoverage]
12
+#endif
13
+#if !LIBLOG_PROVIDERS_ONLY || LIBLOG_PUBLIC
14
+    /// <summary>
15
+    /// Exception thrown by LibLog.
16
+    /// </summary>
17
+    public
18
+#else
19
+    internal
20
+#endif
21
+    class LibLogException : Exception
22
+    {
23
+        /// <summary>
24
+        /// Initializes a new LibLogException with the specified message.
25
+        /// </summary>
26
+        /// <param name="message">The message</param>
27
+        public LibLogException(string message)
28
+            : base(message)
29
+        {
30
+        }
31
+
32
+        /// <summary>
33
+        /// Initializes a new LibLogException with the specified message and inner exception.
34
+        /// </summary>
35
+        /// <param name="message">The message.</param>
36
+        /// <param name="inner">The inner exception.</param>
37
+        public LibLogException(string message, Exception inner)
38
+            : base(message, inner)
39
+        {
40
+        }
41
+    }
42
+}

+ 381
- 0
RSTP_DSLink/RSTP_DSLink/obj/Release/netcoreapp3.1/NuGet/303EE78B01AFB11ED24932A052C3548709DDD99C/LibLog/5.0.8/LogProviders/Log4NetLogProvider.cs View File

@@ -0,0 +1,381 @@
1
+// <auto-generated/>
2
+// ReSharper disable CheckNamespace
3
+namespace RSTP_DSLink.Logging.LogProviders
4
+{
5
+    using System;
6
+    using System.Collections.Generic;
7
+    using System.Diagnostics.CodeAnalysis;
8
+    using System.Linq;
9
+    using System.Linq.Expressions;
10
+    using System.Reflection;
11
+    using System.Threading;
12
+
13
+#if LIBLOG_EXCLUDE_CODE_COVERAGE
14
+    [ExcludeFromCodeCoverage]
15
+#endif
16
+    internal class Log4NetLogProvider : LogProviderBase
17
+    {
18
+        private readonly Func<string, object> _getLoggerByNameDelegate;
19
+
20
+        [SuppressMessage("Microsoft.Naming", "CA2204:Literals should be spelled correctly", MessageId = "LogManager")]
21
+        public Log4NetLogProvider()
22
+        {
23
+            if (!IsLoggerAvailable()) throw new LibLogException("log4net.LogManager not found");
24
+            _getLoggerByNameDelegate = GetGetLoggerMethodCall();
25
+        }
26
+
27
+        public static bool ProviderIsAvailableOverride { get; set; } = true;
28
+
29
+        public override Logger GetLogger(string name)
30
+        {
31
+            return new Log4NetLogger(_getLoggerByNameDelegate(name)).Log;
32
+        }
33
+
34
+        internal static bool IsLoggerAvailable()
35
+        {
36
+            return ProviderIsAvailableOverride && GetLogManagerType() != null;
37
+        }
38
+
39
+        protected override OpenNdc GetOpenNdcMethod()
40
+        {
41
+            var logicalThreadContextType = FindType("log4net.LogicalThreadContext", "log4net");
42
+            var stacksProperty = logicalThreadContextType.GetProperty("Stacks");
43
+            var logicalThreadContextStacksType = stacksProperty.PropertyType;
44
+            var stacksIndexerProperty = logicalThreadContextStacksType.GetProperty("Item");
45
+            var stackType = stacksIndexerProperty.PropertyType;
46
+            var pushMethod = stackType.GetMethod("Push");
47
+
48
+            var messageParameter =
49
+                Expression.Parameter(typeof(string), "message");
50
+
51
+            // message => LogicalThreadContext.Stacks.Item["NDC"].Push(message);
52
+            var callPushBody =
53
+                Expression.Call(
54
+                    Expression.Property(Expression.Property(null, stacksProperty),
55
+                        stacksIndexerProperty,
56
+                        Expression.Constant("NDC")),
57
+                    pushMethod,
58
+                    messageParameter);
59
+
60
+            var result =
61
+                Expression.Lambda<OpenNdc>(callPushBody, messageParameter)
62
+                    .Compile();
63
+
64
+            return result;
65
+        }
66
+
67
+        protected override OpenMdc GetOpenMdcMethod()
68
+        {
69
+            var logicalThreadContextType = FindType("log4net.LogicalThreadContext", "log4net");
70
+            var propertiesProperty = logicalThreadContextType.GetProperty("Properties");
71
+            var logicalThreadContextPropertiesType = propertiesProperty.PropertyType;
72
+            var propertiesIndexerProperty = logicalThreadContextPropertiesType.GetProperty("Item");
73
+
74
+            var removeMethod = logicalThreadContextPropertiesType.GetMethod("Remove");
75
+