может это как то поможет http://www.owen.ru/forum/showthread....ll=1#post83833
брал код отсюда http://www.owen.ru/forum/showthread....ll=1#post85927
Вид для печати
может это как то поможет http://www.owen.ru/forum/showthread....ll=1#post83833
брал код отсюда http://www.owen.ru/forum/showthread....ll=1#post85927
Результатом выполнение любого действия заключенного между "IF" и "THEN" будет булевая переменная равная TRUE или FALSE. Поэтому внутри IF THEN достаточно одной переменной типа BOOL. Вощем IF i_bWrite = TRUE THEN - масло масленое (лишняя операция & индусский подход ) :)
Когда сокет открылся (o_eCondition = STC_WORK) любой вызов этого сокета приводит к чтению (при i_bWrite = FALSE) или записи (i_bWrite = TRUE) эту переменную выставляешь по желанию в вызывающем сокет коде.
у меня TCP IP поднялся без дополнительных настроек SysSockSetOption. поэтому думаю на нее можно забить. если канеш не знаешь точно что от нее хочешь )
Ну пока до обмена пока видно далеко….
Вот какая штука происходит.
ОВЕН будет сервером. Клиентом железка со своей средой под юниксообразом.
На клиенте создаю соединение турум пумпум тыкаюсь в ip и порт овна.
Эврика клиент показывает ONLINE.
Дальше чудеса останавливаю, сбрасываю или выдергиваю из овна патчкорд – Клиент усеровно ONLINE.
Ладно думаю руки крюки в клиенте дровишки где-то неправильно написал.
Ставлю на клиенти дровишки под другую железку не ОВЕН, меняю в них порт и ip на те что в ОВНЕ.
Эврика опять мой клиен кричит ONLINE. Выдеркиваю патчкорд из ОВНА – опять ONLINE.
Ну думаю как так, беру железку к которой был приделан измененный драйвер подключаю к сети,
В дровишках меняю ip и порт обратно. Клиент ONLINE. Выдергиваю патчкорд из железки – Клиент OFFLINE.
Что за чудеса? Есть у кого мысли?
Вы бы меньше использовали сленг, чтоб Вас понять можно было.
Драйвер написан под сетевую карту, под стек ТСР или просто используете готовые библиотеки чтоб установить соединение?
Железка представляет из себя что-то типа контроллера со своей средой программирования на lua.
В ядро железки не залезть, ну и естественно драйвер писался теми средствами который дал
разработчик.
Создать соединение, коннект к порту, дисконект, закрыть соединения, ну и данные туда –суда, контроль ONLINE-OFFLINE. Все.
Наверное ответ такой - просто используете готовые библиотеки чтоб установить соединение.
Вот еще какая закономерность если на ОВЕН ставлю выполнение своего сервера менее 50ms, на клиенте
ONLINE появляется очень редко – мельком, Если ставлю более 50ms то при подключении ONLINE приходит через
5-10секунд после подключения потом всегда ONLINE, далее OFFLINE могу добиться только переустановкой драйвера
на клиенте или перезагрузкой клиента.
так спросили бы у разработчика, как он организовал контроль, может он периодически посылает на железку какие нибудь импульсы и железка на них отвечает, поэтому при разрыве четко отслеживается контроль соединения, а ОВЕНовский плк этого не понимает, потому что нереализована ответная часть
Разработчик в США, пошлем меня на ... как узнает что я прикручиваю к его железки более перспективные и более дешевые чем родные.
Да и так пошлет, у них там других дел по самое немогу.
может он периодически посылает на железку какие нибудь импульсы и железка на них отвечает, поэтому при разрыве четко отслеживается контроль соединения
Да не знаю, мы уж стока дровишек написали под эту железку, причем для разнопланового оборудования - продаются, пока сильно не жалуются.
причем тут ОВЕН? ) траблы в железяке )
Да тож так думаю, отослал свой драйвер коллегам с описанем задачи, жду коментов.
Думаю в недельку услышу ответ, посто клиент и сервер на железки поднимаю с точных исходников
производителя, проблем еще не встречали.
Уже думаю, что в моих мозгах че-то повернулось как переключился на ОВЕН, и просто не вижу в дровишках
ошибку, а она сидит и смотрит.
Тут видео довольно понятно про сокеты.
http://www.youtube.com/watch?v=ThVLXygHnnU