0
- 22.05.2011 - 21:30
|
Проблема есть комп и железо, подключенное к нему через ком порт. Все работает нормально, сбои порта и девайса нормально обрабатываются, негтовность или выключение устройства диагностируются и производится восстановление процесса или диагностика. в реалиях комп сгорел и поставлен другой - без ком порта. Отсутствие ком порта компенсировали переходником ком-усб. Ну там свои проблемы, которые решены (на самом деле там куча недокументированных заморочек, они решены). Осталась одна маленькая проблемка - усб разъем болтами не прикручивается и уже несколько раз во время работы переходник вываливался из компа. Ком порт на переходнике эмулируется программно. Данную ситуацию винда не обрабатывает нормально с точки зрения ком порта. Драйвер ловит ампутацию усб девайса, и т.к. девайс кончился - драйвер отваливается, и заодно исчезает ком порт. И программа с открытым хендлом (win api) ломится в никуда. Как корректно поймать отваливание ком порта и закрыть хендл? Работа ведется через готовую компоненту и после отваливаения даже форму уничтожить нельзя - возникает неопределеноое исключение и и форма не дестроится Решение через одно место я сделала, все работает, но хотелось бы красиво исходники компоненты тоже есть | |
1
- 22.05.2011 - 21:41
|
1-Helen 1986 > Хорошя ты женщина. Но я ниче не понял. Чёт отваливается и некрасиво все. А где головоломка? | |
2
- 22.05.2011 - 21:55
|
"Решение через одно место я сделала, все работает" - знаем мы это место... "Per anus ad astra". PCI-контроллер COM-порта - и ничего не отваливается, и заморочек куда меньше. | |
3
- 22.05.2011 - 21:59
|
Поддерживаю (3) http://krasnodar.snr.ru/catalog/?categoryid=2446&page=0 И болтами можно прикрутить !!! :))) | |
4
- 22.05.2011 - 22:13
|
два умных одноЭсника? офигеть и куда я эту плату в нетбук вставлю? у него кстати, всего 3 усб дырки, на которых висит 4 девайса (без усб, хабов, кстати) клава с мышкой видео камера переходник ком-усб | |
5
- 22.05.2011 - 22:18
|
(5)"и куда я эту плату в нетбук вставлю?" Гусары! Молчать! А вообще шлепай на "усб дырки" с включенными устройствами кляксы из термоклея. И вообще - ты пытаешься лепить конфетку, гм ... на неподходящей элементной базе :) | |
6
- 22.05.2011 - 22:20
| залейте подключенный усб эпоксидкой, делофта. | |
7
- 22.05.2011 - 22:27
|
(6-7) есть у нас такое же чудо, на тебя похожее сел голыми коленями на плиту с клеем благо шо плита фанерная под ржание всего цеха плиту выпилили и отправили его на грузовике в больницу с тех пор у него кличка - тулза бес мосхов | |
8
- 22.05.2011 - 22:28
| суперклей | |
9
- 22.05.2011 - 22:30
|
(8)"сел голыми коленями" - мне аж страшно стало при попытке представить ТАКУЮ анатомию :)))) Чудо в данной ситуации - ты :) Кстати, ни термоклей, ни эпоксидка после застывания ни разу не липкие. Термоклей удобнее тем, что в случае чего проще удалить и почи не оставляет следов. | |
10
- 22.05.2011 - 22:34
| (8): это как раз на меня не похоже. на меня похожее тот, кто коварно плиту клеем намазал. :) | |
11
- 22.05.2011 - 22:36
|
(10) зато ниче так этот идиот смотрелся на фанерном постаменте в кузове грузовичка а по поводу сабжа - похоже, одноЭсники то и не в курсе. наверное, все как я 1986 года кстати, а как в торговом оборудовании эта проблема решается в случае выдергивания сканера или другой железки "на ходу" | |
12
- 22.05.2011 - 22:37
|
(5) Покажите слово "нетбук" в (1)? Тот, кто в таком раскладе рекомендовал купить на замену именно его - даже не ТТО, а ССЗБ. | |
13
- 22.05.2011 - 22:37
| (11) сам этот идиот и намазал. Просто решил склеить сразу 2 заготовки без распила | |
14
- 22.05.2011 - 22:39
|
(5)Ну если есть поддержка pcmcia ,то вот : http://krasnodar.dns-shop.ru/catalog/85/12538/ А вообще да,лучше нетбук заменить на что нибудь полноценное !!! | |
15
- 22.05.2011 - 22:45
|
(13) твой бы выхлоп да сегодня утром. вмиг бы ночные лужи просохли Буратины только и умеют давать такие советы. прекрасно работает нетбук в этих условиях экран 10", мужички вставили его в шкапчик, вентиляция через доп вентилятор с фильтром (от старого компа осталась). Производительности хватает - девайс не скоростной, обмен на скорости 9600. Дешево и сердито. никаких модификаций - - этот нетбук тами сдохнет | |
16
- 22.05.2011 - 22:47
|
(15) а зачем? побольше денег вывалить? это же не разработка - это эксплуатация | |
17
- 22.05.2011 - 22:50
|
нормальный одноядерный атом венда с сетевой поддержкой управление девайсом локально и дистанционно по сетке показ видео (камера 1.3) нетбукгерметизирован в шкапчике, клава и мышка снаружи | |
18
- 22.05.2011 - 22:50
|
(16)Ну а раз "прекрасно работает", то какие проблемы? Пусть и дальше "прекрасно работает" :) Тебе уже четко и ясно сказали - термоклей на места соединения кабелей с разъемами USB(или очень близко от них). Можно и нетбук на капли термоклея поставить, для фиксации | |
19
- 22.05.2011 - 22:56
|
(19) да хотелось просто нормально решить проблему - это ж не только здесь, но и на переносном оборудовании требуется. у нас много диагностичекого оборудования с ноутами идет, последнее время с нетбуками стали поставлять - маленькие, легче таскать , дольше работают Ноут в шкафу там нормально так винтиками прикручен нафиг там клей | |
20
- 22.05.2011 - 22:56
| (17)Все ,я сдаюсь !!! :))) | |
21
- 22.05.2011 - 22:59
|
(16) Где ты в (13) увидело совет? Совет был в (3), пока не требовалось телепание. Впрочем, и сейчас еще не поздно посоветовать. И совет будет вот каким: исключать. Либо ненадежность контакта переходника с нетбуком (клей, скотч, шурупы). Либо сам этот контакт, например: http://www.rtcs.ru/hwsubtype.asp?id=262 Либо программера, чересчур уверенного в своей способности решить любую проблему программно. Лично я рекомендую последний вариант. | |
22
- 23.05.2011 - 09:37
|
Был у меня как-то коротенький удлинитель для УСБ, всего сантиметров 30 длиной. Вот такой бы вставить в нетбук, а с другой стороны переходник КОМ-УСБ уже крепить хоть скотчем, хоть резинкой для денех... :-) | |
23
- 23.05.2011 - 09:56
|
(23) была такая идея. удлинитель УСБ --> переходник --> ком шланг отпала сама собой - лишние разъемы | |
24
- 23.05.2011 - 10:19
|
(13) Маленькая собачка до старости щенок или вторая серия измышлений неудачнега Либо программера, чересчур уверенного в своей способности решить любую проблему программно типичное поведение неудачнега - инициативные и амбициозные сотрудники их всегда запинывают. лично я неинициативных предпочитаю прикручивать клеем и скотчем http://www.rtcs.ru/hwsubtype.asp?id=262 неудачнеги не читают описания. и это типично | |
25
- 23.05.2011 - 10:51
| Удивляюсь: как, учитывая хамский стиль общения вопрошающего, кто-то ещё желает отвечать? По-моему, автор вполне самодостаточен. | |
26
- 23.05.2011 - 11:33
| возникает неопределеноое исключение и и форма не дестроится Открыть мануал, найти конструкцию try **** catch(...)****, читать, долго думать. Прийти к решению, что любые исключения, если они возникают ловятся, и, значит, форму можно дестроить. | |
27
- 23.05.2011 - 12:12
|
(27) я ловлю исключение в момент уничтожения формы и что? исключение в момент дестроя одного из компонентов. Дестрой формы прерывается дестрой формы не завершится нормально, пока не отдестроятся все компоненты - в этом и проблема вся. При попытке повторного вызова вылазит неотдестроенная форма - она то не уничтожилась и вызывается уже существующая с ком портом, направленным в никуда | |
28
- 23.05.2011 - 12:23
|
последовательность действий проста как палка попытка вывода в порт напарываемся на то, что провод переходника вырвали и ком порт в системе испарился при этом происходит исключение ловим исключение, сообщаем пытаемся дестроить компонент - фиг. Он прилип к форме как банный лист при попытке закрыть форму RTTI опять пытается отдестроить все компоненты формы напарывается на исключение и отказ | |
29
- 23.05.2011 - 12:24
| после отказа остаемся со слегка беременным компонентом - и закрыть нельзя и бросить невозможно | |
30
- 23.05.2011 - 13:57
| Не пробовали ловить WM_DEVICECHANGE и проверять "что было, что будет и на чем сердце успокоится?" | |
31
- 23.05.2011 - 14:20
|
(31) пробовала для АЦП с УСБ интерфейсом отрабатывает абсолютно нормально для переходника - ловится событие, ИД девайса отсутствует (непонятно что возникло). кстати, нечто похожее возникает при втыкании девайса с неустановленным двайвером (например, флешки, которая никогда в этот комп не вставлялась) про эмулируемый ком порт - ваще молчание как будто вороны склевали | |
32
- 23.05.2011 - 14:24
|
похоже, что либо венда с ком портом по особому работает либо драйвер переходника косячит я выловила событие по другому проверила в ХР и семерке - работает | |
33
- 23.05.2011 - 14:25
| но как то некрасиво все это | |
34
- 23.05.2011 - 14:52
|
(32) А подписка на событие RegisterDeviceNotification была выполнена? как-то так: http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx Рассылаемый по умолчанию широковещательно DBT_DEVICEREMOVECOMPLETE вряд ли подходит для описываемой ситуации, уж очень жоско с девицей обходятся... Лучше ИМХО подписаться для указанного хэндла, как DEV_BROADCAST_HANDLE (он же есть, я так понял) и ловить событие DBT_DEVNODES_CHANGED, если com-порт таки исчезает, а не остается в системе в каком-то невнятном состоянии. | |
35
- 23.05.2011 - 14:54
| (33) Как удалось? | |
36
- 23.05.2011 - 15:07
|
сом порт именно исчезает - при удалении переходника из усб драйвер деактивируется, и заодно смывается ком порт (36) для ком порта аварийное завершение операций в/в с кодами 2 и 3 (Read/Write operation failed) выдается только при сносе эмулируемого ком порта и никогда - для нормального кома (возможно, если реальный ком сгорит - они и выдадутся). ловишь это исключение и плавно-плавно закрываешь хендл файла, открытого на коме. главное - не допустить операций физического в/в типа чтения/записи или сброса регистров порта - в этом случае система прихлопнет хендл и порт сам отвалится. если же пропустить операцию в/в - всё, трындец - хендл фиг закроешь после закрытия ищем ком порт по новой и делаем попытку его открыть по имени. естественно, он не открывается - порта то нет, нет и такого имени | |
37
- 23.05.2011 - 16:54
|
(37) Тогда должно генерироваться событие DBT_DEVNODES_CHANGED, но оно просто так, судя по документации, не рассылается, надо подписываться. Впрочем, если оно работает и так - стоит ли прикручивать такие навороты с оконными сообщениями и прочим скарбом? Вопрос открытый... И опять же, каким путём реализован обмен с com-портом в компоненте? Синхронно? IoCompletionPort? | |
38
- 23.05.2011 - 17:50
| Силикон или строительная пена. | |
39
- 23.05.2011 - 18:01
| нет ничего более вечного чем примотанное синей изолентой... | |
| Интернет-форум Краснодарского края и Краснодара |