Надежно контролировать последовательный порт (Nortel CS1000) - PullRequest
1 голос
/ 04 февраля 2011

У меня есть собственный скрипт Python, который отслеживает журналы вызовов из телефонной системы Nortel. Эта телефонная система находится на очень высоком уровне в течение дня, и начинает появляться впечатление, что некоторые записи могут быть утеряны.

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

Я ищу информацию о самом простом и безопасном способе надежного мониторинга вывода тяжелых данных через последовательный порт в Linux. Я не ограничиваю это каким-либо конкретным набором инструментов или языков, я хочу выяснить, что лучше всего подходит для выполнения этой важной работы. Я достаточно удобно разбираю данные и вставляю их в mysql, поэтому мы можем просто предположить, что данные могут быть сброшены в текстовый файл.

Спасибо

1 Ответ

1 голос
/ 05 февраля 2011

Ну, я бы подошел к этому так, чтобы работали 2 потока (или процессы).

Поток 1 : Поток чтения

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

Thread2 : поток обработки

Этот поток просто спит, пока в нем нет данных.локальный буфер для обработки, затем считывает и обрабатывает его.Вот и все.

Причина разделения его на две части заключается в том, что если один занят (блок в MySQL для потока обработки), он не повлияет на другой.В конце концов, хотя последовательный порт буферизируется операционной системой, размер буфера ограничен.

Но опять же, любая локальная программа, вероятно, будет работать намного быстрее, чем последовательный порт может отправлять данные.Последовательная передача на самом деле довольно медленная относительно тактовой частоты процессора (115,2 кбит / с - это предел для стандартного оборудования).Поэтому, если вы не привязаны к скорости процессора (например, на Arduino), я не вижу нормальных условий, влияющих на это слишком сильно.Таким образом, ваш выбор языка действительно не должен вызывать особого беспокойства (если принять во внимание современное оборудование).Придерживайтесь того, что вы знаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...