Неверное определение остановок и движений при выгрузке в 1с
Вложений: 4
Доброго времени суток Дамы и Господа.
Еще раз нужна Ваша помощь. Если вопрос покажется глупым, прошу сильно не пинать, сам понимаю что проблема в настройке АвтоГРАФа :) Произвожу выгрузку стоянок и отрезков движения между стоянками. Алгоритм получения данных следующий: 1) Получаю все остановки параметром TripEntriesListTypeName="parks" 2) Заполняю ТЗ в 1с 3) В цикле получаю все рейсы между окончанием первой стоянки и началом второй стоянки (итд если стоянок больше двух), если рейс 1, то дополняю ТЗ прохождением между стоянками, если рейсов более 1, то суммирую данные (пробег, время в движении итд). В результате получил данные, но есть несколько моментов, которые не могу понять. Чтобы не быть голословным, покажу на примере: В 1с получаю таблицу остановок и движений, первая запись - это стоянка: Вложение 3677 Во время стоянки ТС проехало 4 с копейками метра, что быть не может. Движение выглядит нормально: Вложение 3678 Начал смотреть что в АвтоГРАФе, в результате увидел следующую картину - Время начала движения по 1с не соответствует с началом движения по АвтоГРАФу. Движение начинается, в данном случае, за 7 секунд до фиксации движения через OLE, но скорость движения составляет 1 км/ч. Фактическое начало движения в АвтоГРАФе: Вложение 3680 Данные автографа в момент фиксации движения по OLE: Вложение 3679 То есть движение ТС со скоростью 1 км/ч АвтоГРАФ не считает движением, а считает стоянкой, в результате при стоянке ТС, при выгрузке в 1с (да и скорее всего в любую другую программу через OLE) оказывается что в момент стоянки ТС все таки двигалось. Подскажите как можно исправить данную проблему. Интуитивно понимаю, что скорее всего надо ковырять настройки АвтоГРАФа (что то типа порога скорости движения), но я не настраиваю АвтоГРАФ в организации и не могу сам менять настройки - мой функционал, связать АвтоГРАФ и 1с. И еще несколько вопросов если позволите :) 1) Как лучше организовать получение информации о движении между стоянками, как организовал я описал выше, но цикл по рейсам между стоянками и суммирование некоторых данных, как мне кажется, не самый оптимальный вариант, есть ли параметр, типа TripEntriesListTypeName="parks", чтобы сразу получить все данные за указанный период движения, без использования цикла? 2) Думаю как лучше в 1с завести время рейса, время движения и время простоя - в чем именно заключается вопрос - АвтоГРАФ при выгрузки эти данные выдает в формате "чч:мм:сс", а если, например время движения/простоя превышает 24 часа? (у меня таких данных нет, поэтому и не знаю), как будет отражаться время? Например:"34:12:17"? Или будет прибавлять количество суток? Например:"1 10:12:17"? Вполне возможно что лучше использовать время в числовом варианте, например 1,50 - полтора часа, но опять же, нужно учесть возможность перевода времени, превышающие сутки в числовой формат. Какова будет конечная настройка рейсов я не могу сказать - если рейсы будут, например определятся движением от точки к точке, то время рейса может превышать 24 часа, поэтому, если кто знает, как АвтоГРАФ указывает дату больше суток прошу подсказать :) Прошу прощение за много буков :) Заранее спасибо за помощь :) |
Получение информации об остановках можно реализовать на основании информации с датчика двигателя (датчик моточасов - НомерДатчикаМЧ)
AG.WaitForComputing(ГрФайл, СерНом, НачПериод, КонПериод, "GSM", 1); КолРейсов = AG.TripsNum; AG.TripEntriesListTypeName = "sensor_on"; AG.TripEntriesListKindName = "num" + Формат(НомерДатчикаМЧ, "ЧДЦ=0; ЧГ=0"); Для х = 1 По КолРейсов Цикл AG.TripIndex = х; КолВключений = AG.TripEntriesNum; Для хх = 1 По КолВключений Цикл AG.EntryIndex = хх; НачалоОстановки = AG.EntryStartRealTime; ОкончаниеОстановки = AG.EntryEndRealTime; КонецЦикла; КонецЦикла; |
AlexProg1C, абсолютно неверно. Данный датчик покажет только стоянки с выключенным двигателем. Остановки - это совершенно другое ! |
Цитата:
|
Благодарю за ответы :)
По доп вопросу №1: Проковырял свой алгоритм, данные в принципе адекватные, решил оставить его :) Вкратце расскажу суть алгоритма: 1) Получаю все остановки "parks" 2) заполняю ими ТЗ 3) Делаю проверку на пересекающиеся данные (заметил 2 ситуации - а) остановка (событие) может начаться, например в 12:11:10 и закончиться в 12:11:10, и соответственно в 12:11:10 происходят 3 события - начало и окончание остановки, начало движения, такую остановку я убираю, б) Очень редко, но бывает, остановка№1 - окончание в 12:11:10, остановка №2 - начало в 12:11:10, то есть одну общую остановку АвтоГРАФ разбил на 2 остановки, я их собираю) 3) В цикле прогоняю остановки от остановка[x] и остановка[x+1] получаю рейс(ы) между данными промежутками времени, данные по КТ, координатам, уровню топлива и т. д. начал и окончания движения беру у остановок, из рейсов беру только пробег, время работы двигателя. Вот вкратце алгоритм, понимаю, что многие моменты решаются с помощью более точной настройки АвтоГРАФа, но я не настраиваю АвтоГРАФ и хочу защититься от любых изменений настроек, чтобы изменение, например описания рейсов, никак не повлияло на работу получения данных (почему и ввел регистр, описанный выше - данных нужно записать много, но зато это наиболее полная информация о движении ТС, к которой можно приделать любые обработчики данных) Если я по своей близорукости не увидел каких-либо подводных камней, прошу подсказать, чтобы я исправился. Но мне кажется алгоритм получения информации по остановкам и движениям между ними вполне адекватный :) |
Цитата:
|
Хм, спасибо за подсказку :)
Но "" Цитата:
А по алгоритму что можете сказать? Жизнеспособен или может показывать температуру в килограммах? :) |
Vasiliy_09_05, всё зависит от того, насколько точная информация Вам нужна.
1. Откройте список остановок 2. Откройте список записей (Ctrl + LAlt + RAlt) 3. Двойной щелчок по остановке, затем в списке записей нажмите кнопку "Найти запись списка" (стрелка вниз справа вверху панели) 4. Выполняя п. 3 для интересуемых остановок, определите, что Вы отфильтровываете своим алгоритмом: скорее всего, это перемещения, связанные с флуктуацией координат (от которой можно попытаться избавиться установкой GPS антенны в другое место) или неправильной настройкой поиска остановок. Вы сами себе противоречите: с одной стороны: Цитата:
|
Текущее время: 11:29. Часовой пояс GMT. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot