ModArcMSSql

Просмотр 15 сообщений - с 61 по 75 (из 78 всего)
  • Автор
    Записи
  • #29810
    JurasskPark
    Участник

    Михаил, прошу прощения. Вопрос снят. Как всегда — сначала написал, потом подумал.

    Вопрос был в том, что я через клиент — скачивал таблицы.

    foreach (IBaseTable baseTable in configDatabase.AllTables)
    {
        client.DownloadBaseTable(baseTable);
    }

    А как получить структуру таблицы из модуля без client.DownloadBaseTable?
    И теперь понял, что я забыл объявить переменную configDatabase = new ConfigDatabase(); 🙂

    #29821
    Mikhail
    Модератор

    Доступ к базе конфигурации из модуля осуществляется из ServerContext
    База уже загружена.

    #29852
    JurasskPark
    Участник

    Я немного запутался.
    Вопрос №1. Можно ли обратиться из Module.View к ServerContext? Если да, то как? Я тупой. 😀
    У меня клиент прописан в у модуля и для Logic и для View.

    Я понимаю, чтобы обратиться к interface, нужно создать Class, реализовать интерфейсы в нем ServerContext. Но если честно, я думал, что есть что-то попроще…

    Объявить Manager, в нем объявить Storage… Вот как этот Storage инициализировать я опять не понял… Тупой. 😀

     /// <summary>
     /// Reads the configuration database from the storage.
     /// </summary>
     private bool ReadConfigDatabase()
     {
         string tableTitle = CommonPhrases.UndefinedTable;
    
         try
         {
             configDatabase = new ConfigDatabase();
    
             foreach (IBaseTable baseTable in configDatabase.AllTables)
             {
                 tableTitle = baseTable.Title;
                 storage.ReadBaseTable(baseTable);
             }
    
             tableTitle = CommonPhrases.UndefinedTable;
             configDatabase.Init();
    
             DebugerLog(Locale.IsRussian ?
                 "База конфигурации считана успешно" :
                 "The configuration database has been read successfully");
             return true;
         }
         catch (Exception ex)
         {
             DebugerLog(Locale.IsRussian ?
                 "Ошибка при чтении базы конфигурации, таблица {0}" :
                 "Error reading the configuration database, the {0} table");
             return false;
         }
     }
    
    #29853
    JurasskPark
    Участник

    Хм… Была идея еще через BaseTableAdapter читать файл с диска…
    Но не хочется писать костыли, если вы говорите, что всё уже есть.
    Помогите, пожалуйста, как из Module.View обратиться к таблицам, чтобы их считать со значениями. =)

    #29854
    manjey73
    Участник

    Вот-вот, меня тоже интересовало, как можно запускать линию опроса во View 🙂
    Но тут момент — Коммуникатор может быть на удаленной машине а не на том же сервере.
    Значит надо городить свое каким-то образом.

    #29855
    JurasskPark
    Участник

    manjey73, в моём варианте проще. Так как module сервера… Хотя стоп… Администратор и проект всё равно на одном ПК находится.

    P.S. я уже склоняюсь не мучиться и вернуть ScadaClient чтобы считывать конфигурацию…

    #29856
    manjey73
    Участник

    Ну я примерно о том же когда-то спрашивал. Не важно, это Модуль или Драйвер, у него есть View, а доступа из View через штатные каналы связи вроде нет.
    И могут ли штатные каналы связи работать без Коммуникатора?

    Меня конечно больше интересовал доступ к COM портам из View

    #29857
    Mikhail
    Модератор

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

    View работает как часть приложения Администратор. Логика модуля или драйвера работает как часть службы. То есть приложения разные.

    #29858
    JurasskPark
    Участник

    Всё. Теперь понятно. Тогда возвращаю ScadaClient. 🙂

    #29865
    JurasskPark
    Участник

    https://youtu.be/VwQ8EEK8Mfg?si=1G55K8jKZBRhG-g2
    Промежуточная версия.

    #29869
    Mikhail
    Модератор

    Тема стала длинной и начиналась с ModArcMSSql, поэтому я упустил, а что делает модуль ModConfigDatabaseMSSQLJP?

    #29873
    JurasskPark
    Участник

    Тоже самое что и ModArcMSSql, только теперь данные текущие не складывает. 🙂

    #29874
    Mikhail
    Модератор

    Если модуль выгружает базу конфигурации в MSSQL, то можно рассмотреть вариант выполнить этот модуль в виде расширения для Администратора по аналогии с ExtDepPostgreSql.
    В общем, что удобнее.

    • Ответ изменён 2 года, 10 месяцев назад пользователем Mikhail.
    #29914
    JurasskPark
    Участник

    Модуль подразумевает не только выгрузку, но еще и синхронизацию данных.

    Пока сделал хранения данных в таблицах по типу:
    — мгновенные значения
    — тренды
    — минутные
    — часовые
    — суточные
    Данные передаются только мгновенные, а уже на основе их данные запись появляется в нужной таблице.
    Думал, о том чтобы считать среднее у часовых или суточных… Но не знаю.
    А вот писать значение, когда изменилось часовое или суточное… Я думаю это нужно, т.к. постоянная проблема с обнаружением, когда часовое на самом деле сформировалось, например, в 14:00 или 14:03, а может в 13:59.

    https://www.youtube.com/watch?v=BhwUofeoScc

    #29918
    baur
    Участник

    Желательно чтобы минутные данные тоже передавались из RapidSCADA, чтобы по любым спорным вопросам был только 1 источник истины.

Просмотр 15 сообщений - с 61 по 75 (из 78 всего)
  • Для ответа в этой теме необходимо авторизоваться.