-
Мастера Дельфи (7), помогите - надо одновременно принимать данные с 16 СОМ-портов - как по выбору запускать 16 процедур опроса? для каждого писать свою или можно написать одну и её тиражировать -в нужные моменты стратуя? как?
сейчас один СОМ-порт опрашивается отдельным потоком
type
TCommThread = class(TThread)
private
Procedure QueryPort;
protected
Procedure Execute; override;
end;
надо написать 16 таких потоков? и никак не оптимизировать?
-
ага.
причем понадобится 16 отдельных компьютеров в 16 разных квартирах в 16 разных городах.
-
не смейтесь ( я понимаю, что ламер и юзер, но я хочу присоедениться к рядам профессионалов, плюс проект горит с 16 модемами, начальство шкуру дерет - а с программированием только началось знакомство - многое без проблем - а с потоками - созданием новых из цикла - пока не получается, погуглил в яндексе - здесь самая адекватная инфа! Прошу, поможите чем можите - с мира по нитке - голому гора ниток!
-
TCommThread = class(TThread)
private
Procedure QueryPort;
protected
Procedure Execute; override;
public
constructor CreateIt(const AComName : string) ;
end;
-
Похоже, что и destructor нужен, огромное Человеческое Спасибо за наВодку!!! буду гуглить в этом направлении!!!
-
> Jee (04.09.10 17:11) [4]
>
> Похоже, что и destructor нужен
Деструктор там уже есть.
-
> Jee (04.09.10 14:24)
Надо написать 1 класс такого потока и создать 16 его экземпляров - каждый на свой порт.
-
> Jee (04.09.2010 17:11:04) [4]
destructor здесь не нужен
-
токмо про синхронизацию (ежели эти 16 используют общие данные) не забывать. возможно, скармливать данные экземпляру другого класса - щтобы другие потоки не стояли в очереди
-
Есть подозрение, что в Вашей TCommThread.Execute ... ну как бы это сказать ... не очень хорошо.
-
> Плохиш © (04.09.10 17:12) [5]
>
>
> > Jee (04.09.10 17:11) [4]
> >
> > Похоже, что и destructor нужен
>
> Деструктор там уже есть.
:)))
-
А где ты нашел 16 портов? Это что ж за ПК такой?
Ну, 4 я еще пойму. Но 16 ??? Это не шутка?
-
> GanibalLector © (25.10.10 11:44) [11]
> Ну, 4 я еще пойму. Но 16 ??? Это не шутка?
всего-то четыре копеечных платы расширения PCI; в промышленных и побольше бывает.
-
GanibalLector © (25.10.10 11:44) [11]
в обычном кассовом аппарате 8 портов, на всякие ридеры терминалы, фискальники :) еще расширить можно...
в стареньком банкомате сом портов не меньше...
-
2 RWolf © (25.10.10 11:59)
[12] Я видел (и использовал) такие PCI платы, но только там 2 порта. Даже если предположить, что существует с 4 портами, то тогда возникает проблема со слотами на ПК. Где найти 4 свободных PCI слота? Гемморойно, короче.
Slym © (25.10.10 12:04)
[13]>в обычном кассовом аппарате 8 портов
Уверен? Я только ими и занимаюсь. 4 максимум! Откуда 8?
http://talla2k.livejournal.com/tag/разъем
-
> GanibalLector © (25.10.10 12:38) [14]
просто как пример, платы на 4 и 8 портов:
http://www.umx.ru/moxa.html.а уж переходников USB-COM можно подключить и вовсе немеряно; а это ещё по одному COM-порту каждый.
ну, и PCI-разъёмов на разных машинах по-разному. На десктопах ныне обычно ставят мало, да
-
> GanibalLector (25.10.2010 12:38:14) [14]
16 портовые платы обычное явление, практически на любые типы интерфейсов
есть.
С разъемами проблем нет, они в комплекте
-
Там имелся в виду кассовый терминал (POS). В обычных кассах я и вправду больше 4 не видел.
-
Slym © (25.10.10 12:04) [13]
занимаюсь
Подключал недавненько POS терминалы мне достался COM8... все остальные были заняты...
Стационарный сканер.
Ручной сканер (как-то на клаву зацеплен чтоли)
Фискальник
Выносное табло
Еще какаято хрень
Терминал сбера
Терминал Золотой короны
Мой терминал :)