Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2008, 12:42   #1
Liza
 
Регистрация: 18.02.2008
Сообщений: 9
Сообщение компонент commportdriver

Здрасти всем! Пишу программу загрузки кода в микроконтроллер на Delphi , связь осуществляется через сом-порт (скорость обмена данными 115200) . Проблема в следующем: слишком большая пауза (20 мС) между обработкой ответа контроллера (=1 байт) и отправкой следующей посылки (=25 байт). В результате время затраченное на отправку 150 посылок где-то 10 секунд (очень долго)! Подскажите, что нужно сделать, чтоб свести паузу к минимуму или в чем может быть причина этого? Заранее, спасибо)
Liza вне форума Ответить с цитированием
Старый 18.02.2008, 12:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
между обработкой ответа контроллера (=1 байт) и отправкой следующей посылки (=25 байт)
А что в это время происходит в программе?

P.S. На твоем месте я бы лучше прикрутил к Делфи один из ОРС серверов, и пусть он будет посредником между прогой и контроллером, надежнее будет, Хотя если контроллер не промышленный, а самодельный то это не прокатит...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.02.2008, 12:54   #3
Liza
 
Регистрация: 18.02.2008
Сообщений: 9
По умолчанию

[QUOTE=Stilet;76145]А что в это время происходит в программе?

- ничего не происходит, отслеживали на осцилографе- пульса нет между приемом ответа и отправкой след. пакета)
Liza вне форума Ответить с цитированием
Старый 18.02.2008, 13:27   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А что в это время происходит в программе?
Цитата:
Сообщение от Liza Посмотреть сообщение
ничего не происходит, отслеживали на осцилографе- пульса нет между приемом ответа и отправкой след. пакета)
Да нет, имеется в виду не состояние выводов RS232, а программная "обработка ответа контроллера".
В чем она состоит? Судя по всему, у вас там задержка-то происходит...
Цитата:
скорость обмена данными 115200
А вы уверены, что обвес контроллера поддерживает эту скорость? Как-то не вяжется с "150 посылок где-то 10 секунд".

Последний раз редактировалось mihali4; 18.02.2008 в 13:31.
mihali4 вне форума Ответить с цитированием
Старый 18.02.2008, 14:35   #5
Liza
 
Регистрация: 18.02.2008
Сообщений: 9
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Да нет, имеется в виду не состояние выводов RS232, а программная "обработка ответа контроллера".
В чем она состоит? Судя по всему, у вас там задержка-то происходит...
- контролер отвечает 1 байтом понял посылку или не понял, и если понял формируется и отправлуется сле. посылка, все просто очень) и много времени точно не занимает
А вы уверены, что обвес контроллера поддерживает эту скорость? Как-то не вяжется с "150 посылок где-то 10 секунд".
- уверена что скорость115200, проверяли) в этом то и проблемма что очень медленно все) может где какой таймаут на отправку стоит? не знаю?
Liza вне форума Ответить с цитированием
Старый 18.02.2008, 15:24   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
слишком большая пауза (20 мС) между обработкой ответа контроллера (=1 байт) и отправкой следующей посылки (=25 байт)
Я понимаю это так:
1. Программа приняла байт от контроллера, подготовила следующие 25 байт для отправки и почему-то ждет 20мс перед отправкой. Так?
Если да, то повторюсь:
Цитата:
программная "обработка ответа контроллера".
В чем она состоит? Судя по всему, у вас там задержка-то происходит...
Ваше объяснение - "все просто очень" не несет никакой смысловой нагрузки и потому никак не поможет разобраться в проблеме.
Вы, конечно, можете темнить и дальше, но зачем тогда было вообще открывать эту тему? Видимо, придется попросить вынести куда-нибудь в заголовок форума большими буквами - "телепаты тут не водятся"...
mihali4 вне форума Ответить с цитированием
Старый 18.02.2008, 15:45   #7
Liza
 
Регистрация: 18.02.2008
Сообщений: 9
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Я понимаю это так:
1. Программа приняла байт от контроллера, подготовила следующие 25 байт для отправки и почему-то ждет 20мс перед отправкой. Так?
Если да, то повторюсь:

- все правильно) принимаем байт, если он = $6 , то сразу преступаем к формированию след. посылки, последовательные операции, и 2 небольших цикла, все- не знаю что там может так тормозить программу, могу выложить код, если есть какие то мысли, что так может быть не так)

Ваше объяснение - "все просто очень" не несет никакой смысловой нагрузки и потому никак не поможет разобраться в проблеме.
Вы, конечно, можете темнить и дальше, но зачем тогда было вообще открывать эту тему? Видимо, придется попросить вынести куда-нибудь в заголовок форума большими буквами - "телепаты тут не водятся"...
- темнить даже не собирась, просто этими словами хотела показать , что используется примитивные операции
Liza вне форума Ответить с цитированием
Старый 18.02.2008, 16:05   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Примитив примитиву рознь. Может твоя прога "виснет" при чтении из порта.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.02.2008, 18:19   #9
Liza
 
Регистрация: 18.02.2008
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Примитив примитиву рознь. Может твоя прога "виснет" при чтении из порта.
- может и поэтому,как это можно проверить или какие предложения как это можно устранить?
Liza вне форума Ответить с цитированием
Старый 18.02.2008, 18:35   #10
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Liza Посмотреть сообщение
- может и поэтому,как это можно проверить или какие предложения как это можно устранить?
Странный вопрос... Выложить листинг, ессно...
Или намек на отсутствие у нас экстрасенсорных способностей не возымел действия?
mihali4 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Компонент Edit GazimagomedovM Помощь студентам 3 14.04.2008 23:59
tdxtreelist - Что за компонент? Mitron Компоненты Delphi 9 31.01.2008 01:08
Ищу компонент newd Компоненты Delphi 1 29.01.2008 08:12
Компонент Terran Компоненты Delphi 2 16.12.2007 17:42
компонент ICQ Artem Компоненты Delphi 2 17.10.2007 21:38