Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
ВнизCom Port Найти похожие ветки
← →
pavel_guzhanov (2004-07-19 11:38) [0]Народ, подскажите, никак не могу понять, как надо правильно сделать... Программа посылает запрос в компорт, к которому подключено устройство. По запросу устройство должно выдавать, что у него находится на определенном входе (номер входа завистит от запроса). Делаю так:
var
Запрос в порт вроде уходит нормально, по крайней мере размер возвращает нормально, а вот с ответом из порта проблема: Массив Buffer пустой, т.е. 16 значений #0. Подскажите, что я делаю не так.
buf:array[0..3] of Char; //запрос к ком порту
Buffer:array[0..15] of Char; //ответ кромпорта
Command:String;// строка запроса
Total:Dword;
RecivedStr:String;
begin
Total:=0;
// Отправка запроса в порт
Counter:=Counter+1;
if Counter=(StrToInt(LinesTotal.Text)+1) then Counter:=1;
Command:="#02"+IntToStr(Counter-1);
StrPCopy(Buf, Command);
WriteFile(h, Buf, StrLen(Buf), Total, nil);
ReadFile(h, Buffer, 15, Total, nil);
// То, что пришло в компорт
RecivedStr:=String(Buffer);
.....
end;
← →
Reindeer Moss Eater © (2004-07-19 11:55) [1]ReadFile - функция
← →
pavel_guzhanov (2004-07-19 12:00) [2]и что?
← →
Reindeer Moss Eater © (2004-07-19 12:03) [3]А то, что она результат возвращает.
← →
pavel_guzhanov (2004-07-19 12:06) [4]сделал так:
RecivedStr:=ReadFile(h, Buffer, 15, Total, nil);
то же самое, RecivedStr=""
← →
Reindeer Moss Eater © (2004-07-19 12:12) [5]сделал так:
И что. ?
Syntax
BOOL ReadFile(HANDLE hFile, LPVOID lpBuffer, DWORD NumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped)
← →
pavel_guzhanov (2004-07-19 12:17) [6]хорошо, понятно, функция вернула true, но в вопрсе, как мне прочитать то, что пришло в порт, ясности не добавилось
← →
Reindeer Moss Eater © (2004-07-19 12:20) [7]Если она вернула True, то а предпоследнем параметре лежит прочитанное функцией количество байт.
← →
pavel_guzhanov (2004-07-19 12:28) [8]это я понимаю, только мне нужно не количество байт, а строка, которая пришла в порт
← →
Reindeer Moss Eater © (2004-07-19 12:33) [9]А мне нужно что бы был мир во всем мире.
И что?
← →
Reindeer Moss Eater © (2004-07-19 12:33) [10]Ты вообще анализируешь результаты чтения или нет?
← →
pavel_guzhanov (2004-07-19 12:34) [11]Удалено модератором
Примечание: 7 дней RO за мат
← →
Reindeer Moss Eater © (2004-07-19 12:34) [12]Ой.
Щас заплачу от обиды.
← →
Reindeer Moss Eater © (2004-07-19 12:35) [13]"Наберут детей в армию"
← →
Анонимщик © (2004-07-19 13:25) [14]pavel_guzhanov
Не ругайся. Посмотри, какой результат функция возвращает, т.е. сколько байт прочитано. Видимо, 0 (нисколько). Поэтому и нулям в массиве удивляться нечего.
← →
AndrewVolkov © (2004-07-19 20:12) [15]Ругаться это ты зря
pavel_guzhanov
ну лениво ему отвечать - он и не обязан.
Кстати Ком порт не такой и быстрый, плюс ко всему устройство с другой стороны еще и ответить должно, а у тебя прога записала данные в порт и сразу считала, а там скорее всего еще пусто.
На этом сайте в разделе статьи помойму была статейка работы с ком портом. Там чтение запускалось в отдельном потоке - почитай. Из кома лучше в отдельном потоке читать. Лично мне так удобнее...
← →
jack128 © (2004-07-19 21:12) [16]
> ну лениво ему отвечать - он и не обязан.
Ну не знаю. По моему RME сделал намеки толщиной с ногу слона. Что б не обратить на них внимания - это надо очень постараться
← →
AndrewVolkov © (2004-07-19 22:51) [17]to jack128
смотря на код, мне кажется, человек только пытается разобраться что к чему и особо не въезжает в происходящее. Код помойму взят просто из какого-то примера, отсюда и куча непоняток. Основы нет от которой отталкиваться, чтобы понять намеки.
← →
Sky Knight © (2004-07-20 04:28) [18]Насчет COM-порта. Я в свое время юзал библиотеку компонентов, она называется СPort. Ну ОООЧЕНЬ удобная, должен сказать. Полностью обеспечивает работу с COM-портами, имеет даже индикаторы (вроде тех, что на модеме), отображающие состояние порта. И - все на высоком уровне, не надо разбираться со всякими файлами, буферами и т.д. Рекомендую.
Sky Knight
← →
pavel_guzhanov (2004-07-20 10:23) [19]Удалено модератором
Примечание: Модераторы к твоему мнению прислушались, только несовпадение по пункту кто умник и кого нельзя пускать в форум
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.033 c