JurasskPark

Ответы в темах

Просмотр 15 сообщений - с 736 по 750 (из 1,079 всего)
  • Автор
    Сообщения
  • в ответ на: ModArcMSSql #29914
    JurasskPark
    Участник

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

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

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

    в ответ на: Смена пароля по умолчанию #29888
    JurasskPark
    Участник

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

    в ответ на: ModArcMSSql #29873
    JurasskPark
    Участник

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

    в ответ на: ModArcMSSql #29865
    JurasskPark
    Участник

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

    в ответ на: ModArcMSSql #29858
    JurasskPark
    Участник

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

    в ответ на: ModArcMSSql #29855
    JurasskPark
    Участник

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

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

    в ответ на: ModArcMSSql #29853
    JurasskPark
    Участник

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

    в ответ на: ModArcMSSql #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;
         }
     }
    
    в ответ на: Драйвер для приборов Пульсар V6 #29827
    JurasskPark
    Участник
           private void dgvComm_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
            {
                if (this.dgvComm.CurrentCell.RowIndex == -1)
                    return;
                switchCellCommFormat(e);
            }
    
            private void switchCellCommFormat(DataGridViewCellMouseEventArgs e)
            {
                if (e.ColumnIndex == 4)
                {
                    DataGridViewComboBoxCell viewComboBoxCell = new DataGridViewComboBoxCell();
                    viewComboBoxCell.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;
                    viewComboBoxCell.Style.BackColor = Color.White;
                    //viewComboBoxCell.DataSource = (object)this.Format;
                    this.dgvComm[e.ColumnIndex, e.RowIndex] = (DataGridViewCell)viewComboBoxCell;
                }
            }

    Поменяйте логику.
    dgvComm_CellMouseClick замените на CellClick.
    e.ColumnIndex замените на dgvComm.CurrentCell.ColumnIndex (у Row тоже).

    Если коротко, то структура и смысл остаются тот же самый, но вот так. Пример.

    private void dgvComm_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                if (dgvComm.CurrentCell.ColumnIndex == 4)
                {
                    dgvComm.Tag = dgvComm.CurrentCell.ColumnIndex.ToString();//запоминаем ячейку
    
                    DataGridViewComboBoxCell dcombo = new DataGridViewComboBoxCell();//создаём ComboBox
    
                    dcombo.Items.Add("0");//заполняем ComboBox
                    dcombo.Items.Add("1");
                    dgvComm.Rows[dgvComm.CurrentRow.Index].Cells[dgvComm.CurrentCell.ColumnIndex] = dcombo;//показываем в ячейке ComboBox
                }
            }
    

    P.S. А если честно, то я тоже поломал голову над этим. Короче, смысл в том, что если номер строки и столбца одинаковый, то CellMouseClick так себя ведёт. 😀

    JurasskPark
    Участник

    Без аргументов схема грузится

    Ну вот вы и сами ответил на свой вопрос. В аргументах нельзя передавать слэш \
    🙂

    JurasskPark
    Участник

    А сама то мнемосхема по этому пути есть?:)

    в ответ на: ModArcMSSql #29810
    JurasskPark
    Участник

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

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

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

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

    в ответ на: ModArcMSSql #29805
    JurasskPark
    Участник

    Восстанавливаю тему. 😀
    https://www.youtube.com/watch?v=RMP2D3e0IBE
    Если коротко, то драйвер был написан, часть функционала уже неактуальна по причине того, что Михаил доделал Export.
    Если коротко, то модуль хранит в БД структуру проекта со всеми записями и позволяет из названия устройства, канал и девайса сделать тег, который позволит другим системам обращаться за данными по названию тегу, а не его номеру.

    Вводная часть закончилась.
    Сейчас я хочу перенести драйвер коммуникатора в модуль сервера.
    Вопрос. Если из драйвера коммуникатора я подключаюсь к серверу через клиент, то как я могу из модуля обратиться к структуре таблиц? 🙂

    в ответ на: Управление com портом в рантайме. #29691
    JurasskPark
    Участник

    Идея для размышления.
    Если канал работает, значет он посылает логи серверу. Мы же в админке видим эти логи. Значит если канал работает, значит логи поступают. Отсюда надо смотреть приходят логи по каналу — значит канал запущен. ?

    в ответ на: Управление com портом в рантайме. #29668
    JurasskPark
    Участник

    вопрос как контролировать в WEB что линия запущена/остановлена ?

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

    Шутка.

Просмотр 15 сообщений - с 736 по 750 (из 1,079 всего)