JurasskPark

Созданные ответы форума

Просмотр 15 сообщений - с 16 по 30 (из 985 всего)
  • Автор
    Сообщения
  • в ответ на: Запись в БД в прошлое ? #38902
    JurasskPark
    Участник

    Не одна точка времени, а один срез.

    50 тегов и 1 срез или 50 срезов с 1 тегом — вот про что я говорю.
    Через 60 секунд будет 3000 срезов вместо 60. И так очередь будет расти и расти, пока сервер не скажет «время срезов уже не актуальное, я их писать не буду и потом через некоторое время упадёт» 🙂

    в ответ на: Запись в БД в прошлое ? #38896
    JurasskPark
    Участник

    Но смысл в том, что один тег — это один срез данных и со временем он переполнялся, поэтому эту возможность я отключил.
    Как говорил Михаил — один срез — это одна дата с несколькими тегами.
    В варианте выше — один срез — это один тег с датой. Так делать нельзя.

    в ответ на: Запись в БД в прошлое ? #38895
    JurasskPark
    Участник
    
     // history
    3 years ago
    
    Publish project
                        try
                        {
                            for (int i = 0; i < Math.Min(tagCnt, rowCnt); i++)
                            {
                                //create a historical data slice
                                if (dtData.Rows[i][1].ToString() == string.Empty || dtData.Rows[i][2] is null || dtData.Rows.Count < 3)
                                {
                                    Log.WriteLine(Locale.IsRussian ?
                                      "Столбец номер 3 с датой и временем тега пустой или равен null. Номер тега и номер строки таблицы - " + (i + 1) :
                                      "Column number 3 with the date time of the tag is empty or null. Tag number and table row number - " + (i + 1));
                                }
                                else
                                {
    3 years ago
    
    Release 6.0.0.1
                                    // if the driver has a list of tags to use
                                    if (config.DeviceTags.Count > 0)
                                    {
                                        try
                                        {
                                            DeviceTag deviceTag = (DeviceTag)DeviceTags.Where(x => x.Name == dtData.Rows[i][0].ToString()).FirstOrDefault();
                                            if (deviceTag == null)
                                            {
                                                Log.WriteLine(Locale.IsRussian ?
                                               "[Исторические данные] В списке тегов конфигурации драйвера не обнаружен тег с названием '" + dtData.Rows[i][0].ToString() + "'" :
                                               "[Historical data] No tag with the name was found in the list of driver configuration tags '" + dtData.Rows[i][0].ToString() + "'");
                                            }
    
                                            DateTime dtSSlice = (DateTime)dtData.Rows[i][2];
                                            DeviceSlice deviceSlice = new DeviceSlice(
                                                new DateTime(dtSSlice.Year, dtSSlice.Month, dtSSlice.Day, dtSSlice.Hour, dtSSlice.Minute, dtSSlice.Second, DateTimeKind.Utc),
                                                1, 1);
                                            deviceSlice.DeviceTags[0] = DeviceTags["DBTAG" + (deviceTag.Index + 1).ToString() + ""];
                                            string Descr = Locale.IsRussian ? " Значение = " : " Value = ";
                                            deviceSlice.Descr = deviceTag.Name + Descr + dtData.Rows[i][1];
                                            DeviceData.EnqueueSlice(deviceSlice);
                                        }
                                        catch { }
                                    }
                                    else // otherwise we insert all the values that we found in the database
                                    {
    
                                        DateTime dtSSlice = (DateTime)dtData.Rows[i][2];
                                        DeviceSlice deviceSlice = new DeviceSlice(
                                            new DateTime(dtSSlice.Year, dtSSlice.Month, dtSSlice.Day, dtSSlice.Hour, dtSSlice.Minute, dtSSlice.Second, DateTimeKind.Utc),
                                            1, 1);
                                        deviceSlice.DeviceTags[0] = DeviceTags["DBTAG" + (i + 1).ToString() + ""];
                                        string Descr = Locale.IsRussian ? " Значение = " : " Value = ";
                                        deviceSlice.Descr = DeviceTags[i].Name + Descr + dtData.Rows[i][1];
                                        DeviceData.EnqueueSlice(deviceSlice);
                                    }
    3 years ago
    
    Publish project
                                }
                            }
                        }
    3 years ago
    
    Release 6.0.0.1
                        catch
    3 years ago
    
    Publish project
                        {
                            InvalidateData();
                        }
    

    Откопал как писал исторические данные в DbImportPlus

    в ответ на: DrvFreeDiskSpaceJP #38886
    JurasskPark
    Участник

    Понял, вопрос снимается

    Короче, я подумал, что должно работать. Но только сетевые диска нужно mapить к ПК.
    http://jurasskpark.ru/pubimg/up/174967852234818d2.png

    Короче… Вечером опубликую

    Ничего я не опубликую. Если коротко, то я перенёс двухфакторную авторизацию на плагин Edge… И я не могу пройти двухфакторную авторизацию. 🙁 Толи из-за того что активацию я делал в Зеленограде, но дома +2 часа… Короче, хз…

    в ответ на: DrvFreeDiskSpaceJP #38847
    JurasskPark
    Участник

    LinuxX64 — не работает на WB.
    Короче… Вечером опубликую.

    в ответ на: DrvFreeDiskSpaceJP #38844
    JurasskPark
    Участник

    Не. С сетевыми дисками такая штука не проканает. + в ТЗ такого требования не было. )

    в ответ на: Ошибка в формуле? #38831
    JurasskPark
    Участник


    http://jurasskpark.ru/pubimg/up/17494878905697ccd.png

    C# говорит, что ошибки нет.
    А во если код был скопирован из моего Компилятора, то manjey73 говорит, что там знаки TAB и их сервер не переваривает.
    Замените в скрипте все знаки TAB на 4 пробела.

    в ответ на: ModBDExport #38818
    JurasskPark
    Участник

    time_stamp timestamp with time zone NOT NULL,
    это и есть DateTime

    в ответ на: DrvFreeDiskSpaceJP #38815
    JurasskPark
    Участник

    Как правильно передавать DateTime, чтобы в времени не было (были черточки), но тег был Good?

    
     // datetime off
     DriverTag driverTagActionDate = FindTag(TagCodeActionDate);
     driverTagActionDate.TagDataValue = new object();
     listTagsTask.Add(driverTagActionDate);
    
    
                        else if (val is DateTime dtVal)
                        {
                            deviceTag.DataType = TagDataType.Double;
                            deviceTag.Format = TagFormat.DateTime;
                            try { base.DeviceData.SetDateTime(deviceTag.Index, dtVal, CnlStatusID.Defined); } catch { }
                        }
    

    Если так, то будет ошибка

    Unable to cast object of type ‘System.Object’ to type ‘System.IConvertible’.

    Поэтому я убрал запись catch (Exception ex), чтобы ошибка сверху не писалась…

    в ответ на: DrvFreeDiskSpaceJP #38814
    JurasskPark
    Участник

    скриншот
    http://jurasskpark.ru/pubimg/up/174946050262f8652.png

    скриншот
    http://jurasskpark.ru/pubimg/up/1749460669900ac75.png

    Вообщем на WirenBoard тоже работает. Осталось исправить ошибку конвертирования и понять, всё же какая версия должна быть для WB. Я почему-то понял как AnyCPU…

    в ответ на: BDimportplus — Firebird #38813
    JurasskPark
    Участник

    Скриншот
    http://jurasskpark.ru/pubimg/up/1749459888444017e.png

    Вы были правы.
    Выводы: Firebird — не умеет работать с русскими буквами в пути.
    DB Import Plus и библиотека firebird работает с 2.0. Пока что. 🙂

    в ответ на: BDimportplus — Firebird #38806
    JurasskPark
    Участник

    Ну я всë равно проверю. Чтобы самому знать.

    в ответ на: BDimportplus — Firebird #38802
    JurasskPark
    Участник

    Я как понял, что «Рубеж» — это ОПС. А какой программный продукт вы ставите? Чтобы я у себя на виртуалке поставил и проверил.
    Если такого ПО на сайте производителя в открытом доступе нет, то пришлите ссылку.

    https://products.rubezh.ru/catalog/

    в ответ на: Парсинг даты ? #38776
    JurasskPark
    Участник

    2025-01-01 00:00:00 — с таким форматом никогда нет проблем.
    Плюс при сохранении можно указывать формат записи и чтения.

    в ответ на: Парсинг даты ? #38773
    JurasskPark
    Участник

    Но если мы на одной системе запишем дату скажем в русской локали, а потом будет чтение в английской — то упадет и дата не будет распознана.

    А кто источник даты записи и чтения?
    Просто если такая проблема, то читать и записывать дату как Михаил в double в текстовый файл. ))))

Просмотр 15 сообщений - с 16 по 30 (из 985 всего)