24.12.2014, 15:01
|
| »»» |
#1
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Получение координатных записей через COM
Приветствую, господа АвтоГРАФоды (водители АвтоГРАФ-а)!
Давно известно (судя по форуму), что данные можно получать из системы через COM. Жаль что документация где-то запрятана, но интернет тут помог - нашел доку страниц в 9-10, с описание COM-объектов, аналогичное этому: документация по OLE.
Методом проб и ошибок таки вышло получить достать через COM текущие (последние) данные по группам и технике.
А вот с историей прямо засада. Вытащил только "рейсы", а через них получил положение и скорость в точках (+время).
Однако в доке видел TripCrdEntriesNum который, по логике, должен указывать на количество координатных записей которые (по логике) вытаскиваются через CrdEntryIndex = 1..TripCrdEntriesNum
Но при попытке установить CrdEntryIndex выдается ошибка.
Вот фрагмент схемы тестового алгоритма (данные по всей техники всех групп):
Код:
|
числоГрупп = AG.GroupsNum;
Для а = 1 По числоГрупп Цикл
AG.GroupIndex = а;
числоМашин = AG.GroupCarsNum;
Для б = 1 По числоМашин Цикл
AG.CarIndex = б;
AG.SetGroupIndexByFileName( AG.GroupFileName );
AG.SetCarIndexByDevice( AG.CarDevice );
AG.WaitForComputing( AG.GroupFileName, AG.CarDevice, началоПериода, конецПериода, "GSM", 1 );
колРейсов = AG.TripsNum;
Для в = 1 По числоМашин Цикл
AG.TripIndex = в;
массивКоординатРейса = AG.TrackCrdsArray; // число кооррдинатных записей * 5 потому что массив одномерный
числоКоординатныхЗаписей = AG.TripCrdEntriesNum; // как достать эти самые записи ?
Для г = 1 По числоМашин Цикл
AG.CrdEntryIndex = г;
// дальше не идет, из-за ошибки
Конец;
Конец;
Конец;
Конец; |
где AG - COM от "AutoGRAPH.AutoGRAPHAutomation"
Вообще хочу вытащить показания сенсоров по точкам, в частности уровень топлива.
|
|
|
|
24.12.2014, 17:46
|
| »»» |
#2
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
Давно известно (судя по форуму), что данные можно получать из системы через COM. Жаль что документация где-то запрятана, но интернет тут помог - нашел доку страниц в 9-10, с описание COM-объектов, аналогичное этому: документация по OLE.
|
Документация давно идет в комплекте с ПО - в инсталляторе...
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
24.12.2014, 17:49
|
| »»» |
#3
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Во-первых, Вы перепутали переменные:
Код:
|
колРейсов = AG.TripsNum;
Для в = 1 По числоМашин Цикл
AG.TripIndex = в; |
Вы присваиваете индексу рейса значения от 1 до числоМашин, а не до колРейсов...
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
24.12.2014, 17:53
|
| »»» |
#4
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
Вообще хочу вытащить показания сенсоров по точкам, в частности уровень топлива.
|
А их реально нет в каждой точке, этих показаний-то...
Если Вы представляете, как работает терминал, то должны знать, что координатные записи пишутся асинхронно с данными различных датчиков. Иными словами, координаты опрашиваются повременно или адаптивно (от изменения вектора скорости), а те же ДУТ-ы - по времени (но интервал задается отдельно) или адаптивно (по изменению уровня).
Если бы в каждой точке писались абсолютно все значения всех датчиков - трафик вырос бы на два порядка.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
Последний раз редактировалось SK; 24.12.2014 в 18:37.
|
|
|
|
24.12.2014, 18:33
|
| »»» |
#5
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
массивКоординатРейса = AG.TrackCrdsArray;
Это Вам не поможет, т.к. 1С не работает с такими штуками...
Надо типа такого:
Код:
|
колРейсов = AG.TripsNum;
Для НомерРейса = 1 По колРейсов Цикл
AG.TripIndex = НомерРейса;
числоКоординатныхЗаписей = AG.TripCrdEntriesNum;
Для НомерТочкиТрека = 1 По числоКоординатныхЗаписей Цикл
AG.CrdEntryIndex = НомерТочкиТрека;
ТочкаВремя = AG.CrdEntryTime;
ТочкаДолгота = AG.CrdEntryLongitude;
ТочкаШирота = AG.CrdEntryLatitude;
ТочкаПробег = AG.CrdEntryDistance;
ТочкаСкорость = AG.CrdEntrySpeed;
ТочкаВход1 = AG.CrdEntrySensor1; // Датчик 1 (0 – выключен, 1 – включен)
ТочкаВход2 = AG.CrdEntrySensor2; // Датчик 2 (0 – выключен, 1 – включен)
ТочкаВход5 = AG.CrdEntrySensor5; // Датчик 5 (0 – выключен, 1 – включен)
ТочкаВход7 = AG.CrdEntrySensor7; // Датчик 7 (0 – выключен, 1 – включен)
ТочкаLLS1 = AG.CrdEntryLLS1; // Показание датчика LLS 1
ТочкаLLS2 = AG.CrdEntryLLS2; // Показание датчика LLS 2
ТочкаLLS5 = AG.CrdEntryLLS5; // Показание датчика LLS 5
// и так далее - какие надо данные в точке...
КонецЦикла;
КонецЦикла; |
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 07:20
|
| »»» |
#6
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Сообщение от SK
|
Документация давно идет в комплекте с ПО - в инсталляторе...
|
Как-то не думал что в инсталляции есть документация. Жаль что её не больше чем уже давно нашел в интернете. И то же нет примеров...
Сообщение от SK
|
массивКоординатРейса = AG.TrackCrdsArray;
Это Вам не поможет, т.к. 1С не работает с такими штуками...
|
Вообще 1С умеет работать с COMSafeArray...
Код:
|
AG.TrackCrdsArray.Выгрузить() |
В нашем случае получается одномерный массив.
Но проблема даже не в этом, а в том что при попытке установить значение CrdEntryIndex для обхода списка AutoGRAPH отваливается. Ошибок я не вижу.
Сообщение от SK
|
Во-первых, Вы перепутали переменные:
Код:
|
колРейсов = AG.TripsNum;
Для в = 1 По числоМашин Цикл
AG.TripIndex = в; |
Вы присваиваете индексу рейса значения от 1 до числоМашин, а не до колРейсов...
|
Действительно, при наборе кода в топике я ошибся. Вот фрагмент кода из 1С:
Код:
|
AG = Новый COMОбъект("AutoGRAPH.AutoGRAPHAutomation");
ИнициализацияAG = AG.WaitForInitializing();
ЧислоГрупп = AG.GroupsNum;
Для а = 1 По ЧислоГрупп Цикл
AG.GroupIndex = а;
ЧислоТС = AG.GroupCarsNum;
Для б = 1 По ЧислоТС Цикл
AG.CarIndex = б;
AG.SetGroupIndexByFileName( AG.GroupFileName );
AG.SetCarIndexByDevice( AG.CarDevice );
AG.WaitForComputing( AG.GroupFileName, AG.CarDevice, НачалоПериода, КонецПериода, "GSM", 1 );
ЧислоРейсов = AG.TripsNum;
Для в = 1 По ЧислоРейсов Цикл
AG.TripIndex = в;
Если AG.TripMotor1Fuel > 0 Тогда
Нов = ВремТаб.Добавить();
Нов.Индекс = в;
Нов.Код = AG.CurrentCarDevice;
Нов.Группа = AG.GroupName;
Нов.Модель = AG.CarModel;
Нов.Госномер = AG.CarNumber;
Нов.Расход = AG.TripMotor1Fuel;
Нов.Пробег = AG.TripDistance;
Нов.ВремяВыезда = AG.TripRealCont;
Нов.ВодительID = AG.TripDriverID;
Нов.ВодительИмя = AG.TripDriverName;
Нов.НачальнаяТочка = AG.TripStartName;
Нов.КонечнаяТочка = AG.TripEndName;
Нов.НачальнаяШирока = AG.TripStartLatitude;
Нов.НачальнаяДолгода = AG.TripStartLongitude;
Нов.КонечнаяШирота = AG.TripEndLatitude;
Нов.КонечнаяДолгота = AG.TripEndLongitude;
Нов.НачальноеВремя = AG.TripStartRealTime;
Нов.КонечноеВремя = AG.TripEndRealTime;
Нов.СкоростьСредняя = AG.TripAverSpeed;
Нов.СкоростьМаксимальная = AG.TripMaxSpeed;
Нов.КолвоКординат = AG.TripCrdEntriesNum;
Нов.Координаты = AG.TrackCrdsStr;
ЧислоКоординатныхЗаписей = AG.TripCrdEntriesNum;
Для г = 1 По ЧислоКоординатныхЗаписей Цикл
AG.CrdEntryIndex = г;
Время = AG.CrdEntryTime;
Долгота = AG.CrdEntryLongitude;
Широта = AG.CrdEntryLatitude;
Пробег = AG.CrdEntryDistance;
Скорость = AG.CrdEntrySpeed;
Вход1 = AG.CrdEntrySensor1;
Вход2 = AG.CrdEntrySensor2;
LLS1 = AG.CrdEntryLLS1;
LLS2 = AG.CrdEntryLLS2;
// ...
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла; |
Добавлено через 9 минут
Утром попробовал на чистой машине запустить обработку из пустой файловой базы с АвтоГРАФ-ом версии 4.0.6 с одной группой и 12 машинами (сразу после загрузки онлайновых данных).
Отработало без ошибок.
Помогло то ли что автограф на локальной машине отработал, то ли что база файловая и все работало с правами пользователя, то ли на чистой машине нет косяков с COM.
Кстати, почему открывается окно программы ?
Означает ли это что на сервере COM работать не будет (из-за того что будет вызвано из службы) из-за того что не сможет окно создать ?
|
|
|
|
25.12.2014, 07:22
|
| »»» |
#7
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
Вообще 1С умеет работать с COMSafeArray...
|
Я по привычке про 7.7-ку )))
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 07:31
|
| »»» |
#8
|
Дилер
Екатеринбург, ЗАО "Седьмая Экспедиция"
Регистрация: 14.12.2010
Сообщений: 14,999
|
lefion, окно всегда будет а служба может запускаться от реального пользователя
ЗАО "Седьмая Экспедиция", Екатеринбург, РФ
Мушин Виктор Валерьевич, Технический директор
|
|
|
|
25.12.2014, 07:52
|
| »»» |
#9
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Пробовал аналогично получить данные и на C# - на чистой машине отрабатывает, на моей нет.
Возможно что-то с COM у меня, а может что-то опять поломалось после очередной синхронизации в АвтоГРАФ-е.
Кстати, скорость обработки не радует ни в 1С, ни в C# - долго выполняется обход Crd для рейсов. Я понимаю, что доходит до 10k элементов, и что это все таки COM, но тем не менее... Загрузка одного ядра АвтоГРАФом достигает 100%. При том что через AG.TrackCrdsArray (только координаты) достаются практически моментально (больше времени уходит на создание COM-соединения).
Идея механизма обхода данных в целом неплохая, но пригодна только для не частого использования.
Добавлено через 4 минуты
Кстати, можно ли сразу обратиться у нужной технике, не перебирая все группы в поисках нужной ?
Хотя бы по её коду, который выдаётся AG.CarDevice ( AG.CurrentCarDevice ) ?
Добавлено через 9 минут
И второй интересующий момент, это возможность достать координатные записи за период, не поделенные на рейсы.
Ведь, как я понимаю, кроме рейсов есть ещё и "стоянки", и, возможно, координатные записи для них ?
|
|
|
|
25.12.2014, 08:16
|
| »»» |
#10
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
ТабТС - это табличка, где у меня выводится в 1С список ТС, чтобы пометить те, по которым выводить отчет.
Код:
|
//************************************************************************************************************************************************************************
// Процедура ОтчетПоКоординатам()
//************************************************************************************************************************************************************************
Процедура ОтчетПоКоординатам()
ТабТС.ВыбратьСтроки();
ПроцВсе=0;
ВсегоТС=0;
ОбработаноТС=0;
ТабТС.ВыбратьСтроки();
Пока ТабТС.ПолучитьСтроку() = 1 Цикл
Если ТабТС.Метка = "+" Тогда ВсегоТС = ВсегоТС + 1; КонецЕсли;
КонецЦикла;
ТабТС.ВыбратьСтроки();
Пока ТабТС.ПолучитьСтроку() > 0 Цикл
Если ТабТС.Метка = "" Тогда Продолжить; КонецЕсли;
ТСПериодНач=Формат(ДатаЧисло(ВыбНачПериода),"Ч(0)2.0")+"."+Формат(ДатаМесяц(ВыбНачПериода),"Ч(0)2.0")+"."+Строка(ДатаГод(ВыбНачПериода))+" 00:00:00";
ТСПериодКон=Формат(ДатаЧисло(ВыбКонПериода),"Ч(0)2.0")+"."+Формат(ДатаМесяц(ВыбКонПериода),"Ч(0)2.0")+"."+Строка(ДатаГод(ВыбКонПериода))+" 23:59:59";
AG.SetGroupIndexByFileName(ТабТС.ГрФайл);
AG.SetCarIndexByDevice(ТабТС.СерНом);
AG.WaitForComputing(ТабТС.ГрФайл,ТабТС.СерНом,ТСПериодНач,ТСПериодКон,"GSM",1);
ОбработаноТС=ОбработаноТС+1;
Форма.Проц.Заголовок(Строка(Окр(100/ВсегоТС*ОбработаноТС,0))+" %");
КолРейсов = AG.TripsNum;
Если КолРейсов=0 Тогда
Предупреждение("Рейсов не обнаружено");
Иначе
Для х = 1 По КолРейсов Цикл
AG.TripIndex = х;
ЧислоКоординатныхЗаписей = AG.TripCrdEntriesNum;
Для НомерТочкиТрека = 1 По числоКоординатныхЗаписей Цикл
AG.CrdEntryIndex = НомерТочкиТрека;
ТочкаВремя = AG.CrdEntryTime;
ТочкаДолгота = AG.CrdEntryLongitude;
ТочкаШирота = AG.CrdEntryLatitude;
ТочкаПробег = AG.CrdEntryDistance;
ТочкаСкорость = AG.CrdEntrySpeed;
ТочкаВход1 = AG.CrdEntrySensor1; // Датчик 1 (0 – выключен, 1 – включен)
ТочкаВход2 = AG.CrdEntrySensor2; // Датчик 2 (0 – выключен, 1 – включен)
ТочкаВход5 = AG.CrdEntrySensor5; // Датчик 5 (0 – выключен, 1 – включен)
ТочкаВход7 = AG.CrdEntrySensor7; // Датчик 7 (0 – выключен, 1 – включен)
ТочкаLLS1 = AG.CrdEntryLLS1; // Показание датчика LLS 1
ТочкаLLS2 = AG.CrdEntryLLS2; // Показание датчика LLS 2
ТочкаLLS5 = AG.CrdEntryLLS5; // Показание датчика LLS 5
// и так далее - какие надо данные в точке...
Сообщить("Время: "+Строка(ТочкаВремя)+СимволТабуляции+"Долгота: "+Лев(Строка(ТочкаДолгота),7)+СимволТабуляции+"Широта: "+Лев(Строка(ТочкаШирота),7)
+СимволТабуляции+"Скорость: "+Лев(Строка(ТочкаСкорость),5)+СимволТабуляции+"LLS1: "+Строка(ТочкаLLS1)+СимволТабуляции+"Вход1: "+Строка(ТочкаВход1));
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры //ОтчетПоКоординатам() |
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 08:17
|
| »»» |
#11
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
Кстати, скорость обработки не радует ни в 1С, ни в C# - долго выполняется обход Crd для рейсов. Я понимаю, что доходит до 10k элементов, и что это все таки COM, но тем не менее... Загрузка одного ядра АвтоГРАФом достигает 100%. При том что через AG.TrackCrdsArray (только координаты) достаются практически моментально (больше времени уходит на создание COM-соединения).
|
Для этого выпущен АвтоГРАФ.NET который может грузить все 16 ядер на соответствующих процессорах...
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 08:25
|
| »»» |
#12
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
lefion, и вы не забывайте, что "выплюнуть" чисто массив координат - это одно - он уже есть в готовом виде, а записи типа CrdEntry... - это целый набор еще и дополнительных записей по самым разным параметрам, который формируется и рассчитывается для каждой координатной точки, а это совсем другое...
Если надо чисто координаты - пользуйтесь TrackCrdsArray
И, еще: есть работа через файловые выгрузки, а не по каждой записи циклом - там тоже будет все быстро при больших объемах записей. Пользуйтесь. В конце концов DBF - "родной" для 1С-ки формат.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 08:45
|
| »»» |
#13
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
На всякий случай - примеры (правда для 7.7, но там все аналогично).
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 09:21
|
| »»» |
#14
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
CrdEntryXXX выдаёт данные датчиков в сыром виде, а в таком виде их можно получить ?
(как в "списке записей" в интерфейсе АвтоГРАФ)
Добавлено через 2 минуты
За примеры спасибо, попробую откопать 7.7 и посмотреть
Добавлено через 12 минут
PS Другими словами, интересует связка - точка (широта, долгота), время, баки
Ну или по крайней мере - время + баки.
Добавлено через 1 минуту
В идеале конечно:
точка (широта, долгота, скорость, направление), время, баки, датчики
|
|
|
|
25.12.2014, 09:23
|
| »»» |
#15
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
CrdEntryXXX выдаёт данные датчиков в сыром виде, а в таком виде их можно получить ?
|
Репликацией данных в БД на сервере.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 09:26
|
| »»» |
#16
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Другими словами проще сразу смотреть в сторону DBF ?
|
|
|
|
25.12.2014, 09:27
|
| »»» |
#17
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
За примеры спасибо, попробую откопать 7.7 и посмотреть
|
http://forum.ru-board.com/topic.cgi?...rt=104&limit=1
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 09:29
|
| »»» |
#18
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
Другими словами проще сразу смотреть в сторону DBF ?
|
Для АвтоГРАФ 3.x...4.x - в каких-то случаях DBF будет проще, а в каких-то - нет.
Правильнее использовать и то и то.
Кроме того, в DBF выгружается существенно больше полей данных, чем через переменные.
Описание DBF-файлов тоже можно найти в папке с документацией.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 09:30
|
| »»» |
#19
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
lefion, а цель всего этого какая ???
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 09:49
|
| »»» |
#20
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Сообщение от SK
|
lefion, а цель всего этого какая ???
|
В базовом варианте, графическое представление по времени расхода топлива в привязке к скорости, с возможностью вывода показаний датчиков.
Далее с выводом на этом же графике посещенных "геозон".
Далее построение отчетов на основании этих данных.
Помимо тех что можно вытащить из АвтоГРАФ-а через COM (рейсы, остановки, пропадание питания, заправки/сливы, включения датчиков).
С отчетами из АвтоГРАФ, ещё нужно будет разобраться (не смотре ещё подробно, пробовал вытащить только список остановок).
Я про функции TripEntriesListTypeName / TripEntriesListKindName и поля EntryXXXXX.
Добавлено через 2 минуты
В общем, общий смысл - отчетность,
что бы скрины графиков из окно АвтоГРАФ не делать для вставки их в отчеты,
ну и что бы иметь цифры этих графиков, если понадобится их дополнительно обработать.
|
|
|
|
25.12.2014, 10:31
|
| »»» |
#21
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
В базовом варианте, графическое представление по времени расхода топлива в привязке к скорости, с возможностью вывода показаний датчиков.
Далее с выводом на этом же графике посещенных "геозон".
|
Всё это и так делается в отчетах, которые можно сохранять в 10 различных распространенных форматов... зачем какие-то лишние сложности ?
Модуль отчетов обладает очень большой функциональностью по обработке и выводу данных. В т.ч. собственные формы и обработчики на языках программирования прямо в шаблонах отчетов. Я уже не говорю, что это по тестам самый быстрый по выводу модуль отчетов.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 13:02
|
| »»» |
#22
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Да, но это отчеты непосредственно техники (и как я заметил, данные для них так же получаются через COM).
Другими словами это оторванные от остальной отчетности печатные данные непосредственно связанные с техникой.
Отчеты не спорю, красивые, местами даже шустрые.
Но, скажем так, данные в этих отчетах, лишь процент от необходимых.
Причем цифры отчетов желательно иметь для ведения другой отчетности и т.д.
Другими словами, в нашем случае логичнее использовать данные мониторинга в общей системе, чем что-то выдумать на основе другой специализированной системе...
|
|
|
|
25.12.2014, 13:04
|
| »»» |
#23
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
А чего Вам не хватает, если не секрет ?
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 13:36
|
| »»» |
#24
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Цифр...
Конкретно сейчас осталось вытащить показания уровня топлива, в привязке к точкам хотя бы по времени, раз уж вместе с ними эти данные не предоставляются в готовом виде. Вести у себя таблицы тарировки баков? Ну вижу смысла...
Добавлено через 11 минут
Как-то же в веб-интерфейсе АвтоГРАФа данные по уровню топлива для точек предоставляется, значит можно его вытащить, как значением с датчика так и в человеческом виде (в литрах).
И в ReportsNet эти данные видимо то же вытаскиваются, по всей видимости по COM, потому как с открытой программой АвтоГРАФа отчет отваливается с ошибкой COM...
Вопрос лишь, в как эти цифры получить?..
|
|
|
|
25.12.2014, 13:36
|
| »»» |
#25
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
Конкретно сейчас осталось вытащить показания уровня топлива, в привязке к точкам хотя бы по времени, раз уж вместе с ними эти данные не предоставляются в готовом виде.
|
Отчего же, предоставляются, но не меняются до тех пор, пока не пройдет интервал опроса.
Я же Вам дал код и даже картинку скинул, где есть LLS1... Вы не смотрели ?
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 13:38
|
| »»» |
#26
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
И в ReportsNet эти данные видимо то же вытаскиваются, по всей видимости по COM
|
Через DBF в данном конкретном случае.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 13:50
|
| »»» |
#27
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Сообщение от SK
|
Сообщение от lefion
|
Конкретно сейчас осталось вытащить показания уровня топлива, в привязке к точкам хотя бы по времени, раз уж вместе с ними эти данные не предоставляются в готовом виде.
|
Отчего же, предоставляются, но не меняются до тех пор, пока не пройдет интервал опроса.
Я же Вам дал код и даже картинку скинул, где есть LLS1... Вы не смотрели ?
|
Читал конечно и проверил, что у меня это так же на чистой машине отрабатывает, как и мой первоначальный код...
|
CrdEntryLLS1 - Показание датчика LLS 1
CrdEntryLLS2 - Показание датчика LLS 2
CrdEntryLLS3 - Показание датчика LLS 3
CrdEntryLLS4 - Показание датчика LLS 4
CrdEntryLLS5 - Показание датчика LLS 5
CrdEntryLLS6 - Показание датчика LLS 6
CrdEntryLLS7 - Показание датчика LLS 7
CrdEntryLLS8 - Показание датчика LLS 8
|
|
|
|
|
|
Но описание этих данных меня как-то не натолкнуло на мысль о том что речь идет об уровне топлива...
Добавлено через 7 минут
Вариант с выгрузкой данных в DBF буду рассматривать в последнюю очередь.
|
|
|
|
25.12.2014, 13:59
|
| »»» |
#28
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Ну... если Вы пишете ПО для какой-то отрасли, необходимо ориентироваться в терминологии этой отрасли...
У Вас датчики уровня какого типа на машинах ?
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
25.12.2014, 14:14
|
| »»» |
#29
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Хм... да точно, омникомм-овские датчики уровня...
И все же уточню, LLS уже в литрах выдаётся ?
|
|
|
|
25.12.2014, 14:32
|
| »»» |
#30
|
Дилер
ООО "Системы Контроля и Анализа Транспорта", г. Нижний Новгород
Регистрация: 17.05.2011
Сообщений: 5,672
|
нет, тарировачная таблица в ПО, и программа на компе переводит ацп в литры
ООО "Системы Контроля и Анализа Транспорта" г. Нижний Новгород
Бородин Николай Олегович, ген. Директор
|
|
|
|
25.12.2014, 14:39
|
| »»» |
#31
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Видимо я плохо спросил...
Хотел спросить: Значение LLS выдаваемое ПО через COM уже в литрах?
Уже сам сравнив графики пришел к выводу что например значение LLS 523 это почти наверняка литры, а не вольты или что-то ещё (АЦП).
Добавлено через 3 минуты
Всем спасибо за помощь, было бы неплохо если в документации появится описание по использованию COM.
Осталось на практике проверить будет ли работать COM на сервере из под сервера 1С, при том что под десктопным пользователем запущен АвтоГРАФ.
Потому как локально приложение и COM не работают вместе...
|
|
|
|
25.12.2014, 14:46
|
| »»» |
#32
|
Дилер
Екатеринбург, ЗАО "Седьмая Экспедиция"
Регистрация: 14.12.2010
Сообщений: 14,999
|
lefion, это АЦП.. Полный бак обычно 1023 или 4095 что зависит от вида и настроек датчика
Добавлено через 2 минуты
Кроме того объем топлива в двух боковой машине будет суммой объемов показаний двух датчиков, или например в случае с двумя датчиками в баке половиной суммы показаний датчик. Здесь под показаниями я имею ввиду объем топлива
ЗАО "Седьмая Экспедиция", Екатеринбург, РФ
Мушин Виктор Валерьевич, Технический директор
|
|
|
|
25.12.2014, 14:54
|
| »»» |
#33
|
Дилер
ООО "Системы Контроля и Анализа Транспорта", г. Нижний Новгород
Регистрация: 17.05.2011
Сообщений: 5,672
|
lefion, Вы можете из ком-а как взять срые данные LLS1...8 так и пересчитанные в литры значение баков.
LLS1...8 - сырые данные АЦП
FuelTank (или что то похожее) - перечитанные значения в литры, с учетом того, что в одном баке может быть несколько датчиков
ООО "Системы Контроля и Анализа Транспорта" г. Нижний Новгород
Бородин Николай Олегович, ген. Директор
|
|
|
|
25.12.2014, 15:10
|
| »»» |
#34
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Сообщение от NickolaDed
|
lefion, Вы можете из ком-а как взять срые данные LLS1...8 так и пересчитанные в литры значение баков.
LLS1...8 - сырые данные АЦП
FuelTank (или что то похожее) - перечитанные значения в литры, с учетом того, что в одном баке может быть несколько датчиков
|
Согласно имеющимся у меня докам (из интернета и из дистрибутива) среди CrdEntry есть только следующее:
|
CrdEntryIndex - Индекс выбранной координаты (начинается с 1)
CrdEntryTime - Время
CrdEntryLongitude - Долгота
CrdEntryLatitude - Широта
CrdEntryDistance - Пробег (от начала рейса)
CrdEntrySpeed - Скорость
CrdEntryFlags - Состояние дискретных датчиков в битовых полях:
0x08 – питание; 0x04 – перемычка/время; 0x400 – остановка; 0x8000000 – координаты; 0x02, 0x01, 0x10, 0x20, 0x40, 0x80, 0x100, 0x200 – датчики 1 – 8
CrdEntrySensor1 - Датчик 1 (0 – выключен, 1 – включен)
CrdEntrySensor2 - Датчик 2 (0 – выключен, 1 – включен)
CrdEntrySensor3 - Датчик 3 (0 – выключен, 1 – включен)
CrdEntrySensor4 - Датчик 4 (0 – выключен, 1 – включен)
CrdEntrySensor5 - Датчик 5 (0 – выключен, 1 – включен)
CrdEntrySensor6 - - Датчик 6 (0 – выключен, 1 – включен)
CrdEntrySensor7 - Датчик 7 (0 – выключен, 1 – включен)
CrdEntrySensor8 - Датчик 8 (0 – выключен, 1 – включен)
CrdEntryLLS1 - Показание датчика LLS 1
CrdEntryLLS2 - Показание датчика LLS 2
CrdEntryLLS3 - Показание датчика LLS 3
CrdEntryLLS4 - Показание датчика LLS 4
CrdEntryLLS5 - Показание датчика LLS 5
CrdEntryLLS6 - Показание датчика LLS 6
CrdEntryLLS7 - Показание датчика LLS 7
CrdEntryLLS8 - Показание датчика LLS 8
CrdEntryDriverName - Водитель
CrdEntryDriverID - Идентификатор водителя
CrdEntryChPName - Имя контрольной точки
CrdEntryChPAddress - Адрес контрольной точки
CrdEntryChPID - Идентификатор контрольной точки
CrdEntryGeoZName - Имя геозоны
CrdEntryGeoZAddress - Адрес геозоны
CrdEntryGeoZID - Идентификатор геозоны
TrackCrdsStr - Координаты трека в виде строки: долгота1 широта1,долгота2 широта2 и т. д.
TrackCrdsArray - Массив, содержащий последовательно следующие данные типа double:
– время;
– широта;
– долгота;
– пробег (от начала рейса);
– скорость
|
|
|
|
|
|
Раз первоначальное мой впечатление о том, что данные в LLS таки сырые, хотя и не вольты, то покажите где же искать литри...
А то я уже в конец запутался...
Добавлено через 2 минуты
Есть конечно ещё
|
TripTank1StartLevel - Начальный уровень топлива в баке 1
TripTank1EndLevel - Конечный -»-
TripTank2StartLevel - Начальный уровень топлива в баке 2
TripTank2EndLevel - Конечный -»-
TripTank3StartLevel - Начальный уровень топлива в баке 3
TripTank3EndLevel - Конечный -»-
TripTank4StartLevel - Начальный уровень топлива в баке 4
TripTank4EndLevel - Конечный -»-
|
|
|
|
|
|
Но это в разрезе рейсов - на начало и конец, а хотелось бы в разрезе точек (точек рейсов, если не всех точек).
Добавлено через 2 минуты
И среди свойств COM объекта я не вижу ничего подобного...
|
|
|
|
25.12.2014, 15:25
|
| »»» |
#35
|
Дилер
Екатеринбург, ЗАО "Седьмая Экспедиция"
Регистрация: 14.12.2010
Сообщений: 14,999
|
lefion, а этого помоему нет. Есть только заправки сливы и уровень на начало и конец какого то отрезка
ЗАО "Седьмая Экспедиция", Екатеринбург, РФ
Мушин Виктор Валерьевич, Технический директор
|
|
|
|
25.12.2014, 15:57
|
| »»» |
#36
|
Дилер
ООО "Системы Контроля и Анализа Транспорта", г. Нижний Новгород
Регистрация: 17.05.2011
Сообщений: 5,672
|
Надо программисту вопрос задать есть ли там возможность взять топливо пересчитанное в литры? Может в инструкцию просто не включили.
ООО "Системы Контроля и Анализа Транспорта" г. Нижний Новгород
Бородин Николай Олегович, ген. Директор
|
|
|
|
26.12.2014, 05:42
|
| »»» |
#37
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
Но это в разрезе рейсов - на начало и конец, а хотелось бы в разрезе точек (точек рейсов, если не всех точек).
|
Уважаемый, потрудитесь всё-таки прочитать документацию. Для кого мы её пишем-то ???
Там по данному вопросу всё написано русским по-белому и даже без таких спецтерминов как LLS:
P.S.: Я же писал уже, что через массивы и переменные мы можем выдать не все данные. Многие можно получить через файлы.
Это было сделано из практических соображений и шло не столько от нас, сколько от тех, кто этими данными пользовался - для тех же отчетов и 1С-ников, которым, как выяснилось, не нужны были массивы, а нужны были файлы, которые потом они могли и обработать и в архив сохранить для истории.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
Последний раз редактировалось SK; 26.12.2014 в 05:54.
|
|
|
|
26.12.2014, 05:47
|
| »»» |
#38
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
lefion, то Вы просите данные из таблицы "сырых данных", так вот Вам CrdEntryLLSx, то обработанные, отфильтрованные и приведенные к литрам - так надо брать другой тип данных (см. пост выше).
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
26.12.2014, 05:47
|
| »»» |
#39
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от NickolaDed
|
Надо программисту вопрос задать есть ли там возможность взять топливо пересчитанное в литры? Может в инструкцию просто не включили.
|
NickolaDed, может инструкцию просто не читали ?
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
Последний раз редактировалось SK; 26.12.2014 в 05:55.
|
|
|
|
26.12.2014, 05:54
|
| »»» |
#40
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
1) Инструкцию читал (из неё же и приводу отрывки)
2) Я изначально просил не сырые данные уровня топлива, потому сразу и не понял почему вы ссылаетесь на LLS, но решил что там все таки так нужные мне литры...
3) Выше я уже писал, что если есть способы кроме DBF, то они предпочтительнее (все таки выгрузить в файл, а потом считать его в любом случае накладнее чем получить через COM).
|
|
|
|
26.12.2014, 05:57
|
| »»» |
#41
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
2) Я изначально просил не сырые данные уровня топлива, потому сразу и не понял почему вы ссылаетесь на LLS, но решил что там все таки так нужные мне литры...
|
А Вас, уж простите, но не всегда поймешь однозначно. Вы просите вроде как не сырые данные, но тут же просите данные из таблицы по CTRL+ALT+ALT. Поэтому, возникает когнитивный диссонанс...
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
26.12.2014, 05:58
|
| »»» |
#42
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Сообщение от plex
|
lefion, это АЦП.. Полный бак обычно 1023 или 4095 что зависит от вида и настроек датчика
Добавлено через 2 минуты
Кроме того объем топлива в двух боковой машине будет суммой объемов показаний двух датчиков, или например в случае с двумя датчиками в баке половиной суммы показаний датчик. Здесь под показаниями я имею ввиду объем топлива
|
Спасибо, что вовремя предупредили
|
|
|
|
26.12.2014, 06:06
|
| »»» |
#43
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
3) Выше я уже писал, что если есть способы кроме DBF, то они предпочтительнее (все таки выгрузить в файл, а потом считать его в любом случае накладнее чем получить через COM).
|
Точки по топливу, в ПО АвтоГРАФ версий 3.х...4.х по COM - только через файл.
Если использовать интерфейс АвтоГРАФ-HTTP2COM, то будет передаваться через HTTP в XML-формате.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
26.12.2014, 06:10
|
| »»» |
#44
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
26.12.2014, 06:11
|
| »»» |
#45
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Сообщение от SK
|
Сообщение от lefion
|
2) Я изначально просил не сырые данные уровня топлива, потому сразу и не понял почему вы ссылаетесь на LLS, но решил что там все таки так нужные мне литры...
|
А Вас, уж простите, но не всегда поймешь однозначно. Вы просите вроде как не сырые данные, но тут же просите данные из таблицы по CTRL+ALT+ALT. Поэтому, возникает когнитивный диссонанс...
|
Так в колонке "ID заправок / Уровни в баках" указаны значения в литрах...
По крайней мере значение совпадет с тем что указано в столбце "Бак 1, л" в списке рейсов.
Если ошибся, то извините, с приложением непосредственно не работаю, и на что указали на то и ориентируюсь.
|
|
|
|
26.12.2014, 06:15
|
| »»» |
#46
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
Сообщение от lefion
|
Так в колонке "ID заправок / Уровни в баках" указаны значения в литрах...
По крайней мере значение совпадет с тем что указано в столбце "Бак 1, л" в списке рейсов.
|
- массив уровней в баках по точкам
- данные по рейсам (в т.ч. уровни на начало и конец)
- данные по заправкам и сливам (в т.ч. уровни на начало и конец)
всё это разные наборы (массивы, таблицы) данных.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
26.12.2014, 06:46
|
| »»» |
#47
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
Простите, а можно поподробнее о АвтоГРАФ-HTTP2COM...
Не слышал даже о HTTP2COM, не говоря уже о АвтоГРАФ-HTTP2COM...
Это случайно не методы Web-интерфейса АвтоГРАФ ?
|
|
|
|
26.12.2014, 07:07
|
| »»» |
#48
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
HTTP2COM - это служба, которая устанавливается на компьютере с ПО АвтоГРАФ и позволяет получать данные с помощью HTTP-запросов к этой службе.
HTTP-запросы можно отсылать с удаленного компьютера в отличие от СОМ-запросов, которые работают только на том компьютере, на котором установлено ПО АвтоГРАФ.
По сути это шлюз, которые преобразовывает HTTP-запросы в СОМ-запросы и СОМ-ответы в HTTP-ответы.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
12.01.2015, 14:28
|
| »»» |
#49
|
Начинающий
Белгород
Регистрация: 24.12.2014
Сообщений: 17
|
А где скачать HTTP2COM ?
И что конкретно из себя представляет HTTP2COM - это приложение IIS или windows service ?
Добавлено через 1 час 40 минут
Или имеется введу это приложение HTTP2COM ?
|
|
|
|
12.01.2015, 15:12
|
| »»» |
#50
|
Администратор
Регистрация: 27.05.2010
Сообщений: 29,985
|
lefion, через запрос в техническую поддержку.
HTTP2COM - это служба Windows, устанавливаемая на компьютер с диспетчерским ПО АвтоГРАФ версий 3.х...4.х
Это не то приложение, которое можно найти по данной Вами ссылке.
ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
|
|
|
|
Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Текущее время: 14:07. Часовой пояс GMT.
|
|