УкраїнськаEnglishmRussian
Вхід/Новий
У темі багато повідомлень

Вопросы по визуализации и не только


Автор Повідомлення
Повідомлення створено: 13. 11. 2013 [21:53]
Waterdisp
Александр Иванов
Автор теми
Зареєстрован(а) с: 03.10.2013
Повідомлення: 32
На самом деле я просто хочу реализовать блокировку выполнения некоторых действий при условии запуска транспорта (в частности запуска других транспортов, использующих один и тот же порт с запущенным, или других контроллеров, использующих этот же транспорт). Иногда возникают помехи при работе уже запускающегося транспорта(модем на этапе дозвона), если например другой контроллер пытается использовать этот же транспорт. В подавляющем большинстве контроллер корректно завершает опрос и транспорт кладет трубку, а вот следом этот же транспорт заново пытается инициализировать модем и не получает ответа. Этого-то я и думаю избежать блокируя нажатия на кнопок на мнемосхеме, отвечающих за обмен данными через транспорт, пока модем не положит трубку и транспорт не освободится.
Тогда, функция выдающая на выходе состояние "Запущен/Остановлен" для транспорта должна выглядеть как то так SYS.Transport.out_{Transport}.cfg("start")? Может есть где-нибудь примеры использования функций cfg/cfgSet и имена параметров?

[Повідомлення редагувалось 1 раз(ів), останній раз 13.11.2013 в 21:55.]
Повідомлення створено: 14. 11. 2013 [10:04]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"Waterdisp" wrote:

На самом деле я просто хочу реализовать блокировку выполнения некоторых действий при условии запуска транспорта (в частности запуска других транспортов, использующих один и тот же порт с запущенным, или других контроллеров, использующих этот же транспорт).

А вот этого делать нельзя, а нужно просто использовать один транспорт для одного порта во всех объектах контролеров, тогда вопрос разделения доступа и блокировки решает сам транспорт. А из пользовательского API Вы такого просто не сделаете поскольку атомарности не обеспечите!

Разделение транспортов для общего устройства допустимо только для режима модема, поскольку там номера телефонов могут отличаться. Но тут важно указание одинакового пути к устройству и тогда транспорт обеспечит общий ресурс доступа к нему.

Learn, learn and learn better than work, work and work.



4660