
Lazarus - problen s while
Zdravím.
Nedavno jsem tu řešil programek na vyčitaní dat z vahy přes ser.port, který funguje, ale snažim se o další level.
Odešlu LazSerial1.WriteData(#$52#$0d#$0a);
A vrati se mi ST,GS,1450,kg
To první ST je že je vaha stabilní. Pokud není vrati NS, jako nestabilní. A tady je problem.
Normalně seděl na židli čipek, a když se na vaze zobrazilo ST, tak klik na tlačitko a data uložil a vytisknul.
Čipek už není.
https://i.postimg.cc/NG1h8qvN/v.png
https://postimg.cc/c6x4Wdwm
Po kliknutí na tlačitko by se v cyklu While mělo odesilat do váhy tak dlouho, dokud se mi nevratí stavvazeni = 'ST',
a pak vypsat bo Memo1.
Je to však opačně.
Nenapada někoho, de dělam chybu?
Děkují.
Tak to čtení mám tak jak poradil Wikan a bych řek, že je to dobrý napad.
Ale to "ještě by bylo dobré dát tam nějaký timeout, aby program neuváznul v té smyčce navěky" mi nedalo spat.
Takže asi klasika s repeat.
Nějake připominky?
Já bych se i v tomhle případě na cyklus vykašlal. Přidat bych si tam počítadlo, při každém neúspěšném pokusu ho zvednul a pokud by dosáhlo zvolené hodnoty, tak už bych to vážení neopakoval.
Ona to je vaha na nakladní auta do 65 tun.
Když někdo na ní vjede slušně, pomalu tak se ustali mnohem rychlejí než když na ní vjede nějake prase. a prasat je hodně.
Neopakuje se važení.
Při kliknuti se odešle jen jednou WriteData
V LazSerial1RxData se to opakuje dokud vaha je stabilní a pak ukonči
A přes repeat jen hlidam, až se ustali a načtu vahu.
Kluci, jsem se zadrhl na tom posledním.
Chci to uložit, ale aby v nazvu bylo datum a čas a soubor musí být bez připony.
Když použiju formatdatetime('ddddd h:nn', now), mám 17.01.2023 15:46
Počitač bere tečku mezí 01.2023 a tedy mám soubor 17.01 s připonou 2023 15:46
Potřebují změnít ty . třeba za -.
Projet postupně znak po znaku a nahradít bych zvlad.
Je jednodušší zpusob?
Dik.
Jsi si jistý tvou dvojtečkou? Tak v názvu souboru být nemůže.
Spíš bych doporučil něco jako:
Pak to bude správně seřazené.
2023-01-17 16:22 16-22
I tak se mu to melibi.
Když vezmu text soubor a dam přejmenovat, vyhodi chybu.
Takže asi i ta dvojtečka.
Vyhodí chybu. Aha. A nenapíše jakou chybu?
Lazarus žadnou nevyhodi a zamrzne.
Pokud toužiš po te systemové tak tady 2023-01-17 16:22 16-22
Označit - ctrl+c. Vytvořit nový dokumet. Kliknout na poličko uložit a pak ctrl+v, a uložit.
Už to mam vyřešene.
Děkují všem co pomohli.
Tak to je snad jasný, že název souboru s dvojtečkou není platný...
Tak jak kde, že ano ... u mě to například není žádný problém:
No jistě, vždycky se najde někdo, kdo musí dokázat opak. Z kontextu je asi všem jasné, že to provozuje na Windows...
Nevím, jestli jsem něco nepřehlídnul, ale jediné, co by na to ukazovalo, by bylo, že mu to bez vysvětlení spadne - jestli jsem přehlédnul nějaký kontext, tak mi ukaž kde ...
Nechce se mi plýtvat energií na nějaké přesvědčování a dokazování. Souhlasím s tím, že v některých operačních systémech může být dvojtečka v názvu souboru. Spokojen?
Tak takhle: