Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

Логика работы программы   Найти похожие ветки 

 
Unknowing ©   (2006-11-29 09:36) [0]

Доброго времени суток! Нужен совет профессионала!!! Делаю так (условно):
{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 09:39) [1]

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


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

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


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

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


 
Unknowing ©   (2006-11-29 09:43) [4]


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

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


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


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


Какую ?

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


 
Anatoly Podgoretsky ©   (2006-11-29 10:09) [6]

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

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


 
Unknowing ©   (2006-11-29 14:10) [7]


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

:)


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

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


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


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


Ну и ?

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


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


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

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


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

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


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


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


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


 
Unknowing ©   (2006-11-29 14:30) [12]


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

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


 
Unknowing ©   (2006-11-29 14:35) [13]


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

Вариант!!


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

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

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


 
Unknowing ©   (2006-11-29 14:41) [15]


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

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


 
Anatoly Podgoretsky ©   (2006-11-29 15:09) [16]

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

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


 
Unknowing ©   (2006-11-29 15:27) [17]


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

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


 
Anatoly Podgoretsky ©   (2006-11-29 15:58) [18]

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

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


 
Unknowing ©   (2006-11-29 16:12) [19]


> Anatoly Podgoretsky ©  


> Сергей М. ©  


> alex_*** ©  

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



Страницы: 1 вся ветка

Текущий архив: 2006.12.17;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.031 c
15-1164448485
Сергей Г
2006-11-25 12:54
2006.12.17
Та ли специальность выбрана?


2-1164618841
alex810
2006-11-27 12:14
2006.12.17
DBVhart


15-1164349741
Иксик
2006-11-24 09:29
2006.12.17
"Книги, повышающие уровень знаний" (с)


2-1164816550
dasha
2006-11-29 19:09
2006.12.17
ShellExecute


2-1164961836
KyRo
2006-12-01 11:30
2006.12.17
Подскажите почему я не могу освободить поток