Programmieren & Softwareentwicklung

Wenn Du nicht nur Anwender sein willst, sondern auch aktiv programmierst oder mit dem Gedanken spielst, dann warten hier die passenden Fragen und Antworten auf Dich.

27.160 Beiträge

Ersatz für delay(); in einem Arduino Nano gesucht?

ich benötige einen Ersatz für Delay, der die Ausführung von Subroutinen nicht behindert.

Es geht mir dabei nicht um das Blinken einer LED, sondern um die exakte Taktung mit der void loop() wiederholt wird.

hat hier jemand eine schlaue Idee

void loop() {
DateTime now = rtc.now();


// Delay-Ausgleich für den Countdown
if (Timer == 0) {
  Timer = Countdown;
  }
if (timeshift < 4)
  {
  timeshift++;
  }
else
  {
 timeshift = 0; 
 Timer--;
  }
Temperatur = rtc.getTemperature();
Temperatur = (float)Temperatur;


//Sonnenrichtungssensoren auslesen
LDR_up = analogRead(A0) + 20; // Sensorkalibrierung
LDR_west = analogRead(A2) + 45;  // Sensorkalibrierung
LDR_east = analogRead(A3); 
LDR_down = analogRead(A3);
Gesamtwert = LDR_up + LDR_west + LDR_east + LDR_down; // Gesamtmenge Licht

if (Helligkeitsglaettung > 0)
  {
  smooth_lumen();
  }
else
  {
  GM_Lumen = round(Gesamtwert / 10)*10;
  }

//Zeitformatierung Countdown
hours = floor(Timer/3600);
minutes = floor(Timer/60-(hours*60));
seconds = floor(Timer-((hours*3600)+(minutes*60)));

//Potiprozent berechnen
Potentiometerwert = analogRead(A6);
Potentiometerdifferenz = Potentiometerwert - Potentiometerminimum;
Potentiometerproz = 50.0 / Potentiometermax * Potentiometerdifferenz;
Potentiometeranz = 100 - (int)Potentiometerproz;

// Hinweise zur Richtungssteuerung:
 // digitalWrite(RELAISX, HIGH); // LOW = nach Osten HIGH = nach Westen
 // digitalWrite(RELAISZ, LOW); // LOW = nach Oben / HIGH = nach Unten

//  digitalWrite(RELAIS_PowerX, LOW); // LOW = Power On / HIGH = Power off
//  digitalWrite(RELAIS_PowerZ, LOW); //LOW Power On / HIGH = Power off

anemometer(); // Anemometer auswerten

// Wetter- und Lichtabhängiger Algorithmus für die Solarsteuerung
if (now.hour() == 3 && now.minute() == 0 && now.second() == 0) // Zeitpunkt für Korrektur der horizontalen 0-Position
  {
  angel_reset = 1;
  }
if (Temperatur > Mindesttemperatur)
  {
  if (Windmaximum < rpm)
    {
    storm_protection();
    }
  else if(angel >= -30 && angel_reset == 1)
    {
    angle_reset();
    }  
  else if (GM_Lumen < Mindesthelligkeit) 
    {// zu wenig Licht - die Anlage soll in die Neutralstellung fahren
    neutral_position();
    }
  else // Nachfuehrung im Normalbetrieb
    {
    solar_move();
    }
  }
// Anzeige für HD44780 2004 LCD (i2c) Display formatieren
show_display();
delay(200);
}

Java Programmier Hilfe?

Hey, mir war neulich langweilig und da habe ich mir etwas für ein Spiel, welches ich öfters spiele ausgedacht um mir mein Leben ein Stück weit einfacher zu machen:
Es gibt in dem Spiel Charaktere mit Eigenschaften, (Damage, Cool down, Range).
Diese können mit "Traits" verändert werden: z.B. ein Trait mit einem "namen" verändert den Schaden um 10%.

Jetzt wollte ich mir ein Rechner bauen in dem ich sozusagen vorher sagen kann, wie genau sich meine Stats am ende verändern.

Ich hab nach ein Paar Versuchen einen kleinen Rechner gebaut, wobei ich leider immer eine neue Methode für ein jeweiliges Trait gebaut habe.

Jetzt hab ich mir Gedanken gemacht und bin auf die Idee gekommen, dass ich anstatt für jedes Trait eine eigene Methode zu bauen doch einfach die im Rechner benutzen Werte mit den jeweiligen Traits verändern kann, z.B. so:

System.out.println(dpsCalc(DPS,CD,PlacementCap,"trait"));

wobei bei "trait" das jeweilige Trait einfach eingesetzt wird und somit die Werte mit "trait" verändert werden (damage, cool down, range).
Ich hab zuerst an Objekte gedacht und mir überlegt, ob ich nicht einfach ein Objekt von dem Typ "Trait" benutzen kann bei dem vorher festgelegt wurde, was es für Eigenschaften (dmgAmplifier, cdAmplifier, rangeAmplifier) hat, die am Ende in der Rechnung eingesetzt werden.

Jetzt bin ich leider an meine Grenzen als Anfänger gekommen und wollte fragen, wie genau ich das Problem löse bzw. ob es überhaupt geht.
--> Ein "trait" als Übergabe Wert einer Funktion die aufgerufen werden kann um die Rechnung in Abhängigkeit des Traits zu verändern.

HILFE bei der Erstellung eines langsam seitlich einslidernde Menue?

Wie in meiner Überschrift schon beschrieben möchte ich ein Menü bauen, das seitlich von rechts langsam einslidert. Für das Menü möchte ich <details> /<summary> verwenden.

So soll es mal aussehen:

Meine html-Struktur von der Navigation:

<nav id='sitenav' aria-labelledby='sitenav-label'>
    <h2 id='sitenav-label' class='visually-hidden'>Site-Navigation</h2>
    <details>
        <summary>Menü</summary>
            <ul>
                <li aria-current='page'>
                    <details>
                        <summary>Impressum &amp; rechtliches</summary>
                            <ul>
                                <li aria-current='sub-page' tabindex=0>
                                    <details>
                                        <summary>Impressum</summary>
                                            <ul>
                                                <li><a href=''>Kontakt</a></li>
                                                <li><a href=''>Fotodokumentationen</a></li>
                                                <li><a href=''>Links</a></li>
                                            </ul>
                                    </details>
                                </li>
                                <li><a href=''>Nutzungsbedingungen</a></li>
                                <li><a href=''>Datenschutz &amp; Urheberrecht</a></li>
                            </ul>
                    </details>
                </li>
                <li><a href=''>Website Erika Mustermann</a></li>
                <li><a href=''>Blog Max Mustermann</a></li>
                <li><a href=''>VLog Erika Mostermann</a></li>
            </ul>
    </details>
</nav>

Der sichtbare Hamburger Button (mit den Pseudoelementen ::after und ::before bei details / summery) ist position: sticky;

Nun könnte mir jemand bitte zeigen wie ich nun mein <ul> von rechts langsam einslidern lasse. Stoppen soll das Untermenü dann links vom Button.

Es geht mir um das Prinzip wie man es macht. Kann mir dies bitte jemand an einem einfachen Beispiel zeigen?

Bild zum Beitrag
Ask Me Anything: Blickwechsel

MaryTTS Deutsche Sprache?

Guten Tag. Ich möchte MaryTTS für meine Website benutzen. Die Englische Sprache funktioniert auch wunderbar, aber keine andere. Wie kann ich die Deutsche Sprache installieren? Wenn ich sie nutzen will, kommt das:

20:22:52.015 [I/O dispatcher 2] ERROR marytts.server - Processing failed. java.lang.Exception: Module PronunciationModel: Problem processing the data. at marytts.server.Request.processOneChunk(Request.java:567) ~[marytts-runtime-5.3-SNAPSHOT.jar:?] at marytts.server.Request.processOrLookupOneChunk(Request.java:402) ~[marytts-runtime-5.3-SNAPSHOT.jar:?] at marytts.server.Request.process(Request.java:336) ~[marytts-runtime-5.3-SNAPSHOT.jar:?] at marytts.server.http.SynthesisRequestHandler.process(SynthesisRequestHandler.java:261) [marytts-runtime-5.3-SNAPSHOT.jar:?] at marytts.server.http.SynthesisRequestHandler.handleClientRequest(SynthesisRequestHandler.java:91) [marytts-runtime-5.3-SNAPSHOT.jar:?] at marytts.server.http.BaseHttpRequestHandler.handle(BaseHttpRequestHandler.java:138) [marytts-runtime-5.3-SNAPSHOT.jar:?] at org.apache.http.nio.protocol.BufferingHttpServiceHandler$RequestHandlerAdaptor.handle(BufferingHttpServiceHandler.java:189) [httpcore-nio-4.1.jar:4.1] at org.apache.http.nio.protocol.SimpleNHttpRequestHandler.handle(SimpleNHttpRequestHandler.java:51) [httpcore-nio-4.1.jar:4.1] at org.apache.http.nio.protocol.AsyncNHttpServiceHandler.processRequest(AsyncNHttpServiceHandler.java:453) [httpcore-nio-4.1.jar:4.1] at org.apache.http.nio.protocol.AsyncNHttpServiceHandler.requestReceived(AsyncNHttpServiceHandler.java:225) [httpcore-nio-4.1.jar:4.1] at org.apache.http.nio.protocol.BufferingHttpServiceHandler.requestReceived(BufferingHttpServiceHandler.java:127) [httpcore-nio-4.1.jar:4.1] at org.apache.http.impl.nio.DefaultNHttpServerConnection.consumeInput(DefaultNHttpServerConnection.java:161) [httpcore-nio-4.1.jar:4.1] at org.apache.http.impl.nio.DefaultServerIOEventDispatch.inputReady(DefaultServerIOEventDispatch.java:147) [httpcore-nio-4.1.jar:4.1] at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:161) [httpcore-nio-4.1.jar:4.1] at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:335) [httpcore-nio-4.1.jar:4.1] at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) [httpcore-nio-4.1.jar:4.1] at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:275) [httpcore-nio-4.1.jar:4.1] at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) [httpcore-nio-4.1.jar:4.1] at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:542) [httpcore-nio-4.1.jar:4.1] at java.lang.Thread.run(Thread.java:750) [?:1.8.0_372-372] Caused by: marytts.exceptions.MaryConfigurationException: No such property: de_DE.allophoneset at marytts.util.MaryRuntimeUtils.needAllophoneSet(MaryRuntimeUtils.java:316) ~[marytts-runtime-5.3-SNAPSHOT.jar:?] at marytts.util.MaryRuntimeUtils.determineAllophoneSet(MaryRuntimeUtils.java:270) ~[marytts-runtime-5.3-SNAPSHOT.jar:?] at marytts.util.MaryRuntimeUtils.determineAllophoneSet(MaryRuntimeUtils.java:251) ~[marytts-runtime-5.3-SNAPSHOT.jar:?] at marytts.modules.PronunciationModel.process(PronunciationModel.java:175) ~[marytts-runtime-5.3-SNAPSHOT.jar:?] at marytts.language.de.Postlex.process(Postlex.java:58) ~[marytts-lang-de-5.3-SNAPSHOT.jar:?] at marytts.server.Request.processOneChunk(Request.java:565) ~[marytts-runtime-5.3-SNAPSHOT.jar:?] ... 19 more
Ask Me Anything: Themenspecials
Im gutefrage Themenspecial beantworten Verbände, Organisationen und Personen des öffentlichen Lebens Deine Fragen zu aktuellen Themen.
AMA: Polizei
42 beantwortete Fragen
AMA: Weltraum & Raumfahrt
172 beantwortete Fragen
AMA: Tabuthema Wechseljahre (mit der Influencerin blondbynana)
15 beantwortete Fragen

Funktionierender regulärer Ausdruck (CMD) um aus einer Textdatei bestimmte Zeilen mit " zu entfernen?

Eigentlich könnte man ja meinen, dass dieses Problem recht leicht zu lösen sein müsste. 

Aber aus irgendwelchen Gründen ist es das nicht, da " irgendwie für alles einen Sonderstatus hat. 

Also was ich gerne wissen würde: 

 Wie bzw. mit welchem regulären Ausdruck kann man (z.b mit einem Grepbefehl?) alle Zeilen suchen, die mit einem " anfangen ohne, dass dies zu unerwarteten Verhalten führt und z.b der Pfad nicht mehr gefunden wird bzw. keine Ausgabedatei erzeugt wird?  

 Ich hab es jetzt bereits mit dutzenden verschiedensten Varianten versucht: grep '^"' grep '^\"' grep -E '^\"' grep '^\".*' 

und noch X weiteren Variationen, aber entweder werden einfach nur alle Zeilen ausgegeben, die irgendwo im Text ein " enthalten oder es gibt Probleme mit der Erzeugung der Ausgabedatei.

Wichtig wäre in diesem Fall jedoch, dass nur der Anfang (erste Charakter) einer Zeile überprüft bzw. gematched werden soll. Scheinbar soll dies bei Grep ja mit ^ möglich sein und ein Escapen der " mit \. Funktioniert aber alles nicht!

GPT hab ich auch schon gefragt, aber der Bot ist mit der Frage komplett überfordert und gibt nur hanebüchenen Mist aus, der entweder nicht funktioniert oder sehr langsam ist (z.b Ansätze mit Powershell)

Also bevor ich jetzt noch meinen kompletten PC / CPU zu Schrott fahre: Gibt es eine effektive und schnelle Möglichkeit wie man diese Operation aus einer Textdatei alle Zeilen ohne " am Anfang = delete (möglichst mit verfügbaren Onboardmitteln) ausführen kann und falls ja wie?  

Im Idealfall sollten die Zeilen, die nicht gematched werden auch einfach direkt aus der Datei herausgelöscht werden können, anstatt jedesmal den kompletten Inhalt zu kopieren.

Irgendein Tipp?