Про ИОКАРДс и ФСУПИК

1 2

Просмотреть сообщениеwij, 18.02.2009 18:57, сказал(а):

Самый простой пример: Задатчик курса ( работает и с ТУ154)

Var 0001, Link IOCARD_ENCODER, Input 23, Aceleration 3, Type 2
{
V0002 = ROTATE 0, 359, V0001
}
Var 0002, Link FSUIPC_OUT, Offset $0C4E, Length 4
{
V0005 = V0002
}
Var 0005, Link IOCARD_DISPLAY, Digit 0, Numbers 3

В данном примере вы работаете как раз с FSUIPC — это самый медленный и ненадёжный путь, поскольку к задержке самого FSUIPC добавляется ещё и задержка опроса FSUIPC сиоком. Как раз в таком варианте я наблюдал проблемы при работе с энкодерами, таймерами и т.д, которые ушли при переходе на IOCP-сервер.

Добавлю…может быть эта инфоромация прояснит кое что..

По поводу FSX+FSUIPC и почему там реально интервал 3-10 мс….
В отличии от связки FS9+FSUIPC , FSUIPC для FSX работает через симконнект.
Используя симконнект легко получить интервал записи/получения абсолютно любой переменной ( или заранее установленный массив из нескольких переменных) с интервалом визуального фрейма. Вообще в FSX все просчеты физики происходят между визальными фреймами. Соответственно , если движок сима дает 100FPS , то внутреннее обновление переменных будет происходить счастотой 100герц и симконнект может отдать переменные с такой частотой. Соответственно , FSUIPC для FSX может забирать-передавать данные во внешнюю среду в любое время с любым интревалом не напрягая сим и самого себя. Для того чтобы получить/передать данные через симконнект в сим , сначала нужно объявить группу переменных с которыми будет происходить работа. Соответственно если нам нужно получить всего 10 переменных , то на передачу их через симконнект будет затрачено в сотни раз меньше ресурсов ЦПУ чем обновить все 800 переменных одним махом как это происходит в FSUIPC для FS9. Тоесть там вся карта переменных обновляется сразу , а не выборочно как при использовании симконнекта. В этом и заключается огромная разница между FSUIPC для FSX и FSUIPC для FS9.
В FS9 все иначе. Иметь прямой доступ к памяти и обновлять ЦЕЛИКОМ массив расбросанных ячеек — накладно для системы, да и сам FSUIPC для FS9 это спложное Undocumental приложение… поэтому г-н доусон и выбрал 16 герц — с такой частотой его тулза сканирует ВСЕ 800 переменных ( а не определенное количество нужное для работы конкретного приложения как в симконнекте) и кладет к себе в память. Почему 16 герц — да потому что компы того времени были слабые. Сейчас интервал можно было бы уменьшить в трое, но есть куча обстоятельств …. От сюда и рождаются другие утилиты для работы с переменными FS9. Более быстрые и менее ресурсоемкие, работающие «по заказу» только с теми переменными которые объявили в скрипте.
Для тех кто вдруг захочет писать с нуля чтонить для FSX — юзайте симконнект только ! Доусон для FSX — это ненужная прокладка для связи «ленивых» программ с FSX.. ленивые — это те , авторы которых не хотят переписывать код для симконнекта, ведь проще заставить купить FSUIPC для fsx и ничего больше не делать, хотя все крупные аддоны уже давно на симконнекте.

1 2