Stránka 3 z 5
Re: Zapis hodnoty do DB
Napsal: 01 říj 2020, 13:39
od pavel1tu
Psal jsem, že by bylo možné funkčně rozšířit funkci (já ji tak využívám) na
Kód: Vybrat vše
Odesli(CisloZarizeni, TypEventu, TextEventu);
Ale pokud to dotyčnému vyhovue a nebojuje s místem a pamětí, jeho věc.
Re: Zapis hodnoty do DB
Napsal: 14 lis 2020, 17:28
od Kony
Tak já už zase nevím.....
Kód: Vybrat vše
void loop() {
if (millis() - cas >= 6000 || cas == 0) {
cas = millis();
if(client.connect(serverName, 80)){
client.print("GET http://xxxx/eee/reset");
client.print(ID_MODULU);
client.print(".php");
client.println(" HTTP/1.0");
client.println("Host: xxxx.eu");
client.println("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
client.println("Connection: close");
client.println();
delay(1000);
while (client.connected()) {
String line = client.readStringUntil('\n');
// Serial.println(line); //ak chceme vypísať HTTP header
if (line == "\r") {
break;
}
}
String line = client.readStringUntil('\n');
Serial.println("Nacitany payload response:");
Serial.println(line); //odpoveď webservera - naše dáta
if(line == '1'){//&& PosledniStav == 0
digitalWrite(4, HIGH);
PosledniStav = 1;
OdesliZapnuto();
Serial.print("Posledni stav = ");
Serial.println(PosledniStav);
}
if(line == '0'){ // && PosledniStav == 1
digitalWrite(4, LOW);
PosledniStav = 0;
OdesliVypnuto();
Serial.print("Posledni stav = ");
Serial.println(PosledniStav);
}
else {
Serial.println("Pripojenie na webserver sa nepodarilo");
}
}
client.stop();
}
}
Vůbec to nebere ty podmínky
Kód: Vybrat vše
if(line == '1'){//&& PosledniStav == 0
digitalWrite(4, HIGH);
PosledniStav = 1;
OdesliZapnuto();
Serial.print("Posledni stav = ");
Serial.println(PosledniStav);
}
if(line == '0'){ // && PosledniStav == 1
digitalWrite(4, LOW);
PosledniStav = 0;
OdesliVypnuto();
Serial.print("Posledni stav = ");
Serial.println(PosledniStav);
}
Kód: Vybrat vše
17:26:20.485 -> ip-192.168.1.120
17:26:20.485 -> Subnet mask-255.255.255.0
17:26:20.530 -> Gateway-192.168.1.1
17:26:20.569 -> DNS-8.8.4.4
17:26:20.569 -> Cislo modulu-2
17:26:23.353 -> Nacitany payload response:
17:26:23.353 -> 0
17:26:23.353 -> Pripojenie na webserver sa nepodarilo
17:26:54.215 -> Nacitany payload response:
17:26:54.215 -> 0
17:26:54.215 -> Pripojenie na webserver sa nepodarilo
17:27:25.544 -> Nacitany payload response:
17:27:25.544 -> 0
Proste to nesepne rele a ani to nevypise "Posledni stav = " jak kdyby to uplne ignorovalo
Re: Zapis hodnoty do DB
Napsal: 14 lis 2020, 18:23
od pavel1tu
Já řeknu jen JEDNO - řeklo se KOD učesat - to znamená zpřehlednit - máš blbě závorky, ty snad ani netušíš kde jaká podmínka začíná a kde končí (už podle výpisu na SERIAl vidíš že to běhá jinudy než chceš)
to jsem našel i na tabletu, snad jsem nic nepčehlédl
testni tohle, kdyby nic, půjdu na PC
Kód: Vybrat vše
void loop() {
if (millis() - cas >= 6000 || cas == 0) {
cas = millis();
if(client.connect(serverName, 80)){
client.print("GET http://xxxx/eee/reset");
client.print(ID_MODULU);
client.print(".php");
client.println(" HTTP/1.0");
client.println("Host: xxxx.eu");
client.println("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
client.println("Connection: close");
client.println();
delay(1000);
while (client.connected()) {
String line = client.readStringUntil('\n');
// Serial.println(line); //ak chceme vypísať HTTP header
if (line == "\r") {
break;
}
}
String line = client.readStringUntil('\n');
Serial.println("Nacitany payload response:");
Serial.println(line); //odpoveď webservera - naše dáta
if(line == '1'){//&& PosledniStav == 0
digitalWrite(4, HIGH);
PosledniStav = 1;
OdesliZapnuto();
Serial.print("Posledni stav = ");
Serial.println(PosledniStav);
}
if(line == '0'){ // && PosledniStav == 1
digitalWrite(4, LOW);
PosledniStav = 0;
OdesliVypnuto();
Serial.print("Posledni stav = ");
Serial.println(PosledniStav);
}
}
else {
Serial.println("Pripojenie na webserver sa nepodarilo");
}
client.stop();
}
}
Re: Zapis hodnoty do DB
Napsal: 14 lis 2020, 18:41
od pavel1tu
Já jen podotknu - napsal jsi to jinam, do jiného příspěvku
a kod je úplně jiný než minule
minule jsi vyčítal z odpovědi WWW serveru pomocí
Kód: Vybrat vše
while(client.available()){
buffer[inBuffer] = client.read();
inBuffer++;
teď vyčítáš pomocí (asi nevyčítáš)
Kód: Vybrat vše
while (client.connected()) {
String line = client.readStringUntil('\n');
// Serial.println(line); //ak chceme vypísať HTTP header
if (line == "\r") {
break;
jsem zmaten,
client.connected() ti říká že jsi připojen
client.available() říká že jsou ještě k dispozici data
nemám to jak vyzkoušet, vrací to vyčtené data "0/1" z databáze ?
Re: Zapis hodnoty do DB
Napsal: 15 lis 2020, 09:41
od Kony
Ano hodnoty to v serial vypisuje spravne
Re: Zapis hodnoty do DB
Napsal: 15 lis 2020, 10:53
od pavel1tu
Kony píše: ↑15 lis 2020, 09:41
Ano hodnoty to v serial vypisuje spravne
A s tou mou změnou (přesunul jsem závorku) to vypisuje co ?
Pošli výpis jak s "1" tak s "0"
Ale když se koukneš na ty podmínky, jelikož je uložená/vyčtená hodnota z toho co vrací WWW v proměnné typu "String",
asi budeš muset upravit ty podmínky a nedotazovat se na celý "String" - musíš porovnávat jen ten jeden znak,
předtím jsi to měl správně ...
Kód: Vybrat vše
// ty porovnáváš String, ten je dle mne zakončený nějakým znakem, tudíž to nemůže fungovat
// line je String a porovnáváš s char
if(line == '1')
//nemám to jak vyzkoušet, musel by jsi testnout co vrátí na serial "line.charAt(n)" n = 0 nebo 1
// to vrací char z nějaké pozice z toho Stringu
// záleží na které pozici ta "0" nebo "1" je (mezery, ukončovací a jiné neviditelné znaky)
// pak bude fungovat, jen doplnit správné číslo do závorky
if(line.charAt(0) == '1')
nejsem doma,nemám tojak vyzkoušet a používal jsem to už dávno
Re: Zapis hodnoty do DB
Napsal: 16 lis 2020, 21:52
od KamilV
Já teda moc nerozumím, proč se jedna věc řeší ve více vláknech, pak je v tom docela zmatek.
V sousedním vlákně jsem posílal kód, kde byl response ze serveru obalen do "dolarů", aby bylo jasně vidět, zda tam nechodí nějaká mezera nebo zalomení na nový řádek. Odpovědi jsme se nedočkali. Na dotazy se odpovědi také nedočkáme.
Tak nechápu, k čemu to je? Vlákna jsou jen snůškou různých kódů, pokaždé s jinýma chybama. Na dotazy se neodpovídá, takže se nic nikam neposunuje. To nemá konce...
Re: Zapis hodnoty do DB
Napsal: 17 lis 2020, 10:22
od pavel1tu
Já mu psal že je to jinde, ale evidentně si z příspěvků sosne jen něco
Už na něj prdím, co mu napíšeme - nevyzkouší - a každý týden jiný kod + pořád stejné chyby.
Re: Zapis hodnoty do DB
Napsal: 17 lis 2020, 21:06
od KamilV
Já ještě vytrvávám, třeba postupnými krůčky nebude na net vystavovat tak brutálně děravé "systémy".
P.S. Kony, v dnešní době, kdy každý řeší GDPR, ukládat v DB hesla klientů v plaintextu je koledování si o řádný malér.
Re: Zapis hodnoty do DB
Napsal: 19 lis 2020, 20:47
od Kony
nechapu, ja prece nikde neschovavam udaje o ucastnikach...
2 pavel1tu : snazim se vzdy prijit na reseni sam... a vzdy si z fora vezmu jen cast a pak premyslim, jak to vzdy funguje, nechci jen kopirovat texty, ale chci je pochopit, proto zkouším ruzne varianty a snazim si je vysvetlit jak to funguje