Проблема в следующем.
Написан некий простенький драйвер для ККМ.
Среди прочего, драйвер может посылать команды печати строки, регистрации позиции чека, закрытия чека и т.д.
Все работает, но вплоть до какого-то недерменированного мной момента.
Детальнее.
Обмен ведется по COM порту.
Таймауты такие:
DCB — не привожу.
CommTimeouts.ReadIntervalTimeout = MAXDWORD;
CommTimeouts.ReadTotalTimeoutMultiplier = 0;
CommTimeouts.ReadTotalTimeoutConstant = 0;
CommTimeouts.WriteTotalTimeoutMultiplier = 10;
CommTimeouts.WriteTotalTimeoutConstant = 5000;
Посылаемые команды успшено выполняются ККМ, но через некоторое время (не смог определить после чего — драйвер (мой код) пишет, что "нет связи" — т.е. ожидание ответа от ККМ завершилось по таймауту 8(( ).
Но!!!
После этого все команды не выполняются по таймауту.
Далее.
1. Если подсоединить ККМ к другому порту после описанной процедуры, то все будет работать — снова до какого-то момента.
2. Если попытаться открыть "опробованный" порт другой программой — то все проходит успешно, но опять-таки с внешнего устройства ничего в порт не пишется — вернее, ничего не считывается.
Впрочем, как и невозможно после этого законнектиться по нему по ActiveSync.
Не понимаю, в чем дело.
Подозреваю, что что-то мой код такое делает с портом... Но что??? Не понимаю 8((