Ich weiß zwar nicht ganz auf was du mit dem Code Beispiel hinaus willst aber, nein einen zyklische abhängigkeitsfehler kann man nicht umgehen.

Wobei ich dabei die Frage hätte warum dein Lib Projekt deine Hauptanwendung referenziert. Auch wenn es nur ein Lib Projekt zur Isolierung von bestimmten Komponenten ist sollte keine direkte Abhängigkeit zur Anwendung selber bestehen.

Falls das so erforderlich ist kannst du immernoch die Page und weitere Komponenten auf die das zutrifft in ein Extraprojekt verschieben.

LG Suiram1

...zur Antwort

Wirklichen 'Zufall' gibt es für Computer nicht. Zufallszahlen, die von Programmen im normalfall generiert werden kommen meist von einem Pseudozufallsgenerator.

Arduinos haben einen solchen Generator nicht integriert, doch da du mit einem solchen das Privileg hast hardware nah zu sein kannst du auf 'echte' Zufallszahlen zugreifen. Dabei liest du einen nicht angeschlossenen Analogen-Pin. Den zurückgegebenen Wert mappst du nun auf die Array größe und du hast dein zufälliges Item.

Korrektur:
Es gibt doch einen Pseudozufallsgenerator unter Arduino. Für deine Zwecke reicht ein solcher komplet aus, aber einen Analogen-Pin der nicht angeschlossen ist zu lesen ist auch ein Weg.

lg Suiram1

...zur Antwort

Man müsste zuerst wissen was für ein Display das ist (LCD, OLED, TFT, ...). Davon hängt ab welche Bibliothek du verwenden musst. Wenn du diese informationen hast gibt es zu allen Bibliotheken im Internet Dokumentation und Beispiel, die zeigen wie man dieses Verwendet.

Wenn du das nun zusammen hast düfte es kein Problem sein die Werte anzuzeigen.

...zur Antwort

Um genaues zu sagen ist der kleine Code Abschnitt etwas wenig, aber ich könnte mir vorstellen das vllt. dort die verfügbaren Artikel iterierst und dann Visible setzt.

Was nun passieren kann ist, dass etwas gesucht wurde und visible entsprechend gesetzt wurde, jedoch sobald der search text neu evaluiert wird die vorherigen Visible Einstellungen bleiben. Du könntest also probieren das wenn kein search text vorhanden ist alles visible ist.

Wie gesagt alles nur Vermutung, das es etwas wenig Code ist.

...zur Antwort

Da ich in der Ausgabe nur Meldungen zur Internet Verbindung sehe und nicht anderes würde ich erstmal davon ausgehen das du dich nicht autorisiert hast. Vorrausgesetzt das du Client ID, Client Secret und Redirect url korrekt eingegeben hast müsstest du den ESP noch manuell autorisieren für einen Account.

Der fehler Error getting Track info spricht jedoch eher dafür das die autorisierung schon erfolgt ist. Jedoch dann wäre es besser wenn du dann Ausgaben aus diesem Bereich halt was anderes als die Wlan Verbingung hinzufügst (Bitte nutze dafür keinen Screenshot sondern füge die Ausgaben als Text ein, dann kannst du deutlich mehr einfügen).

Besonderns bei Hardware sachen ist die Suche nach fehlern besonders schwer. Da kommt es auf hede information an.

...zur Antwort

Wenn ich das richtig verstehe sollen die txt's also per Iframe eingebunden werden können, aber nicht direkt im Browser als Tab zu öffnen sein.

Wenn ich so richtig verstanden habe kann ich dir nur sagen, dass das nicht wirklich gehen wird. Egal ob eine Datei/Seite als Browser Tab geöffnet wird oder nur per Iframe eingebunden ist macht für den Server kein unterschied. Ich bin mir nicht sicher ob per Iframe vllt. noch spezielle Header mit gesendet werden auf die man in der htaccess prüfen könnte, aber man könnte diese auch falls vorhanden mit manuellen anfragen 'fälschen'.

Wenn du den kompletten zugriff auf txt's verhindern willst würde das natürlich gehen.

...zur Antwort
Wie mache ich diese Mod für GTA zu einer DLL datei mit Visual Studio?
using System;
using LSPD_First_Response.Mod.API;
using Rage;
using System.Drawing;
namespace LSPDfr bombcallout
{
  /// <summary>
  /// Represents a callout for defusing a bomb in the game.
  /// </summary>
  public class BombDefuseCallout : Callout
  {
    /// <summary>
    /// The suspect involved in the callout.
    /// </summary>
    private Ped suspect;
    /// <summary>
    /// The location of the bomb represented by a blip on the map.
    /// </summary>
    private Blip bombLocation;
    /// <summary>
    /// Indicates whether the bomb has been defused.
    /// </summary>
    private bool bombDefused;
    /// <summary>
    /// Initializes a new instance of the <see cref="BombDefuseCallout"/> class.
    /// </summary>
    public BombDefuseCallout()
    {
      // Constructor implementation
    }
    /// <summary>
    /// Called before the callout is displayed to the player.
    /// </summary>
    /// <returns>True if the callout should be displayed; otherwise, false.</returns>
    public override bool OnBeforeCalloutDisplayed()
    {
      // Method implementation
      return true;
    }
    /// <summary>
    /// Called when the callout is accepted by the player.
    /// </summary>
    public override void OnCalloutAccepted()
    {
      // Method implementation
    }
    /// <summary>
    /// Starts the bomb defuse mission.
    /// </summary>
    private void StartBombDefuseMission()
    {
      // Method implementation
    }
    /// <summary>
    /// Ends the mission, marking it as completed or failed based on the bomb defusal status.
    /// </summary>
    private void EndMission()
    {
      // Method implementation
    }
  }
...zum Beitrag

Du müsstest ein Klassenbibliotheks Projekt erstellen, die Pakete von dehnen die Namespaces LSPD_First_Response.Mod.API und Rage stammen hinzufügen, das ganze Kompilieren und voila du hast die DLL im bin ordner.

So hättest du zwar die DLL, allerdings die Mod rein garnichts machen, da dort nur die Klasse und ein par Methoden deklariert sind und sonst nichts kein Code der wirklich etwas macht.

Anzumerken ist außerdem das das ganze nicht Kompilieren würde da im namespace keine Leerzeichen erlaubt sind.

Allein das du diese Frage stellst lässt darauf schließen das du keine Ahnung von der Mod Programmierung hast (ist zwar nicht so als hätte ich von Mod programmierung Ahnung, aber dafür von C# und .NET).

...zur Antwort

Komplett ersetzeten wird TypeScript JavaScript nie, da TS bevor es ausgeführt werden kann immer erst zu JS transpiliert werden muss. Wirklich stark ein unterschied macht es aber auch nicht, da TS quasi JS mit starker typisierung ist.

...zur Antwort

Der grund weshalb das nicht geht ist das URL Kodierung genutzt wird. Zeichen die in der URL stehen obwohl sie nicht erlaubt sind werden deshalb mit dieser Kodierung Kodiert. Das Zeichen [ wird z.B. in %5b kodiert und als solches dürftes du es auf dem Server auch empfangen.

Ein besserer Weg um ein array zu übergeben währe ein Daten format wie json zu nutzen. Du könntest egal ob mit GET oder POST ein json objekt das ein array enthält entgegen nehmen und aus diesem die Werte beziehen. JSON enthält zwar auch Zeichen die in der URL kodierung anders kodiert werden, allerdings müssten Werte automatisch dekodiert werden.

lg Suiram1

...zur Antwort

Ein Weg der mir jetzt spontan einfällt wäre eine Liste mit absteigenden 2er Potzen zu erstellen (z.B. [1024, 512, 256, ...]) und du läst eine schleife diese durchlaufen. Jede der potenzen wird in dieser reihenfolge subtrahiert. Ist das Ergebnis der subtraktion größer 0 setzt du im Ergebnis das jeweilige Bit (bei z.B. 256 müsste es das 8. Bit sein), und speicherst das Ergebnis der Subtraktion in der Ausgangs Variable. Wenn es gleich 0 ist die Verarbeitung fertig und die Schleife kann beendet werden und wenn das Ergebnis negativ ist gehtst du zur nächsten potzen weiter und setzt das Bit nicht.

Nachtrag: Wenn bei der letzten Potenz angekommen das Ergabnis größer 0 ist dürften die Anzahl an bits nicht ausreichen.

Ich hab das nicht probiert, aber das müsste eigentlich so Funktionieren.

lg Suiram1

...zur Antwort

Die Platform heißt GuteFrage und nicht WünschDirWas. Es wäre angemessen wenigstens einen Versuch vorzulegen anstelle von anfang an eine komplette Lösung zu verlangen.

Aber naja. Du könntest dir jedenfalls eine Klasse User erstellen die alle geforderten Daten enthält. Um nun CRUD zu implementieren ist es sinnvoll eine Klasse zu erstellen, die die CRUD operationen bereitstellt und mit diesen eine Nutzer DB egal ob extern, im local storage oder nur als instanzen verwaltet.

Wie du nun alles in der GUI und den zugriff auf diesen Nutzermanager umsetzt musst du schon machen.

Müsstest ihr das aber nicht eigentlich in den Vorlesungen oder so lernen?

...zur Antwort

Wenn der TypeScript code in JavaScript code transpiliert wurde kann man da recht wenig machen. Man kan zwar probieren den uhrsprünglichen typescript code wieder daraus zu bekommen aber bei TypeScript eigenen features die in Effizienten, aber schwer Verständlichen JavaScript code übersetzt werden wird es schwierig.

Das würde ich sagen wenn man es selber per 'hand' versucht.

Nach einer kurzen Google suche bin ich auf converter gestoßen ich weiß, aber nicht inwiefern, die was taugen. Du kannst diese vllt. mal ausprobieren.

Für die Zukunft würde ich dir raten Git mit einer Remote repository zu verwenden, damit alles in der Cloud gesichert ist.

...zur Antwort

Für solche Projekte wirst du nirgends eine Schritt für Schritt anleitung finden. Am besten ist es da wenn du selbst erstmal programmieren lernst in einer Sprache und Framework deiner Wahl (sollte, aber für Webentwicklung geeignet sein) und wenn du diese plus einge konzepte und Architekturen ganz gut kannst und verstehst wirst du selbst wissen wie du vorgehen musst.

lg Suiram1

...zur Antwort
Frage zu c# bzw. #script?

Kennt sich jemand mit #script aus?

Ich habe folgendes Skript:

 "Script/DeviceTemplate": {
        "Content": "{{var assignments = []}}
{{var nodeId = ServiceTask.DeviceInstallationServiceTask.Details.NodeId}}
{{#each groupName in Typicals.DeviceTypes.xxx.DeviceTypicals[ServiceTask.DeviceInstallationServiceTask.Details.Typical.Name].SignalGroups}}
{{var index = 0}}
{{#each signal in Typicals.DeviceTypes.xxx.SignalGroups[groupName].SignalList}}
{{var baseComponent = ServiceTask.DeviceInstallationServiceTask.Details.Typical.SignalAssignments[groupName].BaseComponent}}
{{var _ = assignments.push({
    "assignmentIndex": index,
	"deviceId": "" + nodeId,
    "sparkplugName": baseComponent + signal.MetricBaseName
})}}
{{index = index + 1}}
{{/each}}
{{/each}}
{{ {
  "system": {
    "deviceName": nodeId
  },
  "apps": [
    {
      "appName": "SPARKPLUG",
      "appId": 12345,
      "settings": {
                "clientId": nodeId,
                "keepAliveInterval": 120,
                "publishInterval": 120,
                "startupDelay": 50
      },	 
      "sparkplugSettings": {
            "mqttTopic": "spBv1.0",
            "sparkplugTopic": "NTN/{MessageType}/" + nodeId
      },
      "assignments": assignments
    }
  ]
} |> json}}"
      }

Dieses hat zwei Schleifen, in der inneren Schleife soll die Variable index um 1 erhöht werden. Alles funktioniert, nur bekomme ich in der Ausgabe für jeden Aufruf von

index = index + 1

ebenfalls eine Ausgabe:

     1
     2
     3
     4
     5
     6
     7
     8
     9
     10
     11
     12
     13
     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
   {"system":{"deviceName......

Wie kann ich die Ausgabe von 1 bis 23 unterdrücken?

...zum Beitrag

Nach einigem suchen habe ich diesen Vergleich zwischen Codezeilen in Razor und #Script gefunden.

Ich kann das zwar gerade nicht testen, allerdings müsste es gehen wenn du

```code
index = index + 1
```

anstelle von

{{index = index + 1}}

schreibst. Soweit ich das verstanden habe wird alles was in {{ }} steht evaluiert und ausgegeben und in den Codeblöcken nur Evaluiert.

Tipp: Anstelle von

index = index + 1

kannst du die Variable direkt inkrementieren mit

index++

lg Suiram1

...zur Antwort