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

Reply
 
Thread Tools

"Data Acquisition System" za pol chasa
Old 10.01.2005, 14:03   #1
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 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";
}
}

--------------------------------------------------------------------------------

Old 13.01.2005, 14:21   #2
Студент
 
death's Avatar
 
Join Date: 07 2002
Location: here
Age: 45
Posts: 388
Rep Power: 0
Default

I chto eto takoe?

Old 13.01.2005, 16:33   #3
Guru Apprentice
 
Join Date: 02 2002
Location: /dev/null
Age: 48
Posts: 524
Rep Power: 0
Default

Это 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...

Old 13.01.2005, 17:41   #4
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 43
Posts: 21,717
Rep Power: 9
Default

до хрена ненужных данных
__________________
http://аvitya.livejournal.com
Хотели, как лучше, а получилось даже хуже...
Лозунг шахматиста: На каждый шах - ответим матом!

Old 13.01.2005, 17:45   #5
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 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.

Old 14.01.2005, 11:30   #6
Guru Apprentice
 
Join Date: 02 2002
Location: /dev/null
Age: 48
Posts: 524
Rep Power: 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 байта в которых все то же самое записано в каком-нибудь диком упакованном виде (чтобы успеть передать например показания с пол-миллиона датчиков) да еще стояло бы условие что никаких задержек на обработку инфы не должно быть (а то все бабахнет к чертовой матери) ты бы на чем писал бы? Тоже на перле?
__________________
\/\/h47'5 1n 4 n4m3? 7h47 wh1(h w3 (4|| 4 r053,
8y 4ny 07h3r n4m3 w0u|d 5m3|| 45 5w337...

Old 14.01.2005, 11:43   #7
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 0
Default

EKTICH
ты хоть знаеш что такое DAQ ?
Показание с пол милионна датчиков приходящие на последоватьельный порт с периодом 1 сек. тебе в этом и ассемблер не поможет и в ком порт все это добро не засуниш как бы ты не упаковывал и даже если датчики будут тригеного типа. В этом случае обычно используют крэйт камак, знаеш что это такое ?
Ты топик повнимательней почитай.
А перл я использовал потомучто это опытная установка. и этот скрипт должен менятся со временем.

Old 14.01.2005, 11:57   #8
Guru Apprentice
 
Join Date: 02 2002
Location: /dev/null
Age: 48
Posts: 524
Rep Power: 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 - математический символ эквивалентности в ЛаТеХ...
__________________
\/\/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

Old 14.01.2005, 12:10   #9
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 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. Университет Ядерная физика

первое надо признать... мне больше понравилось
Вот только не понял причем тут математическая физика ?

Old 14.01.2005, 12:15   #10
just as it is
 
Astro's Avatar
 
Join Date: 01 2004
Location: Bonn, DE
Age: 50
Posts: 991
Rep Power: 5
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.
__________________
this is my signature
~
~
:wq

Old 14.01.2005, 12:18   #11
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 0
Default

Астро
в споре рождается истина
я для этого и выставил скрипт, чтобы меня покритиковали, и тем самым найти слабые стороны ...

Old 14.01.2005, 12:19   #12
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 0
Default

Ектих
а то что графики рискет это у тебя онлайн и автоматом ?

Old 14.01.2005, 12:27   #13
just as it is
 
Astro's Avatar
 
Join Date: 01 2004
Location: Bonn, DE
Age: 50
Posts: 991
Rep Power: 5
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

Old 14.01.2005, 12:34   #14
Профессор
 
Nikita's Avatar
 
Join Date: 01 2005
Location: Perm
Age: 46
Posts: 2,142
Rep Power: 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.

Old 14.01.2005, 14:34   #15
Guru Apprentice
 
Join Date: 02 2002
Location: /dev/null
Age: 48
Posts: 524
Rep Power: 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) Ослик Иа.
__________________
\/\/h47'5 1n 4 n4m3? 7h47 wh1(h w3 (4|| 4 r053,
8y 4ny 07h3r n4m3 w0u|d 5m3|| 45 5w337...
Reply




Реклама:
реклама
Buy text link .

All times are GMT. The time now is 11:21.
Top

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