Главная страница
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.034 c
6-1153393874
Warstone
2006-07-20 15:11
2006.12.17
ограничение траффика


15-1163574771
psa247
2006-11-15 10:12
2006.12.17
Нужен исталлятор


2-1164651925
Змей
2006-11-27 21:25
2006.12.17
webbrowser. анимация вкл.выкл


15-1164379562
Колдун
2006-11-24 17:46
2006.12.17
Микросхема


15-1164626092
DVM
2006-11-27 14:14
2006.12.17
Появится ли в Delphi поддержка Win64 в будущем? Есть сведения?