Все началось с того, что я заметил, что когда пользуюсь РУДом, часто не могу сразу выставить 100 % тяги в Ил2ЗС. Приходилось долго елозить РУДом прежде, чем удавалось выставить нужное значение. Я решил выяснить, не ли способа изменить кривую отклика так, чтобы в заданном месте оси была ступенька на кривой отклика. Т.о. встал вопрос об изменении кривой отклика оси. Выяснилось, что в драйвере от Dhauzimmer заявлена такая функциональность. Редактировать двоичный файл в шестнадцатиричном редакторе мне не хотелось. Я стал искать утилиту, которая могла бы задавать конфигурацию X45 в текстовом формате и конвертировать ее в двоичный файл. В HazardScript вообще ничего нельзя делать с осями. В XD-Profile можно вешать команды на точки оси, но нельзя изменять кривую отклика. SxScript вроде позволяет даже изменять кривую отклика оси, но он у меня свалился с непонятной ошибкой.
В конце концов я решил написать свой транслятор скрипта. От транслятора мне требовалась возможность делать все то, что позволяет драйвер. Встал вопрос от том, как именно задавать конфигурацию в тестовом формате. Я остановился на XML по следующим причинам:
1. XML-формат широко распространен
2. Для XML есть много готовых хороших парсеров, в т.ч. свободных
3. Не нужно изобретать еще один скриптовый язык, нужно только задать формат XML-документа
4. Пользователям будет гораздо полезнее познакомиться с XML, чем разбираться с еще одним птичьим языком.
Сказано - сделано.
Итак, утилита xml2pf была готова.
Когда я попробовал изменить кривую отклика оси, ничего не получилось. Стало обидно и жалко потраченного времени. Я полез в исходники драйвера. Оказалось, что функциональность изменения кривой отклика не реализована, точнее реализована так, что выдавала бы синий экран, а потому была закомментирована. Я переписал эту часть кода, это всего несколько строк. Собрал драйвер и изменение кривой отклика оси заработало!
Я готов поделиться с общественностью своими наработками на следующих условиях.
ЭТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ НЕ ЗАЩИЩЕНО ПРАВАМИ
Это программное обеспечение и его исходные коды предлагаются для свободного
использования. Вы можете их свободно использовать, изменять и распространять.
Это программное обеспечение и его исходные коды распространяются в надежде,
что они будут полезны, но БЕЗ ВСЯКИХ ГАРАНТИЙ. ВСЕ ПРЯМО ВЫРАЖЕННЫЕ ИЛИ
ПОДРАЗУМЕВАЕМЫЕ ГАРАНТИИ НАСТОЯЩИМ ОТВЕРГАЮТСЯ. Это включает, но не
ограничивается, гарантии ГОДНОСТИ ДЛЯ ПРОДАЖИ или ПРИГОДНОСТИ ДЛЯ
ИСПОЛЬЗОВАНИЯ ДЛЯ КАКИХ-ЛИБО ЦЕЛЕЙ.
THIS SOFTWARE IS NOT COPYRIGHTED
This software and source codes is offered for use in the public domain.
You may use, modify or distribute it freely.
This software and source codes are distributed in the hope that it will be
useful but WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
DISCLAIMED. This includes but is not limited to warranties of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.