Последние записи
- Сделать авторизацию пользователя в программе
- Сделать границы компонента edit – жирными?
- Как настроить адрес без указания на index.php?
- Чтение из Excel и валидация. Можно ли как-то ускорить данный процесс?
- Загрузить файл из папки с программой
- Компьютеры для бухгалтера и дизайнера. В чём разница?
- Удалить все повторения в строке
- Как в treeview узнать индекс узла по которому был click?
- Исходник программы «азбука Морзе»
- Рассылка. Выпуск 139
6th
Сен
Работа с com портом
Posted by Chas under Пост-обзор
Есть прибор, который подключаеться через com порт к компьютеру. Протокол обмена известен. Как отправить ему 16 ричное значение и как прочитать такое значение от него?
код:
var RX_Count : cardinal;
TempArray: array[1..255] of Byte;
Count : Integer;
begin
result:= ”;
ReadFile(Com, TempArray, 255, RX_Count, nil);
for Count:= 1 to RX_Count do result:= result + Chr(TempArray[Count])
end;
procedure sendcom(s: string);
var TempArray: array[1..255] of Byte;
Count : Integer;
TX_Count : cardinal;
begin
for Count:= 1 to Length(S) do TempArray[Count]:= Ord(S[Count]);
WriteFile(Com, TempArray,Length(S),TX_Count,nil)
end;
// или если компонентом пользуешся
type tb = array[1..255] of Char; //Определяем символьный массив
pb = ^tb;
procedure Tmf.comReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var PX : pb;
i : integer;
str: string;
begin
PX:= buffer; str:=”;
for i:= 1 to BufferLength do
str:=str+PX^;
packet(str)
end;
