ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ»

ОФИЦИАЛЬНЫЙ ФОРУМ ГРУППЫ КОМПАНИЙ «ТЕХНОКОМ» (http://forum.tk-chel.ru/index.php)
-   Система «АвтоГРАФ»: Программное обеспечение (http://forum.tk-chel.ru/forumdisplay.php?f=4)
-   -   Вопрос: СОМ-сервер АвтоГРАФ (http://forum.tk-chel.ru/showthread.php?t=8747)

ngbr 23.08.2023 08:05

СОМ-сервер АвтоГРАФ
 
Получить данные.

ngbr 23.08.2023 08:45

Код:

AG.StartComputing  ("",НомерУстройства,НачПериода,КонПериода,"GSM",0);
      AG.WaitForComputing("",НомерУстройства,НачПериода,КонПериода,"GSM",0);
AG.TripEntriesListTypeName="over_speed"

Данные получаю по параметрам из настроек объекта мониторинга Максимальный порог ,км.ч 70
Игнорировать превышения 180
Могу ли я передать отличные от настроек в дизайнере параметров параметры в расчет и получить результат?

ngbr 24.08.2023 09:43

СОМ-сервер АвтоГРАФ
 
Добрый день.
Нажмите для просмотра содержимого...
Код:

Процедура НарушениеСкоростногоРежима(НомерУстройства,ДатаНачало,ДатаОкончание,ПорогПревышения,ПорогПродолжительности,МассивУчастков)
        НачПериода = Формат(ДатаНачало,  "ДЛФ=ДВ");
        КонПериода = Формат(ДатаОкончание,"ДЛФ=ДВ");
        AG = Новый COMОбъект("AutoGRAPH.AutoGRAPHAutomation"); 
        ddd  = AG.WaitForInitializing();
        AG.WaitForComputing("",НомерУстройства,НачПериода,КонПериода,"GSM",0);
        КолРейсов = AG.TripsNum;
          МассивУчастков = Новый Массив;       
                Для ИндексРейса = 1 По КолРейсов Цикл
                        AG.TripIndex = ИндексРейса;
                        AG.TripEntriesListTypeName="over_speed";
                            Для ИндексЗаписи = 1 По AG.TripEntriesNum Цикл
                                        AG.EntryIndex = ИндексЗаписи;
                                        Если НетСигнала(НомерУстройства,AG.EntryStartRealTime,AG.EntryEndRealTime) Тогда
                                            Продолжить;
                                        КонецЕсли;
                                        ////////
                                        ////////
                                        ////////
                                        ////////
                                        ////////  Обрабатываю результат отчета
                                        ////////
                                        ////////
                                        ////////
                                        ////////
                                КонецЦикла;
                КонецЦикла;
КонецПроцедуры


Результат получаю по значениям параметров в дизайнере параметров объекта мониторинга
- Максимальный порог и игнорировать превышения с продолжительностью менее,с
ВОПРОС: Можно ли передать в расчет свои параметры порога скорости и и длительности нарушения отличные от установленных в дизайнере параметров?
АвтоГРАФ.Pro 7.2

Phantom 25.08.2023 05:28

ngbr, для Вас в редакторе форума предусмотрены коды. Пользуйтесь.

SK 28.08.2023 10:28

Цитата:

Сообщение от ngbr (Сообщение 206090)
ВОПРОС: Можно ли передать в расчет свои параметры порога скорости и и длительности нарушения отличные от установленных в дизайнере параметров?

Нет. Расчет с произвольными параметрами, задаваемыми при вызове расчета, не предусмотрен и даже вреден в плане получения сфальсифицированных данных и утаивания реальных нарушений.

NickolaDed 25.10.2023 12:15

Цитата:

Сообщение от ngbr (Сообщение 206090)
Добрый день.
Нажмите для просмотра содержимого...
Код:

Процедура НарушениеСкоростногоРежима(НомерУстройства,ДатаНачало,ДатаОкончание,ПорогПревышения,ПорогПродолжительности,МассивУчастков)
        НачПериода = Формат(ДатаНачало,  "ДЛФ=ДВ");
        КонПериода = Формат(ДатаОкончание,"ДЛФ=ДВ");
        AG = Новый COMОбъект("AutoGRAPH.AutoGRAPHAutomation"); 
        ddd  = AG.WaitForInitializing();
        AG.WaitForComputing("",НомерУстройства,НачПериода,КонПериода,"GSM",0);
        КолРейсов = AG.TripsNum;
          МассивУчастков = Новый Массив;       
                Для ИндексРейса = 1 По КолРейсов Цикл
                        AG.TripIndex = ИндексРейса;
                        AG.TripEntriesListTypeName="over_speed";
                            Для ИндексЗаписи = 1 По AG.TripEntriesNum Цикл
                                        AG.EntryIndex = ИндексЗаписи;
                                        Если НетСигнала(НомерУстройства,AG.EntryStartRealTime,AG.EntryEndRealTime) Тогда
                                            Продолжить;
                                        КонецЕсли;
                                        ////////
                                        ////////
                                        ////////
                                        ////////
                                        ////////  Обрабатываю результат отчета
                                        ////////
                                        ////////
                                        ////////
                                        ////////
                                КонецЦикла;
                КонецЦикла;
КонецПроцедуры


Результат получаю по значениям параметров в дизайнере параметров объекта мониторинга
- Максимальный порог и игнорировать превышения с продолжительностью менее,с
ВОПРОС: Можно ли передать в расчет свои параметры порога скорости и и длительности нарушения отличные от установленных в дизайнере параметров?
АвтоГРАФ.Pro 7.2

А зачем вы балуетесь COM сервером? Не проще работать с АПИ Веб Сервера?

MartynenkoES 13.11.2023 02:28

Цитата:

Сообщение от ngbr (Сообщение 206090)
Добрый день.

ВОПРОС: Можно ли передать в расчет свои параметры порога скорости и и длительности нарушения отличные от установленных в дизайнере параметров?
АвтоГРАФ.Pro 7.2

1. Перестаете использовать COM, переходите на Web API
2. Параметризуете через реестр свойств расчёт нужных параметров
3. Пишете в реестр свойств нужные значения свойств перед запросом расчёта.
4. Запрашиваете.
5. Получаете нужный результат.

plex 13.11.2023 11:15

Цитата:

Сообщение от MartynenkoES (Сообщение 206251)
1. Перестаете использовать COM, переходите на Web API

не всегда это так легко и просто, может быть легко интегрировано в структуру предприятия, где выхода на внешний веб нет, а свой стваить то еще удовольствие

Федоров Павел 08.04.2024 06:42

COM-сервер Автограф 4
 
Добрый день.
Помогите, пожалуйста!
Не могу разобраться как из СОМ-клиента в приложении Автограф 4 открыть нужный вид отрезка данных?
Открываю приложение и нужное ТС за период времени, например следующим образом:
Set AutoGRAPH = CreateObject("AutoGRAPH.AutoGRAPHAutomation")
If InStr(AutoGRAPH.CurrentVersion, "4.0") > 0 Then
AutoGRAPH.ReceiveOnlineData Блок 'обновляем данные по ТС с сервера
AutoGRAPH.StartComputing "*", Блок, ДатаИзИмениФайла, ДатаИзДанных, "GSM", 0
AutoGRAPH.ShowApplication
End If

SK 09.04.2024 16:51

Что значит "нужный вид"???
COM-сервер не предназначен для управления интерфейсом ПО.
Некоторые побочные эффекты в интерфейсе при расчете через COM обусловлены устаревшей архитектурой, от которой избавились в версии 5 и выше.
Почти 10 лет прошло с выхода последней сборки АвтоГРАФ 4.х...

Федоров Павел 10.04.2024 02:58

Цитата:

Сообщение от SK (Сообщение 206699)
COM-сервер не предназначен для управления интерфейсом ПО.

Действительно, но API СОМ-сервера позволяет минимально взаимодействовать с интерфейсом АГ4.
Цитата:

Алгоритм управления расчётами переднего плана COM-клиентом (далее – клиент):
1. Вызвать функцию StartComputing с нужными параметрами:
GroupFileName – файл группы (пустая строка – список по умолчанию, «*» – любой список);
CarDevice – серийный номер устройства;
FirstTime – время начала расчётного периода;
LastTime – время окончания расчётного периода;
DataSource – источник расчётов – «GSM» или «USB».
После вызова этой функции программа АвтоГРАФ COM-сервер (далее – сервер) перейдёт в режим отображения данных за период, установит заданные начальное и конечное время и попытается установить курсор на заданное транспортное средство. Если в Data-папке сервера имеются файлы от заданного источника расчётов, то сервер попытается произвести расчёт. При этом признак ComputingBusy установится в значение 1, а переменная ComputingPercents будет показывать процент выполнения расчётов. После завершения расчётов ComputingBusy и ComputingPercents обнулятся, и возникнет событие OnEndComputing...
Это выдержка из документации.


Цитата:

Сообщение от SK (Сообщение 206699)
Что значит "нужный вид"???

Под этим я подразумеваю конкретный тип/вид отрезка данных, например, "Остановки", "Скорость" и т.д.
То есть при открытии интерфейса ПО хотелось бы открыть конкретный отрезок данных, например, "Бак 1". Как это сделать?
Свойства "TripEntriesListTypeName,TripEntriesListKindNa me" не срабатывают.
Используемая версия ПО АГ 4.0.6.
Цитата:

Сообщение от SK (Сообщение 206699)
Почти 10 лет прошло с выхода последней сборки АвтоГРАФ 4.х...

Мы пока не планируем отказаться от ее использования :good2:

SK 12.04.2024 12:23

Цитата:

Сообщение от Федоров Павел (Сообщение 206700)
Это выдержка из документации.

Как я сказал уже, это описан побочный эффект OLE-расчета из-за древней архитектуры (чтобы диспетчеры не пугались), а не целевое действие функции. В идеале такие расчеты проводятся в фоне (как сейчас).

SK 12.04.2024 12:24

Цитата:

Сообщение от Федоров Павел (Сообщение 206700)
Под этим я подразумеваю конкретный тип/вид отрезка данных, например, "Остановки", "Скорость" и т.д.
То есть при открытии интерфейса ПО хотелось бы открыть конкретный отрезок данных, например, "Бак 1". Как это сделать?
Свойства "TripEntriesListTypeName,TripEntriesListKindNa me" не срабатывают.

Никак. Такой функционал, как управление интерфейсом извне, никогда не предусматривался.

Федоров Павел 15.04.2024 01:53

Спасибо за комментарий!


Текущее время: 00:07. Часовой пояс GMT.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot