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

Вниз

Com port + TBits   Найти похожие ветки 

 
Sheriff   (2002-12-20 08:42) [0]

Здравствуйте! Проблема в следующем:
есть структура TBits, она заполняется и отправляется в порт
var
Buf1: TBits;
begin
Buf1:=TBits.Create;
Buf1.Size:=80;
...
заполнение
...

if CPort1.Write(Buf1,sizeOf(Buf1))>0 then
Memo1.Lines.Add(IntToStr(bt));
Buf1.Free;
end;

на приемной стороне:
var Buf: Byte;
begin
while CPort1.Read(Buf,sizeOf(Buf))>0 do begin
//перевод байта в двоичное представление
Memo1.Lines.Add(DecToBin(Buf,8));
end;
end;

Несовпадают отправленная принятая информация.
Вот и вопрос: как реально отправляется в порт структура TBits и стоит ли вообще связываться с TBits? Может может проще работать с массивом байт?
Спасибо.


 
Digitman ©   (2002-12-20 08:49) [1]

Отправляешь ты не собственно данные, хранимые объектом TBits, а адрес объекта класса TBits в памяти.

И - что есть в дан.случае CPort1 ?


 
Digitman ©   (2002-12-20 08:50) [2]

TBits - это не структура ! Это класс !


 
Sheriff   (2002-12-20 09:08) [3]

Извиняюсь за расхлябанность в терминах.
Нужно объявлять указатель на TBits? PBits = ^TBits, а затем работать с ним?
CPort1: TComPort;
procedure TForm1.CPort1RxChar(Sender: TObject; Count: Integer);
var Buf: Byte;
begin
while CPort1.Read(Buf,sizeOf(Buf))>0 do begin
Memo1.Lines.Add(DecToBin(Buf,8));
end;
end;


 
Digitman ©   (2002-12-20 09:41) [4]

Не пойдет TBits для этой цели. Нет у этого класса свойств/методов доступа к данным.

Используй, например

var

buf: array[...] of Byte;



 
Sheriff   (2002-12-20 09:44) [5]

buf: array[0..8] of Byte;
Это уже работает.
Хотелось поэлегантней изголиться. ;) Впрочем, читать с порта все равно придется байтами.
Большое спасибо.


 
Digitman ©   (2002-12-20 10:11) [6]

Конкретно с TBits "поэлегантней" не получится
Хотя ничто не мешает тебе взять исходники класса за основу и чуть-чуть доработать их в части опубликования св-ва, возвращающего значение поля FBits




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

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

Наверх




Память: 0.47 MB
Время: 0.011 c
8-63693
vilfred
2002-11-07 17:51
2003.02.20
как сохранить видео-фрейм в bmp?


8-63690
Anar
2002-10-26 23:29
2003.02.20
Несколько музыкальных файлов в один


6-63719
APTEMKA
2003-01-01 16:07
2003.02.20
Какое ИМЯ ПОЛЬЗОВАТЕЛЯ в стандартной звонилке сейчас активно?


3-63479
Андрю-ХА!
2003-02-04 16:37
2003.02.20
Транспонирование набора данных


1-63644
_saha_
2003-02-11 19:30
2003.02.20
потоки