[ Príspevkov: 16 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 22.11.17
Príspevky: 297
Témy: 105 | 105
Bydlisko: Šuňava
Vek: 21

Ahojte, riešim takýto problém. Mám PHP kód. Ako používateľ zadám požiadavku hlasom, prípadne ju napíšem a následne sa zapíše do .txt súboru ako text. Mikroprocesor si to prečíta a vykoná akciu. Je tu ale takýto problém. Chcem aby sa súbor dal otvoriť iba raz a následne sa buď už nedal otvoriť, alebo sa zmazal jeho obsah.
Jeho obsah mením cez php kód cez funkciu put contents.
Príklad: Mikroprocesor si prečíta, že chcem zapnúť vonkajšie osvetlenie, prečíta si to opäť za pár sekúnd, nič sa nezmení, lebo požiadavka je stále tá istá a výstup je stále aktivovaný.
Predstavme si ale tlmené PWM osvetlenie, ktoré navýšim o 10 a chcem to iba raz. Ako následne zabrániť prečítaniu súboru, aby mi do nekonečna mikroprocesor nepridával hodnoty na výstupe na základe prečítania požiadavky, aj keď som ju nezmenil na stále je tam zapísaná? Nejaké tipy? Dá sa to riešiť cez .htaccess alebo apache nastavenia? Ako najvhodnejšie by ste podobnú vec riešili vy?


_________________
http://bit.do/bitcoinyzdarma --- Bitcoiny zdarma každú hodinu
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 22.11.17
Príspevky: 1432
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 12.09.2017 14:34 | Riešenie pre otvorenie txt súboru 1x

Musí mikroprocesor čítať súbor? Nemôžeš mu dať url? V takom prípade si vieš v php ustrážiť, že to bolo prečítané.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 22.11.17
Príspevky: 297
Témy: 105 | 105
Bydlisko: Šuňava
Vek: 21
Napísal autor témyOffline : 13.09.2017 15:08 | Riešenie pre otvorenie txt súboru 1x

Vyriešil som to tak, že mikroprocesor si prečíta a porovná s tým reťazcom z minula. Ak sa zhodujú, neurobí nič. :)


_________________
http://bit.do/bitcoinyzdarma --- Bitcoiny zdarma každú hodinu
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 22.11.17
Príspevky: 1432
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 13.09.2017 18:01 | Riešenie pre otvorenie txt súboru 1x

Aha, ja som pochopil, že k mikroprocesoru prístup nemáš. Ak ho vieš ovládať, tak jasné že to porieš tam. Ale lepšie by bolo dať tam nejaké id (napríklad timestamp, alebo veľké random číslo) príkazu a porovnávať to. To len pre prípad, že by si náhodou potreboval vykonať dva rovnaké príkazy za sebou (napr. to zvýšenie o 10% a potom zase o 10%) ;)


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 22.11.17
Príspevky: 297
Témy: 105 | 105
Bydlisko: Šuňava
Vek: 21
Napísal autor témyOffline : 14.09.2017 23:26 | Riešenie pre otvorenie txt súboru 1x

Porovnávam celý reťazec s reťazcom uloženým v kóde mikroprocesora a používam ekvivalenciu == čiže tam by som s timestampom nepochodil. Treba mi nad tým ešte porozmýšľať, že ako efektívne to vymyslieť.


_________________
http://bit.do/bitcoinyzdarma --- Bitcoiny zdarma každú hodinu
Offline

Užívateľ
Užívateľ
Riešenie pre otvorenie txt súboru 1x

Registrovaný: 07.04.12
Prihlásený: 22.11.17
Príspevky: 825
Témy: 50 | 50

MCU dokáže editovať ten súbor?


_________________
Notebook: Dell Inspiron 15-7537= i5-4200U|nVidia GT 750M 2GB|RAM 6GB|250GB Samsung 850 EVO|W8.1|Dell U2515H ++ Dell Urban 2.0
Chladiaca: Cooler Master NotePal U3 PLUS strieborná
Disky: Western Digital Elements 1TB USB 2.0; Seagate Expansion 2TB USB 3.0
Príslušenstvo: A4tech Bloody V3 V-Track Core 3 + A4tech Bloody B-070; A4tech Bloody B120; A4tech Bloody G501; ATH-M40x
Monitor: Dell U2515H
Mobil: Xiaomi Redmi Note 3 Special Edition
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 22.11.17
Príspevky: 1432
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 15.09.2017 7:40 | Riešenie pre otvorenie txt súboru 1x

Tak reťazec pred tým rozbiješ podľa delimitera (napríklad dvojbodka, alebo čokoľvek), nič zložité. V súbore tak bude príkaz ako 125318:prikaz.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 22.11.17
Príspevky: 297
Témy: 105 | 105
Bydlisko: Šuňava
Vek: 21
Napísal autor témyOffline : 16.09.2017 1:48 | Riešenie pre otvorenie txt súboru 1x

Ado, ako to myslíš? Textový súbor viem editovať ak potrebujem. V tomto riešení to nerobím, iba ho sťahujem na základe jeho obsahu vykoná MCU akciu. Ale áno, dá sa to, napr cez PHP kód. Urobíš GET request, teda napríklad stranka.php?akcia="Zopnute%20osvetlenie"&rezim="Manualny" Následne to môžeš uložiť do MySQL databázy, či do .txt súboru. Ale samozrejme dá sa jedno s druhým kombinovať. NodeMCU má až 1MB pamäte pre program, takže tam máš priestoru pre podobné veci až až.. :)
Stiahnem si súbor a je tam napríklad Zapni LED 1 tak to porovnám a ak mám niekde ten reťazec tak ju zapnem atď.. :) Vydal som aj článoček.. Môžeš mrk a skúsiť.


_________________
http://bit.do/bitcoinyzdarma --- Bitcoiny zdarma každú hodinu
Offline

Užívateľ
Užívateľ
Riešenie pre otvorenie txt súboru 1x

Registrovaný: 07.04.12
Prihlásený: 22.11.17
Príspevky: 825
Témy: 50 | 50

Buď ako písal BX, na základe nejakého ID pred príkazom, tzn. do MCU uložíš ID a príkaz, ak sa bude ID zhodovať s predchádzajúcim, vieš, že ide o ten istý príkaz - ID bude ako autoincrement pri zadaní nového príkazu.
Prečo som sa pýtal, či MCU dokáže prepisovať ten *.TXT, na napr. 1. riadku bude hodnota 0/1 - v prípade, že je tam nový príkaz bude tam 1, v prípade, že MCU už príkaz prečítal a vykonal prepíše na 0; na 2. riadku bude samotný príkaz.


_________________
Notebook: Dell Inspiron 15-7537= i5-4200U|nVidia GT 750M 2GB|RAM 6GB|250GB Samsung 850 EVO|W8.1|Dell U2515H ++ Dell Urban 2.0
Chladiaca: Cooler Master NotePal U3 PLUS strieborná
Disky: Western Digital Elements 1TB USB 2.0; Seagate Expansion 2TB USB 3.0
Príslušenstvo: A4tech Bloody V3 V-Track Core 3 + A4tech Bloody B-070; A4tech Bloody B120; A4tech Bloody G501; ATH-M40x
Monitor: Dell U2515H
Mobil: Xiaomi Redmi Note 3 Special Edition
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 22.11.17
Príspevky: 1432
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 16.09.2017 9:58 | Riešenie pre otvorenie txt súboru 1x

Ak vie ten súbor prepisovať, tak ho môže rovno vyprázdniť a nič viac neriešiť...


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Správca fóra
Správca fóra
Riešenie pre otvorenie txt súboru 1x

Registrovaný: 08.08.09
Príspevky: 12516
Témy: 41 | 41
Bydlisko: Martin
NapísalOffline : 16.09.2017 10:42 | Riešenie pre otvorenie txt súboru 1x

Čo ak mu medzitým MCU začne do súboru zapisovať niečo ďalšie?
Osobne stále nie som presvedčený, že prenášať niečo takto jednoduché cez texťák je naozaj najlepšie riešenie.


_________________
always is always wrong
Offline

Užívateľ
Užívateľ
Riešenie pre otvorenie txt súboru 1x

Registrovaný: 07.04.12
Prihlásený: 22.11.17
Príspevky: 825
Témy: 50 | 50
NapísalOffline : 16.09.2017 11:27 | Riešenie pre otvorenie txt súboru 1x

BX: skôr než prázdny súbor by som asi radšej čítal 0/1, u prázdneho súboru by som sa obával skrytých znakov a podobne, tzn. radšej si budem istý 0/1 než niečim nedefinovaným.
Napadla mi varianta, ak je to lepšie, že bude súbor zmazaný, tak MCU odošle HTTP request a ak bude správny, tak php daný súbor zmaže.

killer: súhlasím, že *.txt asi nie je to ideálne pre takýto druh komunikácie ale to už by bolo aj na zváženie, či Arduino je vhodné na seriózne projekty - pre domáce použitie asi dostačuje.


_________________
Notebook: Dell Inspiron 15-7537= i5-4200U|nVidia GT 750M 2GB|RAM 6GB|250GB Samsung 850 EVO|W8.1|Dell U2515H ++ Dell Urban 2.0
Chladiaca: Cooler Master NotePal U3 PLUS strieborná
Disky: Western Digital Elements 1TB USB 2.0; Seagate Expansion 2TB USB 3.0
Príslušenstvo: A4tech Bloody V3 V-Track Core 3 + A4tech Bloody B-070; A4tech Bloody B120; A4tech Bloody G501; ATH-M40x
Monitor: Dell U2515H
Mobil: Xiaomi Redmi Note 3 Special Edition
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 22.11.17
Príspevky: 1432
Témy: 2 | 2
Bydlisko: Praha / Rev...
NapísalOffline : 16.09.2017 12:07 | Riešenie pre otvorenie txt súboru 1x

Mikroprocesor by určite nemal ten súbor nijak upravovať, iba čítať. Ako rýchle riešenie by to samozrejme prešlo, ale seriózne nie, pretože môže dôjsť k race condition.
Čítanie príkazu vo formáte ID:prikaz je dostatočne bezpečné. Textový súbor je v pohode, ak nejde o nejakú time-critical real-time aplikáciu. Podobne funguje takmer všetok hardware v PC, tak prečo by to nefungovalo aj tu. V HW sa často používajú dva úložiská - do jedného zapisuje A a B len číta (príkaz od A do B) a do druhého zapisuje B a A len číta (potvrdenie o vykonaní). To je tu zbytočné, ak netreba zisťovať stav, či sa akcia podarila.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 22.11.17
Príspevky: 297
Témy: 105 | 105
Bydlisko: Šuňava
Vek: 21
Napísal autor témyOffline : 16.09.2017 12:49 | Riešenie pre otvorenie txt súboru 1x

Určite sa to dá efektívnejšie, toto bol len taký test.. Inak na real-time veci sa používa MQTT protokol. Nevýhoda je tam ale, že musíš použiť Broker. Teda ti treba doma živiť o počítač viac. :) Ale zvláda ho aj Rpi.


_________________
http://bit.do/bitcoinyzdarma --- Bitcoiny zdarma každú hodinu
Offline

Správca fóra
Správca fóra
Riešenie pre otvorenie txt súboru 1x

Registrovaný: 08.08.09
Príspevky: 12516
Témy: 41 | 41
Bydlisko: Martin
NapísalOffline : 16.09.2017 13:02 | Riešenie pre otvorenie txt súboru 1x

Osobne by som to riešil databázou. Keď už máš PHP, databáza väčšinou nikdy nie je ďaleko.
- PHP zapíše príkaz (nie to čo nadiktuješ, ale iba ak rozpozná príkaz) do databázy s časovou značkou
- Mikroprocesor bude v pravidelných intervaloch robiť HTTP request, ktorý vyberie z databázy príkazy, ktoré sa majú vykonať (to čo sa mu vráti môže mať ľubovoľnú podobu, kľudne plain-text, alebo aj json, pre autorizáciu stačí posielať token, aby ti to neotvárali roboty, ale vadiť by to v konečnom dôsledku nemalo, rozumieť tomu aj tak nebudú)
- Mikroprocesor vykoná príkaz a môže cez iný HTTP request, označiť úlohu ako dokončenú (naštuduj si prerušenia, ten mega veľký if nie je efektívny)

Výhody:
- nemusíš riešiť komplikovanú prácu so súborom
- môžeš plánovať úlohy do blízkej, aj ďalekej budúcnosti
- efektívnejšie debuggovanie a testovanie


_________________
always is always wrong
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 17.02.14
Prihlásený: 22.11.17
Príspevky: 297
Témy: 105 | 105
Bydlisko: Šuňava
Vek: 21
Napísal autor témyOffline : 16.09.2017 13:12 | Riešenie pre otvorenie txt súboru 1x

Tu je ten problém. PHP kód aj keď mi vráti iba jedno slovo tak mi ho NodeMCU neprečíta. Prečíta mi iba .txt súbor. Skúšal som to, že som mal 1 ako výpis z MySQL db. NodeMCU prečítalo php stránku ako 12f489fdgn takže takto to nejde. :) Vyskúšam to viac zefektívniť.
Práve to overenie, že sa to vykonalo robí MQTT. Ak sa tu spustí s tým protokolom tak ten to má priamo integrovaný. No na štandardnom webserveri to nemáš. Okrem toho používa špecifické porty. Ten je robený priamo pre toto.


_________________
http://bit.do/bitcoinyzdarma --- Bitcoiny zdarma každú hodinu
 [ Príspevkov: 16 ] 


Riešenie pre otvorenie txt súboru 1x



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

VBA Code pre otvorenie Word súboru inak

v Delphi, Visual Basic

0

282

09.03.2015 14:46

robeno67

V tomto fóre nie sú ďalšie neprečítané témy.

Otvorenie súboru

v Ostatné programy

2

421

30.07.2011 15:37

liveman

V tomto fóre nie sú ďalšie neprečítané témy.

upload txt suboru

v PHP, ASP

24

844

10.07.2008 12:06

rooobertek

V tomto fóre nie sú ďalšie neprečítané témy.

Číslovanie .txt súboru

v Delphi, Visual Basic

5

332

27.03.2012 19:50

Fico

V tomto fóre nie sú ďalšie neprečítané témy.

ulozenie suboru txt VB

v Delphi, Visual Basic

1

605

01.01.2010 12:08

B.A.X.O

V tomto fóre nie sú ďalšie neprečítané témy.

Upravovanie txt suboru pomocou php

v PHP, ASP

4

357

14.01.2009 6:58

JanoF

V tomto fóre nie sú ďalšie neprečítané témy.

PHP citanie z TXT suboru

v PHP, ASP

6

720

12.06.2010 10:54

kexo

V tomto fóre nie sú ďalšie neprečítané témy.

otvorenie súboru CUE a BIN

v Video programy

2

34849

25.09.2006 10:47

palinodsl

V tomto fóre nie sú ďalšie neprečítané témy.

Otvorenie súboru v Google Chrome

v Sieťové a internetové programy

0

371

25.08.2011 20:20

Hanoj

V tomto fóre nie sú ďalšie neprečítané témy.

C++ kombinatorika/zapis do txt suboru

v Assembler, C, C++, Pascal, Java

2

845

13.04.2011 22:46

blabla630

V tomto fóre nie sú ďalšie neprečítané témy.

Sťahovanie web stránky do txt súboru

v Ostatné

7

119

14.11.2017 7:37

BX

V tomto fóre nie sú ďalšie neprečítané témy.

Zapis zo txt suboru do excelu..

v Delphi, Visual Basic

0

303

19.07.2011 19:14

kotlas6667

V tomto fóre nie sú ďalšie neprečítané témy.

Obnova .txt súboru v win XP

v Operačné systémy Microsoft

6

263

29.03.2009 12:30

shiro

V tomto fóre nie sú ďalšie neprečítané témy.

zapis do txt suboru pomocou javascriptu

v JavaScript, VBScript, Ajax

11

306

22.01.2015 23:15

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

Otvorenie suboru z Al Zip-u

v Video programy

2

1541

10.10.2008 22:18

vazovski

V tomto fóre nie sú ďalšie neprečítané témy.

PHP skript, vyber udajov z TXT suboru

v PHP, ASP

6

692

10.12.2009 19:39

stenley



© 2005 - 2017 PCforum, edited by JanoF