LINUX.ORG.RU

Сообщения decadent

 

Ноутбук в качестве бездискового терминала

Форум — General

Здравствуйте.

Есть у меня домашний «мини-сервер», и появился старый HP Pavilion, у которого, судя по симптомам, проблемы с IDE-контроллером. Контроллер я, конечно, заменить не смогу, но очень уж понравился мне этот ноут (прежде всего, матовый экран и удобная клавиатура; ну и он весьма компактный, по сравнению с современными ноутами). Задумал я использовать его в качестве бездискового терминала к «мини-серверу». Посоветуйте, пожалуйста, откуда начинать копать.

decadent
()

МЭК-104+MySQL

Форум — Development

Здравствуйте.

Вот странного хочу. Есть комп с базой MySQL, в которой хранятся результаты измерений. Есть другой комп со SCADA, которая работает по протоколу МЭК-104. Нужно инфу из базы сделать доступной для SCADA. Что общественность может мне посоветовать?

Нагуглил Net::IEC104 , но пока слабо себе представляю, как это все организовать. Предположение пока такое:

  • создаю утилиту, которая будет выдавать на выбранный порт, например, раз в секунду, результаты последнего измерения;
  • циклически запускаю ее раз в N миллисекунд.

Правильно ли я думаю?

 ,

decadent
()

GSM усилитель

Форум — Talks

Здравствуйте.

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

Операторы сотовой связи предлагают «фемтосоты», но цена очень кусается.

Нашел такую штуку:

http://www.aliexpress.com/item/Freeshipping-cell-phone-signal-booster-GSM-900...

Для Ъ — репитер GSM сигнала. Поможет ли он мне в решении проблемы? И — насколько безопасно излучение от него?

Линукс тут при том, что в той квартире стоит комп с линуксом :-)

decadent
()

Графики на странице

Форум — Web-development

Здравствуйте.

Посоветуйте, пожалуйста, куда посмотреть — что почитать на вот такую тему. Хочу, чтобы по щелчку на некотором классе элементов отрисовывалось «окошко» с графиком, которое можно таскать мышкой, при этом этих окошек можно было создать одновременно несколько и они были независимые. Скорее всего, нужна будет какая-нибудь JS-библиотека, но никак не могу найти, что именно нужно.

decadent
()

Fedora 18: apache не виден извне

Форум — Admin

Здравствуйте.

Использовал я убунту и горя не знал. Сразу после установки httpd все прекрасно работало, странички были видны и с локалхоста, и из сети. Но поставил я федору 18...

Если я на локалхосте захожу на http://localhost/index.html — страничка видна.

Если захожу с машины в локальной сети на http://ip.address/index.html — «Время ожидания от сервера истекло». В логах (access_log и error_log) ничего, в /var/log/messages тоже. Куда смотреть, чтобы найти причину такого поведения? Система свежеустановленная, никаких настроек не крутил.

 

decadent
()

Хотелки по автоматизации развертывания

Форум — General

Не знаю, куда писать, напишу, пожалуй, сюда.

Итак, суть такова. Есть некая SCADA-подобная система: посты, датчики, каналы связи, все это заведено на единый компьютер, за которым сидит тётя-диспетчер (или дедушка). Сейчас всё это развертывается так: еду я и всё настраиваю сам, либо едет электрик, звонит мне по телефону, и я ему рассказываю, как всё настраивается. Естественно, меня такое положение дел не устраивает, хочу автоматизировать. Что вижу (пока своим чайницким взглядом)?

  • Собирается некий мини-дистрибутив линукса, в котором есть только то, что нужно, и выброшено то, что не нужно.
  • Записывается на флешку, флешка отдается электрику.
  • Электрик вставляет флешку, включает комп в розетку, линукс минут 5 тихо ставится, потом появляется веб-морда с выпадающими списками и галочками: столько-то постов, на таких постах такие датчики, по таким каналам связи. Электрик ставит галочки, нажимает Большую Зеленую Кнопку, ему говорят: «А теперь можете выключить монитор и ходить в браузере на вот такую страничку, там вы все нужное увидите».

Уфф, многабукав написал. Теперь вопрос. Насколько реально такое провернуть? В какую сторону смотреть? Что почитать полезного? Или, может быть, коллективный разум подскажет какое-нибудь более правильное решение?

decadent
()

Поиск среди объектов canvas по тэгам

Форум — Development

Здравствуйте.

Есть объект canvas, на него добавляются объекты image со своими тэгами

 
[list tag1 tag2]

один тэг при этом общий для всех, второй уникален для каждого объекта. Дык вопрос: прибиндил я, например, нажатие кнопки ко всем объектам с тэгом tag1, который для всех общий; как мне узнать для этого объекта tag2?

 , ,

decadent
()

perl, GUI и графики

Форум — Development

Всем добрый день.

Для Tcl/Tk имеется прекрасный модуль BLT, в котором есть всё, что мне нужно от графиков: масштабирование, отображение дат по оси абсцисс, подсветка линий, ну и просто удобное встраивание в GUI приложение (в том числе и под виндами). А что лучше использовать для этих целей на Perl? Желательно (хотя и не обязательно) у моей программы должен быть GUI (хотя можно и веб-интерфейс, но GUI как-то привычнее заказчикам), в составе которого должно быть десятка два масштабируемых мышой и периодически обновляемых графиков. Думаю использовать для него Perl/Tk. Но — в сети встречал информацию о том, что использование BLT при этом чревато трудностями. Возможно, есть более правильный путь?

 blt, ,

decadent
()

Хитрый SQL-запрос

Форум — Web-development

Добрый день.

Как всегда, хочется странного. Есть таблица, содержащая поля: дата_сеанса, номер_телефона, полученные_данные, индекс. Номеров телефона уникальных 20 штук, каждый из них может звонить в случайное время. Что хочу? Хочу сделать VIEW, в котором будут храниться только последние по времени сеансы для каждого номера. Как такое можно сделать? Для получения самого последнего сеанса я делал так:

 
CREATE VIEW `last_data` AS 
select 
`date` AS `date`,
`phone` AS `phone`,
`data` AS `data`
from `monitoringtable`
order by `index` desc limit 1;

Но это просто. А вот как получить то, что требуется сейчас? Если отсортировать по дате, а затем по номеру телефона, а затем взять последние 20, то может получиться, что некоторые номера туда не попадут, потому что у них слишком давно был сеанс. Делать VIEW для каждого номера отдельно тоже расточительно.

decadent
()

Ajax и Leaflet (осторожно, быдлокод)

Форум — Web-development

Вот не понимаю я, хоть тресни.

С помощью leaflet нанес на карту маркеры, координаты для которых получил из базы данных:

 
        var markerLocation = new L.LatLng(tower1.latitude, tower1.longitude);
        marker[tower1.index] = new L.Marker(markerLocation);
        map.addLayer(marker[tower1.index]);

Теперь хочу прицепить к каждому маркеру попап, да так, чтобы информация в него подгружалась из другой таблицы этой базы:

 
        marker[tower1.index].bindPopup("");
        marker[tower1.index].click = function () {
                get_tower_data(tower1.index);
        };
 
function get_tower_data(tower_index) {

        $.ajax({
                url: 'get_tower_data.php',
                data: {my_index : tower_index},
                dataType: 'json',
                success: function (hash_table, tower_index) {
                                var text = ""
                                var num = process_tower_data(hash_table);
                                text = "Это опора " + num;
                                console.log(text);
                        },
                cache: false,
                ifModified: true
        });
}

В итоге по клику все равно выводится пустой попап. Судя то тому, что console.log не вызывается (смотрю Firebug'ом), клик не обрабатывается вообще. Что я делаю не так?

 , ,

decadent
()

Обновить модуль perl в debian squeeze

Форум — Development

Приветствую!

Имеется debian squeeze вот такой:


 # uname -a
 Linux frost 2.6.32-5-amd64 #1 SMP Sun May 6 05:12:07 UTC 2012 x86_64
GNU/Linux

Хочу установить с cpan модуль Timer::Simple. И вот что получаю в ответ:

  CPAN.pm: Going to build R/RW/RWSTAUNER/Timer-Simple-1.004.tar.gz

 Module::Build version 0.3601 required--this is only version 0.340201 at
Build.PL line 5.
 BEGIN failed--compilation aborted at Build.PL line 5.
 Warning: No success on command[/usr/bin/perl Build.PL --installdirs site]
 Warning (usually harmless): 'YAML' not installed, will not store
persistent state
   RWSTAUNER/Timer-Simple-1.004.tar.gz
   /usr/bin/perl Build.PL --installdirs site -- NOT OK
 Running Build test
   Make had some problems, won't test
 Running Build install
   Make had some problems, won't install
 Could not read '/root/.cpan/build/Timer-Simple-1.004-NwV3Fv/META.yml'.
Falling back to other
 methods to determine prerequisites
 Failed during this command:

RWSTAUNER/Timer-Simple-1.004.tar.gz          :
writemakefile NO '/usr/bin/perl Build.PL --installdirs site' returned
status 2304

Попытка обновить Module::Build не удается — вылазит куча зависимостей, для которых 'make = >No'. Как правильно поступать в таком случае (кроме сноса Дебиана)?

decadent
()

Снова mgetty

Форум — General

Продолжаю ковырять mgetty. Столкнулся с такой проблемой. Мне нужно определять номер, с которого звонят. Я даю команду своему модему, чтобы он отображал расширенную информацию о звонящем

AT+CRC=1
AT+CLIP=1 

Информация о звонящем приходит — но mgetty отказывается снимать трубку. Она, видите ли, ждет RING, а приходит +CRING:.... (там дальше инфа о звонящем). Если же указанных команд нет — приходит RING и mgetty берет трубку.

Посоветуйте, пожалуйста, как это побороть?

decadent
()

Знатокам модемной связи

Форум — General

Здравствуйте.

Есть промышленный GSM-модем (подключенный к последовательному порту), есть сервер на Debian. Нужно сделать следующее: принять входящий звонок, получить инфу от удаленного модема, сохранить ее в текстовый файл, сказать удаленному модему, что все ОК, и положить трубку. Можно ли все это сделать с помощью mgetty? Особенно интересует сохранение инфы в файл.

decadent
()

Свой front-end для gnuplot

Форум — Development

Всем привет.

Есть куча текстовых файлов с результатами измерений. Структура очень проста: каждая строка — величина показаний датчиков для одного отсчета времени. Для простой визуализации этих файлов написана программа на Tcl/Tk+BLT — рисуется график, проводятся элементарные расчеты, график можно скопировать в буфер, отправить на печать и тд. Все отлично работало. Но.

Теперь заказчик сказал: «Хочу строить семейство графиков, да еще и в 3D, да чтоб мышкой вращать можно было, и чтоб и под виндами тоже.» Поскольку как строить с использованием BLT графики функций 2 переменных, я не нашел — решил отдать эту работу православному гнуплоту и написать для этого сабж. И тут пошли вопросы.

1. Гнуплот отрисовывает график в отдельном окне. Можно ли как-нибудь заставить его отображать график в окошке фронтэнда? Потому как заказчик с компами на Вы и от обилия окошек может потеряться.

2. Как правильно общаться с гнуплотом из Tcl/Tk? Допустим, юзер открыл окно выбора файлов с результатами, выбрал нужные файлы — и затем я должен говорить exec gnuplot с заранее подготовленным командным файлом? Или я неправ и можно сделать по-другому?

Конечно, есть альтернативные способы решения моей задачи. Я знаю и о NumPy с matplotlib, и о матлабоподобных пакетах — но все они требуют подготовленного юзера, каковым мой заказчик не является. Ну и под винду он тоже хочет, что уж тут поделаешь.

decadent
()

Внешний жесткий диск для роутера

Форум — Linux-hardware

Здравствуй, All.

Почти созрел для смены прошивки на любимом DIR-320 с длинковской на альтернативную. Из дополнительных вкусностей пока хочу только торрент-клиент (для скачки/раздачи образов дистрибутивов линукса, конечно) и ftp-сервер, чтобы эти самые дистрибутивы удобно скачивать на стационарный комп (в том числе и из винды — мало ли, кто с ноутом своим придет). Таким образом, понадобился внешний хард, а поскольку я раньше никогда их не покупал, прошу консультации у сообщества. Пока нравится вот этот (Внешний HDD WD 1TB 7200rpm 16MB My Book Essential Edition [WDH1U10000E] 3.5" USB 2.0) — но вопрос надежности беспокоит, не хочется через год его выбрасывать.

И да, какую прошивку посоветуете? Сам собрать точно не смогу, поэтому приветствуются готовые решения.

decadent
()

[Tcl/Tk] Правильное event-oriented программирование

Форум — Development

Здравствуйте.

Уже не первый раз задаю подобные вопросы, почти постиг дзэн Tcl/Tk, но до полного просветления осталось еще несколько шагов. Суть моей задачи приведена вот тут, обновленный каркас приложения (с учетом трассировки переменных) приведен вот тут Все бы хорошо, но есть одна неприятная особенность — если я хочу из процедуры сменить значение переменной $status, то у меня не выходит это сделать. Я подозреваю, что переменная вначале меняется по моему запросу, но затем она снова переустанавливается в старое значение командой

set status "Читать регистры"

в теле обработчика событий для последовательного порта. Поэтому приходится вводить костыли типа глобальной переменной write_request, проверять ее на равенство единице, и только если «запрос на запись» есть — переводить программу в состояние «Запись регистра состояния». Поэтому вопрос — как правильно это реализовать, не прибегая к подобным костылям?

decadent
()

[Tcl/Tk] Печать отчетов

Форум — Development

Доброго времени суток!

Специалисты по Tcl/Tk, нужно ваше мнение.

Есть такая задача — необходимо выводить на принтер (локальный) результаты измерений. Результаты представляют собой график (используется BLT) и набор параметров, исходя из которых делается заключение о годности испытываемого изделия. То есть, я должен сформировать некий отчет и вывести его на принтер. И здесь возникают вопросы.

  • Просто распечатать график — не проблема, print1 из библиотеки BLT работает прекрасно. Но — график нужно отмасштабировать (чтобы поместился на четверть листа А4, а лучше меньше), а также добавить текст (те самые измеренные параметры).
  • Попробовал штатную функцию из BLT, создающую eps. Однако получил проблему с кодировками — на месте кириллицы были кракозябры.
  • Ну и весь процесс создания-распечатки отчета желательно проделать с минимумом внешних утилит и максимально скрыть от юзера, который по окончании испытания должен только нажать кнопку «Распечатать».

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

Заранее благодарю за советы.

decadent
()

[Tcl][Events] Отследить значение переменной

Форум — Development

Добрый день, коллеги. Это снова я с Tcl и последовательным портом. Суть такова — имеется устройство, с которым я общаюсь через последовательный порт. Общение идет в режиме «запрос-ответ», в основном ответом являются показания датчиков, которые я расшифровываю и кладу в глобальные переменные. Иногда подается запрос на запись в регистр. Работа реализована через файлэвенты, каркас приведен вот тут . Все прекрасно работает, но есть один нюанс. Мне нужно отслеживать значения некоторых переменных и по достижении ими определенных величин запускать соответствующие функции. Например, есть функции stop_motor и start_motor. Я запускаю двигатель, происходит постоянное чтение показаний датчика усилия, и если переменная force = 100 — я должен вызвать stop_motor. Делал так:

start_motor

while {1} {
    if {$force == 100} {stop_motor; break}
} 

Однако при этом GUI замерзает, а мне это не нужно.

Вроде бы мою задачу можно решить с помощью команды trace — но я пока не въехал в тонкости ее использования. Посоветуйте, пожалуйста, как мне лучше поступить. Заранее спасибо.

 ,

decadent
()

[Tcl/Tk][Serial][Нипонял] Еще вопрос по fileevent

Форум — Development

Добрый день, коллеги.

Имеется такая проблема. Работаю с последовательным портом из Tcl/Tk. Старый способ с постоянным поллингом порта не нравится, осваиваю файлэвенты. Быдлокод Пример работы здесь:

http://pastebin.com/aH6XZR8m

Все нормально работает, но возникают нештатные ситуации. Например, если модем только что включен, на первые несколько команд он отвечает ерундой или не отвечает совсем. Первый вариант обрабатывается, а вот со вторым проблема — ведь в таком случае порт не становится readable. Как мне идеологически правильно разрешить эту ситуацию? На VB под виндами заводили таймер, который включался сразу после подачи команды в порт, и если через определенное время ответа не было — таймер срабатывал, и в нем уже обрабатывалась ошибка. Как сделать аналогично в Tcl/Tk, и стоит ли вообще так делать — я не нашел. Посоветуйте, пожалуйста, как мне правильно поступить.

 

decadent
()

[Tcl/Tk] Пользовательские кнопки

Форум — Development

Приветствую всех.

Есть необходимость в создании кнопок нестандартного размера — они должны быть значительно больше, чем обычные, чтобы с ними было удобно работать через сенсорную панель. Я пытался для этих целей использовать TkZinc (рисовал прямоугольники, потом заставлял их реагировать на события). В принципе, заработало, но мне такой подход не нравится двумя моментами: во-первых, сама процедура создания элемента муторная, и во-вторых, я так и не победил проблему с кириллицей. Посоветуйте, пожалуйста, есть ли возможность более-менее стандартным способом увеличить размер кнопок?

Кстати, кнопки должны быть в виде матрицы, соответственно, лучше всего использовать grid — но там нет свойства expand, а его имитация с помощью rowconfigure у меня не получается.

decadent
()

RSS подписка на новые темы