Portál AbcLinuxu, 10. května 2025 05:58

Dotaz: Sledovani serial portu

10.8.2006 11:04 LaCosta
Sledovani serial portu
Přečteno: 1117×
Odpovědět | Admin
Potrebujem nejaky sposobm sledovat stav serial portu. Stacia 2 stavy. Dane zariadenie na seriaku bude spinat piny serioveho portu, takze v podstate ziadna komunikacia, len nejaky stav sa zmeni na seriaku. Je nejaky daemon pripadne script ako toto sledovat ?

Moze to byt aj na paralel. port, pripadne ak mate nejaky napad ... Konkretne ide o home made UPS :) a potrebujem poslat mail ze dany stroj ide na baterku
Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

10.8.2006 11:10 R
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Lacne UPS to naozaj tak robia - pouzivaju seriovy port. Takze ked sa to vhodne zapoji, mohlo by to chodit s existujucim SW (mozno apcupsd?)
10.8.2006 11:43 LaCosta
Rozbalit Rozbalit vše Re: Sledovani serial portu
Ta UPS je home made :) takze toto mi nepomoze .. mne by stacilo cez konzolu, bash nacitat nejaku hodnotu a tu si nejak podmienkou spracujem. Len neviem co citat zo seriaku a co na nom spravit aby som mal 2 stavy ...
10.8.2006 12:37 DNA
Rozbalit Rozbalit vše Re: Sledovani serial portu
nejjednodušší zapojení, pokud vím, je pomocí kondenzátoru, odporu a spínače - kondenzátor drží logickou úroveň 1 a po sepnutí spínače se vybije skrz odpor - spojit dva drátky na sériáku bych si netroufal...
Josef Kufner avatar 11.8.2006 00:15 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Sledovani serial portu
Klidně si troufni. Sériový port je odolná potvora co vydrží libovolný zkrat.
Hello world ! Segmentation fault (core dumped)
10.8.2006 13:15 trekker.dk | skóre: 72
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud ta UPS má posílat i nějaké informace (kolik zbývá baterky apod.), tak na druhej konec dej mikropočítač a posílej si to jako data. Na straně PC potom stačí, když poběží program, který bude selectem() čekat, než mu něco přijde z /dev/ttySx

Pokud ti stačí opravdu jenom dva stavy (běží na baterky / neběží na baterky), tak využij CTS pin.
Quando omni flunkus moritati
10.8.2006 16:57 vampi | skóre: 16 | blog: JenTakBlog
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
ahoj, nepodělil by ses od zapojení tišťáku té "domácí ups"? případně bych Ti udělal ten sledovač sériáku, pokud jsi už něco nesehnal :)
cesta k dokonalosti je nekonečná - proto hledám jen jednoduchá funkční řešení :)
10.8.2006 21:25 LaCosta
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dakujem za odpovede ... uz si nejak poradim Co sa tyka UPS udrzi priemerny server necele 2 dni (mame dobru baterku) :D, je typu online, jak to bude hotovo tak sem hodim link ..
Pavel Čejka avatar 10.8.2006 22:30 Pavel Čejka | skóre: 28 | blog: tosinezaslouzijmeno
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já bych to řešil pomocí MCU. Kdysi tu na abclinuxu.cz vyšel i návod. Použil bych nějaký nejlevnější AT Mega jehož programování je extrémně jednoduché a podporované v Linuxu, naprogramoval bych ho tak, aby reagoval třeba na vstup INT 0 a zasleepoval, takže bude mít i zcela zanedbatelný odběr, zvlášť bude-li taktovaný co možná nejpomaleji. Jakmile UPS sepne INT jednočipu, tak se jednočip probudí, zcela korektně pošle nějakou ASCII sekvenci po sériovém portu a je to. Případně to lze všelijak zesložitit, jelikož je MCU vybaven AD převodníkem, tak může například měřit vybití baterií.

Mimochodem to schéma domácí UPS mne taky docela zajímá.
10.8.2006 22:58 Dejv | skóre: 37 | blog: Jak ten blog nazvat ... ? | Ostrava
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zarazuji se do fronty zajemcu :-)

Dejv
Pevně věřím, že zkušenější uživatelé mě s mými nápady usměrní a pošlou tam, kam tyto nápady patří...
NbS avatar 10.8.2006 23:00 NbS | skóre: 26 | blog: Linux jako Linux ... vsude je neco jako /etc | Prague
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
ja tez prosim :)
Pan Bily byli bily strop, aby byl bily ... (Opravdu si myslite, ze je to spravne) ?
11.8.2006 00:09 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jestli chceš opravdu sledovat pouze některou ze stavových linek na sériovém portu, tak to můžeš udělat třeba takhle:
#!/usr/bin/env python
import tty, os, fcntl, struct

fd = os.open('/dev/ttyS0', os.O_RDWR | os.O_SYNC)

bits = [(tty.TIOCM_RTS, 'RTS'),
        (tty.TIOCM_DTR, 'DTR'),
        (tty.TIOCM_CTS, 'CTS'),
        (tty.TIOCM_RNG, 'RNG'),
        (tty.TIOCM_CAR, 'CAR'),
        (tty.TIOCM_DSR, 'DSR')]
TIOCM_zero_str = struct.pack('I', 0)
mask =  tty.TIOCM_CTS | tty.TIOCM_RNG | tty.TIOCM_CAR | tty.TIOCM_DSR

while True:
  result = []
  fcntl.ioctl(fd, tty.TIOCMIWAIT, mask)
  state = fcntl.ioctl(fd, tty.TIOCMGET, TIOCM_zero_str)
  state_i = struct.unpack('I', state)[0]
  for bit, name in bits:
    if state_i & bit:
      result.append(name)
    else:
      result.append(name.lower())
  print ' '.join(result)

os.close(fd)
Ten program čeká, dokud se nezmění stav některé z linek. Když dojde ke změně, vypíše jejich stav. Podotýkám, že čekání na změnu nijak nezatěžuje procesor (nejedná se o periodické dotazování, ale o jaderné volání).

Bohužel momentálně nemám jak to vyzkoušet - sedím u počítače bez sériového portu. Napsal jsem to víceméně naslepo, takže jestli to nebude fungovat, tak se omlouvám.
11.8.2006 09:38 R
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nechapem, preco vymyslat vselijake kraviny typu MCU, ktory nic nerobi... Zober si zapojenie serioveho portu napr. APC BackUPS - tych najlacnejsich, ktore maju len DUMB mod (neviem, ci sa este vyrabaju). Tam je 1 pin AC/battery, dalsi battery low, potom je tam tusim vypnutie UPS a neviem co este. Ked to zapojis podla toho, tak s tym bude fungovat apcupsd a nemusis znovu programovat nieco, co uz niekto x rokov robi.
Pavel Čejka avatar 11.8.2006 10:35 Pavel Čejka | skóre: 28 | blog: tosinezaslouzijmeno
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protoze takovy MCU je levny, ma malou spotrebu, snadno se s nim pracuje a poskytuje nejenom to co chci, ale i spoustu uzitecnych moznosti navic (stav baterii, aktualni zatizeni atd...). Navíc poslání sekvence znaků na RS232 je poněkud "kompatibilnější" řešení než prosté nastavení napětí na nějakém vstupu ...
14.8.2006 07:57 id2307 | skóre: 8 | blog: Jmenoblogusmiobsahovatjenznaky | Dvůr Králové nad Labem
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
jen taková offtopic pro autora, jestli na nás nezapomněl s tím zapojením? ;)
14.8.2006 09:06 LaCosta
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ne nezapomel ... :) len cekam co to bude hotovo, majte strpenie je kopec prace, ale slubujem jak to bude hotovo tak to sem hodim.
14.8.2006 09:48 id2307 | skóre: 8 | blog: Jmenoblogusmiobsahovatjenznaky | Dvůr Králové nad Labem
Rozbalit Rozbalit vše Re: Sledovani serial portu
no kdybych mohl nějak pomoci - jako ze asi ne, rád to udělám :) btw. jestli jsem to z předchozích příspěvků pochopil, máš tu ups už postavenou - takže nějaké zapojení asi máš? kdyby sem šlo hodit něco alespoň pro představu ;)
21.8.2006 07:34 id2307 | skóre: 8 | blog: Jmenoblogusmiobsahovatjenznaky | Dvůr Králové nad Labem
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
týden se s týdnem sešel a tak se opět připomínám, zda bys poskytnul zapojení té upsky :)
21.8.2006 11:15 ava
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Mozna by nebylo marny podivat se na projekt lirc (http://lirc.org), je to sice jako jit s kanonem na vrabce, ale to co chces je podmnozina toho co lirc umi, i kdyz uplne za jinym ucelem.
28.8.2006 10:43 id2307 | skóre: 8 | blog: Jmenoblogusmiobsahovatjenznaky | Dvůr Králové nad Labem
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
další týden a výpadek proudu za mnou, tak bych se chtěl zeptat autora, zda se hodlá podělit o řešení nebo ne, případně aby mi napsal na webmaster()witch-doctor.net, abych tu nemusel spamovat diskuzi ;) díky
13.9.2006 14:40 LaCosta
Rozbalit Rozbalit vše Re: Sledovani serial portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
No takze sa to zmenilo .. kupila sa najlacnejsia UPS rozobrala a dali sa baterky z kamionu :) .. podla merania ich to bude nabijat 8 dni :) ale to by uslo a vydrz cca 3 dni. Bohuzel mam problem z USB cez NUT, ide o Infosec UPS.

Lacna UPS sa da zohnat u nas do dvoch litrov u vas este menej ... Takze stavat sa to asi moc neoplati ...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.