AKB Forums

Go Back   AKB Forums > Technical sections > Languages, Compilers and Interpreters
Home Register Blogs FAQ Members List Calendar Downloads Arcade Mark Forums Read

Languages, Compilers and Interpreters C,C++,C#,.NET,Java,PHP,Perl,SQL and more

Troubles when posting message? Click here! :: Проблемы с отправлением сообщения? Нажмите сюда!

Reply
 
LinkBack Thread Tools Display Modes
Old Jan 10, 2005, 13:03  
Профессор
 
Nikita's Avatar
 
Join Date: Jan 2005
Location: Perm
Posts: 2,142
Rep Power: 4
Reputation: 10
Send a message via ICQ to Nikita
"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,$isd st) = 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";
}
}

--------------------------------------------------------------------------------
Nikita is offline   Reply With Quote Quote selected
Old Jan 14, 2005, 15:40   #16
Честный Кот
 
Reckon_'s Avatar
 
Join Date: Apr 2004
Location: Yerevan
Posts: 1,717
Rep Power: 5
Reputation: 97
Quote:
Originally Posted by accemic26
в споре рождается истина
я для этого и выставил скрипт, чтобы меня покритиковали, и тем самым найти слабые стороны ...
То: accemic26

Да ради Бога, успокойтесь!
Критики хотите? Запросто.

1. Я бы на вашем месте добавил бы обработчик сигналов INT и HUP, чтоб в случае Ctrl-C или потери связи программа успела бы записать самые последние данные, и завершить работу.

2. При каждом проходе открывать-закрывать файл - не стоит. Можно
файл открыть один раз, писать в него строку с флашем после записи, а потом, при смене даты его закрыть и открыть вместо него новый.

3. При открытии файла устройства нет проверки: открылся файл или нет. А вдруг проблемы с привилегиями доступа? open обязан проверяться на успешность.

4. Нормальный скрипт должен возвращать системе статус завершения.

5. Все переменные - глобальны. Даже в Перле рекомендуется использовать скопинг (например - через my).

5. (не критика, сколько пища для размышлений) - а если попробовать работать с портом по событию? Скажем через Blocking mode.
Или, как-то поэлегантнее сделать регекспы и получение формата имени выходного файла? Надо подумать. Нет предела совершенству.
__________________
Честный Кот
------------------------------------------------------
Еще не жаль огня, и Бог хранит меня... (с) А. Макаревич

Когда я трезв, я - Муму и Герасим, мама;
А так я - Война и Мир. (c) БГ

Last edited by Reckon_ : Jan 14, 2005 at 15:56.
Reckon_ is offline   Reply With Quote Quote selected
Old Jan 14, 2005, 18:07   #17
ЙЦУКЕН
 
Join Date: Jul 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Posts: 3,114
Rep Power: 7
Reputation: 10
Send a message via ICQ to nm
Quote:
Originally Posted by Ektich
Ой, какой пыл, какой жар, сразу с кулаками на обидчика!

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

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

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

Эктич

PS. для тех кто не знает: "киска" \equiv CISCO
PPS. для тех кто знал - ни в коей мере не пытаюсь показать что я знаю больше вас, коллеги!
PPPS. \equiv - математический символ эквивалентности в ЛаТеХ...
латекс рулит , это раз
насчет перепсиать на c++ -- 1000 раз подумай перед тем как. т.к. программа на перле в разы более удобнее в обслуживании и ваще -- make it simple. может не надо изобретать велосипед, а взять mrtg или rrd tool(cricket кажется его звали) ?
nm is offline   Reply With Quote Quote selected
Old Jan 14, 2005, 18:10   #18
Профессор
 
Nikita's Avatar
 
Join Date: Jan 2005
Location: Perm
Posts: 2,142
Rep Power: 4
Reputation: 10
Send a message via ICQ to Nikita
Ektich:
Я вроде неправильно изяснился. Относительно твоих графиков. Мы отделом написали систему сдледующего вида. DAQ -> Local Server -> Central Cerver -> DataBase <-> Front End Processing Soft, онлайн интерфейс.
Вовщем ты можеш через этот интерфейс смотреть данные, они раз в минуту обнавляются. Плюс считать кореляционные матрицы для определенных тобой временных рядов и т.д. ...
Nikita is offline   Reply With Quote Quote selected
Old Jan 14, 2005, 18:41   #19
Профессор
 
Nikita's Avatar
 
Join Date: Jan 2005
Location: Perm
Posts: 2,142
Rep Power: 4
Reputation: 10
Send a message via ICQ to Nikita
мда
вроде форум накрылся
раз раз
раз два три
Nikita is offline   Reply With Quote Quote selected
Old Jan 14, 2005, 18:44   #20
ЙЦУКЕН
 
Join Date: Jul 2002
Location: 0x68,0x69,0x72, 0x69,0x6e,0x67, 0x20,0x6e,0x6f, 0x77
Posts: 3,114
Rep Power: 7
Reputation: 10
Send a message via ICQ to nm
не надо бить себя пяткой в грудь -- от этого грудь искривляется и принимает неестественные формы
nm is offline   Reply With Quote Quote selected
Old Jan 14, 2005, 18:55   #21
Профессор
 
Nikita's Avatar
 
Join Date: Jan 2005
Location: Perm
Posts: 2,142
Rep Power: 4
Reputation: 10
Send a message via ICQ to Nikita
ого заработало
Рекон.
NAME

mrtg - What is MRTG

DESCRIPTION
The Multi Router Traffic Grapher (MRTG) is a tool to monitor the traffic load on network links. MRTG generates HTML pages containing PNG images which provide a LIVE visual representation of this traffic. Check http://www.stat.ee.ethz.ch/mrtg/ to see what it does.
Толи ты очень умный, толи славарик умных слов вызубрил
Относительно графиков это отдельная тема. Кстате в этих случаях вроде лучше пользоватся GNUPlot как игрушку и ROOT FRAMEWORK как пушку.
Относительно открытого файла - в начале я его открытым и держал. Но потом как-то ... а если простудится. Всетаки сутки будет открытым. И потом этим файлом другие приложения пользуются ...
Nikita is offline   Reply With Quote Quote selected
Old Jan 15, 2005, 09:11   #22
Честный Кот
 
Reckon_'s Avatar
 
Join Date: Apr 2004
Location: Yerevan
Posts: 1,717
Rep Power: 5
Reputation: 97
Quote:
Рекон.
NAME
Что нейм?



Quote:
Originally Posted by accemic26
Относительно открытого файла - в начале я его открытым и держал. Но потом как-то ... а если простудится. Всетаки сутки будет открытым. И потом этим файлом другие приложения пользуются ...
Если другие приложения открывают файл на чтение - то проблем быть не должно (если конечно ты не откроешь файл в исключительном режиме).
Данные у тебя будут свежие, если после записи будешь флашать буфера.

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

Зато тебе не надо будет проверять каждый раз условие первого прохода по циклу. И заодно - ремарка - у тебя каждый раз при проверке этого условия идет сравнение строки. Обычно в таких случаях берут не строку, а переменную-флаг (0 или 1 в зависимости от условия).

И еще - у тебя файл устойства не закрывается по завершении. Система его конечно закроет сама, но не надо надеяться на дефолты.

При добавлении нулей во время форматирования данных можешь смело использовать постфиксный иф. Красивее и короче.

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

Арбайтен, кематах
__________________
Честный Кот
------------------------------------------------------
Еще не жаль огня, и Бог хранит меня... (с) А. Макаревич

Когда я трезв, я - Муму и Герасим, мама;
А так я - Война и Мир. (c) БГ

Last edited by Reckon_ : Jan 15, 2005 at 09:51.
Reckon_ is offline   Reply With Quote Quote selected
Old Jan 15, 2005, 09:50   #23
Честный Кот
 
Reckon_'s Avatar
 
Join Date: Apr 2004
Location: Yerevan
Posts: 1,717
Rep Power: 5
Reputation: 97
Quote:
PS. для тех кто не знает: "киска" \equiv CISCO
А разве это Циско - это не сиська? Как время-то летит )
__________________
Честный Кот
------------------------------------------------------
Еще не жаль огня, и Бог хранит меня... (с) А. Макаревич

Когда я трезв, я - Муму и Герасим, мама;
А так я - Война и Мир. (c) БГ
Reckon_ is offline   Reply With Quote Quote selected
Old Jan 15, 2005, 10:10   #24
Профессор
 
Nikita's Avatar
 
Join Date: Jan 2005
Location: Perm
Posts: 2,142
Rep Power: 4
Reputation: 10
Send a message via ICQ to Nikita
Yesli chestno ya dumal chto CISCO eto apparatniye marshrutizatori, i voobsh`e organizacviya lider v svoyom dele... xotya oni takiye krutiye, chto na vsyo sposobni ...
Nikita is offline   Reply With Quote Quote selected
Old Jan 15, 2005, 10:12   #25
Профессор
 
Nikita's Avatar
 
Join Date: Jan 2005
Location: Perm
Posts: 2,142
Rep Power: 4
Reputation: 10
Send a message via ICQ to Nikita
Reckon:
I vsyotaki ti lyubish linux.
Otnositel`no otkril zakril. eto zash`ita ot user-a.... tut vsyo vozmojno, osobenno kogda on pyan, i mesyac ne videl tyolok.
Nikita is offline   Reply With Quote Quote selected
Old Jan 15, 2005, 13:37   #26
Честный Кот
 
Reckon_'s Avatar
 
Join Date: Apr 2004
Location: Yerevan
Posts: 1,717
Rep Power: 5
Reputation: 97
Quote:
Originally Posted by accemic26
Reckon:
I vsyotaki ti lyubish linux.
Операционки надо не любить , а использовать по назначению.

Я очень ценю линукс (как и фряк, соляру и прочие Юниксы и их клоны, с которыми доводилось работать). Но тип операционки я рекомендую исходя не из личных симпатий, а из задач, которые надо решить. К чему и призываю своих коллег.
__________________
Честный Кот
------------------------------------------------------
Еще не жаль огня, и Бог хранит меня... (с) А. Макаревич

Когда я трезв, я - Муму и Герасим, мама;
А так я - Война и Мир. (c) БГ

Last edited by Reckon_ : Jan 15, 2005 at 14:20.
Reckon_ is offline   Reply With Quote Quote selected
Old Jan 15, 2005, 14:57   #27
Честный Кот
 
Reckon_'s Avatar
 
Join Date: Apr 2004
Location: Yerevan
Posts: 1,717
Rep Power: 5
Reputation: 97
Quote:
Originally Posted by accemic26
Yesli chestno ya dumal chto CISCO eto apparatniye marshrutizatori, i voobsh`e organizacviya lider v svoyom dele... xotya oni takiye krutiye, chto na vsyo sposobni ...
Сиська делает много вещей - от раутеров и прочего сетевых приборов до IP-телефонии со своими причиндалами.
__________________
Честный Кот
------------------------------------------------------
Еще не жаль огня, и Бог хранит меня... (с) А. Макаревич

Когда я трезв, я - Муму и Герасим, мама;
А так я - Война и Мир. (c) БГ
Reckon_ is offline   Reply With Quote Quote selected
Old Jan 15, 2005, 16:59   #28
Профессор
 
Nikita's Avatar
 
Join Date: Jan 2005
Location: Perm
Posts: 2,142
Rep Power: 4
Reputation: 10
Send a message via ICQ to Nikita
eto ya znayu.
No DAQ ... eto nemnogo drugaya oblast` ... xotya kak ya uje govoril ot nix vsego jdi ...
Nikita is offline   Reply With Quote Quote selected
Old Jan 17, 2005, 15:45   #29
Guru Apprentice
 
Join Date: Feb 2002
Location: /dev/null
Posts: 524
Rep Power: 7
Reputation: 10
Send a message via ICQ to Ektich Send a message via Yahoo to Ektich
Quote:
Originally Posted by accemic26
eto ya znayu.
No DAQ ... eto nemnogo drugaya oblast` ... xotya kak ya uje govoril ot nix vsego jdi ...
А кто говорил -что "кошководы" стали DAQ делать? Ничего подобного. Стоит N штук кисковых свитчей (переключателей тоесть, переключают себе сеть), на каждом мин. 24 порта (на некоторых чуточку больше). Каждый порт фиксирует сколько через него байтов протекло в одну и в другую сторону. По SNMP тот самый MRTG каждые 5 минут опрашивает кисок и собирает вот эту инфу. Чем тебе не DAQ?.

А про "переписать на Ц" - согласен что сначала надо на RRDTool перейти, оно может ускорит запись данных в диск, а потом уже переписывать. А MRTG, когда я на него последний раз смотрел, на Перл-е написан... А может у меня киски медленно на СНМП отвечают... но это уже совсем другая история...
__________________
\/\/h47'5 1n 4 n4m3? 7h47 wh1(h w3 (4|| 4 r053,
8y 4ny 07h3r n4m3 w0u|d 5m3|| 45 5w337...
Ektich is offline   Reply With Quote Quote selected
Old Jan 17, 2005, 16:30   #30
Профессор
 
Nikita's Avatar
 
Join Date: Jan 2005
Location: Perm
Posts: 2,142
Rep Power: 4
Reputation: 10
Send a message via ICQ to Nikita
Мда
а у меня тут с нейтронных и прочих мониторов считывается на локальные DAQ сервера,
BASH скрипт кочает на 2 главных сервера
тут однa программа записывает все это добро в MYSQL.
Другие программы коректируют во все дырки эту инфу и скоррктировванные данные закидивают обратно в базу ...
а физики потом с веб браузера все это смотрят ...
Nikita is offline   Reply With Quote Quote selected
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



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


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
This board was founded on September 29, 2001
Powered by Viper Internet

Affordable Web Hosting | ParevNet

Buy text link