Показать сообщение отдельно
Старый 08.02.2012, 16:40   #2
ProgrammerForever
AnyKey`щик
 
Аватар для ProgrammerForever
 
Регистрация: 08.01.2012
Адрес: Новосибирск
Сообщений: 8
Написано 3 полезных сообщений
(для 4 пользователей)
Ответ: Hex данные через com port

Хочешь видеть гипертерминалом 16ричные цифры? Так и надо переводить число в HEX-сторку, что и есть ASCII, потом дописывать (при надобности) символы "0x" и отправлять этой же функцией.
Тебе только нужно найти (или написать) функцию преобразования числа типа byte в строку, содержащую его hex-код.
Как-то так:
function Byte2Hex(n:byte;ap:string) :string;
{Функция перевода байта в 16ричное число}

{n - число для перевода в HEX вид}
{ap - строка-префикс, например '0x'}

{ProgrammerForever (c) 2012}
var
   L,H:byte;
   retval:string;
begin
   L:=n mod 16;
   H:=n div 16;

   Case L of
      0: retval:='0';
      1: retval:='1';
      2: retval:='2';
      3: retval:='3';
      4: retval:='4';
      5: retval:='5';
      6: retval:='6';
      7: retval:='7';
      8: retval:='8';
      9: retval:='9';
      10: retval:='A';
      11: retval:='B';
      12: retval:='C';
      13: retval:='D';
      14: retval:='E';
      15: retval:='F';
	end;

	Case H of
      0: retval:='0'+retval;
      1: retval:='1'+retval;
      2: retval:='2'+retval;
      3: retval:='3'+retval;
      4: retval:='4'+retval;
      5: retval:='5'+retval;
      6: retval:='6'+retval;
      7: retval:='7'+retval;
      8: retval:='8'+retval;
      9: retval:='9'+retval;
      10: retval:='A'+retval;
      11: retval:='B'+retval;
      12: retval:='C'+retval;
      13: retval:='D'+retval;
      14: retval:='E'+retval;
      15: retval:='F'+retval;
	end;

	Byte2Hex:=ap+retval;
end;

Последний раз редактировалось ProgrammerForever, 09.02.2012 в 07:06.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
S_007 (09.02.2012)