From cd7593351362efbc0ee81bbfb2c1c49fb0d4a4d1 Mon Sep 17 00:00:00 2001 From: Obai Albek Date: Fri, 20 Jun 2025 17:46:28 +0000 Subject: [PATCH] Eine neue Console anlegen --- .vscode/launch.json | 50 +-- .vscode/tasks.json | 80 ++--- .../obj/Async_Await.csproj.nuget.dgspec.json | 130 ++++---- .../Debug/net8.0/Async_Await.AssemblyInfo.cs | 2 +- .../Async_Await.AssemblyInfoInputs.cache | 2 +- Async_Await/obj/project.assets.json | 140 ++++----- Async_Await/obj/project.nuget.cache | 14 +- Solution/BeispielTasks.csproj | 15 + Solution/mqtt_task_pr3_solution.cs | 152 +++++++++ .../BeispielTasks.csproj.nuget.dgspec.json | 76 +++++ .../obj/BeispielTasks.csproj.nuget.g.props | 15 + .../obj/BeispielTasks.csproj.nuget.g.targets | 6 + ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + .../Debug/net8.0/Beispiel.98D83876.Up2Date | 0 .../net8.0/BeispielTasks.AssemblyInfo.cs | 22 ++ .../BeispielTasks.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 13 + .../net8.0/BeispielTasks.GlobalUsings.g.cs | 8 + .../Debug/net8.0/BeispielTasks.assets.cache | Bin 0 -> 2540 bytes ...ispielTasks.csproj.AssemblyReference.cache | Bin 0 -> 1708 bytes ...ispielTasks.csproj.CoreCompileInputs.cache | 1 + .../BeispielTasks.csproj.FileListAbsolute.txt | 42 +++ Solution/obj/Debug/net8.0/BeispielTasks.dll | Bin 0 -> 15872 bytes .../BeispielTasks.genruntimeconfig.cache | 1 + Solution/obj/Debug/net8.0/BeispielTasks.pdb | Bin 0 -> 12508 bytes Solution/obj/Debug/net8.0/apphost | Bin 0 -> 72424 bytes .../obj/Debug/net8.0/ref/BeispielTasks.dll | Bin 0 -> 7168 bytes .../obj/Debug/net8.0/refint/BeispielTasks.dll | Bin 0 -> 7168 bytes Solution/obj/project.assets.json | 294 ++++++++++++++++++ Solution/obj/project.nuget.cache | 24 ++ mqtt_task_pr3_solution.cs | 151 --------- 31 files changed, 883 insertions(+), 360 deletions(-) create mode 100644 Solution/BeispielTasks.csproj create mode 100644 Solution/mqtt_task_pr3_solution.cs create mode 100644 Solution/obj/BeispielTasks.csproj.nuget.dgspec.json create mode 100644 Solution/obj/BeispielTasks.csproj.nuget.g.props create mode 100644 Solution/obj/BeispielTasks.csproj.nuget.g.targets create mode 100644 Solution/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 Solution/obj/Debug/net8.0/Beispiel.98D83876.Up2Date create mode 100644 Solution/obj/Debug/net8.0/BeispielTasks.AssemblyInfo.cs create mode 100644 Solution/obj/Debug/net8.0/BeispielTasks.AssemblyInfoInputs.cache create mode 100644 Solution/obj/Debug/net8.0/BeispielTasks.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 Solution/obj/Debug/net8.0/BeispielTasks.GlobalUsings.g.cs create mode 100644 Solution/obj/Debug/net8.0/BeispielTasks.assets.cache create mode 100644 Solution/obj/Debug/net8.0/BeispielTasks.csproj.AssemblyReference.cache create mode 100644 Solution/obj/Debug/net8.0/BeispielTasks.csproj.CoreCompileInputs.cache create mode 100644 Solution/obj/Debug/net8.0/BeispielTasks.csproj.FileListAbsolute.txt create mode 100644 Solution/obj/Debug/net8.0/BeispielTasks.dll create mode 100644 Solution/obj/Debug/net8.0/BeispielTasks.genruntimeconfig.cache create mode 100644 Solution/obj/Debug/net8.0/BeispielTasks.pdb create mode 100644 Solution/obj/Debug/net8.0/apphost create mode 100644 Solution/obj/Debug/net8.0/ref/BeispielTasks.dll create mode 100644 Solution/obj/Debug/net8.0/refint/BeispielTasks.dll create mode 100644 Solution/obj/project.assets.json create mode 100644 Solution/obj/project.nuget.cache diff --git a/.vscode/launch.json b/.vscode/launch.json index 56d7e06..2fd71c6 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,26 +1,26 @@ -{ - "version": "0.2.0", - "configurations": [ - { - // Use IntelliSense to find out which attributes exist for C# debugging - // Use hover for the description of the existing attributes - // For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md - "name": ".NET Core Launch (console)", - "type": "coreclr", - "request": "launch", - "preLaunchTask": "build", - // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/Async_Await/bin/Debug/net8.0/Async_Await.dll", - "args": [], - "cwd": "${workspaceFolder}/Async_Await", - // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console - "console": "internalConsole", - "stopAtEntry": false - }, - { - "name": ".NET Core Attach", - "type": "coreclr", - "request": "attach" - } - ] +{ + "version": "0.2.0", + "configurations": [ + { + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md + "name": ".NET Core Launch (console)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/Async_Await/bin/Debug/net8.0/Async_Await.dll", + "args": [], + "cwd": "${workspaceFolder}/Async_Await", + // For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console + "console": "internalConsole", + "stopAtEntry": false + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + ] } \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 637fb8b..3202ecf 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,41 +1,41 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "command": "dotnet", - "type": "process", - "args": [ - "build", - "${workspaceFolder}/CSharpProjekt.sln", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary;ForceNoAlign" - ], - "problemMatcher": "$msCompile" - }, - { - "label": "publish", - "command": "dotnet", - "type": "process", - "args": [ - "publish", - "${workspaceFolder}/CSharpProjekt.sln", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary;ForceNoAlign" - ], - "problemMatcher": "$msCompile" - }, - { - "label": "watch", - "command": "dotnet", - "type": "process", - "args": [ - "watch", - "run", - "--project", - "${workspaceFolder}/CSharpProjekt.sln" - ], - "problemMatcher": "$msCompile" - } - ] +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/CSharpProjekt.sln", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/CSharpProjekt.sln", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/CSharpProjekt.sln" + ], + "problemMatcher": "$msCompile" + } + ] } \ No newline at end of file diff --git a/Async_Await/obj/Async_Await.csproj.nuget.dgspec.json b/Async_Await/obj/Async_Await.csproj.nuget.dgspec.json index 765b80f..fcb4047 100644 --- a/Async_Await/obj/Async_Await.csproj.nuget.dgspec.json +++ b/Async_Await/obj/Async_Await.csproj.nuget.dgspec.json @@ -1,66 +1,66 @@ -{ - "format": 1, - "restore": { - "/workspaces/CSharp/Async_Await/Async_Await.csproj": {} - }, - "projects": { - "/workspaces/CSharp/Async_Await/Async_Await.csproj": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/workspaces/CSharp/Async_Await/Async_Await.csproj", - "projectName": "Async_Await", - "projectPath": "/workspaces/CSharp/Async_Await/Async_Await.csproj", - "packagesPath": "/root/.nuget/packages/", - "outputPath": "/workspaces/CSharp/Async_Await/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/root/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/8.0.410/PortableRuntimeIdentifierGraph.json" - } - } - } - } +{ + "format": 1, + "restore": { + "/workspaces/CSharpProjekt/Async_Await/Async_Await.csproj": {} + }, + "projects": { + "/workspaces/CSharpProjekt/Async_Await/Async_Await.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/workspaces/CSharpProjekt/Async_Await/Async_Await.csproj", + "projectName": "Async_Await", + "projectPath": "/workspaces/CSharpProjekt/Async_Await/Async_Await.csproj", + "packagesPath": "/root/.nuget/packages/", + "outputPath": "/workspaces/CSharpProjekt/Async_Await/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/root/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/8.0.411/PortableRuntimeIdentifierGraph.json" + } + } + } + } } \ No newline at end of file diff --git a/Async_Await/obj/Debug/net8.0/Async_Await.AssemblyInfo.cs b/Async_Await/obj/Debug/net8.0/Async_Await.AssemblyInfo.cs index 2000133..bd1a522 100644 --- a/Async_Await/obj/Debug/net8.0/Async_Await.AssemblyInfo.cs +++ b/Async_Await/obj/Debug/net8.0/Async_Await.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Async_Await")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+9d9bacd718b457b1e622e2000d7baf963457a871")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+4da955ac721d824c4df4ad42acf0ae911ae167d1")] [assembly: System.Reflection.AssemblyProductAttribute("Async_Await")] [assembly: System.Reflection.AssemblyTitleAttribute("Async_Await")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Async_Await/obj/Debug/net8.0/Async_Await.AssemblyInfoInputs.cache b/Async_Await/obj/Debug/net8.0/Async_Await.AssemblyInfoInputs.cache index 2c0a7fd..9f4ad83 100644 --- a/Async_Await/obj/Debug/net8.0/Async_Await.AssemblyInfoInputs.cache +++ b/Async_Await/obj/Debug/net8.0/Async_Await.AssemblyInfoInputs.cache @@ -1 +1 @@ -715df55e00865760b049b6999c3a198f53ad831234a2f70656b0a5d26a34b8f5 +98ce089cd7e71c6006d86b916e9ec71a58ea1eeca75009d9cab046ac25ea77c5 diff --git a/Async_Await/obj/project.assets.json b/Async_Await/obj/project.assets.json index 6654458..aabb35b 100644 --- a/Async_Await/obj/project.assets.json +++ b/Async_Await/obj/project.assets.json @@ -1,71 +1,71 @@ -{ - "version": 3, - "targets": { - "net8.0": {} - }, - "libraries": {}, - "projectFileDependencyGroups": { - "net8.0": [] - }, - "packageFolders": { - "/root/.nuget/packages/": {} - }, - "project": { - "version": "1.0.0", - "restore": { - "projectUniqueName": "/workspaces/CSharp/Async_Await/Async_Await.csproj", - "projectName": "Async_Await", - "projectPath": "/workspaces/CSharp/Async_Await/Async_Await.csproj", - "packagesPath": "/root/.nuget/packages/", - "outputPath": "/workspaces/CSharp/Async_Await/obj/", - "projectStyle": "PackageReference", - "configFilePaths": [ - "/root/.nuget/NuGet/NuGet.Config" - ], - "originalTargetFrameworks": [ - "net8.0" - ], - "sources": { - "https://api.nuget.org/v3/index.json": {} - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "projectReferences": {} - } - }, - "warningProperties": { - "warnAsError": [ - "NU1605" - ] - }, - "restoreAuditProperties": { - "enableAudit": "true", - "auditLevel": "low", - "auditMode": "direct" - } - }, - "frameworks": { - "net8.0": { - "targetAlias": "net8.0", - "imports": [ - "net461", - "net462", - "net47", - "net471", - "net472", - "net48", - "net481" - ], - "assetTargetFallback": true, - "warn": true, - "frameworkReferences": { - "Microsoft.NETCore.App": { - "privateAssets": "all" - } - }, - "runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/8.0.410/PortableRuntimeIdentifierGraph.json" - } - } - } +{ + "version": 3, + "targets": { + "net8.0": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + "net8.0": [] + }, + "packageFolders": { + "/root/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/workspaces/CSharpProjekt/Async_Await/Async_Await.csproj", + "projectName": "Async_Await", + "projectPath": "/workspaces/CSharpProjekt/Async_Await/Async_Await.csproj", + "packagesPath": "/root/.nuget/packages/", + "outputPath": "/workspaces/CSharpProjekt/Async_Await/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/root/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/8.0.411/PortableRuntimeIdentifierGraph.json" + } + } + } } \ No newline at end of file diff --git a/Async_Await/obj/project.nuget.cache b/Async_Await/obj/project.nuget.cache index 52eb32c..4f1eede 100644 --- a/Async_Await/obj/project.nuget.cache +++ b/Async_Await/obj/project.nuget.cache @@ -1,8 +1,8 @@ -{ - "version": 2, - "dgSpecHash": "WpEPBuOGmH8=", - "success": true, - "projectFilePath": "/workspaces/CSharp/Async_Await/Async_Await.csproj", - "expectedPackageFiles": [], - "logs": [] +{ + "version": 2, + "dgSpecHash": "aGThoJrW9e4=", + "success": true, + "projectFilePath": "/workspaces/CSharpProjekt/Async_Await/Async_Await.csproj", + "expectedPackageFiles": [], + "logs": [] } \ No newline at end of file diff --git a/Solution/BeispielTasks.csproj b/Solution/BeispielTasks.csproj new file mode 100644 index 0000000..46997a0 --- /dev/null +++ b/Solution/BeispielTasks.csproj @@ -0,0 +1,15 @@ + + + + Exe + net8.0 + enable + enable + + + + + + + + diff --git a/Solution/mqtt_task_pr3_solution.cs b/Solution/mqtt_task_pr3_solution.cs new file mode 100644 index 0000000..66b143b --- /dev/null +++ b/Solution/mqtt_task_pr3_solution.cs @@ -0,0 +1,152 @@ +// See https://aka.ms/new-console-template for more information +using MQTTnet; +using MQTTnet.Client; +using System.Text.Json; +using System.Text.Json.Serialization; + +namespace MqttSensorApp +{ + // LÖSUNG Aufgabe 3: SensorData-Klasse implementieren + public class SensorData + { + [JsonPropertyName("temperature")] + public double Temperature { get; set; } + + [JsonPropertyName("humidity")] + public double Humidity { get; set; } + + [JsonPropertyName("location")] + public string Location { get; set; } = string.Empty; + } + + public class Program + { + private static List receivedTemperatures = new List(); + + public static async Task Main(string[] args) + { + Console.WriteLine("MQTT Sensor Data Processor gestartet..."); + + // MQTT Client Setup (bereits implementiert) + var factory = new MqttFactory(); + var client = factory.CreateMqttClient(); + + // Event Handler für empfangene Nachrichten + client.ApplicationMessageReceivedAsync += async e => + { + var payload = System.Text.Encoding.UTF8.GetString(e.ApplicationMessage.Payload); + await ProcessMessage(payload); + }; + + // Verbindungsoptionen + var options = new MqttClientOptionsBuilder() + .WithTcpServer("broker.hivemq.com", 1883) + .WithClientId($"SensorClient_{Guid.NewGuid()}") + .WithCleanSession() + .Build(); + + try + { + // Verbindung aufbauen + await client.ConnectAsync(options); + Console.WriteLine("Mit MQTT Broker verbunden"); + + // Topic abonnieren + await client.SubscribeAsync("sensor/data/room1"); + Console.WriteLine("Topic 'sensor/data/room1' abonniert"); + + // Simulierte Sensordaten senden (für Testing) + await SendTestData(client); + + // Programm laufen lassen + Console.WriteLine("Drücken Sie eine Taste zum Beenden..."); + Console.ReadKey(); + + // Verbindung trennen + await client.DisconnectAsync(); + } + catch (Exception ex) + { + Console.WriteLine($"Fehler: {ex.Message}"); + } + } + + private static async Task ProcessMessage(string jsonPayload) + { + try + { + Console.WriteLine($"Empfangen: {jsonPayload}"); + + // LÖSUNG Aufgabe 3: Deserialisieren des JSON zu SensorData + var sensorData = JsonSerializer.Deserialize(jsonPayload); + + if (sensorData != null) + { + receivedTemperatures.Add(sensorData.Temperature); + + // LÖSUNG Aufgabe 2: Pattern Matching anwenden + var analysis = AnalyzeMessage(sensorData.Temperature); + Console.WriteLine($"Analyse: {analysis}"); + } + + // Alle 5 Nachrichten: Hohe Temperaturen anzeigen + if (receivedTemperatures.Count % 5 == 0) + { + var highTemps = FilterHighTemperatures(receivedTemperatures); + Console.WriteLine($"Hohe Temperaturen (>25°C): {string.Join(", ", highTemps.Select(t => $"{t:F1}°C"))}"); + } + } + catch (Exception ex) + { + Console.WriteLine($"Fehler beim Verarbeiten der Nachricht: {ex.Message}"); + } + } + + // LÖSUNG Aufgabe 1: LINQ-Abfrage implementieren + private static IEnumerable FilterHighTemperatures(List temperatures) + { + // LINQ Where-Klausel verwenden, um Temperaturen > 25°C zu filtern + return temperatures.Where(temp => temp > 25.0); + } + + // LÖSUNG Aufgabe 2: Pattern Matching implementieren + private static string AnalyzeMessage(object value) + { + // Switch expression mit Pattern Matching + return value switch + { + double temp when temp > 30.0 => "WARNUNG: Sehr hohe Temperatur!", + double temp when temp >= 25.0 && temp <= 30.0 => "Hohe Temperatur", + double temp when temp < 25.0 => "Normale Temperatur", + string text => "Text-Nachricht erhalten", + null => "Keine Daten", + _ => "Unbekannter Datentyp" + }; + } + + // Hilfsmethode: Testnachrichten senden + private static async Task SendTestData(IMqttClient client) + { + var testData = new[] + { + new { temperature = 22.5, humidity = 65.0, location = "Room1" }, + new { temperature = 28.3, humidity = 58.2, location = "Room1" }, + new { temperature = 19.8, humidity = 72.1, location = "Room1" }, + new { temperature = 31.2, humidity = 45.3, location = "Room1" }, + new { temperature = 26.7, humidity = 62.8, location = "Room1" } + }; + + foreach (var data in testData) + { + var json = JsonSerializer.Serialize(data); + var message = new MqttApplicationMessageBuilder() + .WithTopic("sensor/data/room1") + .WithPayload(json) + .Build(); + + await client.PublishAsync(message); + await Task.Delay(2000); // 2 Sekunden Pause + } + } + } +} diff --git a/Solution/obj/BeispielTasks.csproj.nuget.dgspec.json b/Solution/obj/BeispielTasks.csproj.nuget.dgspec.json new file mode 100644 index 0000000..b7ed360 --- /dev/null +++ b/Solution/obj/BeispielTasks.csproj.nuget.dgspec.json @@ -0,0 +1,76 @@ +{ + "format": 1, + "restore": { + "/workspaces/CSharpProjekt/Solution/BeispielTasks.csproj": {} + }, + "projects": { + "/workspaces/CSharpProjekt/Solution/BeispielTasks.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/workspaces/CSharpProjekt/Solution/BeispielTasks.csproj", + "projectName": "BeispielTasks", + "projectPath": "/workspaces/CSharpProjekt/Solution/BeispielTasks.csproj", + "packagesPath": "/root/.nuget/packages/", + "outputPath": "/workspaces/CSharpProjekt/Solution/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/root/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "MQTTnet": { + "target": "Package", + "version": "[4.1.4, )" + }, + "System.Text.Json": { + "target": "Package", + "version": "[9.0.6, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/8.0.411/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/Solution/obj/BeispielTasks.csproj.nuget.g.props b/Solution/obj/BeispielTasks.csproj.nuget.g.props new file mode 100644 index 0000000..112d2bb --- /dev/null +++ b/Solution/obj/BeispielTasks.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /root/.nuget/packages/ + /root/.nuget/packages/ + PackageReference + 6.11.1 + + + + + \ No newline at end of file diff --git a/Solution/obj/BeispielTasks.csproj.nuget.g.targets b/Solution/obj/BeispielTasks.csproj.nuget.g.targets new file mode 100644 index 0000000..28e42c0 --- /dev/null +++ b/Solution/obj/BeispielTasks.csproj.nuget.g.targets @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Solution/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/Solution/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..dca70aa --- /dev/null +++ b/Solution/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/Solution/obj/Debug/net8.0/Beispiel.98D83876.Up2Date b/Solution/obj/Debug/net8.0/Beispiel.98D83876.Up2Date new file mode 100644 index 0000000..e69de29 diff --git a/Solution/obj/Debug/net8.0/BeispielTasks.AssemblyInfo.cs b/Solution/obj/Debug/net8.0/BeispielTasks.AssemblyInfo.cs new file mode 100644 index 0000000..448f7db --- /dev/null +++ b/Solution/obj/Debug/net8.0/BeispielTasks.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("BeispielTasks")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+4da955ac721d824c4df4ad42acf0ae911ae167d1")] +[assembly: System.Reflection.AssemblyProductAttribute("BeispielTasks")] +[assembly: System.Reflection.AssemblyTitleAttribute("BeispielTasks")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/Solution/obj/Debug/net8.0/BeispielTasks.AssemblyInfoInputs.cache b/Solution/obj/Debug/net8.0/BeispielTasks.AssemblyInfoInputs.cache new file mode 100644 index 0000000..8acd6b8 --- /dev/null +++ b/Solution/obj/Debug/net8.0/BeispielTasks.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +620d207c41d80e36530c3c7988f0445044b33e4be22ae5f8eed29fa6c84257b0 diff --git a/Solution/obj/Debug/net8.0/BeispielTasks.GeneratedMSBuildEditorConfig.editorconfig b/Solution/obj/Debug/net8.0/BeispielTasks.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..12ff8aa --- /dev/null +++ b/Solution/obj/Debug/net8.0/BeispielTasks.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,13 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = BeispielTasks +build_property.ProjectDir = /workspaces/CSharpProjekt/Solution/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/Solution/obj/Debug/net8.0/BeispielTasks.GlobalUsings.g.cs b/Solution/obj/Debug/net8.0/BeispielTasks.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/Solution/obj/Debug/net8.0/BeispielTasks.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/Solution/obj/Debug/net8.0/BeispielTasks.assets.cache b/Solution/obj/Debug/net8.0/BeispielTasks.assets.cache new file mode 100644 index 0000000000000000000000000000000000000000..16077de69ba584a5e19ce3ee11861b56cb1f94e4 GIT binary patch literal 2540 zcmcImPfrs;6fasVsDS(z65b@egmTyFP{7YB>Exz0KT`~mTfy=VsMgQvYnatci#KGu0B|tKbuG-mb<$;zIF8c z{QXNj{rKto`!9Px2KS%8+s}V}`(fzK%IA}*M4|!j`Bor=vP@pcfwFwt*|u{aEm@Qb z@}`1aWxkMtTeIevIc?e8_KL3|kd`YHM}a^{ugIs&Da(=8dPyilLibU~To;AFfkogD z*oxtX>v<>8C@nHh-zVt@t|Vek?@a!s3XM&f0>c}A|aK-XSP}xB2 zNC?U-7^5gXThN=)s!h}&?&=TW(9k1s}L84Z)45 zH;v(mnYmj=*rCG{vqrX{Do5d_v13bv3uSDI0(VVgo*TCB2V$4yZ3RXaq%!c!*)qgt zwIp$WC>?+l-YalT>WFKI5yU8h+WR`9b-AzzYPB@Z(rz80bjHu0;6TIa)EE+fnZ24T z6w|V5tF1JTl=bLmkB;bu>dCcsh8)g=qxHi2*BvuY%i(MrH%zG493Gh66=L5Id~>E{Cgu(ug!3Oob0P6 z4Gq$+_-Q#~v;W*_z12Q0umBt-g5ss4G`6pm8awR*HuxrkAQg3Z>p^1g2p3K*KOUbR Nn`~OgBnM0t{{WzYtI_}f literal 0 HcmV?d00001 diff --git a/Solution/obj/Debug/net8.0/BeispielTasks.csproj.AssemblyReference.cache b/Solution/obj/Debug/net8.0/BeispielTasks.csproj.AssemblyReference.cache new file mode 100644 index 0000000000000000000000000000000000000000..1db9718efc4556be8a03590df3e92befd8331067 GIT binary patch literal 1708 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%0Dvf*@!OKj+7qUZHp7Up#oiK7m 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 literal 0 HcmV?d00001 diff --git a/Solution/obj/Debug/net8.0/BeispielTasks.genruntimeconfig.cache b/Solution/obj/Debug/net8.0/BeispielTasks.genruntimeconfig.cache new file mode 100644 index 0000000..f53bd7b --- /dev/null +++ b/Solution/obj/Debug/net8.0/BeispielTasks.genruntimeconfig.cache @@ -0,0 +1 @@ +949b3858502c0fd6c698ced674b2ca502e01b36f04519a83e504d0e264619b94 diff --git a/Solution/obj/Debug/net8.0/BeispielTasks.pdb b/Solution/obj/Debug/net8.0/BeispielTasks.pdb new file mode 100644 index 0000000000000000000000000000000000000000..a63a60a238b38e51f08a684a74f51cec90a3ea9c GIT binary patch literal 12508 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%0D5-SOvA8Q7TPjw6RAR3u@h#YB#K^ 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 BfV%(y literal 0 HcmV?d00001 diff --git a/Solution/obj/Debug/net8.0/refint/BeispielTasks.dll b/Solution/obj/Debug/net8.0/refint/BeispielTasks.dll new file mode 100644 index 0000000000000000000000000000000000000000..f083bcb19054ec3262d0e75b3effb93b8193680a GIT binary patch literal 7168 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 BfV%(y literal 0 HcmV?d00001 diff --git a/Solution/obj/project.assets.json b/Solution/obj/project.assets.json new file mode 100644 index 0000000..80d7788 --- /dev/null +++ b/Solution/obj/project.assets.json @@ -0,0 +1,294 @@ +{ + "version": 3, + "targets": { + "net8.0": { + "MQTTnet/4.1.4.563": { + "type": "package", + "compile": { + "lib/net6.0/MQTTnet.dll": {} + }, + "runtime": { + "lib/net6.0/MQTTnet.dll": {} + } + }, + "System.IO.Pipelines/9.0.6": { + "type": "package", + "compile": { + "lib/net8.0/System.IO.Pipelines.dll": {} + }, + "runtime": { + "lib/net8.0/System.IO.Pipelines.dll": {} + }, + "build": { + "buildTransitive/net8.0/_._": {} + } + }, + "System.Text.Encodings.Web/9.0.6": { + "type": "package", + "compile": { + "lib/net8.0/System.Text.Encodings.Web.dll": {} + }, + "runtime": { + "lib/net8.0/System.Text.Encodings.Web.dll": {} + }, + "build": { + "buildTransitive/net8.0/_._": {} + }, + "runtimeTargets": { + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll": { + "assetType": "runtime", + "rid": "browser" + } + } + }, + "System.Text.Json/9.0.6": { + "type": "package", + "dependencies": { + "System.IO.Pipelines": "9.0.6", + "System.Text.Encodings.Web": "9.0.6" + }, + "compile": { + "lib/net8.0/System.Text.Json.dll": {} + }, + "runtime": { + "lib/net8.0/System.Text.Json.dll": {} + }, + "build": { + "buildTransitive/net8.0/System.Text.Json.targets": {} + } + } + } + }, + "libraries": { + "MQTTnet/4.1.4.563": { + "sha512": "gO9segUcKyQJcjV7w7OOdoAIkec7cUN65vEhYutbdWcj4rbtz/oL/RDvQVVbameXc6ChkjKx7/HbO+R8ejAUZQ==", + "type": "package", + "path": "mqttnet/4.1.4.563", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "lib/net452/MQTTnet.dll", + "lib/net461/MQTTnet.dll", + "lib/net5.0/MQTTnet.dll", + "lib/net6.0/MQTTnet.dll", + "lib/netcoreapp3.1/MQTTnet.dll", + "lib/netstandard1.3/MQTTnet.dll", + "lib/netstandard2.0/MQTTnet.dll", + "lib/netstandard2.1/MQTTnet.dll", + "lib/uap10.0.10240/MQTTnet.dll", + "lib/uap10.0.10240/MQTTnet.pri", + "mqttnet.4.1.4.563.nupkg.sha512", + "mqttnet.nuspec", + "nuget.png" + ] + }, + "System.IO.Pipelines/9.0.6": { + "sha512": "0nlr0reXrRmkZNKifKqh2DgGhQgfkT7Qa3gQxIn/JI7/y3WDiTz67M+Sq3vFhUqcG8O5zVrpqHvIHeGPGUBsEw==", + "type": "package", + "path": "system.io.pipelines/9.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.IO.Pipelines.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.IO.Pipelines.targets", + "lib/net462/System.IO.Pipelines.dll", + "lib/net8.0/System.IO.Pipelines.dll", + "lib/net9.0/System.IO.Pipelines.dll", + "lib/netstandard2.0/System.IO.Pipelines.dll", + "system.io.pipelines.9.0.6.nupkg.sha512", + "system.io.pipelines.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Encodings.Web/9.0.6": { + "sha512": "uWRgViw2yJAUyGxrzDLCc6fkzE2dZIoXxs8V6YjCujKsJuP0pnpYSlbm2/7tKd0SjBnMtwfDQhLenk3bXonVOA==", + "type": "package", + "path": "system.text.encodings.web/9.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "buildTransitive/net461/System.Text.Encodings.Web.targets", + "buildTransitive/net462/_._", + "buildTransitive/net8.0/_._", + "buildTransitive/netcoreapp2.0/System.Text.Encodings.Web.targets", + "lib/net462/System.Text.Encodings.Web.dll", + "lib/net8.0/System.Text.Encodings.Web.dll", + "lib/net9.0/System.Text.Encodings.Web.dll", + "lib/netstandard2.0/System.Text.Encodings.Web.dll", + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.dll", + "runtimes/browser/lib/net8.0/System.Text.Encodings.Web.xml", + "runtimes/browser/lib/net9.0/System.Text.Encodings.Web.dll", + "runtimes/browser/lib/net9.0/System.Text.Encodings.Web.xml", + "system.text.encodings.web.9.0.6.nupkg.sha512", + "system.text.encodings.web.nuspec", + "useSharedDesignerContext.txt" + ] + }, + "System.Text.Json/9.0.6": { + "sha512": "h+ZtYTyTnTh5Ju6mHCKb3FPGx4ylJZgm9W7Y2psUnkhQRPMOIxX+TCN0ZgaR/+Yea+93XHWAaMzYTar1/EHIPg==", + "type": "package", + "path": "system.text.json/9.0.6", + "files": [ + ".nupkg.metadata", + ".signature.p7s", + "Icon.png", + "LICENSE.TXT", + "PACKAGE.md", + "THIRD-PARTY-NOTICES.TXT", + "analyzers/dotnet/roslyn3.11/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn3.11/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn3.11/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.0/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.0/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/System.Text.Json.SourceGeneration.dll", + "analyzers/dotnet/roslyn4.4/cs/cs/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/de/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/es/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/fr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/it/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ja/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ko/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pl/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/pt-BR/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/ru/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/tr/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hans/System.Text.Json.SourceGeneration.resources.dll", + "analyzers/dotnet/roslyn4.4/cs/zh-Hant/System.Text.Json.SourceGeneration.resources.dll", + "buildTransitive/net461/System.Text.Json.targets", + "buildTransitive/net462/System.Text.Json.targets", + "buildTransitive/net8.0/System.Text.Json.targets", + "buildTransitive/netcoreapp2.0/System.Text.Json.targets", + "buildTransitive/netstandard2.0/System.Text.Json.targets", + "lib/net462/System.Text.Json.dll", + "lib/net8.0/System.Text.Json.dll", + "lib/net9.0/System.Text.Json.dll", + "lib/netstandard2.0/System.Text.Json.dll", + "system.text.json.9.0.6.nupkg.sha512", + "system.text.json.nuspec", + "useSharedDesignerContext.txt" + ] + } + }, + "projectFileDependencyGroups": { + "net8.0": [ + "MQTTnet >= 4.1.4", + "System.Text.Json >= 9.0.6" + ] + }, + "packageFolders": { + "/root/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/workspaces/CSharpProjekt/Solution/BeispielTasks.csproj", + "projectName": "BeispielTasks", + "projectPath": "/workspaces/CSharpProjekt/Solution/BeispielTasks.csproj", + "packagesPath": "/root/.nuget/packages/", + "outputPath": "/workspaces/CSharpProjekt/Solution/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/root/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "MQTTnet": { + "target": "Package", + "version": "[4.1.4, )" + }, + "System.Text.Json": { + "target": "Package", + "version": "[9.0.6, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/8.0.411/PortableRuntimeIdentifierGraph.json" + } + } + }, + "logs": [ + { + "code": "NU1603", + "level": "Warning", + "warningLevel": 1, + "message": "BeispielTasks depends on MQTTnet (>= 4.1.4) but MQTTnet 4.1.4 was not found. An approximate best match of MQTTnet 4.1.4.563 was resolved.", + "libraryId": "MQTTnet", + "targetGraphs": [ + "net8.0" + ] + } + ] +} \ No newline at end of file diff --git a/Solution/obj/project.nuget.cache b/Solution/obj/project.nuget.cache new file mode 100644 index 0000000..05a2d24 --- /dev/null +++ b/Solution/obj/project.nuget.cache @@ -0,0 +1,24 @@ +{ + "version": 2, + "dgSpecHash": "+DKi8TX5UxE=", + "success": true, + "projectFilePath": "/workspaces/CSharpProjekt/Solution/BeispielTasks.csproj", + "expectedPackageFiles": [ + "/root/.nuget/packages/mqttnet/4.1.4.563/mqttnet.4.1.4.563.nupkg.sha512", + "/root/.nuget/packages/system.io.pipelines/9.0.6/system.io.pipelines.9.0.6.nupkg.sha512", + "/root/.nuget/packages/system.text.encodings.web/9.0.6/system.text.encodings.web.9.0.6.nupkg.sha512", + "/root/.nuget/packages/system.text.json/9.0.6/system.text.json.9.0.6.nupkg.sha512" + ], + "logs": [ + { + "code": "NU1603", + "level": "Warning", + "warningLevel": 1, + "message": "BeispielTasks depends on MQTTnet (>= 4.1.4) but MQTTnet 4.1.4 was not found. An approximate best match of MQTTnet 4.1.4.563 was resolved.", + "libraryId": "MQTTnet", + "targetGraphs": [ + "net8.0" + ] + } + ] +} \ No newline at end of file diff --git a/mqtt_task_pr3_solution.cs b/mqtt_task_pr3_solution.cs index b1e9e09..e69de29 100644 --- a/mqtt_task_pr3_solution.cs +++ b/mqtt_task_pr3_solution.cs @@ -1,151 +0,0 @@ -using MQTTnet; -using MQTTnet.Client; -using System.Text.Json; -using System.Text.Json.Serialization; - -namespace MqttSensorApp -{ - // LÖSUNG Aufgabe 3: SensorData-Klasse implementieren - public class SensorData - { - [JsonPropertyName("temperature")] - public double Temperature { get; set; } - - [JsonPropertyName("humidity")] - public double Humidity { get; set; } - - [JsonPropertyName("location")] - public string Location { get; set; } = string.Empty; - } - - public class Program - { - private static List receivedTemperatures = new List(); - - public static async Task Main(string[] args) - { - Console.WriteLine("MQTT Sensor Data Processor gestartet..."); - - // MQTT Client Setup (bereits implementiert) - var factory = new MqttFactory(); - var client = factory.CreateMqttClient(); - - // Event Handler für empfangene Nachrichten - client.ApplicationMessageReceivedAsync += async e => - { - var payload = System.Text.Encoding.UTF8.GetString(e.ApplicationMessage.Payload); - await ProcessMessage(payload); - }; - - // Verbindungsoptionen - var options = new MqttClientOptionsBuilder() - .WithTcpServer("broker.hivemq.com", 1883) - .WithClientId($"SensorClient_{Guid.NewGuid()}") - .WithCleanSession() - .Build(); - - try - { - // Verbindung aufbauen - await client.ConnectAsync(options); - Console.WriteLine("Mit MQTT Broker verbunden"); - - // Topic abonnieren - await client.SubscribeAsync("sensor/data/room1"); - Console.WriteLine("Topic 'sensor/data/room1' abonniert"); - - // Simulierte Sensordaten senden (für Testing) - await SendTestData(client); - - // Programm laufen lassen - Console.WriteLine("Drücken Sie eine Taste zum Beenden..."); - Console.ReadKey(); - - // Verbindung trennen - await client.DisconnectAsync(); - } - catch (Exception ex) - { - Console.WriteLine($"Fehler: {ex.Message}"); - } - } - - private static async Task ProcessMessage(string jsonPayload) - { - try - { - Console.WriteLine($"Empfangen: {jsonPayload}"); - - // LÖSUNG Aufgabe 3: Deserialisieren des JSON zu SensorData - var sensorData = JsonSerializer.Deserialize(jsonPayload); - - if (sensorData != null) - { - receivedTemperatures.Add(sensorData.Temperature); - - // LÖSUNG Aufgabe 2: Pattern Matching anwenden - var analysis = AnalyzeMessage(sensorData.Temperature); - Console.WriteLine($"Analyse: {analysis}"); - } - - // Alle 5 Nachrichten: Hohe Temperaturen anzeigen - if (receivedTemperatures.Count % 5 == 0) - { - var highTemps = FilterHighTemperatures(receivedTemperatures); - Console.WriteLine($"Hohe Temperaturen (>25°C): {string.Join(", ", highTemps.Select(t => $"{t:F1}°C"))}"); - } - } - catch (Exception ex) - { - Console.WriteLine($"Fehler beim Verarbeiten der Nachricht: {ex.Message}"); - } - } - - // LÖSUNG Aufgabe 1: LINQ-Abfrage implementieren - private static IEnumerable FilterHighTemperatures(List temperatures) - { - // LINQ Where-Klausel verwenden, um Temperaturen > 25°C zu filtern - return temperatures.Where(temp => temp > 25.0); - } - - // LÖSUNG Aufgabe 2: Pattern Matching implementieren - private static string AnalyzeMessage(object value) - { - // Switch expression mit Pattern Matching - return value switch - { - double temp when temp > 30.0 => "WARNUNG: Sehr hohe Temperatur!", - double temp when temp >= 25.0 && temp <= 30.0 => "Hohe Temperatur", - double temp when temp < 25.0 => "Normale Temperatur", - string text => "Text-Nachricht erhalten", - null => "Keine Daten", - _ => "Unbekannter Datentyp" - }; - } - - // Hilfsmethode: Testnachrichten senden - private static async Task SendTestData(IMqttClient client) - { - var testData = new[] - { - new { temperature = 22.5, humidity = 65.0, location = "Room1" }, - new { temperature = 28.3, humidity = 58.2, location = "Room1" }, - new { temperature = 19.8, humidity = 72.1, location = "Room1" }, - new { temperature = 31.2, humidity = 45.3, location = "Room1" }, - new { temperature = 26.7, humidity = 62.8, location = "Room1" } - }; - - foreach (var data in testData) - { - var json = JsonSerializer.Serialize(data); - var message = new MqttApplicationMessageBuilder() - .WithTopic("sensor/data/room1") - .WithPayload(json) - .Build(); - - await client.PublishAsync(message); - await Task.Delay(2000); // 2 Sekunden Pause - } - } - } -} \ No newline at end of file