PCCar.ru - Ваш автомобильный компьютер

Вернуться   PCCar.ru - Ваш автомобильный компьютер > MP3Car ТехИнфа > Разработка программ > Дополнительный софт > "Wanted" software

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2009, 18:25   #1
SBorovkov
Старший Пользователь
 
Регистрация: 11.06.2008
Возраст: 46
Регион: 77, 97, 99, 177
Сообщений: 438
SBorovkov is on a distinguished road
По умолчанию Дополнение к CamGrabber

Программка CGSubtitles.

Версия 2.1 от 14.10.2010

Умеет следующее:

1. Берет данные GPS из Com порта.

2. Посылает в CamGrabber текст, который CamGrabber будет накладывать на видео. Текст может быть
разным для каждой из камер и формироваться из данных:
%GpsStatus% - текстовый статус приема GPS
%Speed% - скорость в км/ч с точностью 0.1
%tSpeed% - округленная скорость в км/ч
%Heading% - курс
%GPSDate% - дата, исходя из данных GPS
%GPSTime% - время, исходя из данных GPS
%Time% - системное время
%Date% - системная дата
%Lat% - широта
%Lon% - долгота
%Alt% - высота в метрах
%SatCount% - количество спутников
Пример- текст "%Speed% км/ч, %Date%, %Time%" на экране появится в виде
55.3 км/ч, 19.03.2009, 15:30:21

Если скорость ниже пороговой, то считается, что машина стоит.

3. Кроме того, программа умеет сохранять данные, приходящие с GPS в отдельную папку и в дальнейшем
формировать файл субтитров к уже существующим видео файлам CG. То есть видео файлы могут писаться
CG и без субтитров, а в дальнейшем Вы можете создать субтитры, когда захочется. При этом данные от
GPS сдвигаются на заданное время, для устранения "лага".

4. Из программы можно получить состояние вышеперечисленных (в пункте 2) параметров Gps.
Для этого необходимо послать wm_copydata окну с классом TCamGrabberSubTitles ,
wparam - hwnd вашего окна,принимающего wm_copydata,
dwData=1
в качестве данных - текст из пункта 2.
Обратно получите обработанный как в пункте 2 текст.

5. Прога умеет синхронизировать системное время, но делает это с ошибкой до 2 секунд. Синхронизирует строго перед уходом в ждущий/спящий режим, дабы не было проблем с изменением системного времени во время записи видео. Учтите, что для того, чтобы программа считала, что время стоит перевести, она должна принимать сигнал GPS не менее 10 секунд с момента прошлого ухода в сон.

Для того, чтобы создать файл субтитров нужно вызвать
CGSubtitles.exe <имя CG видео файла> [/run]
При этом программа не разбирается что за файл ей подсунули. Она создает субтитры определенной длины
(какой - задано в ini файле). Время создания файла она берет из названия видео файла, поэтому не
меняйте названия видео файлов CG!
Если указан /run, то программа после создания субтитров запустит проигрывание видео файла

6. Прога умеет следить за балансом модема Huawei e1550 и, думаю, ряда других. Кроме того - отдавать уровень приема и возможности соединения с текущей БС (3G/edge/gprs/...?)
Для того, чтобы воспользоваться этим, кроме GPS запросов прога еще умеет обрабатывать три доп. макроса %ModemRSSI% - уровень приема, %ModemConnectionType% - тип подключения и %ModemBalance% - баланс.
Первые два макроса обновляются по приходу данных от модема (модем сам шлет время от времени данные), баланс - обновляется периодически, интервал указан в ini файле. Кроме того, баланс обновляется командой "Refresh balance" и по выходу из ждущего/спящего режимов.

Обязательно загляните в прилагающийся ini файл и настройте Com порт и прочее.

Те, кто успел попробовать прошлую версию, настройте новый ini файл или допишите в конец новые строки!

Изменения:
1.1
+Возможность забирать данные из программы посредством wm_copydata
+настройка SendSubtitleToCG - отправлять ли данные в CG
-неправильно писался файл с данными для субтитров

1.2
Везде Subtytle поменяно на Subtitle (в том числе - в названии окна!!!)
-не учитывалcя перевод часов (ВАЖНО!!!)
+%tSpeed%
+синхронизация времени с GPS
+параметр /run позволяет запустить видео проигрываться после формирования субтитров

1.3
+%Lat% %Lon% %Alt% %SatCount%
+настройка NoGpsDataString позволяет задать строку, которая будет выводиться в каждом из полей при отсутствии данных GPS. По умолчанию "---"

1.4
- при запросе через wm_copydata при отсутствии данных GPS слались старые данные.
- название окна, которому надо слать wm_copydata, приведено в соответствии с выше (и ниже) написанным текстом
Name: CamGrabberSubTitles
Class: TCamGrabberSubTitles
Caption: CGSubTitles

1.7
Исправлено небольшое количество ошибок.
+ добавлены %HeadingA% %tSpeedA% %SpeedA% - выровненные пробелами слева значения.

1.8
+работа с модемом

2.0
-Исправлены кой-какие ошибки связанные с модемом
+добавлена возможность двух команд на ресет модема, разделенных вертикальной чертой | .
+можно задать LogLevel=11 и получить тучу сообщений общения с модемом.

2.1
-Исправил - не должна мешать компу перезагружаться

(добавление)
Учтите, что можно заставить прогу слать данные в любое виндовое окно. К примеру, можно послать проге CGSubTitles команду вида "SETVAR;Speed;`%Speed`%", но указать в качестве wparam'а handle RoadRunner'а. В результате в RR придет уже команда вида "SETVAR;Speed;45кмч". Т.е. задаст переменную.

Пример для AutoHotKey

Код:
#m::
;tooltip,aaa
CDSSendMessage("SETVAR;MYSAT;`%SatCount`%||SETVAR;MYALT;`%Alt`%||SETVAR;GPSDATE;`%GPSDate`%||SETVAR;GPSTIME;`%GPSTime`%||SETVAR;GPSSPEED;`%tSpeed`%", "ahk_class TCamGrabberSubTitles", WinExist("RoadRunner")) ; Просим CGSubTitles.exe отдать в RR число спутников и пр.
CDSSendMessage("SETVAR;MODEMRSSI;`%ModemRSSI`%||;SETVAR;ModemConnectionType;`%ModemConnectionType`%||SETVAR;ModemBalance;`%ModemBalance`%", "ahk_class TCamGrabberSubTitles", WinExist("RoadRunner")) ; Просим CGSubTitles.exe отдать в RR данные по модему.
CDSSendMessage("Refresh balance", "CGSubTitles") ; Просим CGSubTitles.exe отрефрешить баланс.
Ну и совсем извращение:
CDSSendMessage("SENDMSG;CGSubTitles;Refresh balance", "RoadRunner") ; Просим RR отправить в CGSubTitles команду отрефрешить баланс. :-))
return

; Функция отправки команды методом WM_COPY
CDSSendMessage(msg, prg, hndl="",port=1)
{
	len := StrLen(msg)
;	port := 1
	VarSetCapacity(CopyDataStruct, 12, 0)
	NumPut(port, CopyDataStruct, 0)
	NumPut(len, CopyDataStruct, 4) ; тут именно len, а не len+1 как пишут в некоторых примерах
	NumPut(&msg, CopyDataStruct, 8)
	SendMessage, 0x4A, %hndl%, &CopyDataStruct,, %prg%
	return
}
Вложения
Тип файла: zip CGSubtytles_1_1.zip (219.2 Кб, 765 просмотров)
Тип файла: zip CGSubtitles_1_2.zip (235.7 Кб, 759 просмотров)
Тип файла: rar Subtitles_1_3.rar (188.9 Кб, 741 просмотров)
Тип файла: rar Subtitles_1_4.rar (188.9 Кб, 737 просмотров)
Тип файла: rar Subtitles_1_7.rar (192.7 Кб, 664 просмотров)
Тип файла: zip CG_SubTitles_1_8.zip (242.6 Кб, 639 просмотров)
Тип файла: zip CGSubTitles_2_0.zip (243.6 Кб, 604 просмотров)
Тип файла: rar CGSubTitles_2_1.rar (194.2 Кб, 694 просмотров)
__________________
Ford focus2, материнка ASUS AT3GC-I (atom 330), 1G памяти, HDD 200G, Lart радио, bluetooth, видеозапись. Монитор Lilliput 889GL. Оболочка RR+DigitalFX 3.0, подробности тут:http://forum.pccar.ru/showthread.php?t=5588

Последний раз редактировалось SBorovkov; 14.10.2010 в 23:53.
SBorovkov вне форума   Ответить с цитированием
Старый 22.03.2009, 15:09   #2
SBorovkov
Старший Пользователь
 
Регистрация: 11.06.2008
Возраст: 46
Регион: 77, 97, 99, 177
Сообщений: 438
SBorovkov is on a distinguished road
По умолчанию

Расскажите, заработала программа? Интересно ж
__________________
Ford focus2, материнка ASUS AT3GC-I (atom 330), 1G памяти, HDD 200G, Lart радио, bluetooth, видеозапись. Монитор Lilliput 889GL. Оболочка RR+DigitalFX 3.0, подробности тут:http://forum.pccar.ru/showthread.php?t=5588
SBorovkov вне форума   Ответить с цитированием
Старый 22.03.2009, 17:51   #3
ashu
Старший Пользователь
 
Аватар для ashu
 
Регистрация: 25.11.2007
Возраст: 51
Город: СПб, Гондурас
Регион: 78, 98
Машина: Toyota Prius 11S выпуска 2001/09
Сообщений: 766
ashu has a spectacular aura aboutashu has a spectacular aura about
По умолчанию

Сорри! Я как-то пропустил такую суперскую прогу!
Буду тестить...
Планируешь ли добавить возможность синхронизации системных часов по спутникам? RR это умеет, но иногда (редко) где-то что-то глючит и RR то время ставит на полчаса назад, то дату на месяц вперед... Поэтому отключил в RR синхронизацию времени.
__________________
Мой Toyota Prius NHW11
ashu вне форума   Ответить с цитированием
Старый 22.03.2009, 18:05   #4
ashu
Старший Пользователь
 
Аватар для ashu
 
Регистрация: 25.11.2007
Возраст: 51
Город: СПб, Гондурас
Регион: 78, 98
Машина: Toyota Prius 11S выпуска 2001/09
Сообщений: 766
ashu has a spectacular aura aboutashu has a spectacular aura about
По умолчанию

Сразу два вопроса:

1. Как вообще исключить из работы п.2? Т.е. только п.1 и п.3 - сохранять данные о скорости для последующего создания файла субтитров?

2. Хотелось бы простенький API для получения из твоей проги в ahk-скрипт текущих значений скорости и высоты
__________________
Мой Toyota Prius NHW11
ashu вне форума   Ответить с цитированием
Старый 22.03.2009, 18:46   #5
SBorovkov
Старший Пользователь
 
Регистрация: 11.06.2008
Возраст: 46
Регион: 77, 97, 99, 177
Сообщений: 438
SBorovkov is on a distinguished road
По умолчанию

Цитата:
Сообщение от ashu Посмотреть сообщение
Планируешь ли добавить возможность синхронизации системных часов по спутникам? RR это умеет, но иногда (редко) где-то что-то глючит и RR то время ставит на полчаса назад, то дату на месяц вперед... Поэтому отключил в RR синхронизацию времени.
Могу сделать. Но я собирался сделать так, что корректируется время только в промежутке +/- 20 минут, совмещая показания минут в ближайшую сторону. Вообще перевод времени для последующего формирования субтитров - некая подстава, но если время буду переводить я же, то думаю, что это решается.

Цитата:
Сообщение от ashu Посмотреть сообщение
Сразу два вопроса:
1. Как вообще исключить из работы п.2? Т.е. только п.1 и п.3 - сохранять данные о скорости для последующего создания файла субтитров?
2. Хотелось бы простенький API для получения из твоей проги в ahk-скрипт текущих значений скорости и высоты
1. Тебе важны и родная текстовка субтитров и моя? Если родные не нужны - просто не пиши их (сними галку в CG).
Прога шлет данные только для тех камер, для которых задан текст. То есть если у тебя поля Text<номер> не заданы, то и слать он данные в CG не будет и у тебя будут родные субтитры. Но тогда при формировании субтитров тебе придется изменить ini файл, поскольку текстовки берутся из одного места.
Вообще, если нужны и те и другие субтитры, то настройку сделаю.

2. Так, давайте сначала соберем заявки на то, что хотите получать из GPS, потом все это сделаю.
__________________
Ford focus2, материнка ASUS AT3GC-I (atom 330), 1G памяти, HDD 200G, Lart радио, bluetooth, видеозапись. Монитор Lilliput 889GL. Оболочка RR+DigitalFX 3.0, подробности тут:http://forum.pccar.ru/showthread.php?t=5588
SBorovkov вне форума   Ответить с цитированием
Старый 22.03.2009, 18:59   #6
ashu
Старший Пользователь
 
Аватар для ashu
 
Регистрация: 25.11.2007
Возраст: 51
Город: СПб, Гондурас
Регион: 78, 98
Машина: Toyota Prius 11S выпуска 2001/09
Сообщений: 766
ashu has a spectacular aura aboutashu has a spectacular aura about
По умолчанию

Цитата:
Сообщение от SBorovkov Посмотреть сообщение
2. Так, давайте сначала соберем заявки на то, что хотите получать из GPS, потом все это сделаю.
От меня:
скорость, высота, широта и долгота в формате десятичной дроби (т.е. без минут), направление (в каком-либо виде).
__________________
Мой Toyota Prius NHW11
ashu вне форума   Ответить с цитированием
Старый 23.03.2009, 22:16   #7
ashu
Старший Пользователь
 
Аватар для ashu
 
Регистрация: 25.11.2007
Возраст: 51
Город: СПб, Гондурас
Регион: 78, 98
Машина: Toyota Prius 11S выпуска 2001/09
Сообщений: 766
ashu has a spectacular aura aboutashu has a spectacular aura about
По умолчанию

Создал в gpsgate еще один порт - com15. Проверил - временно настроил на него СитиГид - работает.
Настроил инишник:

Код:
[GPS]
Port=15
Speed=9600
MinSpeed=1,5
; скорость менее чем MinSpeed в кмч считается равной нулю
[OutPut]
;Text1=%GpsStatus% speed:%Speed% heading=%Heading% date %Date% time %Time%
;Text2=Задняя камера. %GPSDate% %GPSTime%
;Text<номер камеры>=текст с подстановками.
; поддерживаются %GpsStatus% %Speed% %Heading% %GPSDate% %GPSTime% %Time% %Date%
[General]
LogLevel=5
LogFile=GpsLog.txt
; Имя лог файла. Советую прописать путь в виде c:\temp\GpsLog.txt
GpsDataDir=C:\GpsData
; Путь к файлам, хранящим данные о скорости перемещения. Папка будет создана автоматически. Если не задано данные сохраниться не будут.
GpsTimeShift=2500
; Сдвиг по времени данных GPS при создании файла субтитров
VideoFileLength=500
; размер в секундах создаваемого файла субтитров.
Запустил CGSubTitles.exe на день полёта...

Сегодня вечером слил видео и файл 2009-09-23.gpsdat, попытался создать файлы субтитров... Во всех получилось одно и то же:

Нет данных GPS speed:--- heading=--- date 23.03.2009 time 19:26:38

Т.е. время меняется, данных gps нет.

Лог-файл к сожалению забыл скопировать...

Куда копать?
Иль надо изучать лог?
__________________
Мой Toyota Prius NHW11
ashu вне форума   Ответить с цитированием
Старый 24.03.2009, 00:47   #8
SBorovkov
Старший Пользователь
 
Регистрация: 11.06.2008
Возраст: 46
Регион: 77, 97, 99, 177
Сообщений: 438
SBorovkov is on a distinguished road
По умолчанию

Цитата:
Сообщение от ashu Посмотреть сообщение
Создал в gpsgate еще один порт - com15. Проверил - временно настроил на него СитиГид - работает.
Настроил инишник:

Сегодня вечером слил видео и файл 2009-09-23.gpsdat, попытался создать файлы субтитров... Во всех получилось одно и то же:

Нет данных GPS speed:--- heading=--- date 23.03.2009 time 19:26:38

Т.е. время меняется, данных gps нет.

Куда копать?
Если у тебя не виста, то при старте проги трее появляется иконка GPS. Красная - нет данных. Зеленая - есть данные. Иконка реагирует на поток данных оперативно - в течении пары секунд.

Скинь 2009-09-23.gpsdat на <вырезан емыл>, посмотрю. Вообще если файл есть, до и данные в нем должны быть, ибо в файл не пишется, если данные с GPS не идут.

Прога действует так - она считывает файлы, в которых могут быть данные для видео файла. Затем в соответствии со считанными данными пишет субтитры. Если на какую-то конкретную секунду данных GPS нет, то он получается строчка, как у тебя.
Да, учти, что файл 2009-09-23.gpsdat прога ищет именно в папке, которая прописана в GpsDataDir, а не в текущей папке! Это важно, если ты запускал генерацию субтитров с другого компа.
Короче, я допускаю, что прога просто не нашла твой файл с данными скорости.
__________________
Ford focus2, материнка ASUS AT3GC-I (atom 330), 1G памяти, HDD 200G, Lart радио, bluetooth, видеозапись. Монитор Lilliput 889GL. Оболочка RR+DigitalFX 3.0, подробности тут:http://forum.pccar.ru/showthread.php?t=5588

Последний раз редактировалось SBorovkov; 04.10.2011 в 14:47.
SBorovkov вне форума   Ответить с цитированием
Старый 24.03.2009, 01:02   #9
ashu
Старший Пользователь
 
Аватар для ashu
 
Регистрация: 25.11.2007
Возраст: 51
Город: СПб, Гондурас
Регион: 78, 98
Машина: Toyota Prius 11S выпуска 2001/09
Сообщений: 766
ashu has a spectacular aura aboutashu has a spectacular aura about
По умолчанию

Цитата:
Сообщение от SBorovkov Посмотреть сообщение
Да, учти, что файл 2009-09-23.gpsdat прога ищет именно в папке, которая прописана в GpsDataDir, а не в текущей папке! Это важно, если ты запускал генерацию субтитров с другого компа.
Да, клал именно в ту папку...
Файл выслал. Жду диагноза
__________________
Мой Toyota Prius NHW11
ashu вне форума   Ответить с цитированием
Старый 24.03.2009, 01:19   #10
SBorovkov
Старший Пользователь
 
Регистрация: 11.06.2008
Возраст: 46
Регион: 77, 97, 99, 177
Сообщений: 438
SBorovkov is on a distinguished road
По умолчанию

Цитата:
Сообщение от ashu Посмотреть сообщение
Да, клал именно в ту папку...
Файл выслал. Жду диагноза
Диагноз: я идиот.
В течении часа-двух выложу новую версию.
__________________
Ford focus2, материнка ASUS AT3GC-I (atom 330), 1G памяти, HDD 200G, Lart радио, bluetooth, видеозапись. Монитор Lilliput 889GL. Оболочка RR+DigitalFX 3.0, подробности тут:http://forum.pccar.ru/showthread.php?t=5588
SBorovkov вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Часовой пояс GMT +4, время: 12:46.


Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot