Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Обмен по Com-порту / 16 сообщений из 16, страница 1 из 1
12.01.2006, 12:00
    #33478497
AlexKB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
Вопрос 1.
Обычно я пользовался текущими настройками Com-порта при открытии.
Теперь возникла необходимость после открытия производить перестройку параметров (скорость, четность, ...) перед каждым обращением - как лучше всего это делать?
Если каналов обмена будет более двух?
Желательно из практического опыта.

Вопрос 2.
Выдача пакета данных длиной более 75(примерно) байт разбивается на блоки.
команда W задерживается при этом на время более 20мС на каждый блок.
Кто что скажет по этому поводу.

Заранее благодарен.
...
Рейтинг: 0 / 0
12.01.2006, 14:30
    #33479120
Maksim UM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
1. зависит от платформы
если юникс, то я делал так
Код: plaintext
I $ZV["Linux" S status=$ZF(- 1 ,"stty -F "_dev_" evenp speed 9600 >/dev/null")
если винда, то можно на COS, кажется было только в доке версии 3.2.1

http://www.intersystems.com/cache/technology/product-tables/releasenotes/321/rel03.html

2. смотря что нужно и для каких целей
нужно при открытии порта поиграть с флагами open
(например что-то типа: open dev:"S")
...
Рейтинг: 0 / 0
12.01.2006, 14:40
    #33479160
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
Интерестно, каким мультипортовым модулем Вы пользуйтесь ?
Лично я пробовал использовать 8-ми канальную плату ( совместима с Arnet, Hostess, AST), но кроме 2-х каналов Cache' не признает !!! Т.е. остальные
6 висят в воздухе !!!
Хотя в Windows 2000 они стандартно установлены и работают отлично.
Такое впечатление, что Cache' использует только стандартные Com1 Com2 ...
А в cconsole странные строки:

06/10-11:24:56:437 ( 484) COMMCTRL Warning: Could not install port COM3:, reason = -1
06/10-11:24:56:437 ( 484) COMMCTRL Warning: Could not install port COM4:, reason = -1
06/10-11:24:56:437 ( 484) COMMCTRL Warning: Could not install port COM5:, reason = -1
................................

06/10-11:24:56:437 ( 484) COMMCTRL Warning: hiber wake received
...
Рейтинг: 0 / 0
12.01.2006, 15:41
    #33479362
AlexKB
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
Спасибо большое. Я давно туда не глядел.
Работа под Windows 2000
Жаль что с мультипортовками нет ясности. Ну может кто еще откликнется.

Задача такая: циклический + ситуативный опрос разношерстных устройств, которые могут быть натсроены жестко, и привести их к единой натсройке невозможно. Устройства работают с разными протоколами, Cache выступает мастером.

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

Кстати, если из одного процесса вести несколько портов, то насколько это хуже и более напряженно, чем один порт - один процесс.
...
Рейтинг: 0 / 0
12.01.2006, 18:48
    #33479913
Maksim UM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
2 Valeriu
а настраивали COMMCTRL?
пробовали просто открывать open COM3... write... read ?

2 AlexKB
у меня не было проблем со скоростью
(хотя задачи были не очень скоростные - модемы)

думаю при паре сотен открытых портов в одном процессе
будут проблемы :)
...
Рейтинг: 0 / 0
13.01.2006, 09:57
    #33480518
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
Проблема в чем, мы еще используем кое где интелектуальные терминалы,
которые обмениваютса с MSM по Com порту и естественно хотел пробовать
как с этим справится Cache'
Я пробовал так:
Configuration Manager ->Advanced-> Startup ->Terminal-> Com Ports
Описал все 8 портов, которые у меня описаны в Win2k (которые работают !!!)
Результат тот-же... Только по двум портам (любые из диапазона 1-10) обмен идет а по остальным нет !!!
Хотя - "Use this section to define the default settings (baud rate, data bits, parity, etc.) for use of Com ports by Cache processes and to enable remote logins to Cache through locally connected or modem connected serial ports."
...
Рейтинг: 0 / 0
13.01.2006, 12:19
    #33481073
Maksim UM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
Неплохо бы, конечно, называть версию Cache.
А так, можно попробовать смотреть различными хакерскими
утилитами что там Cache делает с портом.
Или просто написать в саппорт (может это баг известный)
...
Рейтинг: 0 / 0
13.01.2006, 12:30
    #33481120
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
Может Вы и правы, у меня только это:
Cache for Windows NT (Intel) 5.0 (RC 3 Build 462)
...
Рейтинг: 0 / 0
17.01.2006, 16:12
    #33487623
gr_vl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
У меня под win 2000 с мультипортовками проблем нет (Kron 4 и 8 ми портовые)
Код: plaintext
1.
2.
3.
Правда их надо в каше в редакторе конфигурации описывать и ставить галочку на запуске comportov
Каше 5,07 5,10 5,19 5,20 (Переодически обновляю версию с выходом новыых)
Есть проблемы не уйдут рекомендую делать инициализацию компрта перед открытием
те через $zf( запускать прогу exe которая проиницилизирует ком порт или mode params   

Если есть вопросы обращайтесь icq 118106001
[email=]gr_vl@mail.ru
...
Рейтинг: 0 / 0
27.01.2006, 11:51
    #33506965
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
Пробовал и так:

Cache.cpf содержит например такие строки:

[ConfigFile]
Version=5.0

[Com]
Com=ON
COM1:=0801X11;38400
COM5:=0801X11;38400
COM6:=0801X11;38400

В терминале в область %SYS:

%SYS>D update^COMMCTRL
Update succeeded.
%SYS>d info^COMMCTRL


configured table size = 2
entries in table = 2
ports in table = COM1:,COM5:,
controller PID = 1220

те иницииюруется только два порта...

Открыть програмно пробовал недостающего Com6 - работает !!!
s port="COM6:"
o port:(:"S"):2
u port:(:"S") f i=1:1:100 w "Test Com6 Nr. "_i,!
c port

Но подключить к нему терминал не получается
Может как-то можно менять

configured table size = nn
entries in table = nn
ports in table = COM1:,COM5:,COM6:, ....COMnn:,

?????
...
Рейтинг: 0 / 0
27.01.2006, 12:12
    #33507060
Maksim UM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
Код: plaintext
Do iINSTALL^COMMCTRL
а пробовали делать?
можно пробовать вручную пробовать добавлять:
Код: plaintext
1.
Write $$iADD^COMMCTRL(n,control,baud)
n - номер порта
...
Рейтинг: 0 / 0
27.01.2006, 12:29
    #33507127
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
В первом случае

Код: plaintext
1.
2.
3.
SYS>Do iINSTALL^COMMCTRL
 
<FUNCTION>iADD+ 9 ^COMMCTRL
%SYS 5e1>

и во втором тоже...

Код: plaintext
<FUNCTION>iADD+ 9 ^COMMCTRL
...
Рейтинг: 0 / 0
27.01.2006, 14:59
    #33507736
Maksim UM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
ну а если так:
Код: plaintext
1.
2.
3.
write $$iCONTROL^COMMCTRL()
w $$iADD^COMMCTRL( 5 ,"0801X11", 38400 )
do iINSTALL^COMMCTRL
...
Рейтинг: 0 / 0
27.01.2006, 15:15
    #33507799
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
Код: plaintext
1.
2.
3.
4.
5.
USER>zn "%sys"
 
%SYS>write $$iCONTROL^COMMCTRL()
 
<FUNCTION>iCONTROL+ 1 ^COMMCTRL
%SYS 2e0>

Без ... (другой версии) я думаю не обойтись
Может я не прав....
...
Рейтинг: 0 / 0
01.02.2006, 11:28
    #33515394
LittleCat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
Несколько замечаний:
1. Галочку "Запуск СОМ-портов" нужно ставить только в том случае, если надо подключить терминальные устройства, с которых будет производиться регистрация (увы, этот параметр действует на все СОМ-порты сразу, в отличие от того, что было, например, в MSM, где регистрация разрешалась для каждого порта индивидуально) Именно тогда при старте Cache запускается процесс COMMCTRL, который отслеживает прерывания от всех описанных в редакторе конфигурации портов и запускает для них процесс регистрации. (Из этого вытекает, что строить систему например с терминалами и, например, медицинскими приборами, подключенными через СОМ, весьма проблематично, поскольку если прибор вдруг что-то выдаст по интерфейсу, запустится процедура регистрации и прикладная программа, работающая с прибором не сможет до него достучаться)
2. По крайней мере в 4-й ветке Cache параметры СОМ-порта, описанные в редакторе конфигурации, никак не влияли на его реальные параметры, а использовали значения, либо установленные в Windows по-умолчанию, либо установленные последней использовавшей порт программой. Из-за этого для эксплуатации LabTrak в СП.АРМ была написана простенькая программа InitCom, которая запускается перед запуском Cache, вычитывает параметры СОМ-портов и инициализирует их.
3. Насчет задержек и пакетного обмена, ИМХО Cache вообще страдает очень слабой и запутанной поддержкой внешних устройств (в том числе и TCP/IP). Такая поддержка, на мой взгляд, была прекрасно реализована в MSM, но увы, Intersystems этот код просто положило под сукно.
...
Рейтинг: 0 / 0
03.03.2006, 16:22
    #33580760
rav_1972
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обмен по Com-порту
При прописывании сом-портов в "Панель управления-Безопастность-Бюджеты пользователей" можно указать каждому порту свою программу.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Обмен по Com-порту / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]