Re: [python] bash,signal

2013-02-18 Tema obsahu Honza Javorek
Tak mě hlavně napadá, jestli jsi si jistý, kde je ta prodleva - jestli je
opravdu v tom Python skriptu. Kdyby byla prodleva v tom programu na
ovládání stolku, tak to tímto nevyřešíš.

Jinak je to problém komunikace dvou procesů a to můžeš udělat různě. Záleží
jestli jsi na Windows nebo na nějakém *NIXu, ale možnosti jsou celkem jasně
dány: https://en.wikipedia.org/wiki/Inter-process_communication Ty sis
vybral ten první řádek v tabulce, soubor. Můžeš použít signály, sockety,
... ale tady je asi otázka co zvládne ten bash a co je trochu overkill. Mě
se asi nejvíc pro tvoje použití líbí signály. Stačí ti v podstatě dva:
vyfoť a ukonči se. Ten první by byl nějaký SIGUSR1/SIGUSR2, druhý
normálně SIGTERM, který jde odchytit a skript by se pak řádně ukončil. Z
bashe je můžeš posílat myslím úplně jednoduše pomocí kill.

Honza


2013/2/18 vepro p.zla...@gmail.com

 Ahoj,
 Rad bych se optal na vas nazor ci zpusob reseni nasledujici ulohy:

  V pythonu mam naspanou jednoduchou proceduru pro vyfoceni snimku na
 digitalni zrcadlovce. Tento skript chci vyuzit pro nasnimani sekvence 360
 snimku objektu na otocnem stolku. Aplikace ovladajici stolek po kazdem
 otoceni spusti bashovsky skript, ktery v podstate vola pythoni skript.
 Pythoni skript se spusti, vyfoti snimek, ulozi a posleze se ukonci. Toto se
 tedy opakuje 360 krat. Problem spociva v rychlosti obdrzeni jednoho snimku,
 ktery je cca 17s coz je z hlediska vyuziti mnoho. Zjistil jsem, ze problem
 je v porizeni prvniho snimku. Udelal jsem si testovaci smycku, kde je v
 sekvenci vyfoceno nekolik snimku, pricemz prvni snimek trva onen obrovsky
 cas, ostatni snimky jsou relativne rychle do 2s. V mem provedeni foceni
 jednoho snimku ve skriptu je tedy kazdy snimek prvni a tudiz onech 17s.
 Napadlo me tedy neresit snimek jako jednorazovy skript:
 spust-vyfot-uloz-skonci ale v podobe nekonecne smycky, ktera by testovala
 pritomnost predem daneho nuloveho souboru. Pokud by soubor existoval,
 udelal by se snimek a nasledne by se smazal  nulovy soubor. Aplikace
 ovladajici stolek by pak jenom vytvarela onen nulovy soubor v pripade
 potreby udelani snimku. Ukonceni pythoniho sriptu by pak bylo provedeno
 pres test nejakeho jineho nuloveho souboru. Takto to bude pravdepodobne
 plnit muj ucel, ale zajimalo by me zda existuje elegantnejsi reseni napr. v
 podobe posilani nejakych signalu z bashe do pythonu.

 Diky za pripadne rady
 Petr
 __**_
 Python mailing list
 Python@py.cz
 http://www.py.cz/mailman/**listinfo/pythonhttp://www.py.cz/mailman/listinfo/python

___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python

Re: [python] bash,signal

2013-02-18 Tema obsahu vepro
Jen to urcite v pythonu. Ladim to zvlast. Z nejakeho duvodu je to ale 
zavisle na stroji. Na mem notebooku i prvni foto beha rychle, na 
mericim stroji to takhle drne. Na mericim stroji je ubuntu 10.04 s 
realtime kernelem, na mem stroji je to ubuntu 12.04. Chtel bych aby to 
bylo univerzalni na platformu, ale na 99% procent to pobezi prave na 
linuxu s real time kernelem. Diky kouknu na to


Petr

On 02/18/2013 12:07 PM, Honza Javorek wrote:
Tak mě hlavně napadá, jestli jsi si jistý, kde je ta prodleva - jestli 
je opravdu v tom Python skriptu. Kdyby byla prodleva v tom programu na 
ovládání stolku, tak to tímto nevyřešíš.


Jinak je to problém komunikace dvou procesů a to můžeš udělat různě. 
Záleží jestli jsi na Windows nebo na nějakém *NIXu, ale možnosti jsou 
celkem jasně dány: 
https://en.wikipedia.org/wiki/Inter-process_communication Ty sis 
vybral ten první řádek v tabulce, soubor. Můžeš použít signály, 
sockety, ... ale tady je asi otázka co zvládne ten bash a co je trochu 
overkill. Mě se asi nejvíc pro tvoje použití líbí signály. Stačí ti v 
podstatě dva: vyfoť a ukonči se. Ten první by byl nějaký 
SIGUSR1/SIGUSR2, druhý normálně SIGTERM, který jde odchytit a skript 
by se pak řádně ukončil.Z bashe je můžeš posílat myslím úplně 
jednoduše pomocí kill.


Honza


2013/2/18 vepro p.zla...@gmail.com mailto:p.zla...@gmail.com

Ahoj,
Rad bych se optal na vas nazor ci zpusob reseni nasledujici ulohy:

 V pythonu mam naspanou jednoduchou proceduru pro vyfoceni snimku
na digitalni zrcadlovce. Tento skript chci vyuzit pro nasnimani
sekvence 360 snimku objektu na otocnem stolku. Aplikace ovladajici
stolek po kazdem otoceni spusti bashovsky skript, ktery v podstate
vola pythoni skript. Pythoni skript se spusti, vyfoti snimek,
ulozi a posleze se ukonci. Toto se tedy opakuje 360 krat. Problem
spociva v rychlosti obdrzeni jednoho snimku, ktery je cca 17s coz
je z hlediska vyuziti mnoho. Zjistil jsem, ze problem je v
porizeni prvniho snimku. Udelal jsem si testovaci smycku, kde je v
sekvenci vyfoceno nekolik snimku, pricemz prvni snimek trva onen
obrovsky cas, ostatni snimky jsou relativne rychle do 2s. V mem
provedeni foceni jednoho snimku ve skriptu je tedy kazdy snimek
prvni a tudiz onech 17s. Napadlo me tedy neresit snimek jako
jednorazovy skript: spust-vyfot-uloz-skonci ale v podobe
nekonecne smycky, ktera by testovala pritomnost predem daneho
nuloveho souboru. Pokud by soubor existoval, udelal by se snimek
a nasledne by se smazal  nulovy soubor. Aplikace ovladajici
stolek by pak jenom vytvarela onen nulovy soubor v pripade
potreby udelani snimku. Ukonceni pythoniho sriptu by pak bylo
provedeno pres test nejakeho jineho nuloveho souboru. Takto to
bude pravdepodobne plnit muj ucel, ale zajimalo by me zda existuje
elegantnejsi reseni napr. v podobe posilani nejakych signalu z
bashe do pythonu.

Diky za pripadne rady
Petr
___
Python mailing list
Python@py.cz mailto:Python@py.cz
http://www.py.cz/mailman/listinfo/python




___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python


___
Python mailing list
Python@py.cz
http://www.py.cz/mailman/listinfo/python