Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.49 MB
Время: 0.041 c
15-1164569116
Piter
2006-11-26 22:25
2006.12.17
Забавный глюк миранды


8-1146831015
Fly
2006-05-05 16:10
2006.12.17
Нужно переконвертировать файл Excel в DBF


11-1141302317
Shtorm-89
2006-03-02 15:25
2006.12.17
Вопрос о MediaPlayer в Delphi


15-1164380325
ArtemESC
2006-11-24 17:58
2006.12.17
Очки - зло...


2-1164580781
PixelFormat
2006-11-27 01:39
2006.12.17
PixelFormat = pfDevice - как перевести в нормальный вид?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский