Posts by Andreas

    Hallo silverstar,


    aus reinem Interesse, ob und wie mein Tutorial aus dem Jahr 2013/2014 noch funktioniert.


    In den Abschnitten 29.18.2 und 29.18. 3 des Icon-Tutorials teil 29 ist ausführlich beschrieben, wie man einen Eintrag ins Applikationsmenü erzeugt und wie man daraus einen Desktop-Eintrag erzeugt. Das hat eben gerade auch auf einem RPi 4B funktioniert.


    Das Terminal-Programm dann allerdings zu füttern, um etwas bei dessen Start zu veranlassen, ist dann eine ganz andere Aufgabe, die sich durch

    Code
    man lxterminal

    einer baldigen Lösung zuführen lässt. Bereits die erste Option -e führt zum Ziel. Die Option --working-directory mag ja nach zu startender Anwendung noch erforderlich sein.



    Beste Grüße


    Andreas

    Hallo Ralf,


    sicherer wird es, wenn Du mit einem Programmierer der engeren Auswahl eine NDA (Verschwiegenheitserklärung) abschließt, BEVOR du Deine Idee in Form eines Lastenheftes übergibst. Damit erhöhst Du die Hürde, dass sich jemand Deiner Idee annimmt und selber vermarktet.


    Üblicherweise erkennst Du am Angeboit, ob der Programmierer die Aufgabenstellung verstanden hat und ob dessen Herangehensweise sich Deinem Ziel anzunähern in der Lage sein kann.


    Bei größeren Projekten sollte der Programmierer in einem Pflichtenheft beschreiben, wie er sich die Umsetzung vorstellt und in einem technischen Design, wie dort hinkommt, wo Du es erwartest.


    Je genauer Deine Spezifikation ist, umso einfacher ist die Umnsetzung für den Programmierer.



    Beste Grüße


    Andreas

    Hallo 4711,

    Scvhau mal nach OpenCV - damit kannst du per Kamera Objekte vermessen. Ziemlich millimetergenau im günstigen Fall.

    In Youtube gibts zahlreiche Videos mit anschaulichen Beispielen.

    das funktioniert natürlich auch ohne OpenCV.


    Bei bekanntem (konstantem?) Abstand Objekt zu Kamera ergibt sich die Objektgröße über den bekannten Strahlensatz oder über Höhe = Abstand * sin(vom Objekt aufgespreizter Winkel)


    Das kann jeder moderne Rechenschieber.


    Oder eine einzeilige Funktion in jeder beliebigen Programmiersprache.


    Beste Grüße


    Andreas

    Hallo Jürgen,


    Ja, ich.


    Für ein Beratungsprojekt sollte ich verschiedenste Einplatinen-Räscheknäschte und -Controller vorstellen und für aktuelle Problemlösungen in Erwägung ziehen. Da kam einiges zusammen, da ich da großzügig zugelangt habe. Da kam ein großer Beerensalat zusammen. Und auch die Welt der micro-Controller hört nicht bei Arduino auf. Da hat es mir der Nucleo-64 F116re besonders angetan.




    Das bislang Geniale am Asus Tinker: Icon läuft mit einer Geschwindigkeit, die beeindruckend ist.


    Ein typischer Benchmark misst dabei die maximalen Laufzeitunterschiede bei einem bestimmten Algorithmus.

    RPi: 50%

    PC: 3%

    ASUS TINKER: knapp 1%


    Das heißt, das Teil braucht sehr exakt die gleiche Zeit.

    Das eröffnet dann ganz andere Anwendungsmöglichkeiten, bei denen es um das Abarbeiten innerhalb fester Zeiten geht.



    Beste Grüße


    Andreas

    Hallo Jürgen,

    Hart am Wind heizt das Teil durch den Garten (Sorry, Kopfkino).


    MfG


    Jürgen

    Du hast Dein Kopfkino - ich habe die Teile im echten Leben gesehen. Du schlenderst gedankenverloren am Strand entlang. Kilometer weit weg, siehst Du irgendwas mit Segel - und denkst nichts weiter - ischa weit weg. 20 m weiter sausen dir segelbetriebene Vehikel mit 1 oder 2 Personen drin oder drauf mit mindestens 80 Sachen nur wenige Meter an dir vorbei.

    Garantiert ohne Akkubetrieb, garantiert ohne Solarzelle.


    Und plötzlich siehst du Markierungen im Sand mit anderen Augen. AHA!


    Und bei der Geschwindigkeit machen dann auch kleine Windräder Sinn, um einen Akku zum Betrieb des RPi oder was auch immer zu laden.


    Beste Grüße


    Andreas

    Hallo zusammen,


    im Dezember habe ich den Auftrag bekommen, ein Reinraum-Monitoring-Programm zu entwickeln. Das Programm macht schon lange, was es soll. Aber ein paar Paranoia sollen noch hinein.


    Eines davon besteht darin, einen Controller auszulesen, auf dem die Daten gesammelt weden. Diese Daten landen in einem Download-Verzeichnis der Anwendung. Um zu verhindern, dass irgendjemand eine manipulierte Version der Daten bereitstellt, die dann von der Anwendung verarbeitet werden, soll das Download-Verzeichnis einfach gelöscht werden, wenn mehr als eine Datei vorhanden ist - anstatt sich mit der Frage zu quälen, welche von beiden Dateien nicht manipuliert sein könnte.


    Frickler-Pipe:

    Code
    find .../MCM_Download -type f | wc -l"

    ermittelt die Anzahl der Dateien im anwendungseigenen Download-Verzeichnis.


    Und in Icon sieht das dann so aus [Code-Ausschnitt]


    Statt ... steht dann natürlich der Pfad zum Verzeichnis.

    Hallo zusammen,


    ich beziehe mich auf diesen Thread.


    Wenn man mich hier persönlich beleidigen darf (wie hier zitiert), nur weil ich in aller Höflichkeit und Form auf einen Fehler meigrafd's hingewiesen habe, der übrigens von MEHREREN (!) anderen Usern bestätigt wurde, dann habt Ihr mich hier alle das Letzte Mal gesehen.


    Es gibt Foren, in denen ein anderer Umgangston gepflegt wird - in denen man auf Fehler hinweisen darf und in denen Fehler klar gestellt werden können.


    Viel Spaß im Sandkasten!



    Andreas

    ... habe ich mal gemeldet... Sollen anderen befinden ... was sie damit anstellen.


    Es geht um Deine Formulierungen, auf die ich mich bezog. Nicht auf, das was andere Dir vorgeschlagen haben, wie Du hättest schreiben sollen. Du schriebst. Nicht andere für Dich. Dieses Jahr geht so weiter wie 2014/2015/2016/2017 verliefen.

    Mein lieber meigrafd,


    mein Beitrag war nicht provokant. Ich habe lediglich auf eine Deiner fehlerhaften Aussagen hingewiesen und diese klar gestellt. Denn leider vermuten vielen jüngeren User, dass Du immer alles besser weißt. Weil Du ja immer jeder Wurst Deinen Senf aufdrückst.


    In dem Fall lagst Du leider mal wieder daneben. Es ist mein gutes Recht, dies tun zu dürfen. Und wie die Reaktionen der anderen gezeigt haben, stehst Du mit Deiner Ansicht alleine da - weil eben falsch.


    Ob Du zu der schwammigen Formulierung gegriffen, hast, weil Du es einfach nicht besser weißt oder eines der faulen Eier gelegt hast, bleibt Dir überlassen. Interessiert wohl auch niemanden hier. Du kannst programmieren wie Du willst, Deine Programme können sonstwas treiben. Sie können laufen oder unerklärlich abstürzen. Aber zwinge nicht immer Deine Ansichten allen anderen auf. Insbesondere denen nicht, die mehr verstanden haben als Du.


    Beste Grüße


    Andreas

    Hallo Nafetz,


    Wie kann ich herausfinden, woran das liegt? Habe den Debug-Mode aktiviert und direkt nach einem Reboot die Dateien kodi.log und kodi.old.log gesichert. Nach was kann ich jetzt suchen? z.B. einen "critical Error" vor dem Reboot oder ein "crashed" nach dem Reboot konnte ich bislang nicht finden...

    einfach mal die letzten 10, 20, 50 Zeilen der .log-Dateien senden?


    Dann erführen wir, warum welcher Prozess einen Reboot veranlasst.


    Hast Du einen Watchdog aktiviert? Wenn ja, deaktiviere ihn einfach mal... Es gibt nämlich weniger Gründe, dass ein Watchdog das System zu einem Reboot zwingt als man denkt.



    Beste Grüße


    Andreas

    Hallo meigrafd,

    Und nun denk mal noch weiter... Wenn man ein Programm zum abspielen startet und etwas anderes abspielen will, was macht man dann sinnvollerweise? Ich würde dann nicht den Prozess beenden und neu starten, sondern den Prozess dahingegend beeinflussen. Kann man das mit system(); ? As Far As I Know, nein. Das alleine ist für zumindest mich bereits ein "echter Vorteil gegenüber system();".


    Rät hier jemand lieber system(); anstatt popen(); zu verwenden :?: Wenn nicht weiß ich wirklich nicht worüber wir uns hier überhaupt unterhalten...

    Ich schicke da zwei Signale. Und dann läuft das Programm so weiter, wie ich das haben will - nur dass der Prozess niemals gekillt oder gar neugestartet zu werden brauchte. Wie gesagt, das Stichwort IPC wurde bereits ins Spiel gebracht.


    Anscheinend spielt es aber einen großen Unterschied in der Programmierung. Weiß man, dass ein Programm bei einem Absturz bei nächster Gelegenheit über crontab eh wieder angestoßen wird, dann muss das Programm nicht mal bis zur zweiten Ereignisbehandlung durchhalten.


    Will man aber Anwendungen entwickeln, die autonom und zuverlässig ihre Aufgaben erfüllen, ohne negativ aufzufallen, dann ist ein wenig mehr Grips in Ressourcenplanung [der Stapelspeicher ist vieles - aber weit von Unendlich entfernt!], Kommunikation und Zusammenspiel etc. zu investieren.



    Beste Grüße

    Andreas

    Hallo Manul,


    Dann solltest Du sie aber auch belegen. Die popen-man page ist zumindest anderer Auffassung:


    hm ... und wer liegt richtig? Wer hat erfahrungsgemäß belastbareres Wissen?


    Und wer glaubt im Gegensatz dazu, immer Recht zu haben - und setzt es dann auch lautstark durch? Bis aber auch alle Fakten dagegen sprechen? Fakten, die vorher zwar auch schon da waren, aber mit dem Mantel des Schweigens bedeckt wurden.


    Ich kann mich ganz dunkel erinnern, mal was zu dem Unsinn fallen gelassen zu haben, innerhalb von Pseudo-Interrupt-Routinen umfangreiche Aktionen wie formatierte Ausgaben von Fließkommazahlen, komplizierte Berechnungen bis hin zum Start und Abschluss externer Anwendungen ablaufen zu lassen. Haben damals viele gemacht (wenn auch nur in Python). Mann, was haben dreamshader, wenige andere und ich da Prügel einstecken müssen! Irgendwann hat sich das dann aber auch als "wahr" herausgestellt, denn der in den Pseudo-Interrup-Routinen entschlackte Code lief plötzlich ohne Absturz nach definierter Laufzeit.

    Heute wird allein deshalb sogar in Python-Kreisen von "zuviel" im Pseudo-Interrupt abgeraten. :conf: raten passt in dem Zusammenhang übrigens ganz gut.


    Lass ihn poltern. Was in Assembler, C und etlichen anderen Programmiersprachen seit Jahrzehnten etabliert ist und bis ins Betriebssystem Eingang gefunden hat, kann so schlecht nun nicht gerade sein.


    Nur weil jemand versucht, solche Ansichten in Python zu etablieren, müssen wir bei der Programmierung in C noch lange nichts übernehmen, was dem konträr gegenübersteht.



    Beste Grüße


    Andreas

    Hallo zusammen,


    Früher hat man Ergebnisse auch noch überschlägig im Kopf auf Plausibilität geprüft :)</OT>sorry


    hm... ich hatte es fast schon verdrängt... diesen Mathe-Test in der Schule...


    Der Lehrer hat mehrere Aufgaben herausgegeben. Da war für jeden was dabei. Als ich zur letzten Aufgabe kam, war nicht mehr genug Zeit, um zu verstehen, um was es da eigentlich ging. Der Lösungsansatz hat sich mir spontan nicht eröffnet. Ich schaute mir die Zahlen an und schrieb dann hin

    "Ich schätze das Ergebnis auf 20."

    Richtige Lösung 18.


    Ich fand mein Ergebnis richtig toll. So aus der Hüfte geschossen die Zielscheibe zum Wackeln gebracht - ist doch nicht so schlecht!


    Bei der Führerscheinprüfung hat einer der Fahrschüler einen Bremsweg ausgerechnet... ich meine wirklich gerechnet. Er kam bei einer Geschwindigkeit von 100 km/h auf 3 cm Bremsweg.


    Der Fahrlehrer, der sich davor wirklich Mühe gegeben hatte, den Bremsweg zu vermitteln, meinte nur: "Dann kannst Du auch gleich gegen eine 100 cm dicke Betonwand fahren. Die Wirkung ist die gleiche wir bei 3 cm Bremsweg. Der Vorteil der Betonwand ist die deutlich größere Knautschzone, die dabei voll zur Geltung kommt."

    Kapiert hat der Fahrschüler es dann aber immer noch nicht.


    Beste Grüße


    Andreas

    Hallo pgloor,


    wahrscheinlich gehen noch viel mehr...


    Teile die Anzahl der insgesamt vorhandenen GPIO-Pins(*) durch die Anzahl der GPIO-Pins, die für I2C draufgehen, und multiplizierst mit 104, dann sollte das auch möglich sein.


    Denn I2C kannst Du auch mit anderen GPIO-Pins "bitbangen".


    (*) Und das ComputeModule hat davon noch ein paar mehr...



    Beste Grüße


    Andreas