На главную страницу
Русский English
 


Поддержка
Форум
Техподдержка
Закрытый разделПерсональная

Авторизация

Запомнить меня на этом компьютере
  Забыли свой пароль?
  Регистрация



Поиск по сайту


Подписка

Изменение параметров

Hits 67419318
10668
Hosts 3609220
2257
Visitors 53571797
10267

109


Главная / Поддержка / Форумы / Макро

Форум «Макро»

Версия для печати Версия для печати

Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация


Тема: «обновление ТИ, ОС » в форуме: Макро   Просмотров: 7076
 
KabalinDA
Заглянувший
 
Всего сообщений: 5
Дата регистрации: 11.07.2019
Создано: 11.07.2019 18:59:46
 
 
Здравствуйте, подскажите, пожалуйста, какие команды (методы) необходимо использовать в макросе, чтобы выполнить "Обновить ТИ" (выгрузить данные из ОИК) и сделать ОС (Rastr_OC)?
 
Профиль
Наверх
Дмитрий Максименко
Администратор
 
Всего сообщений: 43
Дата регистрации: 25.12.2017
Создано: 12.07.2019 11:04:11
 
 
Здравствуйте.
Если loop.xml настроен и в ручном режиме обновление ТИ проходит как надо, то можно использовать следующий макрос:

SET TI = CreateObject("COMCK.TI") ' обьект для работы с ТИ
SET CK = CreateObject("COM.CK") ' обьект для работы с Get_TM.exe

PathToLoop = "C:\LOOP\loopTI.xml"
UPDTime = "10:55:00:12:07:19"
CK.setrastr rastr
ret = CK.Loop( PathToLoop, UPDTime)

nRes = TI.ReadFileTi( PATH_TO_TI ) ' чтение файла TI
nRes = TI.ReadFileDTi( PATH_TO_DTI ) ' чтение файла DTI
nRes = TI.ReadFileTs ( PATH_TO_TS ) ' чтение файла TS
nRes10 = TI.WriteToRastr( Rastr ) ' запись прочитанных ТИ в таблицу "Телеизмерения\ ТИ/Каналы"

'Запуск ОС
rastr.opf("s")
 
Профиль
Наверх
KabalinDA
Заглянувший
 
Всего сообщений: 5
Дата регистрации: 11.07.2019
Создано: 13.07.2019 22:05:41
 
 
Спасибо, Дмитрий!
Еще Вы не могли бы пояснить, что делает метод setrastr.
И что за аргумент Rastr вы подаете в метод WriteToRastr? Это вшитый объект Set Rastr=WScript.CreateObjec­t("Astra.Rastr")? Хотя вопрос даже больше в другом. Я пытаюсь с помощью С# записать ТИ из бинарных файлов в таблицу "Телеизмерения\ ТИ/Каналы" , используя метод WriteToRastr. Тот же метод, что и в макросе. В качестве аргумента я ему подаю экземпляр IRastr (ASTRALib.IRastr Rastr = new ASTRALib.Rastr()), но данный метод не отрабатывает, в консоле выводится Exit in [ if(u1-l1<0||u2-l2<0] Exit in [ if(u1-l1<0||u2-l2<0] if (!ParseCols(cls,(const char*)bs,TRUE)) и возвращаемое методом значение равно -3. Вы можете подсказать, что не так, может я не то подаю в метод? В качестве входного параметра должен подаваться object piRastr.
 
Профиль
Наверх
Дмитрий Максименко
Администратор
 
Всего сообщений: 43
Дата регистрации: 25.12.2017
Создано: 15.07.2019 11:24:11
 
 
Метод setrastr устанавливает указатель на объект Rastr для объекта CK просто, чтобы не указывать его каждый раз, он используется внутри метода Loop.

В макросе Rastr - зарезервированное слово, оно содержит указатель на текущий экземпляр программы (в какой то мере аналог this).

Вы похоже создаете новый объект Astra.Rastr и пытаетесь его подсунуть как аргумент в TI.WriteToRastr( Rastr ), но это ?пустой? объект, в нем не загружено никаких шаблонов, то есть нет таблиц - рабочая область пустая. Значит нет и таблицы "Телеизмерения\ ТИ/Каналы" в которую метод пытается записать данные из бинарных файлов.

 
Профиль
Наверх
KabalinDA
Заглянувший
 
Всего сообщений: 5
Дата регистрации: 11.07.2019
Создано: 15.07.2019 12:52:06
 
 
Получается я создал экземпляр IRastr (ASTRALib.IRastr Rastr = new ASTRALib.Rastr()), далее загрузил в него файл .rg2, при этом таблицы в нем имеют данные. Я даже что то вывожу в консоль для проверки из таблицы "Телеизмерения\ ТИ/Каналы" . Но когда я подаю в метод WriteToRastr() в качестве аргумента Rastr (который я объявлял как ASTRALib.IRastr Rastr = new ASTRALib.Rastr()) метод не отрабатывает. А вот эти объекты Set Rastr=WScript.CreateObjec­?t("Astra.Rastr") и ASTRALib.IRastr Rastr = new ASTRALib.Rastr() они идинтичны? Меня просто смущает то что в метод надо подавать object piRastr, а я по сути ASTRALib.IRastr подаю.
 
Профиль
Наверх
KabalinDA
Заглянувший
 
Всего сообщений: 5
Дата регистрации: 11.07.2019
Создано: 15.07.2019 16:29:37
 
 
Если на VBA в Excel тоже самое проделать, то он обновляет данные, а на C# нет Вопрос
 
Профиль
Наверх
KabalinDA
Заглянувший
 
Всего сообщений: 5
Дата регистрации: 11.07.2019
Создано: 16.07.2019 06:06:30
 
 
Все разобрался, заработало! Вопрос снят. Еще раз спасибо)
 
Профиль
Наверх
Nick_A
Посетитель
 
Всего сообщений: 45
Дата регистрации: 30.09.2021
Создано: 05.08.2022 12:31:30
 
 
Добрый день, а не подскажите, как из макроса запустить функцию "Расчёт ПТИ"? И заодно мб функция "Прочитать БР". Нужно для того, чтобы автоматически подгружать в качестве БР и просчитывать ОС на основе нескольких замерных схем. Думаю, потом можно сравнивать и выбирать наилучшую
 
Профиль
Наверх
Дмитрий Максименко
Администратор
 
Всего сообщений: 43
Дата регистрации: 25.12.2017
Создано: 09.08.2022 11:33:10
 
 
Здравствуйте

SET TI = CreateObject("COMCK.TI")
nRes = TI.CalcPTI( Rastr )

Для функции прочитать БР нет отдельного COM метода.
 
Профиль
Наверх
Nick_A
Посетитель
 
Всего сообщений: 45
Дата регистрации: 30.09.2021
Создано: 09.08.2022 12:31:53
 
 
Спасибо!
 
Профиль
Наверх
Nick_A
Посетитель
 
Всего сообщений: 45
Дата регистрации: 30.09.2021
Создано: 04.10.2022 12:39:34
 
 
Здравствуйте. Заметил после обновления железа... Расчёт ПТИ кнопкой с панели помимо расчёта ПТИ выполняет и их запись в таблицу ТИ Каналы, после чего они доступны для алгоритма ОС. При вызове
Код

SET TI = CreateObject("COMCK.TI")
nRes = TI.CalcPTI( Rastr )


в протоколе отображается только расчёт ПТИ. Без записи. Таблица не расширяется. Не подскажите, что нужно сделать?
 
Профиль
Наверх
Дмитрий Максименко
Администратор
 
Всего сообщений: 43
Дата регистрации: 25.12.2017
Создано: 05.10.2022 18:22:31
 
 
Здравствуйте.

Код
nRes = TI.DobavPTI( Rastr )
 
Профиль
Наверх
Nick_A
Посетитель
 
Всего сообщений: 45
Дата регистрации: 30.09.2021
Создано: 06.10.2022 10:59:54
 
 
Спасибо)
 
Профиль
Наверх



Читают тему
гостей: 1, пользователей: 0, из них скрытых: 0


Список форумов
Новые темы
Список тем
Поиск по форумам
Помощь
Войти
Регистрация







Программный комплекс «RasrWin»
Программный комплекс «RastrWin»
© «RastrWin», 1988-2019