Вверх ↑
Этот топик читают: Гость
Ответов: 3851
Рейтинг: 159
#46: 2009-03-11 19:29:25 ЛС | профиль | цитата
rolin писал(а):
таймер который должен отрабатывать каждые 10мСек ,отрабатывал 30 и никак не хотел меньше.

Timer's Help писал(а):
Несмотря на то, что можно задать интервал в 1мс таймер же будет работать с интервалом не менее чем в 15мс, что связано с аппаратными ограничениями материнской платы.


rolin писал(а):
мигать TX-ом каждые пол-секунды

ну это же не постоянно


карма: 0
начавший
0
Ответов: 62
Рейтинг: 1
#47: 2009-05-31 12:08:20 ЛС | профиль | цитата
и все же ой как не хватает в компоненте события прихода данных в буфер (по которому можно было бы начать чтение из порта). наткнулся на это http://www.ru-coding.com/pas_18.php , только мозгов нехватает прикрутить это к hiCOM.pas code_13547.txt
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#48: 2009-05-31 13:04:30 ЛС | профиль | цитата
jeka_kam писал(а):
и все же ой как не хватает в компоненте события прихода данных в буфер

Такое событие элементарно получается переловом пустой строки, которую выдает компонент в поток, когда нет данных. Добавлять поток и асинхронную функцию Overlapped в компонент не имеет смысла, тк это будет уже другой компонент
карма: 22

0
Ответов: 62
Рейтинг: 1
#49: 2009-06-02 16:47:24 ЛС | профиль | цитата
nesco, это же не выход. code_13568.txt все равно остаются проблемы: к примеру по команде модему AT&V, в зависимости от модема, ответ может составить 100 и 500 b, все в буфер не влезет (SetLength(Buffer,256) - ну эт легко подправить) другими словами не известно сколько байт считывать из буфера, когда вроде бы решил как. Как можно теперь эту задачку решить?
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
файлы: 2code_13547.txt [1.5KB] [567], code_13568.txt [4.2KB] [620]
Разработчик
Ответов: 26163
Рейтинг: 2127
#50: 2009-06-02 17:06:11 ЛС | профиль | цитата
jeka_kam, а чего модуль чтения не сделать вот так


Add(MainForm,2953706,119,147)
{
}
Add(ArrayRW,6457832,483,273)
{
link(Array,7493369:Array,[])
}
Add(Case,15358791,392,231)
{
Value=String()
link(onNextCase,6457832:doAdd,[(472,237)(472,293)])
link(onTrue,10885940:doEvent1,[])
}
Add(Hub,10885940,434,238)
{
link(onEvent1,7493369:doGetStr,[])
link(onEvent2,7493369:doClear,[])
}
Add(CharArray,7493369,483,231)
{
link(onGetStr,6051039:doCase,[])
}
Add(Case,6051039,525,238)
{
Value=String()
link(onNextCase,9239508:doText,[])
}
Add(StrList,9239508,574,217)
{
link(onChange,2724635:doWork,[])
}
Add(COM,15683401,343,224)
{
link(onRead,15358791:doCase,[])
}
Add(DoData,4830742,287,252)
{
Data=Integer(256)
link(onEventData,15683401:doRead,[])
}
Add(Thread,7337024,245,252)
{
Delay=0
Point(doStopFlag)
link(onExec,4830742:doData,[])
}
Add(Check,11410778,119,196)
{
Caption="Start"
link(onEvent,16728663:doEvent1,[])
}
Add(Hub,16728663,189,196)
{
OutCount=3
link(onEvent1,9239508:doClear,[(552,202)(552,230)])
link(onEvent2,15683401:doOpen,[(273,209)(273,230)])
link(onEvent3,7337024:doStart,[(224,216)(224,258)])
}
Add(Check,3678748,119,231)
{
Caption="Stop"
link(onEvent,15683401:doClose,[])
}
Add(Check,2724635,623,217)
{
Caption="Change"
}

карма: 22

0
Ответов: 62
Рейтинг: 1
#51: 2009-06-02 17:10:19 ЛС | профиль | цитата
nesco, щас до дому доберусь, гляну ...мда.... я дома, модем на работе
------------ Дoбавленo в 11.16:
nesco писал(а):
jeka_kam, а чего модуль чтения не сделать вот так

рассматривал такой вариант, не устроило меня время на обработку чтения из буфера.
atz0 169мс (7b)
at&v 220мс (763b)
ati13 267мс (1486b)
в схеме что приводил выше (при увеличенном буфере (SetLength(Buffer,2048) ) таймер на 1 мс не успевает сработать.
попробую объдинить два варианта, гляну что получится...
------------ Дoбавленo в 13.37:
.... а ничего не получилось умного кроме того что было - http://www.hiasm.com/xf//getfile/13569 добавил в компонент возможность выбора размера буфера, да и успокоился на этом....
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 62
Рейтинг: 1
#52: 2009-06-17 15:37:01 ЛС | профиль | цитата
И все же, стоит ли ожидать компонент для работы с COM в асинхронном режиме? не очень интересно работать в слепую.
-----------------------------
ну или хотя бы может кто нибудь дать заготовку. а именно как запустить поток на выполнение после создания файла с флагом FILE_FLAG_OVERLAPPED....
и как этот поток потом изничтожить
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 5446
Рейтинг: 323
#53: 2009-06-17 18:47:57 ЛС | профиль | цитата
jeka_kam, так есть же уже такой компонент, (автор Wolfik вроде). ComAsync - так и зовётся.
карма: 1

0
Ответов: 62
Рейтинг: 1
#54: 2009-06-17 19:10:03 ЛС | профиль | цитата
iarspider, и куда глазоньки мои смотрели))) сейчас гляну... а ведь просматривал компоненты все, да и на поиск давал...
------------ Дoбавленo в 20.30:
где-то видел высказывание, вроде от Dilma, что интересней ему заниматся средой, а не разработкой компанентов, что для этого нужно глубоко зарываться в мануалы. а компоненты разрабатывают пользователи. Так почему же тогда не попадают эти самые компоненты от пользователей в дистриб? хотя бы тот же самый ComAsync ..... ну или CRC16/32 PS. ну с последним я мож загнул
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 3851
Рейтинг: 159
#55: 2009-06-17 21:21:39 ЛС | профиль | цитата
компоненты сопровождают авторы (обычно)..
карма: 0
начавший
0
Ответов: 62
Рейтинг: 1
#56: 2009-06-21 08:55:38 ЛС | профиль | цитата
jeka_kam писал(а):
Так почему же тогда не попадают эти самые компоненты от пользователей
-- хотя теперь понятно, компонент сырой и много ошибочек выдает не обоснованных... прийдется дорабатывать...
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Гость
Ответов: 17029
Рейтинг: 0
#57: 2009-06-29 11:54:58 ЛС | профиль | цитата
Alex133 писал(а):
Созданый компонент полезен но не гибок...
В СОМ- порте есть 9 пинов и все они задействованы...
Задайтесь вопросом, много ли будет писаться прог для
стандартного, не расширенного использования порта?

Считаю что все пины должны быть доступны для
управления или считывания информации...

назначение контактов разъема RS232

№ контакта Назначение

1 DCD (Data Carrier Detect)
Модем докладывает о наличии соединения с другим модемом

2 RXD (Received Data)
Входящие данные с модема

3 TXD (Transmitted Data)
Выходящие на модем данные

4 DTR (Data Terminal Ready)
Компьютер докладывает о том, что он включен и готов к работе

5 Земля

6 DSR (Data Set Ready)
Модем докладывает о том, что он включен и готов к работе

7 RTS (Request To Send)
Запрос (от компьютера)на разрешение передачи (приема) следующей порции данных модему

8 CTS (Clear To Send)
Подтверждение от модема того, что он готов передать (принять) следующую порцию данных

9 Ri (Ring)
Модем докладывает о внешнем звонке


и всё таки я не совсем понял как управлять портом как отсылать данные на какой-то пин и как принимать
я в программировании ноль но неплохо разбираюсь в электронике и хотелось бы зделать несколько устройств для последовательного порта
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#58: 2009-06-29 12:03:45 ЛС | профиль | цитата
94.45.100.239, если речь идет о стандартном элементе палитры, то в нем кроме пинов 2 и 3 работать больше ни с чем не получится
карма: 27
0
Ответов: 139
Рейтинг: 4
#59: 2011-02-21 14:52:02 ЛС | профиль | цитата
Как можно менять скорость com порта в программе не закрывая порт?
Пробовал так, но ничего не выходит
code_22615.txt
карма: 0

0
файлы: 1code_22615.txt [912B] [607]
Ответов: 8930
Рейтинг: 823
#60: 2011-02-21 16:30:50 ЛС | профиль | цитата
pav, попробуйте закрыть и снова открыть порт code_22616.txt
карма: 19

0
файлы: 1code_22616.txt [989B] [554]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)