abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
včera 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 1
včera 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 5
včera 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 0
včera 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
včera 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 0
včera 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 0
1.12. 15:16 | Komunita

Na GOG.com začal zimní výprodej. Řada zlevněných her běží oficiálně také na Linuxu. Hru Neverwinter Nights Diamond lze dva dny získat zdarma. Hra dle stránek GOG.com na Linuxu neběží. Pomocí návodu ji lze ale rozběhnout také na Linuxu [Gaming On Linux].

Ladislav Hagara | Komentářů: 1
1.12. 13:14 | Bezpečnostní upozornění

Byla vydána verze 2.7.1 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Řešeno je několik bezpečnostních problémů. Aktualizován byl především Tor Browser na verzi 6.0.7. Tor Browser je postaven na Firefoxu ESR (Extended Support Release) a právě ve Firefoxu byla nalezena a opravena vážná bezpečnostní chyba MFSA 2016-92 (CVE-2016-9079, Firefox SVG Animation

… více »
Ladislav Hagara | Komentářů: 0
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 759 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: Ovladani seriaku

Vojta Drbohlav avatar 20.3.2006 19:51 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Ovladani seriaku
Přečteno: 928×
Ahoj, kdyz na seriak zapisu echo ahoj > /dev/ttyS2 tak potom jinde v konsoli dam cat /dev/ttyS2. Ale ten cat vypisuje porad dokola prazdne radky a obcas se tam objevi to ahoj i kdyz jsem ho poslal jen jednou. Myslim si ze mam neco blbe v kernelu ale netusim co. Nevite nekdo co s tim? Dik Vojta

Odpovědi

20.3.2006 20:09 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Ovladani seriaku
Myslím, že v kernelu nic špatného nemáš. Když sériový port nijak nenastavíš a vše necháš na defaultních hodnotách, pak se chová právě tak jak jsi napsal. V tomto článku jsem se pokusil trochu přiblížit, co se s tím dá dělat:
první díl:
http://www.abclinuxu.cz/clanky/show/63006
druhý díl:
http://www.abclinuxu.cz/clanky/show/63301
Vojta Drbohlav avatar 20.3.2006 20:25 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Ovladani seriaku
Dik moc uz to jede, podle toho nastaveni v tom prvnim dile!!! ;-)
Vojta Drbohlav avatar 21.3.2006 19:49 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Ovladani seriaku
Jeste bych chtel vedet jestli lze na comu ovladat jednotlive vystupy. Vim ze prez cat /dev/ttyS2 se zapnou vsechny ale ja bych je chtel zapnout zvlast. Diky Vojta
Josef Kufner avatar 21.3.2006 20:19 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Ovladani seriaku
Jde to. Nejrozumejsi cesta vede pres ioctl (tusim). Pak je moznost primo ovladat pomoci outb a inb, ale to je trosku nesikovne. Mam pocit, ze tu vysel o tom clanek...
Hello world ! Segmentation fault (core dumped)
21.3.2006 20:23 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Ovladani seriaku
Toto je program (v Céčku), který vynuluje a vzápětí zase nastaví DTR. Samo o sobě je to k ničemu, napsal jsem to jen jako ilustraci. Chtělo by to ještě doladit.
#include <sys/ioctl.h>
#include <fcntl.h>
#include <unistd.h>

int main(int argc, char **argv) {
  int fd;
  int iFlags = TIOCM_DTR;

  fd = open("/dev/ttyS0",  O_RDWR | O_SYNC);
  ioctl(fd, TIOCMBIC, &iFlags); /* Vynuluje DTR */
  ioctl(fd, TIOCMBIS, &iFlags); /* Nastavi DTR */
  close(fd);
  return 0;
}
Vojta Drbohlav avatar 21.3.2006 20:24 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Ovladani seriaku
Dik a neslo by to nejak v bashi tohle do kommanderu asi nenacpu. :-(
Josef Kufner avatar 21.3.2006 21:15 Josef Kufner | skóre: 66
Rozbalit Rozbalit vše Re: Ovladani seriaku
Tak si napis v cecku jen wrapper okolo ioctl... je to na par radek. At ten programek bere nejaky parametry (treba "dtr 1") a pak muzes scriptovat dle libosti... ;-)
Hello world ! Segmentation fault (core dumped)
Vojta Drbohlav avatar 21.3.2006 22:13 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Ovladani seriaku
A nemuzete mi to nekdo napsat ja v cecku neumim :-( Proste aby to umelo nastavovat vystupy seriaku. Diky moc Vojta
30.3.2006 17:54 xxxxxxxx | skóre: 16 | blog: mrtvy blog | v nebi
Rozbalit Rozbalit vše Re: Ovladani seriaku
esli to chces jen spustit, tak se cecko zacni ucit ;-) staci ti jen toto

http://www.linuxsoft.cz/article.php?id_article=387
Vojta Drbohlav avatar 30.3.2006 17:57 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Ovladani seriaku
Ale me staci jestli by nekdo byl tak hodnej a napsal ten wrapper a pak to muzu ovladat uz z kommanderu ne?
30.3.2006 19:51 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Ovladani seriaku
Tady je ten wrapper. Podle toho, s jakými parametry se pustí, může nastavit nebo vynulovat RTS či DTR uvedeného portu. Nastavuje se doba, po které program skončí a stav linek se vrátí do defaultních hodnot. Jak jsem psal, nejde to udělat tak, aby si linky své nastavení pamatovaly (leda by byl port furt otevřený).

Pomocí programu statserial můžeš sledovat, jak se stav linek mění.

Help toho programu vypíše toto:
usage: setdtrrts.py [options]

options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -d DEVICE, --device=DEVICE
                        serial port device (default /dev/ttyS0)
  -R, --RTS             set RTS
  -D, --DTR             set DTR
  -t DELAY, --time=DELAY
                        time in seconds to quit (default 5)
Takže například
setdtrrts.py -d /dev/ttyS1 --RTS --DTR -t 3
Zapne obě stavové linky u portu /dev/ttyS1 na dobu tří sekund.

A tady je ten program:
#!/usr/bin/env python
import tty, os, fcntl, time, struct
from optparse import OptionParser

usage = "usage: %prog [options]"
parser = OptionParser(usage, version="%prog version 0.1")

parser.add_option("-d", "--device", action = "store",
  default = "/dev/ttyS0", dest="device", help="serial port device (default /dev/ttyS0)")

parser.add_option("-R", "--RTS", action = "store_true",
  default = False, dest="rts", help="set RTS")

parser.add_option("-D", "--DTR", action = "store_true",
  default = False, dest="dtr", help="set DTR")

parser.add_option("-t", "--time", action = "store", type = "float",
  default = 5, dest="delay", help="time in seconds to quit (default 5)")

(options, args) = parser.parse_args()


TIOCM_DTR_str = struct.pack('I', tty.TIOCM_DTR)
TIOCM_RTS_str = struct.pack('I', tty.TIOCM_RTS)

fd = os.open(options.device, os.O_RDWR | os.O_SYNC)

if options.dtr:
  print "setting DTR"
  fcntl.ioctl(fd, tty.TIOCMBIS, TIOCM_DTR_str)
else:
  print "clearing DTR"
  fcntl.ioctl(fd, tty.TIOCMBIC, TIOCM_DTR_str)

if options.rts:
  print "setting RTS"
  fcntl.ioctl(fd, tty.TIOCMBIS, TIOCM_RTS_str)
else:
  print "clearing RTS"
  fcntl.ioctl(fd, tty.TIOCMBIC, TIOCM_RTS_str)

time.sleep(options.delay)
... a měl bys začít programovat v nějakém kloudném programovacím jazyce, který není odkázaný na volání externích programů.
Vojta Drbohlav avatar 30.3.2006 20:40 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Ovladani seriaku
Kloudnej jazyk je treba Object Pascal, ale jen ve Widlich :-(. Ten docela ovladam(alespon si to myslim). Ale v linuxu co napriklad? C nebo Python? C mi prijde dost tezky. Dik za pomoc Vojta
31.3.2006 09:08 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Ovladani seriaku
Jojo, céčko je sice docela složité, ukecané, svádí k různých notorickým chybám, ale na druhou stranu je strašně rychlé a jde v něm napsat _všechno_. Jestli jsi programoval v Object Pascalu, tak trochou snahy céčko zvládneš taky.

Python je na naučení nesrovnatelně jednodušší. Má to fajn syntaxi, výjimky, objekty, dědičnost, dynamické typování, ohromnou knihovnu, slušně napsané programy běží i pod windows, prostě nač si vzpomeneš. A ve srovnání s céčkem je dramaticky pomalejší, nicméně s céčkem velmi dobře spolupracuje.

Ten wrapper jsem napsal v pythonu, jak jsi jistě poznal. Existují ještě tuny dalších jazyků, ale až ti je někdo bude doporučovat, nech si od něj nejdřív napsat wrapper pro sériový port ;-)
Vojta Drbohlav avatar 31.3.2006 14:14 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Ovladani seriaku
Asi zkusim C, kdyz to nepujde tak Python (mozna s PyQt ;-)). Dik moc Vojta
31.3.2006 12:23 trekker.dk | skóre: 71
Rozbalit Rozbalit vše Re: Ovladani seriaku
Free Pascal Compiler - píšou, že je kompatibilní s TP7.0 stejně jako s většinou verzí Delphi.
Quando omni flunkus moritati
Vojta Drbohlav avatar 31.3.2006 14:11 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Ovladani seriaku
Tohle znam a obcas pouzivam v Lazarusu pro Linux. Ale chtel bych umet jeste neco ;-)
Vojta Drbohlav avatar 31.3.2006 14:13 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Ovladani seriaku
A navic nevim jak v linuxu pomoci pascalu ovladat seriak. Ve widlich to bylo v poho nejaka knihovna PORT.DLL.
Vojta Drbohlav avatar 21.3.2006 21:07 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Ovladani seriaku
Jde to nejak udelat v kommanderu???
21.3.2006 22:28 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Ovladani seriaku
Situaci komplikuje skutečnost, že po skončení programu se uzavře port a tím se DTR i RTS vynuluje. Tímto neduhem by trpěl i onen wrapper, který by se volal z bashe či kommanderu, ale pro některé účely by se to použít dalo.
Vojta Drbohlav avatar 30.3.2006 17:01 Vojta Drbohlav | skóre: 26 | blog: Blog | Strahov
Rozbalit Rozbalit vše Re: Ovladani seriaku
To by mi nevadilo jen bych potreboval napsat ten wrapper. Prosim Dik Vojta
31.3.2006 09:53 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
Rozbalit Rozbalit vše Re: Ovladani seriaku
Zdravim

Potrebuju resit podobny problem. Potrebuju v pulminutovych intervalech prepinat relatko a vzdy po prepnuti spustit skript.

Uz jsem si myslel ze vyuziju vyse uvedeny program co nastavi a zase hned vynuluje DTS (nebo co to bylo), ale kdyz se pri ukonceni programu samo od sebe DTS vynuluje tak mi to kazi plany.

Zdenek
www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
31.3.2006 10:08 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Ovladani seriaku
Tohle by mělo fungovat. V nastavených intervalech to mění DTR i RTS a vždy po přepnutí to zavolá externí program (fuj), vo tomto případě "date". Ale je tu háček. Nevím, jak přesně se má těch 30 sekund čekat, takže jsem to udělal úplně tupě - něco dělej, čekej 30s, něco dělej, čekej 30s, takže jsem zanedbal dobu provádění operací. Bude to potřeba přesněji?
#!/usr/bin/env python
import tty, os, fcntl, time, struct, subprocess

programname = 'date'
delay = 3

TIOCM_DTR_str = struct.pack('I', tty.TIOCM_DTR)
TIOCM_RTS_str = struct.pack('I', tty.TIOCM_RTS)
fd = os.open('/dev/ttyS0', os.O_RDWR | os.O_SYNC)

while True:

  print "setting DTR"
  fcntl.ioctl(fd, tty.TIOCMBIS, TIOCM_DTR_str)
  print "setting RTS"
  fcntl.ioctl(fd, tty.TIOCMBIS, TIOCM_RTS_str)
  subprocess.Popen([programname])

  time.sleep(delay)

  print "clearing DTR"
  fcntl.ioctl(fd, tty.TIOCMBIC, TIOCM_DTR_str)
  print "clearing RTS"
  fcntl.ioctl(fd, tty.TIOCMBIC, TIOCM_RTS_str)
  subprocess.Popen([programname])

  time.sleep(delay)
31.3.2006 10:53 Zdeněk Štěpánek | skóre: 57 | blog: uz_mam_taky_blog | varnsdorf
Rozbalit Rozbalit vše Re: Ovladani seriaku
Zdravim

Diky moc, uz si s tim pohraju. Presnost staci plus minus autobus. Mam 2 kamery a jednu TV kartu, tak tam vrazim relatko. Mezi prepnutim vzdycky pustit mplayer aby stahnul obrazek.

http://www.gavanet.org:81/kamera

Zdenek
www.pirati.cz - s piráty do parlamentu i jinam www.gavanet.org - czfree varnsdorf
31.3.2006 12:08 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: Ovladani seriaku
Aha to bude snímat obrázky z kamery? Tak kdyby se z toho pak dělal třeba film, tak na tom časování bude dost záležet. No raději jsem to udělal trochu pořádněji, aby ta pauza byla přesná.
#!/usr/bin/env python
import tty, os, fcntl, time, struct, subprocess

def runcommand(command):
  process = subprocess.Popen([command])
  process.wait()

def wait_period(period):
  sec = time.time()
  time_to_wait = period - sec % period
  print "Waiting for %g seconds" %time_to_wait
  time.sleep(time_to_wait)

class Relay:
  def __init__(self, devpath, initstate = True):
    self.fd = os.open(devpath, os.O_RDWR | os.O_SYNC)
    self.TIOCM_DTR_str = struct.pack('I', tty.TIOCM_DTR)
    self.TIOCM_RTS_str = struct.pack('I', tty.TIOCM_RTS)
    self.state = initstate
    self.switch(self.state)
    
  def switch(self, state):
    if state:
      print "setting DTR"
      fcntl.ioctl(self.fd, tty.TIOCMBIS, self.TIOCM_DTR_str)
      print "setting RTS"
      fcntl.ioctl(self.fd, tty.TIOCMBIS, self.TIOCM_RTS_str)
    else:
      print "clearing DTR"
      fcntl.ioctl(self.fd, tty.TIOCMBIC, self.TIOCM_DTR_str)
      print "clearing RTS"
      fcntl.ioctl(self.fd, tty.TIOCMBIC, self.TIOCM_RTS_str)
    self.state = state

  def negate(self):
    self.state = not self.state #negate
    self.switch(self.state)
    

rele = Relay('/dev/ttyS0', initstate = False)

while True:
  wait_period(3)
  rele.negate()
  runcommand('date')
Je to trochu lepší verze než ta předchozí. Jednak je to objektové a pak to časování je udělané tak, že se systematicky nepředbíhá ani nezpožďuje. Navíc se čas počítá absolutně, takže lze předem říct, že se kamery budou přepínat vždy v celou minutu a v půl.
4.2.2007 10:47 Tomáš | skóre: 4
Rozbalit Rozbalit vše Re: Ovladani seriaku
Ahoj. bylo by možno to nějak upravit v céčku i pro linku TXD a čtení z linek CTS, RI atd. díky.

Založit nové vláknoNahoru

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

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.