Kuzevich
Диплом C++ Qt Box2D Google Protobuf
Как всегда на написание дипломного проекта времени оставалось мало поэтому решено было искать что то полу-готовое и делать из этого что то свое J
В условиях дипломного проекта было:
1. Код на C++
2. работоспособность под Linux
3. Использование сети
4. Использование открытых библиотек
Поиск по яндексу дал интересный проект «2D Шутер на C++ & Qt» а именно http://ru.twitch.tv/fippobak/b/330941403. Исходники здесь: https://github.com/bakwc/Epsilon5/
Все что нужно есть осталось это все собрать.
Для начала были скачаны:
1. Qt: http://qt-project.org/downloads
2. Box2D: http://code.google.com/p/box2d/
3. Protobuf: http://code.google.com/p/protobuf/
И тут началось самое интересное.
Сначала я пытался объединить Qtlibraries и QtCreator. При открытии проекта выскакивало Подходящие профили Qt не найдены. После лазания по интернету и прочих мытарств я нашел лучшее решение. Все снес и скачал Qt SDK. Он, что называется, заработал из коробки. Почти… При сборке в окне вывода и проблем (issue) появились «крокозябры» (проблема с кодировкой). Опять яндекс и поиском я нашел: http://lab113.ru/qtcreator_kodirovka.php . Решилось заменой файла jom в папке C:\QtSDK\QtCreator\bin\ на скачанный по ссылке с сайта: http://lab113.ru/jom/x86/jom.exe
Ура. Теперь я могу прочитать что пишет мне копилятор. А пишет он мне следующее:
c:\distrib\programmer\bakwc-epsilon5-a625e59\bakwc-epsilon5-a625e59\eps5client\..\Eps5Proto\Epsilon5.pb.h:9: ошибка: C1083: Неудаетсяоткрытьфайлвключение: ../google/protobuf/stubs/common.h: No such file or directory
Ок. Изархива protobuf-2.4.1.zip доставемпапку google, котораялежитв \protobuf-2.4.1\src\ икопируемв C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\include\
Новаяошибка: c:\distrib\programmer\bakwc-epsilon5-a625e59\bakwc-epsilon5-a625e59\eps5client\..\Eps5World\world.h:12: ошибка: C1083: Неудаетсяоткрытьфайлвключение: Box2D/Box2D.h: No such file or directory
Изархива Box2D_v2.2.1.zip копируемпапку Box2D тудаже C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\include\
Следущая ошибка :-1: ошибка: LNK1104: не удается открыть файл "protobuf.lib"
Нужно скомпилировать библиотеку protobuf. По нему хорошая статья здесь: http://mrnone.blogspot.ru/2011/05/google-protobuf.html В кратце:
Распакованный архив исходных файлов protobuf-2.4.1.zip в числе прочего содержит каталог vsprojects, содержащий проекты, для сборки Protobuf в Visual Studio. Открываем Visual Studio и в нем солюшен protobuf.sln
Собираем. Теперь собранные библиотеки, скопированные заголовки и компилятор protoc можно использовать в своём проекте. Копируем libprotobuf.lib, libprotobuf-lite.lib и libprotoc.lib в C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\lib\. Обращаем внимание что проект ищет protobuf.lib а у нас libprotobuf.lib. В окне проектов Qt щелкаем на Eps5Client.pro и меняем строку
LIBS+=-lprotobuf-lbox2d-lglui–lfreeglut
на
LIBS+=-llibprotobuf-lbox2d-lglui–lfreeglut
Тожесамоеделаемив Eps5Server.pro толькотамстрока «LIBS += -lprotobuf». Тем более меняем на «LIBS+=-llibprotobuf-lbox2d-lglui–lfreeglut» во избежании дальнейших проблем.
Теперь проекту не хватает :-1: ошибка: LNK1104: не удается открыть файл "box2d.lib"
Нужно собрать Box2D. По той же схеме идем в Box2D_v2.2.1\Box2D_v2.2.1\Build\vs2010\ открываем с помощью Visual Studio солюшн Box2D.sln и получаем Box2D.lib FreeGLUT.lib GLUI.lib. Их тоже копируем в C:\QtSDK\Desktop\Qt\4.8.1\msvc2010\lib\.
БРАВО! У нас все скомпилировалось. Дальше проще: в файле network.cpp клиента исправляем в строчке _socket->connectToHost(QHostAddress("193.169.33.254"),1238); адрес на свой, где будет запускаться сервер. Если вы тестируете н локальном компьютере можно написать 127.0.0.1. Пересобираем, запускаем, радуемся первому успеху!
Все запускается но видим черный экран клиента. Просто нет картинок.Копируем arbuz.png, mad.png и peka.png в папку с клиентом \Eps5Client-build-desktop-Qt_4_8_1_for_Desktop_-_MSVC2010__Qt_SDK__Debug\debug\ Пересобираем.
Все теперь можно побегать и пострелять.
P.S. в следующий раз опишу по изменениям - как я прикручивал сюда Box2D движок...
1С Рарус Альфа-Авто Учет рабочего времени (УРВ) и сканер штрихкода
Занимаюсь внедрением Альфа-Авто 4.1 на предприятии сервиса грузовых автомобилей. Возникла потребность во внедрении модуля учета рабочего времени (УРВ). Приобретя ключ дополнительного модуля УРВ для Альфа-Авто в компании Рарус, мы так же купили сканер штрихкода (по совету менеджера) HoneyWell Voyager 9540 (MS9540).
Для печати штрихкода нужно установить библиотеку 1С-BarCode. Ее можно взять с диска ИТС .\1CIts\EXE\TradeWare\1C\1CBarCode\1CBarCode.exe или найти в интернете. Так же на всякий случай установил . \1CIts\EXE\TradeWare\1C\ScanOPOS\ScanOPOS.exe
Далее для формирования штрихкодов у документов нужно зайти в программе Альфа-Авто Сервис->Установка прав и настроек, закладка «Права и настройки». Тип объекта Подразделение. И в дереве прав и настроек Документы->Общие параметры документов->Печать и оформление документов->Автоматическое штрих-кодирование (41487) поставить значение «да». Теперь при записи документов им будет присваиваться уникальный штрих-код.
Чтобы войти в АРМ сотрудника цеха нам нужно каждому сотруднику присвоить уникальный штрих код. В Сервис->Установка прав и настроек, закладка «Пользователи» находим или заводим нужного сотрудника (механика)
В верхней части окна нажимаем кнопку «карточка».
Нажимаем многоточие – программа генерирует уникальный штрихкод. По какой-то причине разработчики не сделали печати карточки пользователя из самой формы, поэтому идем в список карточек вверху окна.
И уже тут внизу кнопкой печать выводим на принтер карточку пользователя.
На данном этапе мы имеем печатную форму Заказ-Наряда со штрихкодом и карточку сотрудника по которой исполнитель цеха будет заходить в свое Автоматизированное Рабочее Место.
Но не так все гладко :) Дальше встала самая главная проблема как связать сканер с программой. В стандартном варианте сканер работает как HID устройство (т.е. эмулирует ввод с клавиатуры) По большому счету Вы можете с тем же успехом набить цифры от руки по клавишам. Для того чтобы программа корректно работала со сканером нужно его правильно настроить. Перерыв весь интернет и по обрывкам собрав информацию выкладываю тут.
У сканера есть такое понятие как префикс и суффикс – это последовательность символов которая вставляется до самих цифр штрих-кода и после соответственно. При настройке альфа предлагает такими символами считать 3 плюса «+++». Но данная модель сканера поддерживает только по два символа. Соответственно нам нужно задать их в сканере и в программе. Возьмем за основу все те же плюсы только по два.
В инструкции к сканеру есть пункт «Конфигурация Префикса/Суффикса» (Configuration Prefix/Suffix) Следуя ей их и нужно задать.
В частности в моей модели было так:
1. Входим в режим редактирования
2. Выбираем № конфигурируемого префикса суффикса
3. Вводим 3 цифры подряд ASCII кода нужного символа (в нашем случае у плюса код 043)
4. Выходим из режима программирования
И так 4 раза: Prefix 1,Prefix 2, Suffix 1, Suffix 2.
Теперь если мы откроем «Блокнот» или любой другой текстовый редактор и просканируем штрихкод то увидим вначале и в конце последовательности символов по 2 плюса.
Сканер настроен!
Теперь нужно рассказать о нем программе.
Идем в Справочники->Розница и оборудование->Оборудование. Нажимаем зеленый плюс (добавить новое устройство). Выбираем класс оборудования – сканер штрихкодов, модель – Сканер клавиатурный, Подключено к этому компьютеру, Создать новое устройство.
Вот что в итоге получаем. Заходим на вкладку «Список параметров устройства» и в параметрах префикса и постфикса ставим по два плюса (или что вы там настраивали?! J ).
Все! Теперь когда приходит последовательность из плюсов драйвер сканера обрабатывает событие и адекватно заходит в Рабочее место сотрудника цеха по карточке, выбирает работы из Заказ-Наряда по штрихкоду и т.д.
УДАЧИ В НАСТРОЙКЕ!
1С Бухгалтерия 8 реализация не формирует проводки 62 90
Позвонил сейчас бухгалтер с вопросом почему в 1С Бухгалтерия 8 документ реализации не формирует проводки 62 90.
Проблема оказалась в типе договора. Поменял "прочее" на "с покупателем", перепровел - все проводки появились.
Интернет поддержка 1С 8.2 XML и Windows Server 2003
Столкнулся с проблемой 1С 8.2 на Windows Server 2003 в части обращения первой к интернет поддержке и чтения оттуда XML фала. Программа вылетает, но на 10-20 раз может запуститься.
Сначала решил проблему отключением проверки обновлений при старте системы (обработку прикладываю). Но остались вылеты при запуске регламентированной отчетности.
В конечном итоге разобрался!!!
Нужно в свойствах Internet Explorer на вкладке "Безопасность" для зоны "Интернет" поставить уровень безопасности "Средний" (по умолчанию на сервере стоит "Высокий").