The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"COM-порт + MySQL + сетевой демон"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Разное)
Изначальное сообщение [ Отслеживать ]

"COM-порт + MySQL + сетевой демон"  +/
Сообщение от yurybx (ok) on 19-Мрт-15, 10:26 
Сразу оговорюсь, что мой опыт "программирования" под *nix-системы ограничивается написанием скриптов на bash. Поэтому обращаюсь к спецам за помощью в определении направления: какую документацию читать, по каким языкам, механизмам и т.д. Какой путь выбрать.
Задача следующая. Имеется офисная АТС, передающая лог звонков по COM-порту, и сервер на FreeBSD 8.0. Нужно решить две задачи:
1. Сервер должен принимать лог от АТС и расфасовывать его в базу данных MySQL (оная уже работает на сервере)
2. Сервер должен мгновенно отправлять информацию о поступившем звонке на рабочую станцию Windows по сети (чтобы секретарша видела кто звонит на экране ещё до поднятия трубки)
С первой задачей наверняка справится ATSlog. Но как написать программу для второй задачи, которая будет перехватывать лог от станции, не мешая работе ATSlog? Или придётся писать программу для обеих задач?
Теперь подробно о второй задаче. Насколько я понимаю, нужно будет написать приложение под Windows, которое будет подключаться к демону FreeBSD по сети на определённый порт и реагировать на получаемые данные (искать клиента в базе по номеру звонящего и отображать информацию на экране большими буквами). Значит, нужно написать сетевой демон, который слушает определённый порт и обрабатывает данные получаемые по COM-порту в реальном времени. Какой язык программирования лучше использовать для этой задачи?
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от fantom (ok) on 19-Мрт-15, 11:52 
>[оверквотинг удален]
> С первой задачей наверняка справится ATSlog. Но как написать программу для второй
> задачи, которая будет перехватывать лог от станции, не мешая работе ATSlog?
> Или придётся писать программу для обеих задач?
> Теперь подробно о второй задаче. Насколько я понимаю, нужно будет написать приложение
> под Windows, которое будет подключаться к демону FreeBSD по сети на
> определённый порт и реагировать на получаемые данные (искать клиента в базе
> по номеру звонящего и отображать информацию на экране большими буквами). Значит,
> нужно написать сетевой демон, который слушает определённый порт и обрабатывает данные
> получаемые по COM-порту в реальном времени. Какой язык программирования лучше использовать
> для этой задачи?

Язык программирования фактически любой, но на вашем месте я бы подумал на предмет web-морды/приложения, платформонезависимо и ненадо изобретать сетевых демонов.
Незнаю как в мускуле, а в postgresql можно по триггеру например запустить стороннее приложение.

Вроде по описанию
https://ru.wikipedia.org/wiki/Socket.IO
может вам помочь

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от yurybx (ok) on 19-Мрт-15, 20:40 
Не, web-морду делать не хочу, ибо система должна работать как часы: браузер завис/закрылся, секретарша сидит в соц. сети, смотрит фотки на полный экран - пофигу, окно должно появиться как штык! Так что будет клиент-серверная система: сервер на freebsd и клиент на windows.
А что если я просто напишу скрипт на bash? Например:

while read -r line < /dev/cuau1; do
  # отправляем $line в качестве аргумента обработчику
done

И обработчик тоже на bash, который использует команду "nc", чтобы передать информацию клиенту по TCP или UDP протоколу.
Будет ли такой вариант надёжно работать? Не будет ли пропускать символы/строки, получаемые по com-порту?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от Pahanivo (ok) on 20-Мрт-15, 06:26 
> Задача следующая. Имеется офисная АТС, передающая лог звонков по COM-порту, и сервер
> 2. Сервер должен мгновенно отправлять информацию о поступившем звонке на рабочую станцию

а разве логи звонков пишутся не по факту их, звонков, ОКОНЧАНИЯ?


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от fantom (ok) on 20-Мрт-15, 10:28 
>> Задача следующая. Имеется офисная АТС, передающая лог звонков по COM-порту, и сервер
>> 2. Сервер должен мгновенно отправлять информацию о поступившем звонке на рабочую станцию
> а разве логи звонков пишутся не по факту их, звонков, ОКОНЧАНИЯ?

Спецы по АТС говорят, что в нормальных АТС поведение настраивалось, по дефолту - по факту окончания, при перенастройке - каждый "чих" это событие ...
Другое дело, что в COM будет гора всего насвете лететь, и нужен анализ что именно нам АТС сказала и нужно ли нам это обрабатывать.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от yurybx (ok) on 20-Мрт-15, 11:23 
Моя АТС KX-TDA100 настроена таким образом, что выдаёт информацию о поступлении вызова в момент его поступления мгновенно.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от yurybx (ok) on 20-Мрт-15, 11:40 
Ахтунг! Не работает второй com-порт на сервере! Не могу понять, почему.
Подключаю девайс к первому порту (что на задней панели), ввожу команду:
cu -l /dev/cuau0 -s19200
получаю читабельные данные.
Подключаю ко второму порту (что выведен на слот корпуса через переходник), ввожу команду:
cu -l /dev/cuau1 -s19200
не получаю ничего.
Переходник проверял на другой материнке - работает.
Материнка сервера X7SBA, в биосе "Serial Port B" включён, выставлен режим "Normal". Куда копать?
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от yurybx (ok) on 20-Мрт-15, 22:50 
Оказывается, существуют два вида распиновки внутреннего разъема COM-порта на материнках! В понедельник проверю.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от Pahanivo (ok) on 21-Мрт-15, 20:47 
> Оказывается, существуют два вида распиновки внутреннего разъема COM-порта на материнках!
> В понедельник проверю.

скачай мануал по маме - там пины разъемов подписаны ))

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от yurybx (ok) on 22-Мрт-15, 07:44 
>> Оказывается, существуют два вида распиновки внутреннего разъема COM-порта на материнках!
>> В понедельник проверю.
> скачай мануал по маме - там пины разъемов подписаны ))

Нету в мануале распиновки. Придётся прозванивать тестером.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от Pahanivo (ok) on 22-Мрт-15, 15:06 
>>> Оказывается, существуют два вида распиновки внутреннего разъема COM-порта на материнках!
>>> В понедельник проверю.
>> скачай мануал по маме - там пины разъемов подписаны ))
> Нету в мануале распиновки. Придётся прозванивать тестером.

модель мамы?!

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от 3gmodem on 22-Мрт-15, 15:10 
> Нету в мануале распиновки. Придётся прозванивать тестером.

oCTbIHb
gonoJHuTeJbHbIe COM-nopTbI BuguMo npocTo BbIKJ@4eHbI
nocMoTpu B BIOS u B MaHyaJe - HaMaMe MoryT 6bITb nepeMbI4Ku

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

12. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от yurybx (ok) on 22-Мрт-15, 18:49 
>> Нету в мануале распиновки. Придётся прозванивать тестером.
> oCTbIHb
> gonoJHuTeJbHbIe COM-nopTbI BuguMo npocTo BbIKJ@4eHbI
> nocMoTpu B BIOS u B MaHyaJe - HaMaMe MoryT 6bITb nepeMbI4Ku

В биосе проверил - порт включён. На маме по ком-порту не вижу никаких перемычек. В понедельник разберусь с распиновкой.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

14. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от yurybx (ok) on 23-Мрт-15, 11:38 
>>> Нету в мануале распиновки. Придётся прозванивать тестером.
>> oCTbIHb
>> gonoJHuTeJbHbIe COM-nopTbI BuguMo npocTo BbIKJ@4eHbI
>> nocMoTpu B BIOS u B MaHyaJe - HaMaMe MoryT 6bITb nepeMbI4Ku
> В биосе проверил - порт включён. На маме по ком-порту не вижу
> никаких перемычек. В понедельник разберусь с распиновкой.

Таки да, распиновка была не той. Перепаял выкидыш - всё заработало!

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

16. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от Pahanivo (ok) on 26-Мрт-15, 08:35 
таки да, начала за mysql, закончили про pinout.
как в том анекдоте "Судья достал из коробки апельсин и сказал задумчиво: “КОСОЙ, БЛИН, ОТДАЙ
БРАТЬЯМ КОРОВУ!”"
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

13. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от unibus on 23-Мрт-15, 10:57 
> Какой язык программирования лучше использовать для этой задачи?

Взгляните на язык Python.
Лаконичен. Довольно прост для обучения. Есть на всех платформах, что легко позволяет писать переносимые приложения. Много дополнительных модулей для чего угодно - serial comm., сетевые приложения, базы данных, http, xml, rpc, json и т.д.
В базовом пакете для Винды есть модуль tkinter - для простых графических приложений на основе tcl/tk.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "COM-порт + MySQL + сетевой демон"  +/
Сообщение от yurybx (ok) on 23-Мрт-15, 17:27 
Проследил за работой простого скрипта на bash. Вроде всё работает, строки не пропускает. Если всё же будут проблемы, попробую Python. Спасибо за ответы!
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру