2 вопроса программинг ("доступность" многим пользователям)

Модератор: Модераторы разделов

Аватара пользователя
Gang
Сообщения: 106

2 вопроса программинг

Сообщение Gang »

Здравствуйте!
есть 2 вопросика:
1) Скорее общий вопрос, доступности приложения. Есть приложение ( сервер ), который слушает порт, читает команды, посылает их в com порт. (сервер управляет железками, выбирает их по адресам). К серверу могут подключаться несколько пользователей и каждый из них может работать "со своей" или "с чужой" железкой. Вопрос: какие вообще существуют подходы к решению проблем с "доступностью" и одновременного использования, точнее какие принципы. Я просто никогда с этим не сталкивался и может уже существуют какие - то системы учета/контроля.
В общем кто в курсе посоветуйте что-нибудь, ОС Linux, может это вообще на уровне операционки можно сделать ??
2) Вопрос програмный. Необходимо предусмотреть запуск сервера в debug моде, я сделал учет этого флага в конфиг файле, но начальник не доволен, хочет чтобы эту опцию можно было указать в ком. строке при запуске...
я думаю делать чере argv, но потом придется все время (перед каждым выводом отладочной информации) проверять значение этого флага? или есть другие способы?
Заранее благодарен !
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: 2 вопроса программинг

Сообщение elide »

1. не понял вопроса... т.е. я понял, что ты чего-то хочешь, но вот чего....
2. ну да, каждый раз. а что? заводишь отдельную функцию, которая пишет отладочную инфу. в ней и проверяешь...
с точки зрения всего остального кода ничего не изменится...
слава роботам!
Спасибо сказали:
Аватара пользователя
Gang
Сообщения: 106

Re: 2 вопроса программинг

Сообщение Gang »

Ну сложно сформулировать то, чем сам не занимался=), но попробую.
Вот есть сервак работающий с железом, к серверу могут подключится несколько клиентов и работать как с одной так и с разными железками...
Вопрос в том как им разграничить доступ?
к примеру если 1 сидит то полностью закрывать(доступ к железке), не совсем подходит, может она кому тоже нужна, а он на обед ушел )
или если всем понадобится одна и таже железяка.
Вообще задача очень серьезная, речь идет об управлении поворотными магнитами через МК по РС 485, через 232 порт... Если один и тот же магнит будут крутить туда сюда ничего хорошего не получится...
Спасибо сказали:
Аватара пользователя
BlackStar
Сообщения: 1338
Статус: We are all Kosh
ОС: Fedora 10

Re: 2 вопроса программинг

Сообщение BlackStar »

Сделать так чтобы один коннект на одну железку, IMHO больше никак.
LightLang Team
Спасибо сказали:
Аватара пользователя
Gang
Сообщения: 106

Re: 2 вопроса программинг

Сообщение Gang »

BlackStar писал(а):
23.05.2007 15:51
Сделать так чтобы один коннект на одну железку, IMHO больше никак.

ну в этом то и проблема, железки висят на одном интерфейсе и различаются тока адресами...
подумал может сделать, что то типа таблицы "занятости" и не передавать данные на занятую железку и то тайм ауту скидывать...
в общем надо более точное задание, я вот тоже не совсем понимаю чего хочет начальник )
Спасибо сказали:
Аватара пользователя
DaemonTux
Сообщения: 1480
Статус: Юный падаван
ОС: Gentoo

Re: 2 вопроса программинг

Сообщение DaemonTux »

Gang писал(а):
23.05.2007 16:15
ну в этом то и проблема, железки висят на одном интерфейсе и различаются тока адресами...
подумал может сделать, что то типа таблицы "занятости" и не передавать данные на занятую железку и то тайм ауту скидывать...
в общем надо более точное задание, я вот тоже не совсем понимаю чего хочет начальник )

Предлагаю тебе нарисовать схему всей этой канители.
Так будет понятние.


И если я все правильно понял то у вас на rs232 порту висит контроллер. К которому подключены остальные устройства. Тобиш в rs232 передается адрес устройства и потом начинается с ним работа. Потом адрес другого и тд. Если так. То можно написать демон(сервер) который будет работать с ком портом. А ему клиентские проги будут работать через него.
Vladivostok Linux User Group
Спасибо сказали:
Аватара пользователя
Uncle_Theodore
Сообщения: 3339
ОС: Slackware 12.2, ArchLinux 64

Re: 2 вопроса программинг

Сообщение Uncle_Theodore »

Я думаю, тебе стОит посмотреть в сторону IPC, в частности, семафоров. Это -- стандартный POSIXовый путь разграничения доступа к ресурсам, совмещаемым разными процессами. Если даже не непосредственно, это может дать тебе идею, как это все реализуется стандартными способами.
Пролистай тут
http://db.ilug-bom.org.in/Documentation/lp...100000000000000
Спасибо сказали:
Аватара пользователя
Gang
Сообщения: 106

Re: 2 вопроса программинг

Сообщение Gang »

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 предложили "предварительно" разграничивать на этом уровне, тоесть следить за пакетами, проверять правильность/достоверность... В общем буду разбираться
Спасибо сказали: