Форум: "Система";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
ВнизТоже com ??? Найти похожие ветки
← →
AndrewVolkov (2003-07-10 20:23) [0]Никогда ниче под енто не писал. Представления имею мало.
Почитал две статьи на этом сайте.
Единственное не совсем понял такую вещь.
В доке к устройству написано
# Escape code
..
..
#FC1# Change to font 1
Имея статью с сайта, где
KolByte:=1;
Transmit[0]:=chr(A);
WriteFile(CommHandle,Transmit,KolByte,KolByte,@Ovr);
Заполняете KolByte количеством символов в строке, а вместо массива Transmite используем строковый тип, только не в паскалевском формате, а в PChar
Если я хочу послать команду #FC1#
ее надо в Хексы переделывать, или надо
Var
( CommHandle,Dest,???,???,@Ovr) Никогда ниче под енто не писал. Представления имею мало.
Почитал две статьи на этом сайте.
Единственное не совсем понял такую вещь.
В доке к устройству написано
# Escape code
..
..
#FC1# Change to font 1
Имея статью с сайта, где
KolByte:=1;
Transmit[0]:=chr(A);
WriteFile(CommHandle,Transmit,KolByte,KolByte,@Ovr);
Заполняете KolByte количеством символов в строке, а вместо массива Transmite используем строковый тип, только не в паскалевском формате, а в PChar
Если я хочу послать команду #FC1#
ее надо в Хексы переделывать, или надо
Var
Dest: PChar;
begin
Dest:="#FC1#";
WriteFile(CommHandle,Dest,???,???,@Ovr);
Как то так надо или как???
← →
jack128 (2003-07-10 21:39) [1]Плохо читал статьи(либо в статье ошибка). Если Transmit - это PСhar, то нужно писать так WriteFile(CommHandle,Transmit ^,KolByte,KolByte,@Ovr);
Var
Dest: PChar;
begin
Dest:="#FC1#";
WriteFile(CommHandle,Dest ^,BytesToWrite,BytesWritten,@Ovr);
end;
Где BytesToWrite - сколько тебе нужно отослать байт, а в BytesWritten - вернут, сколько байт реально было отослано
← →
AndrewVolkov (2003-07-10 22:31) [2]А размер BytestoWrite это SizeOf(Dest)???
← →
AndrewVolkov (2003-07-10 22:32) [3]Так в хексы не надо переводить??? Или функция writefile перегоняет в хексы или все таки не надо в хекс и можно просто строкой???
← →
pasha676 (2003-07-11 10:06) [4]
> Плохо читал статьи(либо в статье ошибка). Если Transmit
> - это PСhar, то нужно писать так WriteFile(CommHandle,Transmit^,KolByte,KolByte,@Ovr);
Неа. Все правильно. PChar - это уже суть ссылка на первый элемент строки. Если же transmit представлен array of byte, то опять же все правильно. Ибо если взять просто Transmit то паскаль автоматом возьмет адрес первого элемента в массиве. Т.е. то что надо. Это точно и у меня работает в добрых 20-30 программах с различными устройствами.
> А размер BytestoWrite это SizeOf(Dest)???
Не замарачивайся, пиши там сколько байт нужно передать.
> Так в хексы не надо переводить??? Или функция writefile
> перегоняет в хексы или все таки не надо в хекс и можно просто
> строкой???
Функция ничего не перегоняет. Что нужно передавать - это надо читать описание устройства. По нему и формируешь строку или массив.
← →
AndrewVolkov (2003-07-11 10:21) [5]В описании к устройству написано
ESC+ @ - Device Reset
(1BH)+(40H), (27)+(64) decimal
Terminates processing and initializes the
default values, same as at power on.
← →
Jack128 (2003-07-11 13:04) [6]
> Ибо если взять просто Transmit то паскаль автоматом возьмет
> адрес первого элемента в массиве.
По вашему
var Transmit : PChar;
begin
WriteFile(CommHandle,Transmit^,KolByte,KolByte,@Ovr);//передаем 1 элемент массива
и
WriteFile(CommHandle,Transmit,KolByte,KolByte,@Ovr);//передаем указатель на первый элемент массива
end;
одно и тоже??
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c