Фев 05

Начитавшись в интернете статей о том, как легко создается хранитель экрана с помощью библиотеки  scrnsave.lib в Visual Studio, я решил попробовать ее на практике. Собрав простенький пример на базе этой статьи, я… хм… обломался. Хранитель экрана упорно ругался на то, что не найдена функция ChangeWindowMessageFilter в USER32.DLL.Погуглив я узнал, что такая функция появилась впервые в Windows Vista, а в XP и более ранних ею даже не пахнет. Проект я создавал в VS2008 Express, в который входила библиотека scrnsave.lib с сылкой на эту функцию. Из доступных советов было только, скачать более раннюю версию scrnsave.lib, создать DLL с “заглушкой”, и написать на форуме Microsoft SDK и тихо ждать. Еще один вариант был, создание хранителя экрана с нуля – с самостоятельной обработкой всех событий и т.п. Не густо.

Помедитировав над проектом какое-то время, я нашел достаточно простое решение, которое прекрасно работает в моей XP.

Итак, все что необходимо сделать, это пометить USER32.DLL, как отложенно загружаемую. Если конкретнее, то открываем свойства проекта, переходим в Свойства конфигурации\Компоновщик\Ввод и в значение параметра Отложенно загружаемые DLL дописываем USER32.DLL.

Tagged with:
Янв 18

GpsGate Server имеет одну хорошую особенность, он позволяет добавлять свои web-расширения (дополнительные окна), реализующие необходимую Вам бизнес логику. Реализуются данные расширения с помощью DisplayKit, построенного, в прочем, как и весь web-интерфейс, на базе MochaUI и MochiKit. Continue reading »

Tagged with:
Дек 14

При установке данного модуля столкнулся с такой проблемой. При запуске приложений, которые используют данный модуль, вылетала ошибка вроде такой “…DBD::Pg: libpq.so.4: cannot open shared object file: No such file or directory…”, хотя установка прошла нормально. На различных форумах было множество предположений – нехватка прав, переустановить, перезагрузить компьютер, … Положение спасло только курение readme файла. Continue reading »

Tagged with:
Дек 03

Добрался наконец-то до темы сохранения данных, поступающих от устройства, в GpsGate Server. Собственно писать-то много и не нужно, так все делается достаточно просто, если использовать стандартные таблицы сервера. Continue reading »

Tagged with:
Ноя 27

При разработке плагина столкнулся с проблемой того, что в SiteAdmin плагин отображается, запускается и работает корректно, но при остановке плагина происходит ошибка. GpsGate Server сообщает (в логах), что не может найти протокол. Также в VehicleTracker не отображается Device mapper. Все условия, вроде бы, выполнены – свойства ProtocolID и StringID соответствующих классов возвращают одинаковые значения. Continue reading »

Tagged with:
Ноя 25

Установка плагина и его версия имеют некоторые особенности, о которых я хотел бы упомянуть. Continue reading »

Tagged with:
Ноя 23

Изучив несколько примеров проектов плагинов, выделил базовую структуру, которая должна быть во всех плагинах. Плагин основывается на классах-наследниках от следующих базовых классов: GpsGate.Online.Directory.DeviceDefinition, GpsGate.Online.Net.Protocol, GpsGate.Online.Net.NmeaListener или других *Listener (зависит от требований к проекту), GpsGate.Online.Net.NmeaConnection или других *Connection. Continue reading »

Tagged with:
Ноя 20

Данным постом хочу открыть тему по интеграции новых устройств в GpsGate Server, а также поделиться тем, что изначально удалось найти и узнать про интеграцию устройств. Continue reading »

Tagged with:
Ноя 20

В предыдущем посте было рассказано, как выполнять межсерверные запросы Ajax, в частности к Tomcat. Для этого использовался небольшой скриптик на PHP, который перенаправлял запрос на удаленный сервер, получал и возвращал ответ. Настало время его немного доработать в связи с тем, что он не поддерживает сессии, т.е. каждый Ajax-запрос Tomcat воспринимает как совершенно новое соединение. Continue reading »

Tagged with:
Окт 21

При выполнении ajax-запросов к “серверу приложений” Tomcat столкнулся с тем, что ответ от сервера не доходил до JavaScript. Проверив отдельно выполнение сервлета в Tomcat или выполнение ajax-запроса к тестовой странице php, удостоверился, что проблема не в них. Погуглив, вышел статью (и не одну), говорящую о том, что на выполнение ajax-запросов накладываются ограничения – ajax-запрос может быть выполнен только в том домене, где он находится, включая и порт. Т.е. если была загружена страница www.mydomain.com/index.php, то выполнить запрос она может только на страницу на домене (или поддомене) www.mydomain.com. А домены www.mydomain.com:80 и www.mydomain.com:8080 уже являются разными. Continue reading »

Tagged with:
preload preload preload