Форум: "Начинающим";
Текущий архив: 2006.12.17;
Скачать: [xml.tar.bz2];
ВнизЛогика работы программы Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.047 c