Приветствую, господа АвтоГРАФоды (водители АвтоГРАФ-а)!
Давно известно (судя по форуму), что данные можно получать из системы через 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"
Вообще хочу вытащить показания сенсоров по точкам, в частности уровень топлива.