Автор Тема: Веб-інтерфейс у автоматиці  (Прочитано 1969 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн БандерівецьАвтор темы

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 3797
  • Спасибо
  • -Отправлено: 797
  • -Получено: 1064
Недавно в свою автоматику поставив кольоровий ftf дисплей розміром 320х240.

Хочу тепер зробити веб-сторінку таку як відображення на дисплеї. На сторінці графічну частину(колона, дімрот, насос, датчик тиску...) статично, а от текст буде розміщатись розміщатись динамічно. Текст хочу розташовувати по координатах , не знаю як виводити текст вказавши координати першого символа. Може хтось знає як це можна зробити?

Одразу хочу написати, що вся веб сторінка оновлюватись не буде, а лише ті частини тексту що помінялись використовую для цього XMLHttpRequest та кешування даних. PHP-невикористовуються

Оффлайн ГОГа

  • Эксперт
  • ******
  • Сообщений: 5534
  • Спасибо
  • -Отправлено: 1678
  • -Получено: 2790
  • Блин, как мало я знаю...
Хорошо смотрится!  :D
Единственный "грех" на земле - это глупость

Оффлайн Назгул

  • Новичок
  • **
  • Сообщений: 11
  • Спасибо
  • -Отправлено: 6
  • -Получено: 2
На html-сторінці як текст позиціонувати?

Абсолютне позиціювання у CSS та Javascript подивись.
Але, як на мене, простіше буде табличку зверстати.

Оффлайн БандерівецьАвтор темы

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 3797
  • Спасибо
  • -Отправлено: 797
  • -Получено: 1064
Назгул, Я дуже добре зробив вивід екран та керування, дуже універсально. В мене є структура в якій описано тип, параметр, змінна що виводиться на єкран, змінна що коригується, координати куди це вивести, мін та макс значення...... Я створюю масив з елементами цієї структури, але в мене є ще укататель на такі масиви, це мені дозволяє міняти гнучко масиви котрі відносяться до різних режимів(дистиляція, ректифікація...)

typedef struct Menu
   {
      void *var;
      void *var_host;
      uint8_t type;
      uint16_t x;
      uint16_t y;
      const char pref[10];
      uint8_t edit;   
      Mode_proc_lcd *sp_menu;
      float multiplicity;
      float MIN;
      float MAX;
      uint8_t *show;
      uint32_t background;
}Menu;

uint16_t x; uint16_t y;  - це є координати 320х240

Відповідно по цих координатах я би хотів заповнювати сторінку

Оффлайн Назгул

  • Новичок
  • **
  • Сообщений: 11
  • Спасибо
  • -Отправлено: 6
  • -Получено: 2
« Последнее редактирование: 03-03-2017, 07:53:25 от Назгул »

Оффлайн БандерівецьАвтор темы

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 3797
  • Спасибо
  • -Отправлено: 797
  • -Получено: 1064
Я так розумію веб-сервер буде смикати сішний код?
:D Веб-сервер написаний на С. В мене прикручений TCP/IP стек LwIP(низький рівень), на вищому рівні прикручений веб-сервер та відповідь на ECHO. Я написав на С# програму для логування, запускаю її на комп і вона пише в файл параметри автоматики, від МК дані попсупають на низькому рівні.

Основа сторінки(статика) зроблена HTML файлом та переведенна в двійковий код, цей файл прикріплений до проекту, динамічну інформацію я формую в коді, вивожу лише зміни(тобто працює кеш). Вся сторінка в мене непоновлюється, а лише змйнені дані. Короче круто там все   

Дуже зручно мати веб-вервер, зручно тому що можна з телефону чи з планшету зайти на сторінку автоматики навіть якщо ти за 1000 км від автоматики

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 18862
  • Спасибо
  • -Отправлено: 1210
  • -Получено: 13444
  • Думи мої думи...
    • Каптерка
Я тоже после Нового Года пошел в направлении ВЭБ-интерфейса, и настолько глубоко нырнул в эту тему, что вынырнул только сейчас. И не с пустыми руками.
НБК управляется автономно, внешняя поддержка - интернет, шминтернет ей не нужны. Но есть некоторые возможности.
Если подключить к ее автоматике маленькую коробочку, она каждые 5 секунд сбрасывает данные о текущем состоянии на интернет-сервер. Хозяин получает возможность не только посмотреть эту информацию в виде таблиц или удобных графиков, но и оперативно управлять процессом - изменять настройки или давать некоторые команды.
Сейчас в лог-файле - около 15 тысяч информационных строк, и я через некоторое время запущу новый процесс.
Для просмотра я использую скрипт, размещенный пока на сервере нашего сайта.
http://labspirt.com/Igor/rosa
Если проект получит развитие, он обзаведется собственным доменом.

Ссылку на скрипт, меняющий настройки и отправляющий колонне команды, я давать не буду, так как если колонной одновременно начнут управлять 18 человек, ничего хорошего не получится.

По проведенной ссылке откроется окно с тремя окнами. В этих трех окнах отображены 5 графиков.
Температура пара, температура барды, пороговая температура барды, подача браги и крепость на выходе..
Если выделить мышью какой-то участок, график должен отмассштабироваться - сузиться до выделенной зоны.
Привязку графиков к окнам (какая линия в каком окне) размер окон, масштабы, цвета, размер и расположение зоны просмотра - все можно менять, все уже прописано и работает, я сейчас подбираю нормальный вариант меню.
Пока в меню (кнопки сверху) нормально работает только ширина и перемещение.
К начальной версии  дизайна графика можно вернуться третьей слева кнопкой меню.

Сейчас актуальные вопросы - переделка меню и навигации для возможности работы с тач-скрином планшета или смартфона и доведение меню до ума.
Пишу для фаерфокса, другие браузеры пока могут не работать. Но со временем все заработает.
В 18-10 данные в графике начнут обновляться.

добавлено: 03-03-2017, 18:10:27

Процесс пошел...
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 18862
  • Спасибо
  • -Отправлено: 1210
  • -Получено: 13444
  • Думи мої думи...
    • Каптерка
Ах, да...
система построения графика работает таким образом.

Чтобы сделать график, нужно два блока информации - ЧТО показывать и КАК показывать.
Что показывать на сервере есть.
"Как показывать" каждый пользователь сообщает серверу при клике или при обновлении. Первоначально сервер дает каждому пользователю "заполненный образец бланка заявки", пользователь при желании вводит изменения в бланк (меняя что-тов меню или манипулируя мышью), и этот исправленный экземпляр заявки летает туда-обратно при каждом обновлении графика.
По завершению сеанса связи, сервер пытается сохранить этот "бланк" в куках браузера чтобы при новом входе знать с чего начинать
Если куки отключены, после закрытия браузера "бланк" исчезнет и при новом входе придется начинать все с начала - со стандартно заполненного бланка.
Если же "бланк" сохранен, сервер не дает пользователю новый бланк. а пользуется старым, сохраняя таким образом настройки каждого пользователя.
« Последнее редактирование: 03-03-2017, 18:39:21 от Игорь »
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Оффлайн Nightwish

  • Опытный
  • ***
  • Сообщений: 353
  • Спасибо
  • -Отправлено: 87
  • -Получено: 63
Управляемый Лог файл планируется только для НБК ?
Просто если НБК работает/"управляется" автономно, зачем нужен лог ? Или подстройка таки нужна ?
 

Оффлайн БандерівецьАвтор темы

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 3797
  • Спасибо
  • -Отправлено: 797
  • -Получено: 1064
Игорь, Логування потрібно для експерементаторів, у нас таких на форумі і 10-ка не набереться. Дай бог щоб три десятка людей розуміли як працює колона чи НБК.
Такаж сама плачевна ситуація з тими хто сам зробив колону. Люди ліниві стали, думати теж нехочуть. 


Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 18862
  • Спасибо
  • -Отправлено: 1210
  • -Получено: 13444
  • Думи мої думи...
    • Каптерка
Управляемый Лог файл планируется только для НБК ? Просто если НБК работает/"управляется" автономно, зачем нужен лог ? Или подстройка таки нужна ?
Подстройка пока нужна мне. я подготовил несколько НБК и уже пропил за них деньги, но отправлять не решаюсь, так как понимаю, что при необходимости подсьройки на месте ничем не смогу помочь.
Сначала я просто сделал логгирование по двум проводкам от колонны к компу, потом перевесил его на блютус. Потом перевесил на вайфай, и в конце концов "подарил колонне мобилку".
Думал так.
Хозяин снимет лог на свой комп. сбросит его мне, я проанализирую и дам рекомендацию какую настройку (их 24 штуки) как изменить.
Но мы - в 21 веке.
Хозяин просто сунет вилочку в автоматику, колонна поработает часок-другой, я "на лету" посмотрю графики и подстрою параметры. Новые настройки сохранятся в энергонезависимой памяти. Коробочка уедет к следующему ли останется у хозяина навсегда если тот захочет сам подсматривать или управлять дистанционно.

Логування потрібно для експерементаторів, у нас таких на форумі і 10-ка не набереться
Вовчик, логування  - це не всі можливості. Маю плани налаштувати месенжер, якій буде слідкувати за процесом (будь-яким, світ на самогоні не закінчується) та надсилати повідомлення абонентам тоді, коли щось трапилось, або необхідна порада чи втручання. Повідомлення можуть бути SMS, дзвінком на мобілку, або (чому б ні?) повідомленням у вайбер чи скайп.

Дивись, ми зараз пішли різними шляхами (і це добре).
Ти йдеш шляхом ускладнення автоматики - прилаштовуєш до неї дисплеї, клавіатури, тощо.
А я - навпаки, максимально її спрощую, не виходячи за рамки двох кнопок та трьох цифр. Але завдяки ВЕБ - технологіям роблю можливість спосерігати та керувати колоною за допомогою будь-якого компа, планшета чи смартфона. А це добро сьогодні є у кожного.
 Я міркую так. Навіщо моїй колоні дисплей 320х240, якщо я маю планшет 10", 19" монітор компа, телевізор 40", та на крайняк - смартфон. Три штуки. Навішо мені п'ялитись на дисплей колони  та тиснути кнопки десь у підвали чи гаражі, коли я можу мати ту саму информацію та такі самі можливості, зручно влаштувавшись на улюблкній канапі з феліжанкою кави, бокалом віскі, сигарою, та (як там мріє Гонитва?) з двома чарівними мулатками....



Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 18862
  • Спасибо
  • -Отправлено: 1210
  • -Получено: 13444
  • Думи мої думи...
    • Каптерка
Управляемый Лог файл планируется только для НБК ?
Для любого процесса, хоть для бачка унитаза или для скрытого противоугона автомобиля.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Оффлайн Nightwish

  • Опытный
  • ***
  • Сообщений: 353
  • Спасибо
  • -Отправлено: 87
  • -Получено: 63
С удовольствием поучавствовал бы в "бетта тесте" с оплатой пропитых денег!  :D
Как вариант, блютус/проводок и тимвьювер на комп/телефо/планшет, не так удобно, но без мобилки в колонне. Если 1н раз отстроить думаю терпимо.
« Последнее редактирование: 03-03-2017, 23:10:40 от Nightwish »

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 18862
  • Спасибо
  • -Отправлено: 1210
  • -Получено: 13444
  • Думи мої думи...
    • Каптерка
Я начинал с такого варианта, собирал лог с помощью логгераком-порта, и на лету программой на экселевском  вижлбейсике лепил график.
Сейчас ушел от экселя. График рисуется скриптом PHP (я написал его по типу популярного PCHART).
Этот скрипт работает на сервере, "абонент" получает готовую картинку размером 30 килобайт. На локальном компе, а тем более на смартфоне оно работать не будет.

Атмега 8, которая управляет подачей браги и прочими вопросами нпрерывной ректификации, каждые 5 секунд выдает код, который передается на сервер GSM-модулем. Клиенту остается забратьготовую картинку.
Шнурком или блютусом можно  сливать лог на комп (такой режим предусмотрен), но тогда рисованием графиков придется заниматься самому.
Вообще-то у меня в планах делать графики не только с файлов, накопленных на сервере, но и с  лог-файлов, импортированных с локальных компов. Надо оговорит формат.
В первом приближении...
Текстовый файл со строками цифр. Разделитель - вертикальный слэш |.
Первое поле (перед первым слэшем) - время в виде числа в формате Unix,  затем три служебных числа, потом - 5 чисел, которые должны попасть в график. На все дополнительные поля рисовалка графиков не реагирует.
Вот стандартная строка, которая только что получена от НБК.

1488580258|36|1019|1|101.19|91.81|101.25|229|64||

Первая длинная цифра - время.
36 - номер сеанса связи с этой колонной.
1019 - номер замера (каждые 5 секунд)
101,19 - температура барды
91,81 - температура пара на выходе
101.25 - температурный порог
229 - ШИМ насоса
64 - %об на выходе.

Разумеется, рисовалке не важно что она отображает. Нарисует что угодно.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.

Оффлайн Игорь

  • Администратор
  • Эксперт
  • *****
  • Сообщений: 18862
  • Спасибо
  • -Отправлено: 1210
  • -Получено: 13444
  • Думи мої думи...
    • Каптерка
Есть два варианта подсматривания за процессом.
Один - это когда система-шпион автономна. Имеет собственные датчики и навешивается на любое оборудование. Такие системы можно запускать в серию, надо только определиться с количеством и номенклатурой датчиков. Разумеется, никакой обратной связи быть не может, хотя... можно сделать пару-тройку - пяток ключей или реле, которые можно будет включать - выключать дистанционно.
Понадобятся дополнительные гильзы для датчиков.

Второй вариант - интегрированный, как я сделал с НБК. Подключаясь к авоматике НБК, шпион не измеряет температуру и прочие параметры. Он просто принимает от НБК готовую информацию и сливает ее в сеть.

Наличие вайфая или локальной интернет - сети не нужно, надо только наличие сети GSM провайдера, желательно МТС.
Никаких телодвижений для соединения - полный "plug & play". Воткнул в розетку, и через 30 секунд уже получаешь таблицы и графики из сети на телефон, комп или планшет. А при наступлении предусмотренных тобой моментов - получаешь еще звонок и/или СМС на мобилку. Тогда сможешь решить - нажать кнопку "отключить все", или все-таки прийти в соседнюю комнату и посмотреть что там происходит :)

Кому-то это все покажется излишеством, но если сегодня уже чайники делают с интернет-доступом, почему его не иметь нашему оборудованию?

Разумеется, такая возможность не может быть бесплатной, я сейчас изучаю этот вопрос. Плохо то, что провайдеры считают трафик порциями по килобайту, а у нас за час происходит обмен 720-ю посылками по пару десятков байт Фактически мегабайт логов колонна отдает за сутки, провайдер насчитывает 1-2 мегабайта в час.

Но эти проблемы не будут парить клиента. Оплата пользования сервером будет включать оплату интернет-трафиком, за состоянием счетов и своевременным пополнением будет следит сервер. То есть клиенту останется только одна забота - пользоваться  предоставленными возможностями, а они будут расти.

Сейчас планирую всеукраинский тест трафика. Запрограммирую контроллер на отправку каждый час десятка посылок с периодичностью 5 секунд. С информацией о состоянии связи, GPS координатами соты и с данными температуры с датчика. Сутки потестю на столе, не будет сбоев - отправлю Новой Почтой в Ужгород на свое имя. Потом приду в отделение и напишу переадресацию на Харьков или Днепр, а потом снова переадресую домой, в Одессу. За 100 грн и 5 дней система объедет всю страну и даст информацию о связи.
Главное не прошляпить с аккумулятором..

Все, пора работать.
Віриш ти в Бога чи ні, йому байдуже.
Важливо, щоб Бог в тебе вірив, а не навпаки.