RTV forum PL | NewsGroups PL

esp8266 64bajty buforu? Dlaczego to sie sypie?

NOWY TEMAT

elektroda.net NewsGroups Forum Index - Elektronika Polska - esp8266 64bajty buforu? Dlaczego to sie sypie?

Guest

Wed Jul 12, 2017 12:33 am   



Ten kawałek kodu:
void loop() {
String dht_out;
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
dht_out="No DHT!";
} else {
dht_out="TD="+String(t,1)+" HD="+String(h,1);
}
lcd.setCursor(0, 0);
lcd.print("TB="+String(bmp.readTemperature(),1)+"PB="+String(bmp.readPressure()/100)+" ");
lcd.setCursor(0, 1);
lcd.print(dht_out);

delay(500);

//Komunikacja z esp do debuga
String tmp="";
while (Serial.available()>0) {
char inByte=Serial.read();
tmp+=inByte;
}
if (tmp.length()>0) {
DebugSerial.print(tmp);
}


//komunikajca z debuga do esp
while (DebugSerial.available()>0) {
char outByte=DebugSerial.read();
Serial.write(outByte);
}
}

Ma słuzyc narazie tylko jako interfejs przerzucający dane między jednym a drugim serialem.
I dziala prawie dobrze.
Problemem jest mianowicie przycinanie wyniku do 64bajtów.
Mimo że kopiuje po kolei bajty z Serial za pomoca Serial.read to po 64 sztukach petla while sie konczy a po drugim przejsciu ogólnej petli juz nic nie czyta.

Po zwiększeniu bufora do 164 w pliku HardwareSerial.h wczytuje sie więcej.

Co robie nie tak?
Czy mozliwe ze wciaganie bajtów z bufora po jednym jest na tyle wolne ze przy 115200 wczytanie 64 trwa tyle ze mi sie bufor od nowa napełni?

Guest

Wed Jul 12, 2017 8:18 am   



W dniu środa, 12 lipca 2017 00:33:42 UTC+2 użytkownik sczy...@gmail.com napisał:

Quote:
Co robie nie tak?
Czy mozliwe ze wciaganie bajtów z bufora po jednym jest na tyle wolne ze przy 115200 wczytanie 64 trwa tyle ze mi sie bufor od nowa napełni?

Dobra, juz wiem Smile
Bez sensu najpierw czytam odpowiedź a potem zadaje zadanie dla esp i nastepnie robie cale czytanie sensorów i czekam 500ms.

Trzeba to przepisać na cos sensowniejszego Smile

J.F.
Guest

Wed Jul 12, 2017 9:54 am   



Użytkownik napisał w wiadomości grup
dyskusyjnych:b0189164-fde6-4345-802e-17c7ab71e98a_at_googlegroups.com...
W dniu środa, 12 lipca 2017 00:33:42 UTC+2 użytkownik
sczy...@gmail.com napisał:
Quote:
Co robie nie tak?
Czy mozliwe ze wciaganie bajtów z bufora po jednym jest na tyle
wolne ze przy 115200 wczytanie 64 trwa tyle ze mi sie bufor od nowa
napełni?

Dobra, juz wiem Smile
Bez sensu najpierw czytam odpowiedź a potem zadaje zadanie dla esp i
nastepnie robie cale czytanie sensorów i czekam 500ms.
Trzeba to przepisać na cos sensowniejszego Smile

A moze wystarczy bufor powiekszyc?

Bo jak sie domyslam, ta softwareowa biblioteka na przerwaniach port
czyta ... to dac wiekszy bufor i po sprawie.

Tylko pamietac, ze z Wifi moze przyjsc z 10MB/s :-)

J.

Guest

Wed Jul 12, 2017 12:00 pm   



W dniu środa, 12 lipca 2017 11:54:34 UTC+2 użytkownik J.F. napisał:
Quote:
Użytkownik napisał w wiadomości grup
dyskusyjnych:b0189164-fde6-4345-802e-17c7ab71e98a_at_googlegroups.com...
W dniu środa, 12 lipca 2017 00:33:42 UTC+2 użytkownik
sczy...@gmail.com napisał:
Co robie nie tak?
Czy mozliwe ze wciaganie bajtów z bufora po jednym jest na tyle
wolne ze przy 115200 wczytanie 64 trwa tyle ze mi sie bufor od nowa
napełni?

Dobra, juz wiem Smile
Bez sensu najpierw czytam odpowiedź a potem zadaje zadanie dla esp i
nastepnie robie cale czytanie sensorów i czekam 500ms.
Trzeba to przepisać na cos sensowniejszego :)

A moze wystarczy bufor powiekszyc?

Bo jak sie domyslam, ta softwareowa biblioteka na przerwaniach port
czyta ... to dac wiekszy bufor i po sprawie.

Tylko pamietac, ze z Wifi moze przyjsc z 10MB/s :-)

J.

Dla testu dalem 250 bajtów. Ale to złe rozwiązanie :)

Juz znalazlem feler. Wieczorkiem sobie poprawie.

A DOS-a to mozna zrobic w sumie chyba kazdemu Smile na różne sposoby więc narazie sie tym nie martwie, jak mi ktos zdosuje te stacje pogody to sie zaczne martwic Smile

wół, wół roboczy, wó
Guest

Wed Jul 12, 2017 4:06 pm   



ryzykując przecfelenie, zapytam...

z czego korzystasz przy kompilacji - jaki tool i jaki opis pdf?

o co chodzi z tym debugowaniem po serialu?

Guest

Wed Jul 12, 2017 8:32 pm   



W dniu środa, 12 lipca 2017 18:07:05 UTC+2 użytkownik wół, wół roboczy, wół dojno roboczo obronny 'POPIS/EU napisał:
Quote:
ryzykując przecfelenie, zapytam...

z czego korzystasz przy kompilacji - jaki tool i jaki opis pdf?

o co chodzi z tym debugowaniem po serialu?

Całośc sie nazywa arduino.

Normalnie musisz mieć mikrokontroler, plytke pcb, programator i co tam sobie chcesz do tego mikrokontrolera podłaczyć. To sporo zachodu nawet jak sie montuje takie zabawy na plytce prototypowej (tej grubej, nie tej pcb z milyjonem otworów).

Jakieś ludki wymyslili ze mozna ludziom sprzedać mikrokontroler na plytce z interfejsem usb i headerami dla wygodnego podpinania dodatkowych układów.

Do tego dodali środowisko programistyczne które tez nazywa sie arduino.
Pisze sie w nim w C. Ale w praktyce programy wychodzą mocno podobne do basica bo wiekszość tego co chcesz robic jest juz przez kogos napisana i tylko posługujesz sie biblioteką.

I np. zamiast dumać jak ustawić port szeregowy po prostu piszesz Serial.begin(115200); i juz masz calosc ustawiona.

W praktyce praca wyglada tak ze podpinasz te plytke do kompa po usb, uruchamiasz te środowisko arduino i piszesz programy. Do dyspozycji masz mini terminal szeregowy i zazwyczaj aby sprawdzić co tam w programie sie dzieje piszesz sobie np. Serial.println("wartosc zmiennej X:"+X);
I elegancko widzisz jaka wartosc ma ta zmienna w okienku terminala.

W moim przypadku uparłem się ze wykorzystam mniejsza i tansza plytke która ma tylko jeden sprzetowy serial. A moduł wifi komunikuje sie z plytka wlasnie po serialu. I aby debugowac i korzystac z modułu wifi potrzebuje dwu serialów.
Dlatego skorzystałem z programowego seriala jako dodatkowego.

Serial - łącze szeregowe Pi*oko zgodne z rs232
Arduino - https://www.arduino.cc/
srodowisko do pisania dla arduino - https://www.arduino.cc/en/Main/Software

Na allegro mozna kupic "podróbki" arduino za niewielkie pieniądze i zacząc się bawić.

Dokumentacja jest w wiekszości tu: https://www.arduino.cc/en/Reference/HomePage
dodatkowo kazda biblioteka ma swoje przyklady do odmałpowania.
I czasem trzeba grzebnąć w dokumentacji np. w przypadku modułu wifi tu:
https://www.espressif.com/en/support/download/documents?keys=&field_type_tid%5B%5D=14

elektroda.net NewsGroups Forum Index - Elektronika Polska - esp8266 64bajty buforu? Dlaczego to sie sypie?

NOWY TEMAT

RTV map News map