Hinweis: Du hast die ersten beiden Bildschirmfotos mit unterschiedlichen Revisionen angefertigt. In Revision 297, in der ich den Skriptaufruf korrigiert hatte, wurde gleichzeitig noch die Zahl in Zeile 61 reduziert. Deshalb erscheinen im zweiten Bild (Revision 297) nur noch 10 Werte, während es vorher mehr waren. Das können wir uns hier erlauben, weil Dennis im Bash-Skript schon Mittelwerte bildet.
Ne das ist ja wohl der Gunter, warum sollte ich da etwas zu ungunsten manipulieren!
Ich habe gestern Abend eine Frisch verpackte Neu SD-Karte auf einen Neuen Frisch verpackten Raspberry Pi 2, Neu komplett aufgesetzt (hat übrigens Dank Doku. keine 60 min. gedauert ohne Fehler).
Zum Glück hast Du ja ein Ereignisprotokoll integriert:
Dateianhang:
Protokoll_Rev.297.jpg
Dateianhang:
Rev.297.jpg
Zwischen Bild eins und Bild zwei habe ich weder die Revision noch sonst was geändert!!!!
Wenn Du aber mal genau hinschaust gibt es doch offensichtlich einen Gewaltigen Unterschied. Bild eins ist das Kalibrieren des US.-Sensors dort wird 40 mal der Wert ausgegeben auch in der aktuellen Revision und Bild zwei eine Auswertung der Pegelsensoren.
Dafür ist Doch die 40 in GetGenau verantwortlich und nicht DER PAUL
------------------------------------------------------------------------------------------------------------------------ /** ******************** * cPegelHCSR04Sensor::Kalibriere * Stellt fest, wie hoch ueber dem Nullpegel der Sensor befestigt ist **********************/ function Kalibriere($iNull) { /** $Summe = 0; for ($i=1;$i<11;$i++) { $wert[$i] = $this->Messen(); $Summe += $wert[$i]; } $this->myKalib = $Summe / 10 - $iNull; */ $this->myKalib = $this->GetGenau(40) - $iNull; return $this->myKalib; } ------------------------------------------------------------------------------------------------------------------------
Also lass bitte solche .........
Fischkopf hat geschrieben:
Bei mir klappt alles wunderbar mit exec.
Pfiffikus hat geschrieben:
Dann nimm diese Art des Skriptaufrufes und alles ist gut.
Nein, damit war das hier gemeint:
Dateianhang:
$resultat=exec($Befehl, $eingang).jpg
Gunter in Deiner Teich-Steuerung wird ja sonst, die $retval (0) bzw. (1) Fehlermeldung mit den Pegelständen überschrieben!!!!
Das Heist bei system bekommst Du für $retval int(0) bzw. int(1) ausgegeben.
Dateianhang:
4_ $resultat=system($Befehl, $retval.jpg
Bei exec bekommst Du für $retval array(1) ausgegeben
Dateianhang:
2_$resultat=exec($Befehl, $retval.jpg
und wenn Du die mittels: echo "<hr />Rückgabewert ist retval0: $retval[0] <br><br>"; anschaust stehen dort dann der Pegelwert und nicht das was Du erwartest.
Dateianhang:
3_$resultat=exec($Befehl, $retval.jpg
Pfiffikus hat geschrieben:
Pfiffikus, der sich noch einmal genau ansehen wird, weshalb der Pegelverlauf ohne Daten bleibt
Yes
Pfiffikus hat geschrieben:
Pfiffikus, der sich freuen würde, wenn Du eine Klasse für diesen mcp3008 comitten könntest
Bis dato hat doch keiner diese PFENNIGS-Artikel also macht es keinen Sinn.
Mit dem comitten und damit verbundenen Zurverfügungstellen im WWW ist es immer so eine Sache, da ich nicht alles selber erfunden habe weis ich nicht genau wem ich damit dann gewaltig auf den Schlips trete. Einige Anwaltskanzleien warten nur auf irgendwelche berechtigten oder auch pseudo Ansprüche, die verdienen damit Ihre €, $. Erst kürzlich berichtete Hier ein User öffentlich das eine Firma X Sachen von einer Firma Y nachgebaut hat, das ist ja soweit nicht schlimm. Der User verwendete aber eindeutige Firmennamen und Produktbezeichnungen. Die Anwälte der Firma würden sich die Hände reiben wenn jemand ...........
Ich bin aber gerne bereit dabei zu helfen, Treiber Installation, wo bekomme ich den Input her, wie füge ich es zusammen usw....
Pfiffikus, der sich noch einmal genau ansehen wird, weshalb der Pegelverlauf ohne Daten bleibt
Yes
Hallo Gunter, der Pegelverlauf ist ohne Daten, da die Datenbank unter messwerte auch keine Daten des installierten HCSR04 Sensors aufweist.
Lediglich unter den sensoren ist die Kalibrierung aufzufinden.
Fehlt hier evtl. der prefWert in der PEGEL_CONFIG ?
Da ich die Datenbank so nicht mag, kenne ich mich damit nicht aus. (Es sei denn, ich könnte die Datenbank auf ein Externes Speichermedium installieren und so wie hier nutzen, ist aber eigentlich nicht nötig)
Registriert: Mo 14.Nov 2005 20:39 Cash on hand: 5.741,65 Taler Beiträge: 14531 Wohnort: 07548 Gera
Hallo Paul,
Fischkopf hat geschrieben:
Ne das ist ja wohl der Gunter, warum sollte ich da etwas zu ungunsten manipulieren!
niemand hat Dir unterstellt, Du hättest irgendetwas manipuliert. Ich war nur der Meinung, Du hattest Dich über die unterschiedliche Anzahl der Werte gewundert, weil die Pfeilspitzen dort hin gezeigt hatten. Aus diesem Grunde hatte ich mir diesen Hinweis erlaubt, dass ich diesen Standard-Wert in der letzten Revision verändert hatte, ohne das im Forum zu erwähnen.
Fischkopf hat geschrieben:
Wenn Du aber mal genau hinschaust gibt es doch offensichtlich einen Gewaltigen Unterschied. Bild eins ist das Kalibrieren des US.-Sensors dort wird 40 mal der Wert ausgegeben auch in der aktuellen Revision und Bild zwei eine Auswertung der Pegelsensoren.
So ist es, beim Kalibrieren darf es schon ein wenig genauer sein. Aus diesem Grunde wird nicht mit dem Standardwert, sondern mit der 40 gearbeitet.
Die Messwerterfassung mit dem Skript von Dennis funktioniert jetzt. Wenn ein Programmteil die Funktion Get() der Sensorklasse aufruft, kommt ein sinnvoller Wert heraus. Das zeigt auch Dein Bild mit dem Pegelstand der Vorkammer. Damit kann man die Klasse cPegelHCSR04Sensor erstmal so lassen, bis man Zeit für die Optimierung findet. Der Fehler, der die Protokollierung verhindert, muss außerhalb dieser Klasse zu suchen sein. Das ist ja das schöne an der objektorientierten Programmierung.
Fischkopf hat geschrieben:
Pfiffikus hat geschrieben:
Pfiffikus, der sich freuen würde, wenn Du eine Klasse für diesen mcp3008 comitten könntest
Bis dato hat doch keiner diese PFENNIGS-Artikel also macht es keinen Sinn.
Hier haben wir ein Henne-Ei-Problem, aber leichter lösbar.
Solange diese Pfennig-Artikel nicht von unserer Software unterstützt werden, wird sich kaum jemand solche Teile bestellen und hinlegen. Darüber bin ich auch recht froh. Denn hätten jetzt schon 5 oder 6 Leute solche Bausteine erworben, dann gäbe es hier regelmäßig Nachfragen, wann die Dinger endlich mal von der Teichsoftware unterstützt werden. Und wenn die Klasse dann nicht zeitnah ergänzt werden, gibt es Enttäuschungen.
Anders herum, so wie es jetzt läuft, ist es mir lieber. Jemand, der schon so einen Baustein im Einsatz hat, stellt uns sein Skript zur Verfügung, schreibt die dazugehörige Klasse und das wird comittet. Und wenn dann ein Benutzer merkt, dass man auch solche analogen Messungen durchführen kann, dann werden sich nach und nach interessierte Bastler einen solchen Schaltkreis bestellen und die Schaltung nachbauen.
Fischkopf hat geschrieben:
Mit dem comitten und damit verbundenen Zurverfügungstellen im WWW ist es immer so eine Sache, da ich nicht alles selber erfunden habe weis ich nicht genau wem ich damit dann gewaltig auf den Schlips trete.
Diese Bedenken sind berechtigt. Bisher habe ich nur Bildmaterial in die Software eingebaut, für die ich die Rechte beschafft habe oder das gemeinfrei ist. Bei Code ist es ähnlich. Es sind gemeinfreie Teile in die Software eingebaut (Datenbankroutinen aus dieser Forensoftware, Grafikerzeugung,..) oder es wurden Dinge veröffentlicht, die auf unserem Mist gewachsen sind. Selbst wenn ich einzelne Zeilen aus Anleitungen kopiert habe, ist das zulässig, denn diese Einzelbausteine erreichen noch keine Schöpfungshöhe, die einen urheberrechtlichen Schutz gewährleisten.
Fischkopf hat geschrieben:
Einige Anwaltskanzleien warten nur auf irgendwelche berechtigten oder auch pseudo Ansprüche, die verdienen damit Ihre €, $. ... Der User verwendete aber eindeutige Firmennamen und Produktbezeichnungen.
Hier geht es eher um Markenrechte. Soweit mir bekannt ist, werden die in unserem Falle nicht berührt. Und wenn Du in diesen Dingen Fragen hast, her damit. Das klären wir schon ab. Solche Bedenken müssen Dich nicht bremsen.
Pfiffikus, der keine Softwareteile in den Stamm integrieren wird, bei denen er rechtliche Bauchschmerzen hat
Gespeichert wird auch nichts daher klappt weder Steuerung noch Regelung.
Der Knackpunkt ist hier Doppelt und Dreifache übertriebene Mittelwertbildung.
Wenn Du den Schmalz hier Raus wirfst klappt auch wieder das Speichern in der Datenbank!!! ________________________________________________________________________________ /** ******************** * cPegelHCSR04Sensor::GetGenau Liest die Entfernung des Sensors oefters aus **********************/ function GetGenau($iAnz = 10) {
// Schiebe das Intervall von 0 bis 11000 mm $maxtreffer = 0; $Mittelwert = 0; for ( $i=0 ; $i<12000 ; $i++) { $treffer = 0; // Zaehle die Treffer foreach ($wert AS $Pkt) { if (($Pkt > $i-4) AND ($Pkt < $i+4)) $treffer++; }
// Wenn mehr Treffer als $maxtreffer, dann aktualisiere $Mittelwert und $maxtreffer if ($treffer > $maxtreffer) { $maxtreffer = $treffer; $Mittelwert = $i; }
// Wenn ueber $iAnz/2 Treffer vorzeitiger Abbruch des Schiebens if ($treffer > $iAnz / 2) break; }
// Bei defektem Sensor if ($Mittelwert < 1) return 0; // Das ist etwa die Mitte des Intervalls, liefert die in PHPUnit vorgegebenen Messwerte return $Mittelwert+3; } ................................... $this->myKalib = $this->GetGenau(40) - $iNull;
________________________________________________________________________________ Warum liest Du nicht einfach wie damals besprochen die Werte aus dem echolot.py, dort war doch schon von Dir der Wunsch: #--------------------------------------------# #----------Mittelwert ermitteln--------------# #--------------------------------------------# def GetAverage(lDistance): #Listenlaenge ermittteln lengthList = len(lDistance)
desweiteren überlas doch den User die Wahl #Wie oft soll gemessen werden Counter = int(sys.argv[3])
also $Befehl = 'sudo '.$datei.' '.$pins[0].' '.$pins[1].' .$pins[2]';
Manchmal ist weniger mehr, dann klappt DEIN PHP.SKRIPT auch wieder, aber Leider konntest Du HIERBEI keine +P. Sammeln.
Ich lösche die SD-Karte nun wieder, dann habe ich auch keinen Anlass mehr hierzu Kritik zugeben und ziehe mich zurück, der Laba Hannes kann das übernehmen.
Ps. Manchmal verdrehst Du einfach die Sachlage wie ein Politiker, warum (alles nur Hobby zum Spa̱ß, schon vergessen ?)
Registriert: Mo 14.Nov 2005 20:39 Cash on hand: 5.741,65 Taler Beiträge: 14531 Wohnort: 07548 Gera
Hallo Paul,
Fischkopf hat geschrieben:
Gespeichert wird auch nichts daher klappt weder Steuerung noch Regelung.
die Ursache, warum bei mir keine Werte aufgenommen worden sind, habe ich gefunden. Ich hatte die ganze Zeit mit dem Stamm der Software gearbeitet. Aber schau mal die Cron-Zeile an!
Dateianhang:
Testraspi1.png [ 78.1 KiB | 4852-mal betrachtet ]
Nun zeichnet er wieder brav die Werte auf.
Die Klasse muss in jedem Falle noch einmal optimiert werden. Insbesondere das Kalibrieren dauert unnötig lange.
Pfiffikus, der darauf hinweist, dass man diese Kalibrierung nur einmal bei Inbetriebnahme anklicken muss
Registriert: Do 03.Jan 2013 13:07 Cash on hand: 3.339,23 Taler Beiträge: 646
Hallo Zusammen,
erst einmal möchte bei euch für den Support bedanken.
Dazu fällt mir eine kleine Geschichte ein.
Frei zitiert: " Der Professor hält im Unterricht ein Buch hoch und ruft. "Dieses Buch ist rot"
Die Klasse schaut ungläubig und wiederspricht, "Nein, es ist schwarz"
Der Professor antwortet " Das ist falsch, es ist rot"
Die Klasse wiederspricht wehement " Nein es ist schwarz"
Darauf dreht der Professor das Buch um und die Rückseite ist rot.
Er sprach darauf: "Sage niemals jemanden, er liege falsch, solang du das Problem nicht aus seiner Sicht gesehen hast" "
Also bitte nicht falsch verstehen, aber wir machen das hier alle nicht um Reich zu werden. Somit erst einmal ein Dank an alle die hier mitgewirkt haben.
Ich arbeite im Bereich der Entwicklung und weiß, dass man sich z.B. bei einigen Features nie einigen wird und es letzendlich immer den EINEN geben wird der die Entscheidung treffen muss oder wird.
Fischkopf hat geschrieben:
Hallo Gunter, ne tut mir leid, aber leider kannst Du den Teil der Steuerung bis Dato knicken.
Hallo Paul, ja ich sehe hier auch noch Verbesserungspotenzial ohne mich jetzt mit PHP groß auszukennen. Aber das hat Pfiffikus ja schon eingeräumt.
Fischkopf hat geschrieben:
Beim Kalibrieren macht Du mindestens 400 Messungen. Was soll das alles?
Hier sehe ICH sogar einen Vorteil: Es passiert manch mal, dass aus irgendwelchen Gründen der Raspberry nicht die korrekte Länge ermittelt. Siehe bei meinen Oszilloskop Aufzeichnungen bzw , da sind unter bestimmten Umständen einige Ausreißer dabei, die auch mal gerne 3 oder 4 mal hintereinander auftreten. Das hätte beim kalibrieren auf die folgenden Messungen einen enormen Einfluss, da jedes mal falsch gemessen werden würde. Ich denke nicht das ein bis zwei mal am Tag falsch messen einen großen Einfluss hätte (Mehr Wasserwechel, hat man halt kein "konade Misu" oder so mehr ). Deshalb würde ich die Kalibrierung so stehen lassen. DFa das kalibrieren ja nur ein paar mal durchgeführt wird könnte ich auch mit 10 min leben.
Im Normal Betrieb mindestens 100 Messungen. $Befehl = 'sudo '.$datei.' '.$pins[0].' '.$pins[1].' 10';
Dies würde ich auch verändern. Dort würde ich meiner Meinung nach einmal messen reichen. MAn könnte auch zwei mal messen und vergleichen, ob die Werte z.B. max 10% voneinander abweichen. Falls die Abweichung > 10% dann noch einmal messen. Oder so Ähnlich.
Fischkopf hat geschrieben:
Ich lösche die SD-Karte nun wieder, dann habe ich auch keinen Anlass mehr hierzu Kritik zugeben und ziehe mich zurück, der Laba Hannes kann das übernehmen
Es fände es Schade, wenn du dich zurück ziehen würdest. Manchmal braucht jeder nur einen Gedankenanstoss von jemand anderes um Geniale Sachen hervor zu bringen. Kritik ist immer positiv zu verstehen, so lange Sie sachlich bleibt. Ich denke da spreche ich auch für Gunther.
Ich wollte mit meiner Anregung jedenfalls keinen Streit auslösen.
_________________ ____________________ Viele Grüße Dennis ____________________
Registriert: Do 03.Jan 2013 13:07 Cash on hand: 3.339,23 Taler Beiträge: 646
Aber ich werde nicht schlau daraus was ihr verändert habt, damit es läuft. Könnt ihr das evtl noch einmal genauer beschreiben. Weil ich gerne das Problem verstehen würde.
_________________ ____________________ Viele Grüße Dennis ____________________
Registriert: Mo 05.Dez 2005 19:01 Cash on hand: immer zu wenige Taler Beiträge: nur ein paar Wohnort: Koi-Schnack
Anzeige:
_________________
Wenn du einen Monat lang ein werbefreies Forum willst,
klicke hier
und überweise mir 100 Taler!
Wenn du mich im Koi-Schnack etwas fragen möchtest,
klicke hier!
Registriert: Mo 14.Nov 2005 20:39 Cash on hand: 5.741,65 Taler Beiträge: 14531 Wohnort: 07548 Gera
Hallo Dennis,
Du hattest das Skript wahrscheinlich mit einem Windows-Programm umgeschrieben. Dementsprechend waren die Zeilenumbrüche nach Windows-Manier codiert. https://de.wikipedia.org/wiki/Zeilenumb ... enumbruchs In diesem Artikel wird auch gezeigt, wie man die Codierung in einem Hexadezimal-Editor ansehen kann.
Nachdem ich die eilenenden nach Unix-Art umgeschrieben hatte, lief es korrekt.
Pfiffikus, der vermutet, dass die bash nicht richtig mit diesen Windows-Zeilenumbrüchen umgehen konnte
Registriert: Do 03.Jan 2013 13:07 Cash on hand: 3.339,23 Taler Beiträge: 646
Pfiffikus hat geschrieben:
Hallo Dennis,
Du hattest das Skript wahrscheinlich mit einem Windows-Programm umgeschrieben.
Ja das stimmt. Win7 mit Notepad++
Pfiffikus hat geschrieben:
https://de.wikipedia.org/wiki/Zeilenumb ... enumbruchs In diesem Artikel wird auch gezeigt, wie man die Codierung in einem Hexadezimal-Editor ansehen kann.
Werde es heute abend mal probieren
Danke
_________________ ____________________ Viele Grüße Dennis ____________________
Es fände es Schade, wenn du dich zurück ziehen würdest. Manchmal braucht jeder nur einen Gedankenanstoss von jemand anderes um Geniale Sachen hervor zu bringen. Kritik ist immer positiv zu verstehen, so lange Sie sachlich bleibt. Ich denke da spreche ich auch für Gunther.
Danke Dennis, ausschlaggebend war da der Paulinchen der mir mit dem "bl..." blabla auf den Sack geht.
zusätzlich kam das noch mit dem ungläubigen Beweisführungen.
Sie gehören ja nicht zu dem Nutzungsvertrag dieses Forums und ich benötige das nicht und möchte damit auch nicht in Zusammenhang gebracht werden! Danke.
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.