Здравствуйте!
есть 2 вопросика:
1) Скорее общий вопрос, доступности приложения. Есть приложение ( сервер ), который слушает порт, читает команды, посылает их в com порт. (сервер управляет железками, выбирает их по адресам). К серверу могут подключаться несколько пользователей и каждый из них может работать "со своей" или "с чужой" железкой. Вопрос: какие вообще существуют подходы к решению проблем с "доступностью" и одновременного использования, точнее какие принципы. Я просто никогда с этим не сталкивался и может уже существуют какие - то системы учета/контроля.
В общем кто в курсе посоветуйте что-нибудь, ОС Linux, может это вообще на уровне операционки можно сделать ??
2) Вопрос програмный. Необходимо предусмотреть запуск сервера в debug моде, я сделал учет этого флага в конфиг файле, но начальник не доволен, хочет чтобы эту опцию можно было указать в ком. строке при запуске...
я думаю делать чере argv, но потом придется все время (перед каждым выводом отладочной информации) проверять значение этого флага? или есть другие способы?
Заранее благодарен !
2 вопроса программинг ("доступность" многим пользователям)
Модератор: Модераторы разделов
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: 2 вопроса программинг
1. не понял вопроса... т.е. я понял, что ты чего-то хочешь, но вот чего....
2. ну да, каждый раз. а что? заводишь отдельную функцию, которая пишет отладочную инфу. в ней и проверяешь...
с точки зрения всего остального кода ничего не изменится...
2. ну да, каждый раз. а что? заводишь отдельную функцию, которая пишет отладочную инфу. в ней и проверяешь...
с точки зрения всего остального кода ничего не изменится...
слава роботам!
-
Gang
- Сообщения: 106
Re: 2 вопроса программинг
Ну сложно сформулировать то, чем сам не занимался=), но попробую.
Вот есть сервак работающий с железом, к серверу могут подключится несколько клиентов и работать как с одной так и с разными железками...
Вопрос в том как им разграничить доступ?
к примеру если 1 сидит то полностью закрывать(доступ к железке), не совсем подходит, может она кому тоже нужна, а он на обед ушел )
или если всем понадобится одна и таже железяка.
Вообще задача очень серьезная, речь идет об управлении поворотными магнитами через МК по РС 485, через 232 порт... Если один и тот же магнит будут крутить туда сюда ничего хорошего не получится...
Вот есть сервак работающий с железом, к серверу могут подключится несколько клиентов и работать как с одной так и с разными железками...
Вопрос в том как им разграничить доступ?
к примеру если 1 сидит то полностью закрывать(доступ к железке), не совсем подходит, может она кому тоже нужна, а он на обед ушел )
или если всем понадобится одна и таже железяка.
Вообще задача очень серьезная, речь идет об управлении поворотными магнитами через МК по РС 485, через 232 порт... Если один и тот же магнит будут крутить туда сюда ничего хорошего не получится...
-
BlackStar
- Сообщения: 1338
- Статус: We are all Kosh
- ОС: Fedora 10
Re: 2 вопроса программинг
Сделать так чтобы один коннект на одну железку, IMHO больше никак.
LightLang Team
-
Gang
- Сообщения: 106
Re: 2 вопроса программинг
ну в этом то и проблема, железки висят на одном интерфейсе и различаются тока адресами...
подумал может сделать, что то типа таблицы "занятости" и не передавать данные на занятую железку и то тайм ауту скидывать...
в общем надо более точное задание, я вот тоже не совсем понимаю чего хочет начальник )
-
DaemonTux
- Сообщения: 1480
- Статус: Юный падаван
- ОС: Gentoo
Re: 2 вопроса программинг
Gang писал(а): ↑23.05.2007 16:15ну в этом то и проблема, железки висят на одном интерфейсе и различаются тока адресами...
подумал может сделать, что то типа таблицы "занятости" и не передавать данные на занятую железку и то тайм ауту скидывать...
в общем надо более точное задание, я вот тоже не совсем понимаю чего хочет начальник )
Предлагаю тебе нарисовать схему всей этой канители.
Так будет понятние.
И если я все правильно понял то у вас на rs232 порту висит контроллер. К которому подключены остальные устройства. Тобиш в rs232 передается адрес устройства и потом начинается с ним работа. Потом адрес другого и тд. Если так. То можно написать демон(сервер) который будет работать с ком портом. А ему клиентские проги будут работать через него.
Vladivostok Linux User Group
-
Uncle_Theodore
- Сообщения: 3339
- ОС: Slackware 12.2, ArchLinux 64
Re: 2 вопроса программинг
Я думаю, тебе стОит посмотреть в сторону IPC, в частности, семафоров. Это -- стандартный POSIXовый путь разграничения доступа к ресурсам, совмещаемым разными процессами. Если даже не непосредственно, это может дать тебе идею, как это все реализуется стандартными способами.
Пролистай тут
http://db.ilug-bom.org.in/Documentation/lp...100000000000000
Пролистай тут
http://db.ilug-bom.org.in/Documentation/lp...100000000000000
-
Gang
- Сообщения: 106
Re: 2 вопроса программинг
DaemonTux писал(а): ↑24.05.2007 03:34Предлагаю тебе нарисовать схему всей этой канители.
Так будет понятние.
И если я все правильно понял то у вас на rs232 порту висит контроллер. К которому подключены остальные устройства. Тобиш в rs232 передается адрес устройства и потом начинается с ним работа. Потом адрес другого и тд. Если так. То можно написать демон(сервер) который будет работать с ком портом. А ему клиентские проги будут работать через него.
Ну собственно так все сейчас и работает... В этом то и вопрос, как "за клиентами следить" )
Uncle_Theodore писал(а): ↑24.05.2007 03:42Я думаю, тебе стОит посмотреть в сторону IPC, в частности, семафоров. Это -- стандартный POSIXовый путь разграничения доступа к ресурсам, совмещаемым разными процессами. Если даже не непосредственно, это может дать тебе идею, как это все реализуется стандартными способами.
Пролистай тут
http://db.ilug-bom.org.in/Documentation/lp...100000000000000
Спасибо обязательно посмотрю
Т. к. соединения осуществляются (к серверу) через TCP/IP предложили "предварительно" разграничивать на этом уровне, тоесть следить за пакетами, проверять правильность/достоверность... В общем буду разбираться