Цитата(artur_off @ Nov 22 2010, 00:35)

Если я вас правильно понял, то копать вам надо в сторону FIFO.
По сути да, я только слово FIFO вспомнить не мог. за ссылку спасибо, проштудирую примерчик
Цитата(rezident @ Nov 22 2010, 00:53)

Задача доступа разных источников данных к одному каналу передачи данных. Решать можно несколькими способами. Но вначале нужно определиться с приоритетами. Т.е. ответить на вопрос: источники данных имеют равный приоритет или разный? Если приоритет одинаковый, то пишете планировщик который опрашивает по кольцу флаги постановки задач от разных источников данных, вызывает функцию подготовки данных, запускает в прерывании транзакцию по каналу связи и потом запускает функцию обработки принятых данных. Все это делается на базе КА (Конечные Автоматы). Если вы сможете формализовать и привести к единому виду вызовы всех функций подготовки и обработки данных для всех источников, то планировщик получается достаточно простой и расширяемый.
Приоритетности нет, есть один контроллер (master), который опрашивает устройства на шине (slave), каждое - по своему графику. Аварийных сообщений от устройств нет. Мне нужно, чтоб пакеты не накладывались друг на друга. У меня почти так и сделано, как вы предложили, но получилось коряво. И при добавлении нового устройства, надо много чего дописывать...