ich denke dass viele OpenSource-/Freeware-Entwickler dies so sehen, Hut ab davor.
Und an alle Baumarktgänger, ich bin auch einer.
Cheers
Claudia
ich denke dass viele OpenSource-/Freeware-Entwickler dies so sehen, Hut ab davor.
Und an alle Baumarktgänger, ich bin auch einer.
Cheers
Claudia
>Man hey... Checkt es mal, WIE überhaupt Streits entstehen...
unter anderem weil Menschen Individuen sind.
Jeder hat seine eigene Sicht der Dinge und das
im Zusammenhang mit NUR geschriebenen Wort lässt
relativ leicht Annahmen zu wie das Geschriebene
zu interpretieren ist.
Da es keine Regel gibt die besagt, dass
zum Beispiel die Benutzung des Wortes Baumarktgerät
als Vergleich ohne Wertung zu sehen ist, kann
man auf die Idee kommen, dass dies sehr wohl wertend gemeint ist.
Ich kenne den Ausdruck zum Beispiel nur im Zusammenhang mit
nichts besonderes, 0815, minderer Qualität, NICHT vom FACHmann
-> muß also nicht so gut sein wie anderes.
(Ich sage nicht das dem so ist, sondern nur das dies durchaus so gewertet wird.)
Wenn ich also so denke und dieses nun lese und dazu noch das JEDES dieser Geräte
das kann, aber nicht ein anderes, könnte der Eindruck entstehen,
dass das andere Gerät noch weniger Qualität hat als die Geräte,
welche eh schon von minderer Qualität sind.
Im Gespräch wäre das evtl. gar nicht so passiert, da evtl. Stimmungslage dies kompensiert hätte.
In Foren ist so etwas immer schwierig und daher bin
ich der Meinung das, wenn möglich, Kritik immer zu 100% neutral sein sollte.
Also, wenn möglich, Interpretation im Keime ersticken.
Cheers
Claudia
Ich bin momentan leider Land unter ... ich hoffe ich kann mir das Anfang nächster Woche mal anschauen.
Aber gib doch bitte Bescheid wenn Du vorher schon eine Lösung gefunden haben solltest.
Cheers
Claudia
Was meinst Du mit Dennoch bleibt die Led tot... ?
was auffällt ist, das die Ausgabe GET... nicht mit dem was vor Sent IR signals steht übereinstimmt,
es ist zwar in Teilen enthalten aber nur in Teilen.
Cheers
Claudia
Vielen Dank für die Info, da hab ich wohl gleich zwei fehlerhafte Infos behalten.
Ich dachte ein char wäre immer 1 Byte groß und immer ein signed int, heisst also, vorher immer die
Referenz zur genutzten C-Version und zum benutzten compiler lesen.
Merci
Claudia
Ich dachte char wäre ein signed int?
Auch wenn ich keine Freund dieser '0' <= d UND d <= '9' bin, sollte in diesem Fall das nicht
relativ sicher sein, da ja d auch ein char ist?
Wann denkst Du kann es hier zu Problemen kommen? Wenn x auf einmal undefininert wäre?
Danke
Claudia
Solange Du nur Nummern schickst, brauchst Du nur die Prüfung nach & kommentieren ala
for (int i = 1; i <= readString.length(); i++)
{
char d =readString.charAt(i);
if(d >= '0' & d <= '9')
serialDataIn += d;
// if (d == '&') // [Handle delimiter]
// {
rawCodes[counter]=serialDataIn.toInt();
serialDataIn = String("");
counter = counter + 1;
// }
}
Alles anzeigen
wobei die Zeile 4 mich verwirrt, ich würde erwarten das die so aussieht
if(d >= '0' && d <= '9')
besser noch
if((d >= '0') && (d <= '9'))
oder wenn unterstützt und gefällt
if('0' <= d <= '9')
Alles anzeigen
Wobei das ganze ansich, meiner Meinung nach, etwas geändert gehört. Aber erstmal kleine Änderungen und
dann wenn es funktioniert und gewünscht ist kann man immer noch ein bisschen ändern.
Cheers
Claudia
Also wenn ich den Code richtig deute dann ist die
0 = der Wert der counter variable und
045075045075015507504507504507504507004507004507001600750155075045075015507501550750155 = readString
Wenn ich mir nun anschaue, dass laut Code die variable counter nur erhöht werden soll wenn ein & in readString gefunden wurde,
dann macht das für mich Sinn das counter immer noch 0 ist, da im readString kein & vorhanden ist, oder?
Cheers
Claudia
Du mußt deine Abfrage
PlayerisMovies = xbmc.getCondVisibility("VideoPlayer.Content(movies)")
z.B. als letztes in der while PlayerisMovies==True Schleife aufrufen
damit bei jedem Schleifendurchlauf der neue Status ermittelt werden kann.
while PlayerisMovies==True:
...
PlayerisMovies = xbmc.getCondVisibility("VideoPlayer.Content(movies)")
oder aber Du prüfst gleich am Anfang
Da die Funktion getCondVisibility nur die Werte True (1) or False (0) zurück gibt und eine
while Schleife nur ausgeführt wird wenn eine Bedingung True ist reicht das aus.
Also
while xbmc.getCondVisibility("VideoPlayer.Content(movies)"):
...
ist gleich dem
while xbmc.getCondVisibility("VideoPlayer.Content(movies)") is True:
...
Ein Hinweis, True, False und None sind Singleton und sollten mit is geprüft werden.
Auch hier wirst Du wahrscheinlich zu 99,9% nie in ein Problem laufen wenn Du mit == prüfst,
solange Du nicht eine Bibliothek einbindest wo dieses auf einmal zum Thema wird.
Cheers
Claudia
@tjost - du hast doch einen validen Ansatz gefunden, also würde ich die Verständnisgrenze noch nicht ziehen
Wenn Du vor der while true Schleife das aktuelle Fenster speicherst und innerhalb dann abgleichst, dann hast Du
einen Punkt wo Du die Schleife abgebrochen wird also in etwa so
previous_window_id = xbmcgui.getCurrentWindowId()
while xbmcgui.getCurrentWindowId() == previous_window_id:
...
Vorsicht: ich habe wieder Leerzeichen genutzt
Cheers
Claudia
Das würde ich nicht als Fehlermeldung sehen solange nicht der Cron Probleme bereitet.
Grund: der RPi hat keine batteriegepufferte Clock wie zum Beispiel ein PC, heisst, nach jedem Neustart
wird ein Zeitabgleich (zum Beispiel über NTP Protokoll) nötig und der Cron hat nun mitbekommen,
dass seine Startzeit vom aktuellen Datum abweicht. Also im ersten Moment eine Info.
Läuft den ein Cronjob? Falls nicht, vlt mal einen
systemctl restart cron
ausführen
Cheers
Claudia
Absolut richtig, dass war. meine ich, auch damals eine Anmerkung von mir - bin mir nicht mehr 100%ig sicher.
Solange eine Schleife läuft ist alles andere blockiert. In solch einem Fall würde man auf events/mutexes/semaphoren etc...
zurückgreifen.
Sprich, innerhalb der Schleife wird ein Zustand abgefragt welcher entscheidet ob er in der Schleife bleibt oder abbrechen soll.
Damit dies aber funktioniert muß der TriggerCode, der der dafür sorgt das die Schleife unterbrochen werden soll unabhängig
von deinem Addon-Mainloop laufen. Hier SCHEINT sich die Monitorklasse zu eigenen, da diese einige Events bekommt.
Bevor ich nun aber anfange deinen Code zu anaylsieren ob dieser sich dazu umbiegen läßt, die Frage hast Du zukünftig vor
noch weitere Features einzubauen? Wenn ja, vlt. mal kurz erläutern nicht das ich mir die Arbeit mache und dann alles
hinfällig wird weil Du noch anderes implementieren willst.
Natürlich nur, wenn Du willst.
Cheers
Claudia
Siehe post 16
Cheers
Claudia
@tjost bin verwirrt, lief es mit der Funktion oder nicht? Und sprichst Du nun von deinem Addon oder nur vom animate.py mit Funktion?
Das while True ist doch innerhalb der Funktion, was meinst Du mit "ohne while true wird nichts angezeigt".
Cheers
Claudia
Ist schon seltsam, oder?
Heisst das dann das der Strom, der nötig ist um Schritte zu machen den Motor in Wallung bringt und dann der
Strom der noch fließt wenn auf LOW gesetzt ihn in Wallung hält,
aber einzele HIGH LOWS nicht genügend Strom liefern um ihn in Wallung zu bringen?
Das ist doch alles Rakentwissenschaft - kann der net einfach a'sgehn wenn I's soag.
Cheers
Claudia
Ah ok, bin davon ausgegangen dass dies ein Teil des Kodi-Addon Codes ist.
Eigentlich sollte es laufen, wenn Du die Zeilen 93-126 vom animate.py mit der Funktion ersetzt
und danach dann den Aufruf machst.
Kannst Du das mal probieren ob das tut?
Wie ist den der Y Wert in deinem AddonCode gesetzt, nimm zum testen mal diesen Wert.
1 zu 1 wirst Du es aber nicht ins Addon kopieren können aber wenn es läuft dann können wir weiter schauen.
Cheers
Claudia
Keine Ahnung ob das funktioniert, da Du ja nur einen Auszug aus dem kompletten Code anbietest,
aber probiere es mal so (alle von mir geänderten Stellen sind noch als kommentierte Version vorhanden).
Den y-Wert habe ich einfach auf 10 gesetzt, dass mußt Du probiere wie das am Display aussieht.
Aufgerufen wie die anderen auch
running('MeinText')
oder mit font
running('Mein Text', font28)
def running(msg, font=font36):
pos = startpos
while True:
# Clear image buffer by drawing a black filled box.
draw.rectangle((0,0,width,height), outline=0, fill=0)
# Enumerate characters and draw them offset vertically based on a sine wave.
x = pos
# for i, c in enumerate(text):
for c in msg:
# Stop drawing if off the right side of screen.
if x > width:
break
# Calculate width but skip drawing if off the left side of screen.
if x < -10:
# char_width, char_height = draw.textsize(c, font=font36)
char_width, char_height = draw.textsize(c, font)
x += char_width
continue
# Calculate offset from sine wave.
# y = offset+math.floor(amplitude*math.sin(x/float(width)*2.0*math.pi))
# Draw text.
# draw.text((x,y), c, font=font36, fill=255)
draw.text((x,10), c, font, fill=255)
# Increment x position based on chacacter width.
# char_width, char_height = draw.textsize(c, font=font36)
char_width, char_height = draw.textsize(c, font)
x += char_width
# Draw the image buffer.
disp.image(image)
disp.display()
# Move position for next frame.
pos += velocity
# Start over if text has scrolled completely off left side of screen.
if pos < -maxwidth:
pos = startpos
# Pause briefly before drawing next frame.
time.sleep(0.1)
Alles anzeigen
Cheers
Claudia
Ob das jetzt weiterhilft weiß ich nicht aber
LOW
The meaning of LOW also has a different meaning depending on whether a pin is set to INPUT or OUTPUT. When a pin is configured as an INPUT with pinMode(), and read with digitalRead(), the Arduino (ATmega) will report LOW if:
When a pin is configured to OUTPUT with pinMode(), and set to LOW with digitalWrite(), the pin is at 0 volts (both 5V and 3.3V boards). In this state it can sink current, e.g. light an LED that is connected through a series resistor to +5 volts (or +3.3 volts).
Hört sich nach deinem Problem an, oder? Der Motor zieht weiterhin Strom und bleibt warm!?
Cheers
Claudia
Könnte es sein, das der Motor mit seinen Steps noch nicht fertig ist und daher den stop ignoriert?
Cheers
Claudia
Jep, war bei mir das Problem auf dem RPi3. Kam die Fehlermeldung das ldd mit ./storage.../libdevine.so einen Exit größer 0 auslöste.
Hab die alte widevine lib genommen und es tat wieder.
Edit: Hab mir gerade das Log von aeppsi angeguckt, und ja, genau den Fehler hatte ich auch.
Cheers
Claudia