Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters
Register

Reply
 
LinkBack Thread Tools
Old 10.01.2005, 14:03   #1
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 38
Posts: 2,142
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default "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";
}
}

--------------------------------------------------------------------------------
Reply With Quote
Old 13.01.2005, 14:21   #2
Студент
 
death's Avatar
 
Join Date: 07 2002
Location: here
Age: 37
Posts: 388
Downloads: 3
Uploads: 0
Reputation: 0 | 0
Default

I chto eto takoe?
Reply With Quote
Old 13.01.2005, 16:33   #3
Guru Apprentice
 
Join Date: 02 2002
Location: /dev/null
Age: 41
Posts: 524
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Это perl-script (обратите внимание на первую строчку, и сразу станет ясно что это перл-скрипт), который читает что-что с serial1, что-то с этим чем-то делает, усредняет и загоняет во внешний файл. Видимо это что-то с serial1 приходит как строка текстовых величин разделенных пробелами. Видимо кроме пробелов бывает мусор, или пробелов бывает больше чем один.

Чего от нас хочет accemic26 я не очень понял. Ты лучще обьясни что у тебя к сериал1 подключено? Если я туда мышку воткну, что получится?
Reply With Quote
Old 13.01.2005, 17:41   #4
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

до хрена ненужных данных
Reply With Quote
Old 13.01.2005, 17:45   #5
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 38
Posts: 2,142
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

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.
Reply With Quote
Old 14.01.2005, 11:30   #6
Guru Apprentice
 
Join Date: 02 2002
Location: /dev/null
Age: 41
Posts: 524
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

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 байта в которых все то же самое записано в каком-нибудь диком упакованном виде (чтобы успеть передать например показания с пол-миллиона датчиков) да еще стояло бы условие что никаких задержек на обработку инфы не должно быть (а то все бабахнет к чертовой матери) ты бы на чем писал бы? Тоже на перле?
Reply With Quote
Old 14.01.2005, 11:43   #7
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 38
Posts: 2,142
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

EKTICH
ты хоть знаеш что такое DAQ ?
Показание с пол милионна датчиков приходящие на последоватьельный порт с периодом 1 сек. тебе в этом и ассемблер не поможет и в ком порт все это добро не засуниш как бы ты не упаковывал и даже если датчики будут тригеного типа. В этом случае обычно используют крэйт камак, знаеш что это такое ?
Ты топик повнимательней почитай.
А перл я использовал потомучто это опытная установка. и этот скрипт должен менятся со временем.
Reply With Quote
Old 14.01.2005, 11:57   #8
Guru Apprentice
 
Join Date: 02 2002
Location: /dev/null
Age: 41
Posts: 524
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Ой, какой пыл, какой жар, сразу с кулаками на обидчика!

Расслабся, что такое крейт камак я знаю, даже модули в него пихал в лабораторной на кафедре, даже видел таких зверей в ЕрФИ, на ускорителе. На что похожи данные с пол-миллиона датчиков тоже представляю. Теперь что, за то что я не поставил ключевые слова հոսկի օրինակ перед фразой "с пол-миллиона датчиков" меня сразу в ламеры разжаловать?

Ты остынь, я тебя не критикую. Просто пытаюсь понять смысл в твоем посте. Пытаешся показать что ты DAQ на перле написал когда "DAQ obichno pishut na systemnix yazikax f.e. C/C++"? Я и говорю DAQ-и разные бывают. Я вон траффик собираю с 18 "кисок", по 24 порта на каждой, и графики рисую, тоже DAQ, тоже на перле написан (хотя мне не нравится, медленно работает, хочу на Ц++ переписать). Или это не DAQ? Обьясни мне, ламеру несчасному, у котого всего-то образования - PhD в математической физике...

Искренне ваш,

Эктич

PS. для тех кто не знает: "киска" \equiv CISCO
PPS. для тех кто знал - ни в коей мере не пытаюсь показать что я знаю больше вас, коллеги!
PPPS. \equiv - математический символ эквивалентности в ЛаТеХ...

Last edited by Ektich; 14.01.2005 at 12:01. Reason: P.S. Added
Reply With Quote
Old 14.01.2005, 12:10   #9
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 38
Posts: 2,142
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Вот тебе из интернета
тут вроде ничего не сказано о обработке данных
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. Университет Ядерная физика

первое надо признать... мне больше понравилось
Вот только не понял причем тут математическая физика ?
Reply With Quote
Old 14.01.2005, 12:15   #10
just as it is
 
Astro's Avatar
 
Join Date: 01 2004
Location: Bonn, DE
Age: 42
Posts: 991
Downloads: 12
Uploads: 0
Reputation: 46 | 3
Default

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.
Reply With Quote
Old 14.01.2005, 12:18   #11
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 38
Posts: 2,142
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Астро
в споре рождается истина
я для этого и выставил скрипт, чтобы меня покритиковали, и тем самым найти слабые стороны ...
Reply With Quote
Old 14.01.2005, 12:19   #12
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 38
Posts: 2,142
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Ектих
а то что графики рискет это у тебя онлайн и автоматом ?
Reply With Quote
Old 14.01.2005, 12:27   #13
just as it is
 
Astro's Avatar
 
Join Date: 01 2004
Location: Bonn, DE
Age: 42
Posts: 991
Downloads: 12
Uploads: 0
Reputation: 46 | 3
Default

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
Reply With Quote
Old 14.01.2005, 12:34   #14
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 38
Posts: 2,142
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

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.
Reply With Quote
Old 14.01.2005, 14:34   #15
Guru Apprentice
 
Join Date: 02 2002
Location: /dev/null
Age: 41
Posts: 524
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

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) Ослик Иа.
Reply With Quote
Sponsored Links
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 13:13.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.