fiatik fiatik (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 След.
Как программно проверить доступность EM100 перед началом работы?, Обсуждение: Как программно проверить доступность EM100 перед началом работы?
 
[quote author=support_tibbo link=topic/7/820/1/#4132 date=30.03.2011 15:32]Логично предположить, что из-за отсутствия ответов.
Все это логично и драйвер тут не при чем, так же как и сам модуль.
[/quote]

увы, позволю себе усомниться:(
зависание происходит при выполнении единственной стандартной API функции WriteFile
даже в упрощённой программе, которая не требует никакого ответа, просто передаёт в порт один единственный байт

скажем, при работе с виртуальным портом, подключенным по USB такого не происходит, даже если его нагло выдернуть в процессе работы из ПК (можете сами убедиться, я сейчас специально перепроверил это со стандартным пролификом)

вообще, мне вот представляется логичным предположение, что программисты TIBBO заложили в своих библиотеках все функции контроля удалённых модулей, включая чтение конфигурации
только я на сайте TIBBO их описания, к сожалению, не нашёл, а ответа от TIBBO не дождался
видимо мой английский оставляет желать лучшего)))
Как программно проверить доступность EM100 перед началом работы?, Обсуждение: Как программно проверить доступность EM100 перед началом работы?
 
[quote author=Олег link=topic/7/820/1/#4146 date=31.03.2011 11:51] Спешу Вас огорчить. Поиск модуля делается широковещательным опросом. А проверка наличия - его пингом. [/quote]
ага, спасип
ясно, это собсна и неплохо
а протокол опроса известен?

хотя, собсна при обращении по сокету так и так ничего не зависает, ошибки 10053 или 10060 легко отслеживаются
Как программно проверить доступность EM100 перед началом работы?, Обсуждение: Как программно проверить доступность EM100 перед началом работы?
 
[quote author=Олег link=topic/7/820/1/#4146 date=31.03.2011 11:51]
А зачем? Ведь модули идут в большинстве своем как некий конструктор. Вы сами собираете, программируете и настраиваете как нужно. Конечное устройство идет уже со своим ПО. Какое-то даже платное. Получается, что написав что-то для ПК в одном случае использовать не нужно, т.к. программа управления Тиббо будет написана пользователем, а в другом случае уже есть под конкретную реализацию. Для управления и первоначальной настройки ПО есть.[/quote]

ахм
ну, тут позволю себе согласиться не полностью
собсна то, что я сейчас, судя по всему, буду вынужден реализовывать под сокет, уже, скорее всего, реализовано разработчиками в DLL, которой комплектуется стандартное ПО для настройки TIBBO
и тот же широкополосный опрос, и тот же пинг, и запрос конфигурации
както далёк от мысли, что программисты TIBBO всё это реализуют в самих экзешниках DS Manager и т.д.
эти DLL свободны для скачивания и распространиения и, так или иначе, устанавливаются вместе с драйвером
вот мне какта и надеялось избежать лишней дурной работы) ну и потом, это дало бы дополнительные возможности системе для самоконтроля
а если бы была возможность избежать программирования сокетов - было бы вообще замечательно
я вот сейчас чешу затылок: сколько времени пройдёт, пока программистка освоит непривычные концепции и переделает прежнюю программу...
и скока сил и времени уйдёт на проверки и отладки...

впрочем, не настаиваю: голимое имхо
на нет - суда нет)
так или иначе спасибо
Как программно проверить доступность EM100 перед началом работы?, Обсуждение: Как программно проверить доступность EM100 перед началом работы?
 
[quote author=Олег link=topic/7/820/1/#4146 date=31.03.2011 11:51] Перехватите трафик и убедитесь.[/quote]
вау, а этого я не умею, честно говоря

но - смотрите - это опять метод научного тыка вместо чтения документации)
Как программно проверить доступность EM100 перед началом работы?, Обсуждение: Как программно проверить доступность EM100 перед началом работы?
 
[quote author=Олег link=topic/7/820/1/#4151 date=31.03.2011 13:48] Ну а то, что программист не знает сокеты... я промолчу. [/quote]
хе))
а как тогда программисты, не знающие, что целочисленные типы данных таки имеют отличия от чисел с плавающей точкой? или ваще не отличающие процедуру от функции?
люди сидят всю жизнь в своей галактике, 1С или фоксе, на проблемы заявляют - это мы не проходили) зато прекрасно умеют намекать на оплату сверхурочных по устранению собственных хомутов)
а как они любят тестировать продукты сторонних производителей (то бишь нас, этаких гадких) на предмет отысканий поводов недоплатить за работу)!

да могу научить...
и так я её два года мона сказать учил по мере необходимости, ещё студенткой
что
Как программно проверить доступность EM100 перед началом работы?, Обсуждение: Как программно проверить доступность EM100 перед началом работы?
 
[quote author=Олег link=topic/7/820/1/#4151 date=31.03.2011 13:48] С нуля написать пинг займет день-два. Лучше использовать компоненту. Тогда 2-3 часа. [/quote]

ахм.. лана, хоть меня тута и упрекнули в склонности к ужасному флуду..

с использованием стандартного Indy 15 минут:

procedure TFormMain.IdIcmpClient1Reply(ASender: TComponent;
const AReplyStatus: TReplyStatus);
begin
if AReplyStatus.FromIpAddress'0.0.0.0'
then Memo1.Lines.Add('Есть ответ от '+AReplyStatus.FromIpAddress
+' '+IntToStr(AReplyStatus.MsRoundTripTime))
else Memo1.Lines.Add('Истёк таймаут ожидания ответа '+IntToStr(AReplyStatus.MsRoundTripTime));

end;

procedure TFormMain.SBPingClick(Sender: TObject);
begin
IdIcmpClient1.Host:='192.168.0.145';
IdIcmpClient1.ReceiveTimeout:=1000;//таймаут ожидания ответа - секунда
IdIcmpClient1.Port:=1001;
IdIcmpClient1.Ping();
end;

с использованием API - полчаса-час
----------
но - это всё неграмотный и некорректный подход, имхо
правильней использовать функции DLL разработчика
никто и никогда их не держит в тайне специально
отсутствие информации об оборудовании - однозначная недоработка службы поддержки
Как программно проверить доступность EM100 перед началом работы?, Обсуждение: Как программно проверить доступность EM100 перед началом работы?
 
Для чистоты эксперимента перенёс процедуру приема из таймера в отдельный поток. К сожалению, это не дало никакого эффекта. Поток со стандартным приоритетом останавливается при "зависании" в момент передачи байта в виртуальный COM-порт, если соответствующая ему плата TIBBO с модулем ЕМ100 в момент передачи обесточена. :(

Хелп, плеазе!... :(
Заказчики давят, уже сожалею, что не пошли по пути прокладки отдельной сети телеконтроля и связи по RS-485...:(
Как программно проверить доступность EM100 перед началом работы?, Обсуждение: Как программно проверить доступность EM100 перед началом работы?
 
ага, спасибо!

попробую для начала уменьшит таймаут
действительно логично, должен сократиться период зависания
распараллелить опрос и обмен байтами - также логично, если не поможет первый вариант - согласен, выход
вот тока я уже пробовал с TThread
WriteFile в порт с обесточенным модулем подвешивает все потоки приложения, даже не связанные портом, если тока не задать им сумасшедший приоритет
а сумасшедший приоритет потоков приведёт к конфликту с другими приложениями сервера

а разве у TIBBO нет какой-нибудь dll c функцией, позволяющей контролировать наличие-отсутсвие удалённых клиентов? чтобы даже не открывать тот вирутальный порт, модуль которого обесточен
это, мне кажется, было бы как-то грамотней и красивей, чем обходить проблему огородами...
и в этом случае можно было бы отличить потерю связи с контролируемым объектом (аварию сети) от аварии самого объекта
DS Manager это делает моментом...
Как программно проверить доступность EM100 перед началом работы?, Обсуждение: Как программно проверить доступность EM100 перед началом работы?
 
[quote author=Олег link=topic/7/820/1/#4133 date=30.03.2011 15:39]___[quote]

спасибо, скачал статью
полезная и интересная: разобраться с каждым нюансом работы драйвера порта самому вечно недосуг)
Как программно проверить доступность EM100 перед началом работы?, Обсуждение: Как программно проверить доступность EM100 перед началом работы?
 
[quote author=Олег link=topic/7/820/1/#4140 date=31.03.2011 10:38]Я конечно слаб в Тиббо, но... почему бы просто не пингануть??? Ведь у любого устройства есть IP. Хуже с динамическим, но тоже придумать можно. Хотя реализация самого пинга не так проста как кажется, с программной точки зрения, но в сети полно бесплатных компонент для пинга. Качаем, вставляем, пользуемся.[/quote]

да уже пробую по сокету) собсна работает...
у TIBBO EM100 статический айпи, всё намана

но сие - последний вариант
проблемную прогу писал не я сам, писала девочка, которая у нас уже не работает
убедить её на серьёзные переработки дорогого стоит)
и с сокеты она никогда не юзала: придётся учить

другое дело - в общем цикле опроса, скажем, проверять порт перед открытием
ну делает же это DS Manager
Страницы: 1 2 След.