Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?

Официальный форум Simple-Scada.

Автор Тема: Проекты и клиенты  (Прочитано 795 раз)

Серега

  • Постоялец
  • ***
  • Сообщений: 209
    • Просмотр профиля
Проекты и клиенты
« : 28 Декабря 2023, 11:18:45 »
Добрый день!
Может кто подскажет.
Есть сервер. Есть 2 арма.
1ый этап проекта подразумевал один проект,  работу обоих клиентов на линии 1. Функция GetClientsCount легко решает вопрос о количестве клиентов.
2 - отлично работаем.
1 - работаем, но с ограничениями.
0 - полный останов.
2ой этап подразумевает появление отдельного проекта на линию 2. При этом под него выделяется конкретный арм. Запускаться будет периодически. Так решено не мной, изменить нельзя.
Сервер по функции GetClientsCount видит те же клиенты. Но не видит какие проекты где запущены.
И вот основной вопрос можно ли как то узнать что конкретный проект запущен и какие клиенты отображают данный проект.
Возникла идея воспользоваться командой GetProjectPath, которая работает отлично.
Далее получаем как бы 2 результата, которые будут отличаться окончаниями типа "D:\Simple-Scada 2\Projects\Line1\" и "D:\Simple-Scada 2\Projects\Line2\". Но это просто где лежат проекты.
Но тут возникла проблема с функцией Pos. Скопировал из руководства пример в скрипт универсальный, OnClick и выдает ошибку "Class "TM_Variable" does not have a default property, в строке ...". Можете у себя проверить. Не могу понять что ему не нравиться.
В принципе как бы можно собрать косвенно разные статы:
1. пинг = физическая связь
2. имя клиента сделать уникальным
3. знать какие проекты на сервере
В общем эта тема как бы продолжение этой https://simple-scada.com/forum/index.php?topic=976.msg9143#msg9143.
Если у кого есть идеи, как можно получить инфу о том какие клиенты отображают конкретный проект... жду предложений.
Ну и совсем из ряда фантастики. На клиенте из запущенного проекта можно перейти в другой проект, не выходя из него и не заходя повторно в меню?
Жду вопросов и предложений!


pan2000

  • Постоялец
  • ***
  • Сообщений: 177
    • Просмотр профиля
Re: Проекты и клиенты
« Ответ #1 : 29 Декабря 2023, 14:54:19 »
   Здравствуйте.

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

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

Серега

  • Постоялец
  • ***
  • Сообщений: 209
    • Просмотр профиля
Re: Проекты и клиенты
« Ответ #2 : 30 Декабря 2023, 12:18:30 »
Добрый день!
За идею спасибо! Как то про бд совсем не подумал. Посмотрим.
Ну и в преддверии так сказать с Новым годом!
ну и шутка! Держись скоро Новый год! 2025! ;D
Всем здоровья, всяческих благ и развития!