Elektronische Schwerpunktwaage
- skyfreak
- Offline
- Platinum Mitglied
- Beiträge: 2946
- Dank erhalten: 1446
hallo wolfgang
danke für deinen input.
ich kann mich nur wiederholen, ich habe von C mal so gar keine ahnung und hangel mich durch in dem ich andere teile des codes anschaue und anhand dessen versuche nachzubauen, wenn auch oft ohne verständnis was warum passiert :whistle:
aber zu deinen anmerkungen ... kleines video, dass die geschichte vielleicht einfacher verständlich macht.
Tare-Problem - (Video .mov) - Dropbox
gruss und danke,
guido
danke für deinen input.
ich kann mich nur wiederholen, ich habe von C mal so gar keine ahnung und hangel mich durch in dem ich andere teile des codes anschaue und anhand dessen versuche nachzubauen, wenn auch oft ohne verständnis was warum passiert :whistle:
aber zu deinen anmerkungen ... kleines video, dass die geschichte vielleicht einfacher verständlich macht.
Tare-Problem - (Video .mov) - Dropbox
gruss und danke,
guido
Fliegergruss
GUIDO
_________________________________________________________
Too many dicks on the dance floor.
Too many dicks!
GUIDO
_________________________________________________________
Too many dicks on the dance floor.
Too many dicks!
Last Edit:13 Feb. 2019 15:38
von skyfreak
Letzte Änderung: 13 Feb. 2019 15:38 von skyfreak.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- w.w.
- Offline
- Platinum Mitglied
- Beiträge: 1039
- Dank erhalten: 360
Das sieht für mich so aus, als ob du in der CgScaleWebApi keine Variable der Klasse CgScale deklariert hast. Daher kannst Du nur den '::'-Aufruf über die Vervollständigung sehen. Da die Funktion aber keine statische Funktion ist, ist der Aufruf so nicht erlaubt.
Setze doch in der Funktion oben mal ein
ein und da, wo bisher der Aufruf mit '::' steht ein
Setze doch in der Funktion oben mal ein
Code:
CgScale Sclale;
Code:
Scale.Tare();
Gruß Wolfgang
von w.w.
Folgende Benutzer bedankten sich: skyfreak
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- skyfreak
- Offline
- Platinum Mitglied
- Beiträge: 2946
- Dank erhalten: 1446
danke wolfgang
jetzt habe ich in der CgScaleWebApi.cpp ganz oben eingetragen
dann in das void CgScaleWebApi::OnModelsGet(AsyncWebServerRequest *request) Scale.Tare(); ganz oben hinzugefügt
ausgeführt wir void CgScaleWebApi::OnModelsGet(AsyncWebServerRequest *request) dann am ende der CgScaleWebApi.cpp
das kompiliert ohne fehler, upload, waage läuft alle funktionen passen.
gewicht auf die lastzellen aufgelegt
cgscale.local/api/models im browser aufgerufen
auf der seite wird in plaintext ausgegeben
also gehe ich davon aus, dass void CgScaleWebApi::OnModelsGet(AsyncWebServerRequest *request) ausgeführt wurde aber Scale.Tare(); nicht.
grüsse und immer wieder dank für die hilfe
guido
jetzt habe ich in der CgScaleWebApi.cpp ganz oben eingetragen
Code:
CgScale Scale;
dann in das void CgScaleWebApi::OnModelsGet(AsyncWebServerRequest *request) Scale.Tare(); ganz oben hinzugefügt
Code:
void CgScaleWebApi::OnModelsGet(AsyncWebServerRequest *request)
{
Scale.Tare();
AsyncJsonResponse *response = new AsyncJsonResponse();
JsonObject &root = response->getRoot();
JsonArray &modelsJson = root.createNestedArray("Models");
for (CGModel value : Models.models)
{
JsonObject &model = modelsJson.createNestedObject();
model[F("ModelName")] = value.Name;
model[F("ModelWeight")] = value.Weight;
model[F("ModelCg")] = value.CG;
}
response->setLength();
request->send(response);
}
ausgeführt wir void CgScaleWebApi::OnModelsGet(AsyncWebServerRequest *request) dann am ende der CgScaleWebApi.cpp
Code:
server.on("/api/models", HTTP_GET, std::bind(&CgScaleWebApi::OnModelsGet, this, _1));
das kompiliert ohne fehler, upload, waage läuft alle funktionen passen.
gewicht auf die lastzellen aufgelegt
cgscale.local/api/models im browser aufgerufen
auf der seite wird in plaintext ausgegeben
Code:
{"Models":[{"ModelName":"test 1","ModelWeight":111.67,"ModelCg":82.2}]}
also gehe ich davon aus, dass void CgScaleWebApi::OnModelsGet(AsyncWebServerRequest *request) ausgeführt wurde aber Scale.Tare(); nicht.
grüsse und immer wieder dank für die hilfe
guido
Fliegergruss
GUIDO
_________________________________________________________
Too many dicks on the dance floor.
Too many dicks!
GUIDO
_________________________________________________________
Too many dicks on the dance floor.
Too many dicks!
von skyfreak
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- w.w.
- Offline
- Platinum Mitglied
- Beiträge: 1039
- Dank erhalten: 360
Hallo Guido,
ich habe mich jetzt nicht speziell mit deiner Waage beschäftigt, aber Tare ist eigentlich nur das "Nullen" einer Wage. Es sollte also noch eine andere Funktion für das auslesen des Gewichts existieren.
So wie man es auch von der Küchenwage kennt:
1. Waage einschalten => zeigt nach einer kurzen Zeit 0,0 g an
2. Schüssel auf die Waage => zeigt Gewicht der Schüssel an
3. Tara / Tare drücken => Waage zeigt wieder 0,0 g an
4. Zutat einfüllen => Waage zeigt Gewicht der Zutat
Also hier
1. Tare ausführen => Waage ist auf 0 g
2. Flugzeug auf die Waage
3. Messwert auslesen
Gruß Wolfgang
ich habe mich jetzt nicht speziell mit deiner Waage beschäftigt, aber Tare ist eigentlich nur das "Nullen" einer Wage. Es sollte also noch eine andere Funktion für das auslesen des Gewichts existieren.
So wie man es auch von der Küchenwage kennt:
1. Waage einschalten => zeigt nach einer kurzen Zeit 0,0 g an
2. Schüssel auf die Waage => zeigt Gewicht der Schüssel an
3. Tara / Tare drücken => Waage zeigt wieder 0,0 g an
4. Zutat einfüllen => Waage zeigt Gewicht der Zutat
Also hier
1. Tare ausführen => Waage ist auf 0 g
2. Flugzeug auf die Waage
3. Messwert auslesen
Gruß Wolfgang
Gruß Wolfgang
von w.w.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Stefan F3k
- Offline Autor
- Platinum Mitglied
- Beiträge: 389
- Dank erhalten: 118
Ne so wird das nicht funktionieren.
Und einfach mal eine neue Scale initialisieren schon gleich 3x nicht.
Du hast doch eh schon Zugriff auf das Scale object mit "localScale".
Dann machst du halt eine neue API kA /api/tare und ne funktion OnTageGet wie auch immer und da packst du dein localScale.Tare() hinein.
Und einfach mal eine neue Scale initialisieren schon gleich 3x nicht.
Du hast doch eh schon Zugriff auf das Scale object mit "localScale".
Dann machst du halt eine neue API kA /api/tare und ne funktion OnTageGet wie auch immer und da packst du dein localScale.Tare() hinein.
Gruß Stefan
Jeti Backup Tool github.com/xoration/JetiBackup www.jetiforum.de/index.php/22-software/5857-jeti-backup-tool
Web CG Scale github.com/xoration/ESPScale
Jeti Backup Tool github.com/xoration/JetiBackup www.jetiforum.de/index.php/22-software/5857-jeti-backup-tool
Web CG Scale github.com/xoration/ESPScale
von Stefan F3k
Folgende Benutzer bedankten sich: skyfreak
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- skyfreak
- Offline
- Platinum Mitglied
- Beiträge: 2946
- Dank erhalten: 1446
merci stefan
das ist zwar kurz und knapp, aber ich denke dass ich damit erfolg haben könnte.
und damit meine ich nicht, dass ich an deinem input zweifle, sondern ob ich das auch hinbekomme :oops:
anway, ich werde das probieren, bleibe weiter dran, lerne immer mehr dazu und bin zuversichtlich!
gebe feedback sobald ich getestet habe.
@wolfgang
yep TARE - TARIEREN - auf NULL setzen, egal wieviel gewicht auf den zellen lastet, auch wenn es hier nur ohne last sinn macht.
das meine ich schon TARE und habe das auch richtig verstanden.
hintergrund. ich habe die waage mit den skalierbaren auflagen gebaut.
zum einen habe ich auf jeden fall mindestes 3 optionen für z.b. den abstand der auflagen wingpegdistance in der config.
zum anderen mache ich gerade testreihen zum kalibrieren, sprich ich mache mit unterschiedlichstem aufbau - kalibriergewichte unterschiedlichen gewichts und deren position über den auflage - feldest und notiere die werte.
dabei ist es so, dass die billigen lastzellen und HX711 sensoren aus china natürlich die entsprechende quality haben. sie driften, mal mehr mal weniger.
bei meinen wiege und kalibriertests ist mir nun aufgefallen, dass die zellen z.b. bei einer längeren verweildauer einer last auf der waage nicht wieder korrekt auf null zurückstellen beim entlasten. oder wenn ich die waage starte, also die powerbank dran hänge, dann pendeln sich die einzellasten erst ein. es startet mit einer anzeige von über 60gr. dann fällt es binnen 1-2 sekunden sehr schnell ab auf um den nullpunkt und verrharrt dann nach leichtem anstieg auf +/- 3-5 gr. was ich als sehr viel empfinde.
wenn ich dann den reset button am board drücke (noch immer nur die waage auf dem tisch ohne last), dann startet der conrtoller ja komplett neu und spult den ganze code sozusagen vor vorne ab, und siehe da jetzt zeigt die waage einzellasten an, die zwischen +/- 0.03 gr pro zelle liegen, das finde ich wiederum fantastisch.
soweit so gut könne man ja sagen, dann passt doch alles. reset button am board drücken und gut ist.
JEIN, prinzipiell geht das. und im heimnetzwerk geht das sogar sehr schnell, wenn ich da den reset drücke muss ich oft nicht mal den browser refreshen. der beleibt stehen, und nach 3-5 sekunden rennt die anzeige tarriert weiter.
ABER wenn ich den accesspoint mode wähle, dann dauert das schon sehr lange, bis zu 20 sekunden und nur nach mehrmaligem laden der seite auf dem smartphone. und das erscheint mir logisch. sich beim neustart in ein bestehendes netzwerk einzuwählen in dem ich auch noch static immer die selbe IP zugerodnet bekomme, ist für den wifi chip auf dem board sicher um ein vielfaches schneller und einfacher als erst kurz warten ob ein netzwerk zur verfügung steht -nein, dann eben accesspoint aufmachen, dns server wieder bereit stellen code abarbeiten.
also dachte ich mir, wenn doch alles so schön über die webapi gesteuert wird, dann sollte es doch möglich sein eine tare() funktion zu per button zu steuern, dann werden nur die zellen tariert und fertig. und weil ich das im arduino code schon selber getestet habe und nachvollziehen konnte, ist es klar, dass es in C auch gehen muss.
lage rede kurzer sinn, ich stehe kurz vor der vollendung meiner wunschwaage
grüsse,
guido
das ist zwar kurz und knapp, aber ich denke dass ich damit erfolg haben könnte.
und damit meine ich nicht, dass ich an deinem input zweifle, sondern ob ich das auch hinbekomme :oops:
anway, ich werde das probieren, bleibe weiter dran, lerne immer mehr dazu und bin zuversichtlich!
gebe feedback sobald ich getestet habe.
@wolfgang
yep TARE - TARIEREN - auf NULL setzen, egal wieviel gewicht auf den zellen lastet, auch wenn es hier nur ohne last sinn macht.
das meine ich schon TARE und habe das auch richtig verstanden.
hintergrund. ich habe die waage mit den skalierbaren auflagen gebaut.
zum einen habe ich auf jeden fall mindestes 3 optionen für z.b. den abstand der auflagen wingpegdistance in der config.
zum anderen mache ich gerade testreihen zum kalibrieren, sprich ich mache mit unterschiedlichstem aufbau - kalibriergewichte unterschiedlichen gewichts und deren position über den auflage - feldest und notiere die werte.
dabei ist es so, dass die billigen lastzellen und HX711 sensoren aus china natürlich die entsprechende quality haben. sie driften, mal mehr mal weniger.
bei meinen wiege und kalibriertests ist mir nun aufgefallen, dass die zellen z.b. bei einer längeren verweildauer einer last auf der waage nicht wieder korrekt auf null zurückstellen beim entlasten. oder wenn ich die waage starte, also die powerbank dran hänge, dann pendeln sich die einzellasten erst ein. es startet mit einer anzeige von über 60gr. dann fällt es binnen 1-2 sekunden sehr schnell ab auf um den nullpunkt und verrharrt dann nach leichtem anstieg auf +/- 3-5 gr. was ich als sehr viel empfinde.
wenn ich dann den reset button am board drücke (noch immer nur die waage auf dem tisch ohne last), dann startet der conrtoller ja komplett neu und spult den ganze code sozusagen vor vorne ab, und siehe da jetzt zeigt die waage einzellasten an, die zwischen +/- 0.03 gr pro zelle liegen, das finde ich wiederum fantastisch.
soweit so gut könne man ja sagen, dann passt doch alles. reset button am board drücken und gut ist.
JEIN, prinzipiell geht das. und im heimnetzwerk geht das sogar sehr schnell, wenn ich da den reset drücke muss ich oft nicht mal den browser refreshen. der beleibt stehen, und nach 3-5 sekunden rennt die anzeige tarriert weiter.
ABER wenn ich den accesspoint mode wähle, dann dauert das schon sehr lange, bis zu 20 sekunden und nur nach mehrmaligem laden der seite auf dem smartphone. und das erscheint mir logisch. sich beim neustart in ein bestehendes netzwerk einzuwählen in dem ich auch noch static immer die selbe IP zugerodnet bekomme, ist für den wifi chip auf dem board sicher um ein vielfaches schneller und einfacher als erst kurz warten ob ein netzwerk zur verfügung steht -nein, dann eben accesspoint aufmachen, dns server wieder bereit stellen code abarbeiten.
also dachte ich mir, wenn doch alles so schön über die webapi gesteuert wird, dann sollte es doch möglich sein eine tare() funktion zu per button zu steuern, dann werden nur die zellen tariert und fertig. und weil ich das im arduino code schon selber getestet habe und nachvollziehen konnte, ist es klar, dass es in C auch gehen muss.
lage rede kurzer sinn, ich stehe kurz vor der vollendung meiner wunschwaage
grüsse,
guido
Fliegergruss
GUIDO
_________________________________________________________
Too many dicks on the dance floor.
Too many dicks!
GUIDO
_________________________________________________________
Too many dicks on the dance floor.
Too many dicks!
von skyfreak
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 1.060 Sekunden