Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Логика работы программы [D7, XP]


Unknowing ©   (2006-11-29 09:36:00) 

Доброго времени суток! Нужен совет профессионала!!! Делаю так (условно):
{global var}
Var RecivedPack : Tpack;
//======================
procedure Parse(Buff);
begin
//разбор буфера и заполнение глобальной переменной RecivedPack
RecivedPack.Param1:=parseParam1;
...
end;

procedure OnRXChar();
begin
Parse(Buffer);
end;

procedure OnTimerView;//3 Гц
begin
label.Caption:=parseParam1;
end;

procedure OnTimerRec;//10 Гц
begin
Writeln(F,parseParam1);
end;


Unknowing   (2006-11-29 16:12:00) [1]


> Anatoly Podgoretsky ©  


> Сергей М. ©  


> alex_*** ©  

Спасибо за помощь!


Anatoly Podgoretsky   (2006-11-29 15:58:00) [2]

> Unknowing  (29.11.2006 15:27:17)  [17]

Ну например TStringList туда добавляешь для отражения и оттуда убираешь, как только отобразилось.


Unknowing   (2006-11-29 15:27:00) [3]


> Anatoly Podgoretsky ©   (29.11.06 15:09) [16]

Дело в том, что в конкретном случае актуальны все переданные устройством данные :( Если не затруднит, про  коллекцию/список уточните


Anatoly Podgoretsky   (2006-11-29 15:09:00) [4]

> Unknowing  (29.11.2006 14:41:15)  [15]

1. актуальны только последние данные
2. заводить коллекцию/список, выводить скопом


Unknowing   (2006-11-29 14:41:00) [5]


> Anatoly Podgoretsky ©   (29.11.06 14:36) [14]

Понял уже! :)
И последнее: как защищаться от такой проблемы: пришли, а отобразить и записать еще не успел? (конечно, при 10 Гц это невероятно, но в общем случае?)


Anatoly Podgoretsky   (2006-11-29 14:36:00) [6]

> Unknowing  (29.11.2006 14:30:12)  [12]

Сказали же флажок.
Правда и глобальную переменную не надо, лучше всего контролируемое свойство. При записи взводит флажок, при чтении сбрасывает.


Unknowing   (2006-11-29 14:35:00) [7]


> Сергей М. ©   (29.11.06 14:28) [11]

Вариант!!


Unknowing   (2006-11-29 14:30:00) [8]


> alex_*** ©   (29.11.06 14:26) [10]

Т.к. я не знаю , к своему стыду, что такое колбэки, то выбрал вариант по таймеру. Волнует вопрос: 1. заполнил структуру, обратился к ней по таймеру, отобразил записал. 2. Данные еще не пришли, а я снова к ней обратился и снова записал то, что уже записано...


Сергей М.   (2006-11-29 14:28:00) [9]


> понять что данные обновились


В "разборщике" взведи какой-нть глоб.флажок.
В "отображальщике" и "записальщике" анализируй этот флажок - если он взведен, то значит есть повод "отображалить" и "записалить"


alex_***   (2006-11-29 14:26:00) [10]

кому понять? тут 2 варианта: либо callback'и использовать, либо по таймеру опрашивать. Другого вроде не придумали


Unknowing   (2006-11-29 14:21:00) [11]


> Сергей М. ©   (29.11.06 14:14) [8]

Я полагал есть более профессиональные методы... :) И неплохо было бы еще понять что данные обновились.


Сергей М.   (2006-11-29 14:14:00) [12]


> Разборщик заполняет глобальную переменную Var RecivedPack
> : Tpack.


Ну и ?

Какого же ляда ты не обращаешься к этой переменной ни в "отображальщике" (OnTimerView) ни в "записальщике" (OnTimerRec) ? Мне не понятно .... Поясни ?


Unknowing   (2006-11-29 14:10:00) [13]


> Anatoly Podgoretsky ©   (29.11.06 10:09) [6]

:)


> Сергей М. ©   (29.11.06 09:47) [5]

Разборщик заполняет глобальную переменную Var RecivedPack : Tpack.
Требуется данные из этого пакета отобразить с низкой частотой и записать в файл с высокой.


Anatoly Podgoretsky   (2006-11-29 10:09:00) [14]

> Unknowing  (29.11.2006 09:39:01)  [1]

Какое раздать, тут бы живым остаться.


Сергей М.   (2006-11-29 09:47:00) [15]


> как дальше грамотно отображать информацию


Какую ?

И что является результатом работы разборщика ? Из приведенного кода это неочевидно ..


Unknowing   (2006-11-29 09:43:00) [16]


> Сергей М. ©   (29.11.06 09:41) [3]

Принимаю  данные с сом-порта, затем принятый буфер отдаю в разборщик... А как дальше грамотно отображать информацию и одновременно записывать в файл не знаю :(


Сергей М.   (2006-11-29 09:41:00) [17]

Кто такие "получатели" ?
Что вообще делает этот код ? Комментируй каждую строчку ...


Сергей М.   (2006-11-29 09:40:00) [18]

Приведенный код - это замечательно.
А в чем собственно вопрос ?


Unknowing   (2006-11-29 09:39:00) [19]

Забыл вопрос:) А как правильно после разбора буфера раздать данные всем получателям?


Наверх

Титульная страница Поиск, карта сайта Написать письмо