|
Советы, FAQ, грабли |
Пробемы с float point функциями под GCC
Некторые Flp функции не работают если компилировать прогарамму
под GCC - например FlpAToF просто возвращает ноль. Использовать нужно
функцию FlpBufferAToF и прилинковать библиотеку libnfm (gcc -lnfm)
Спасибо за совет warden.
Быстрая посылка в порт
Если вам нужно быстро: открыть порт, закинуть туда что нибудь и сразу закрыть,
перед закрытием порта не забудьте сделать SerSendWait(), а то долго будете
искать куда пропадают 1-8 байт в конце посылки.
Можно ли открыть несколько портов в PalmOS?
В документации по процессору M68VZ328 сказано, что в нем используется два
независимых UART контроллера. В документации к SDK PalmOS-3.5 сказано
что при открытии порта по SerOpen() возврат 0 или serErrAlreadyOpen обозначает
успешное открытие порта. Однако! Serial manager (old!)
PalmOS (3.5) про наличие двух UART похоже не догадывается. Потому как
эксперементально доказано - не открывает он независимо два порта.
Т.е можно открыть одновременно serial и IrDA (SIR, IrCOMM, etc) - но
они будут "сиамскими близнецами" и скорость будет определяться по
первому открытому порту (если была попытка открыть с разными скоростями)
Можно ли написать Хак на функцию в shared library?
Делается это так: пишется библиотека со всеми функциями как в исходной
библиотеке, потом пишется Хак для перехвата SysFindLib() и SysLibLoad() - где
подставляется дескриптор "подставной" библиотеки. Если имеется ввиду Visor и
"Serial library", то это можно сделать без Хака (там существует специальный
механизм переключения "Serial library")
Проблемы при установке prc-tools под M$
(Прислали ЛОМ и Виталий в форум)
Ставится просто:
- Сначала ставится cygwin (www.cygwin.com)
- Прописываешь путь к cygwin\bin . ( PATH ...)
- Потом создаешь папку к примеру j:\Projects\PalmDev\
- потом монтируешь эту папку. (mount -tf j:\Projects\PalmDev\ /PalmDev)
- снова запускаешь cygwin
- инсталлировать с интернета
- тут указываешь откуда (Add url) вот отсюда - http://prc-tools.sourceforge.net/install
- говоришь гоу
- засылаешь пиво на мне мыло
Как перехватить нажатие кнопок
Обработать можно нажатие любых (и software тоже!) кнопок
(я один раз случайно перехватил power :)
Весь секрет в EventLoop():
static void EventLoop(void)
{
Word err;
EventType e;
do {
EvtGetEvent(&e, 0);
if (! MenuHandleEvent (NULL, &e, &err))
if (! ApplicationHandleEvent (&e))
if (! FrmDispatchEvent (&e))
SysHandleEvent(&e);
} while (e.eType != appStopEvent);
}
Кто не заметил, SysHandleEvent() проверяется в самом конце.
|
|