 |
"Data Acquisition System" za pol chasa |
 |
10.01.2005, 14:03
|
#1
|
Профессор
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 0
|
"Data Acquisition System" za pol chasa
Reshil podelitsya ...
DAQ obichno pishut na systemnix yazikax f.e. C/C++
tut ya odnu napisal na perl -e, rabotayet kak chasi.
chto skajete ?
#!/usr/bin/perl
-------------------------------------------------------------------------------------
$DIR="/home/data/";
#local ($/) = "\r" ;
open (Serial_Port, "/dev/ttyS0");
$Counter=0;
$First_Iteration = "Yes";
while ($record = <Serial_Port>) {
#print $record;
$record =~ s/[^\d \.-]*//g;
$record =~ s/ {2,}/ /g;
($X,$Y,$Z,$Tempr,$hummi) = split(/ /, $record);
$X_Sum=$X_Sum + $X;
$Y_Sum=$Y_Sum + $Y;
$Z_Sum=$Z_Sum + $Z;
$Tempr_Sum=$Tempr_Sum + $Tempr;
$hummi_Sum=$hummi_Sum + $hummi;
print ".";
$Counter++;
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = gmtime(time);
if($hour < 10){
$hour = "0".$hour;
}
if($sec < 10){
$sec = "0".$sec;
}
if($min < 10){
$min = "0".$min;
}
$year+=1900;
$mon++;
$Time = $hour.":".$min.":".$sec;
if($year < 10){
$year = "0".$year;
}
if($mon < 10){
$mon = "0".$mon;
}
if($mday < 10){
$mday = "0".$mday;
}
$FileName = "$year$mon$mday.wst\n";
$Y_Sum." ".$Z_Sum." ".$Tempr_Sum." ".$hummi_Sum." IendI";
if($Old_Minute ne $min and $Old_Minute ne ''){
open(fileOUT, ">>".$DIR.$FileName) or dienice("Can't open ".$DIR.$FileName." for writing: $!");
$X_Sum=$X_Sum / $Counter;
$Y_Sum=$Y_Sum / $Counter;
$Z_Sum=$Z_Sum / $Counter;
$Tempr_Sum=$Tempr_Sum / $Counter;
$hummi_Sum=$hummi_Sum / $Counter;
#print "\n Minutly values:\n";
print fileOUT $Time." ".$X_Sum." ".$Y_Sum." ".$Z_Sum." ".$Tempr_Sum." ".$hummi_Sum."\n";
$X_Sum = 0;
$Y_Sum = 0;
$Z_Sum = 0;
$Tempr_Sum = 0;
$hummi_Sum = 0;
$Counter = 0;
close(fileOUT);
$Old_Minute = "$min";
}
if($First_Iteration == "Yes"){
$Old_Minute = $min;
$First_Iteration == "No";
}
}
--------------------------------------------------------------------------------
|
|
|
 |
13.01.2005, 14:21
|
#2
|
Студент
Join Date: 07 2002
Location: here
Age: 45
Posts: 388
Rep Power: 0
|
I chto eto takoe?
|
|
|
13.01.2005, 16:33
|
#3
|
Guru Apprentice
Join Date: 02 2002
Location: /dev/null
Age: 48
Posts: 524
Rep Power: 0
|
Это perl-script (обратите внимание на первую строчку, и сразу станет ясно что это перл-скрипт), который читает что-что с serial1, что-то с этим чем-то делает, усредняет и загоняет во внешний файл. Видимо это что-то с serial1 приходит как строка текстовых величин разделенных пробелами. Видимо кроме пробелов бывает мусор, или пробелов бывает больше чем один.
Чего от нас хочет accemic26 я не очень понял. Ты лучще обьясни что у тебя к сериал1 подключено? Если я туда мышку воткну, что получится?
__________________
\/\/h47'5 1n 4 n4m3? 7h47 wh1(h w3 (4|| 4 r053,
8y 4ny 07h3r n4m3 w0u|d 5m3|| 45 5w337...
|
|
|
13.01.2005, 17:41
|
#4
|
Грустно...
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 43
Posts: 21,717
Rep Power: 9
|
до хрена ненужных данных
|
|
|
13.01.2005, 17:45
|
#5
|
Профессор
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 0
|
Ektich jan da nichego ne xochu.
Prosto predlojil ispol`zovat` perl dlya serial port application-ov. vot i vsyo
k com portu podklyucheno ustroistvo izmereniya 3-x sostovlyayush`ix vektora magnitnogo polya, vlajnosti i temperaturi. no eto vrode ne vajno.
a regular ezpression, ispol`zovoval potomuchto stroka prixodit kak X=, Y=, Z= ...
a usrednyayu potomuchto danniye prixodyat s periodom 1 sec, a mne nujni minutniye danniye.
|
|
|
14.01.2005, 11:30
|
#6
|
Guru Apprentice
Join Date: 02 2002
Location: /dev/null
Age: 48
Posts: 524
Rep Power: 0
|
Quote:
Originally Posted by accemic26
Ektich jan da nichego ne xochu.
Prosto predlojil ispol`zovat` perl dlya serial port application-ov. vot i vsyo
|
Да хоть Visual BASIC используй, родной! Смотря какая задача, какое устройство. Если бы твоя штука не передавала Х=, У= а дпоустим 2 байта в которых все то же самое записано в каком-нибудь диком упакованном виде (чтобы успеть передать например показания с пол-миллиона датчиков) да еще стояло бы условие что никаких задержек на обработку инфы не должно быть (а то все бабахнет к чертовой матери) ты бы на чем писал бы? Тоже на перле?
__________________
\/\/h47'5 1n 4 n4m3? 7h47 wh1(h w3 (4|| 4 r053,
8y 4ny 07h3r n4m3 w0u|d 5m3|| 45 5w337...
|
|
|
14.01.2005, 11:43
|
#7
|
Профессор
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 0
|
EKTICH
ты хоть знаеш что такое DAQ ?
Показание с пол милионна датчиков приходящие на последоватьельный порт с периодом 1 сек. тебе в этом и ассемблер не поможет и в ком порт все это добро не засуниш как бы ты не упаковывал и даже если датчики будут тригеного типа. В этом случае обычно используют крэйт камак, знаеш что это такое ?
Ты топик повнимательней почитай.
А перл я использовал потомучто это опытная установка. и этот скрипт должен менятся со временем.
|
|
|
 |
|
 |
14.01.2005, 11:57
|
#8
|
Guru Apprentice
Join Date: 02 2002
Location: /dev/null
Age: 48
Posts: 524
Rep Power: 0
|
Ой, какой пыл, какой жар, сразу с кулаками на обидчика!
Расслабся, что такое крейт камак я знаю, даже модули в него пихал в лабораторной на кафедре, даже видел таких зверей в ЕрФИ, на ускорителе. На что похожи данные с пол-миллиона датчиков тоже представляю. Теперь что, за то что я не поставил ключевые слова հոսկի օրինակ перед фразой "с пол-миллиона датчиков" меня сразу в ламеры разжаловать?
Ты остынь, я тебя не критикую. Просто пытаюсь понять смысл в твоем посте. Пытаешся показать что ты DAQ на перле написал когда "DAQ obichno pishut na systemnix yazikax f.e. C/C++"? Я и говорю DAQ-и разные бывают. Я вон траффик собираю с 18 "кисок", по 24 порта на каждой, и графики рисую, тоже DAQ, тоже на перле написан (хотя мне не нравится, медленно работает, хочу на Ц++ переписать). Или это не DAQ? Обьясни мне, ламеру несчасному, у котого всего-то образования - PhD в математической физике...
Искренне ваш,
Эктич
PS. для тех кто не знает: "киска" \equiv CISCO
PPS. для тех кто знал - ни в коей мере не пытаюсь показать что я знаю больше вас, коллеги!
PPPS. \equiv - математический символ эквивалентности в ЛаТеХ...
__________________
\/\/h47'5 1n 4 n4m3? 7h47 wh1(h w3 (4|| 4 r053,
8y 4ny 07h3r n4m3 w0u|d 5m3|| 45 5w337...
Last edited by Ektich; 14.01.2005 at 12:01.
Reason: P.S. Added
|
|
|
 |
14.01.2005, 12:10
|
#9
|
Профессор
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 0
|
Вот тебе из интернета
тут вроде ничего не сказано о обработке данных
System which acquires data, generally by digitizing analog channels and storing the data in digital form. These systems can be standalone or married to a computer and can acquire multiple channels of data.
относительно твоего образования
у меня их 2
1. политехническии. ВТ Вычислительные системы и сети
2. Университет Ядерная физика
первое надо признать... мне больше понравилось
Вот только не понял причем тут математическая физика ?
|
|
|
14.01.2005, 12:15
|
#10
|
just as it is
Join Date: 01 2004
Location: Bonn, DE
Age: 50
Posts: 991
Rep Power: 5
|
Rebyata, davaite jit' drujno!
Perestan'te zamaxivatca obrazovaniyami, eto kak v pervom klasse.
Glavnoe zdes' mojno skazat' chto vse molodci chto ponimayut dlya chego vsyo eto nado.
__________________
this is my signature
~
~
:wq
|
|
|
14.01.2005, 12:18
|
#11
|
Профессор
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 0
|
Астро
в споре рождается истина
я для этого и выставил скрипт, чтобы меня покритиковали, и тем самым найти слабые стороны ...
|
|
|
14.01.2005, 12:19
|
#12
|
Профессор
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 0
|
Ектих
а то что графики рискет это у тебя онлайн и автоматом ?
|
|
|
14.01.2005, 12:27
|
#13
|
just as it is
Join Date: 01 2004
Location: Bonn, DE
Age: 50
Posts: 991
Rep Power: 5
|
Quote:
Originally Posted by accemic26
Астро
в споре рождается истина
я для этого и выставил скрипт, чтобы меня покритиковали, и тем самым найти слабые стороны ...
|
Eto mne ponyatno, no zamet' ya vstavil slovechko tol'ko potomu chto rech ne shla pro kakie-ti obribki cripta a pro samu ideyu
A zachem vsyotaki pisat' takoi skript tavarischi a? prosvetite "lamera" v etom dele
Mojet togda mojno ponyat' sleduet pisat' eto vsyo na Perl-e ili vsyotaki ispol'zovat' to chto est' na C ?
__________________
this is my signature
~
~
:wq
|
|
|
14.01.2005, 12:34
|
#14
|
Профессор
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 0
|
Astro
Zadacha:
Yest novoye ustroistvo, ono testiruyetsya, peredoyot ono svoi danniye cherez com port. ispol`zuyetsya v fizike, v lyuboy moment elektron`shiki mogu dobavit` chtoto ili ubrat`, na mashine, k kotoroy vsyo eto podcepili stoit linux.
Tot soft kotorii ispol`zuyetsua, ne podxodit, iz-za protokola obmena dannimi ( sorry odnostoronnego). Mojno vsyo eto resh`it` pomenyav ili napisav zango C/C++ kod. potom otladka, soprovojdeniye ... . Poetomu i reshil napisat` na Perl-e. Do etogo bila zadumka napisat` na Python-e. Daje nashol special`nii modul` dlya nego. No paren` kotorii developer etot modul` kudato delsya, i s 2001-go goda ni kakix izmenenii v etom module nebilo. Ne schitaya togo chto na site-e u nego problemi s dowsnload-ingom bili ...
V itoge ostonovilsya na perl-e.
No glavnoye tut to chto ochen` kompaktnaya, i ponyatnaya programm-a.
|
|
|
 |
|
 |
14.01.2005, 14:34
|
#15
|
Guru Apprentice
Join Date: 02 2002
Location: /dev/null
Age: 48
Posts: 524
Rep Power: 0
|
accemic26: я не против поспорить, только ты чего-то к словам цепляешся а не к идеям. Мне теперь что, над каждым словом думать? То что я довабил слово "графики рисую" (уговорили, два слова) автоматически означает что мне нужно тыкать определением DAQ-ов?
Или может стоит определить слово "спор"?
Я так определяю: "обмен мнениями между двумя индивидуумами. каждый индивидуум предполагает что собеседник обладает таким же, если не большим, запасом знаний".
Из твоих постов мне показалось что ты предполагаешь что все вокруг знают меньше чем ты. (я потому приплел образование, чтоб намекнуть что у меня тоже черепушка варит, и я не "просто так погулять вышел".)
Вот другое определение: "лекция - монолог индивидуума, предполагающего что собеседники знают меньше, чем он. Собеседники (а вернее слушатели) предполагают что лектор знает больше чем они, и сознательно выслушивают монолог".
Про графики: не понял вопроса. что значит "online vs automat"? Если ты о генерации графиков "on the fly" - то нет. Это MRTG, который подбирает данные каждые 5 минут и создает уйму ПНГ-шек.. наверно потому и медленно. До "on the fly (on request)" я пока не добрался
Астро: на самом деле я сам такой же "горячий" был когда-то как и accemic26, да и сейчас меня иногда "заносит" на некоторые темы...
accemic26, back to you: а это хорошо что ты такой горячий  не, серьезно! просто может лучше сначала узнать собеседника а потом горячиться? МАло-ли, вдруг в будущем пригодится?
А про скрипт - если об'ективно то вполне неплпохо написан (хотя я себя експертом в перл-е не считаю). Единственное что я бы поменял:
Code:
print join(' ',$Time,$X_Sum,$Y_Sum,$Z_Sum,$Tempr_Sum,$hummi_Sum),"\n"
(там пробел как первый параметер join-а).
Ну и личная просьба: в кириллице я Эктич, а не Ектих. "Но я не жалуюсь, все же не могут..." (c) Ослик Иа.
__________________
\/\/h47'5 1n 4 n4m3? 7h47 wh1(h w3 (4|| 4 r053,
8y 4ny 07h3r n4m3 w0u|d 5m3|| 45 5w337...
|
|
|
 |
All times are GMT. The time now is 11:21. |
|
|