Разработка, производство и продажа радиоэлектронной аппаратуры
|
Требуется программист в Зеленограде - обработка данных с датчиков; ColdFire; 40 тыс.
e-mail: jobsmp@pochta.ru
|
procedure TMainForm.cpDrvReceiveData(Sender: TObject; DataPtr: Pointer;
DataSize: Cardinal);
var iLastLine, i: integer;
s, ss: string;
begin
// Convert incoming data into a string
s := StringOfChar( ' ', DataSize );
move( DataPtr^, pchar(s)^, DataSize );
// Exit if s is empty. This usually occurs when one or more NULL characters
// (chr(0)) are received.
while pos( #0, s ) > 0 do
delete( s, pos( #0, s ), 1 );
if s = '' then
exit;
// Remove line feeds
i := pos( #10, s );
while i <> 0 do
begin
delete( s, i, 1 );
i := pos( #10, s );
end;
Составить ответ | Вернуться на конференцию
Ответы
- да вот... - nestandart (22.08.2010, 03:54:36 92.74.175.2, 236 байт)
- В общем случае он не выводит "букву". Он дает указатель на буфер с принятыми данными и количество данных в этом буфере. А вот этот буфер с данными уже нужно обработать... - Гудвин (22.08.2010, 04:11:38 78.138.170.164, 549 байт)
- получилось! :) - nestandart (22.08.2010, 04:47:50 92.74.175.2, пустое)
- Ну и еще немного о механизме работы компонента с принимаемыеми данными (для ясности): - Гудвин (22.08.2010, 04:31:47 78.138.170.164, 941 байт)
- зацепить из Дельфи API по примеру ровно столько же сил сколько компанент... Но API - это К.Маркс и Ф.Энгельс, а компонент чей-то - это адвокатишко кончивший Казанский университет.... возможно, с головой набитой ошибками... Которые вылезут в самый неудобный момент... - basilmak (22.08.2010, 12:06:37 89.191.241.237, пустое)
- Ответ: я пользуюсь Comport Library by Dejan Crnila , там реализована и пакетная обработка, указывается символ начала , конца или длины пакета... - aha (22.08.2010, 10:49:54 192.168.1.36,212.193.134.82, пустое)
- у меня пакеты предпологаются по 128 байт. но это уже потом посмотрю... - nestandart (22.08.2010, 04:49:10 92.74.175.2, пустое)