Последние записи
- Получение картинки с веб-камеры
- Скопировать определённый кусок image
- Сделать printscreen экрана и сохранить
- Написать программу, считывает с клавиатуры определенное колличество цифр, а на экран выводит сумму наибольшей цифры
- Создать системную, невидимую, только для чтения папку
- Какой яп и ide выбрать для кроссплатформенного программирования?
- Скачать html страницу в memo с помощью indy
- Как разорвать adsl соединение с интернетом?
- Как отключить/включить сетевое соединение?
- Передать состояние CheckBox
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;

