26. 11. 2020

Oracle - pretáčanie sequencera

Sequencer v Oracle databázach je vlastne číselná premenná ktorej hodnota sa vyčítaním posunie. Dá sa tak použiť ako nejaký generátor poradových čísel a pod. Používateľ vidí nastavenie sequencerov v user_sequences tabuľke.

select sekvencer1.nextval from dual;  -- takto vycitam novu hodnotu
select sekvencer1.currval from dual;  -- naposledy vycitana (bez posunutia)

alter sequence sekvencer1 increment by -1;  -- v pripade omylu sekvencer vratim
select sekvencer1.nextval from dual;
alter sequence sekvencer1 increment by 1;

declare                            -- posunutie aktualnej hodnoty
ciel CONSTANT NUMBER := 100;
akt NUMBER := 32;
begin
  while akt < ciel loop
    select sekvencer1.nextval into akt from dual;
  end loop;
end;
/

17. 10. 2020

Oprava - dávkovač mydla Dettol

Čo má dávkovač mydla spoločné s diaľkovým ovládačom?

Dávkovač mydla Dettol po náhodných nočných spusteniach prestal fungovať. Pozrel som sa dovnútra. Teda nešlo to ľahko. Do budúcna budem vedieť, že začať treba vypáčením horného plastu nad vypúštacou tryskou.

Žltá šípka ukazuje čím som mal začať

Po násilnom vypáčení bolo jasné, že časť ktorá je hore pri tryske obsahuje okrem prívodu mydla aj súčiastku na dvoch drôtoch. Okrem toho, hadičku by som nevedel zo spodu napojiť naspäť a tak som šiel pozrieť z vrchu.

11. 9. 2020

Shell - čakanie na stav podprocesov

Zo shell skriptu spúšťam na pozadí paralelne podprocesy. Po spustení čakám s akým stavom dobehnú. Našiel som tento príklad použitia "wait" príkazu:

PIDS=""  # cisla forknutych procesov
fail=0   # exit podprocesov
for x in ...; do
 $cmd
 PIDS="$PIDS $!"
done
for pid in $PIDS; do
 wait $pid || fail=1
done

10. 9. 2020

Shell - odstránenie farieb z výpisu

Ak skript vypisuje na obrazovku farbičkami a chceme to logovať, špeciálne znaky pre nastavenie farieb (ctrl) odstránime napríklad takto:
farby.sh | perl -pe's/\e\[?.*?[\@-~]//g'

24. 7. 2020

Úprava - LEDky do auta

Kúpil som v kamennom obchode LED do pätice T10, pri jej skúšaní na zdroji som zistil, že sa rezistor silno prehrieva.

Pri napájaní auto-LED sa bežne zapájajú 3 kusy sériovo a rozdiel medzi 9V (3x 3V) a napätím siete býva spotrebovaný na rezistore. LEDky typu 5050 zvyčajne obsahujú 3 čipy a počet LED je tak úplne na výrobcovi. Na rezistore potom býva prehriatych 60-120mW pri prúde 20mA, čo je prijateľná hodnota.

V prípade tejto LED sú však použité 4 kusy jednočipových LED, ktoré sú zapojené po dvoch v sérií a paralelne, predradný odpor je 150ohm. Pri tejto hodnote prehreje 240-360mW, čo je nad limit štandardného 1/4W rezitora a viac ako spotrebujú napájané LED spolu.


Keďže LED chcem pre vyššiu životnosť, aj za cenu svietivosti, rozhodol som sa odskúšať zapojenie prerobiť na plne sériové. Pri 4 LED to vyjde na minimálne napätie 12V rozdiel do max 15V prehriaty na rezistore. LED by sa nikdy nemala zapájať bez rezistora.
Prúd 40mA sa zníži sériovým zapojením na polovicu, pri 15-12 = 3V je potom hodnota rezistora 3 / 0,02 = 150ohm, môže teda zostať pôvodný. So zníženým napätím síce silnejšie klesne svietivosť, ale zároveň stúpne životnosť.
Úprava spôsobila - studený rezistor, polovičnú spotrebu, možno mierne dlhšiu životnosť.

14. 2. 2020

Rozbor - multi detektory (kov, elektrina, drevo)

Pozrime sa na pár detekčných prístrojov na kov, elektrické vedenie, drevo uložené v stene.


Na obr z ľava: Zircon StudSensor, Powerfix KH2902, Powerfix KH2927-2, obe modré zariadenia sú z predajne Lidl. Všetky detektory sú napájané z 9V batérie, okrem optickej signalizácie (LCD alebo LED) majú aj zvukovú.

12. 2. 2020

Rozbor - DacMagic 100 D/A prevodnÍk

Prišiel mi na opravu nefunkčný D/A prevodník, používaný ako konvertor z optiky na 2x cinch audio. Jedného dňa po zapnutí zrazu rozsvietil všetky LED na prednom paneli a nereagoval na tlačidlá. Oprava sa nepodarila, tak uvádzam aspoň jednoduchý rozbor.

8. 2. 2020

Úprava - režimy dvojledkovej čelovky

Dvoj LEDkové svetlo na čelo (čelovka, head lamp) prišlo na úpravu. Umožňuje prepínať režimy: silný diaľkový reflektor, slabý (pwm regulácia výkonu), žltý okruh svietiaci rozptýlene a na koniec výrobcami "obľúbený" režim blikania.

Požiadavka bola, aby svietil reflektor spolu s okruhom, osvieti tak na blízko a zároveň do diaľky.

Fun - poruchy automatov

Kým fotky bankomatov s modrou obrazovkou už asi nikoho nezaskočia, netypických porúch sa vždy nájde viacero.
Jedna z menej vtipných je semafor, ktorý ukazuje obsadenosť parkoviska a zmení stav (zelená -> červená) až pri pokuse vôjsť dnu. Programátor zjavne netestoval prechodové stavy.


Ak prídete k závore z vnútornej strany a miesto bežnej informácie "nasnímajte kartu" sa dozviete, že časovaču pravdepodobne pretiekla premenná.. Programátor situáciu ošetril "debug" výpisom.
Hláška "hrtimer: interrupt took ..... ns" pochádza z linuxového jadra, vzinká v prípade vysokého zaťaženia CPU. Aspoň, že je tu možnosť zazvoniť operátorovi.


Kávomat s preklepmi pobaví každý krát. Preklepy sú síce často náhodné, no vždy sa (po nakuknutí do ascii tabuľky) akosi zapatroší jediný bit. Náhodne umiestnené znaky dolárov miesto medzier po vhodení mincí sú asi ďalším pokusom techniky rozveseliť v práci umoreného ITčkára.

Rozbor - siréna Keetec AS 35

Siréna od Keetec prišla darom ako vymontovaná spolu s alarmom z auta na využitie vrámci bastlenia.
Podľa popisu ide o 12V, 20W, 120dB elektronickú sirénu. Vydáva klasický kolísavý tón (opakujúca sa stúpajúca frekvencia).


Priemer sirénky je určený veľkosťou použitého reproduktora. Ten je v podstate z veľkej časti magnet na jednej strane prekrytý odnímateľnou membránou s cievkou. Malý rozmer jej dodáva pevnosť.