Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Программная инженерия > Компьютерное железо
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2011, 23:58   #11
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

Цитата:
Сообщение от Ulex Посмотреть сообщение
А зачем их вообще замыкать?

Итак, для начала берёте программу под названием HyperTerminal, настраиваете на ваш порт, отправляете красивые байты и видите красивую картинку. Один байт отправлен, один байт на картинке.

- -как? И всё это в одном байте? Что такое это ваша решётка (#).
)) это так в паскале символ зовется (а точнее его номер в аски), ничего другого сказать не могу, только в этом формате могу передать:

Buf:=#255;
ToWrite:=length(Buf)+1;
WriteFile(port,Buf^,ToWrite,nWrite, nil);


ГиперТерминал это тот что с Виндой?
на нем попробовал- он чег то тупит (или я)) . как там отправить просто байт? он файл хочет! но и файл отпраляю - он вешается, а потом, как ни в чем не бывало , дальше молчит (порт он увидел и подключился)
Велкам! :D http://radiomedtech.ucoz.ru

Последний раз редактировалось 100GRamm; 22.03.2011 в 00:06.
100GRamm вне форума Ответить с цитированием
Старый 22.03.2011, 00:04   #12
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
ToWrite:=length(Buf)+1;
И зачем +1?

Цитата:
ГиперТерминал это тот что с Виндой?
на нем попробовал- он чег то тупит (или я)) . как там отправить просто байт? он файл хочет! но и файл отпраляю - он вешается
Аппаратный протокол управления потоком RTS/CTS
(Hardware Flow Control) использует сигнал CTS, который поз-
воляет остановить передачу данных, если приемник не готов
к их приему. Вот именно он в гипер-терминале и включен по умолчанию. Выключите.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru

Последний раз редактировалось Ulex; 22.03.2011 в 00:14.
Ulex вне форума Ответить с цитированием
Старый 22.03.2011, 00:08   #13
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

Заикнул 3 и 2 чтоб картинка красивая была, иначе там страшно очень (без нагрузки, просто, видать не хочет)
Велкам! :D http://radiomedtech.ucoz.ru
100GRamm вне форума Ответить с цитированием
Старый 22.03.2011, 00:10   #14
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

Цитата:
Сообщение от Ulex Посмотреть сообщение
И зачем +1?
Хороший вопрос не знаю, думается для размерности буфера...нет?

Если убираю - программа висит а на осцилограф ничего не идет
Велкам! :D http://radiomedtech.ucoz.ru

Последний раз редактировалось 100GRamm; 22.03.2011 в 00:13.
100GRamm вне форума Ответить с цитированием
Старый 22.03.2011, 00:23   #15
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

При создании подключения в ГиперТерминале отключил управление потоком и он начал передавать данные!!! Но шняга осталась((

хотя нет ! это я отправил "m"
m - это #109, ни че не понял
выходит, чего то я не правильно у себя в проге творю
Изображения
Тип файла: jpg m.jpg (20.7 Кб, 24 просмотров)
Велкам! :D http://radiomedtech.ucoz.ru

Последний раз редактировалось 100GRamm; 22.03.2011 в 00:40.
100GRamm вне форума Ответить с цитированием
Старый 22.03.2011, 00:46   #16
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

hPort := CreateFile(pchar(self.ComboBox1.Tex t{\\.\COM25}),GENERIC_WRITE,0,nil,O PEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,0);
if hPort=INVALID_HANDLE_VALUE then memo1.Lines.Add('Ошибка подключения')
else memo1.Lines.Add('Подключился');
GetCommState(hPort, DCB);
DCB.BaudRate:=strtoint(self.ComboBo x2.Text{9600});
DCB.Parity:=NoParity;
DCB.ByteSize:=strtoint(cb3.Text); {8}
DCB.StopBits:=strtoint(cb4.Text); {0}
SetCommState(hPort, DCB);

GetCommTimeouts(hPort, CommTimeouts);
CommTimeouts.ReadIntervalTimeout :=MAXDWORD;
CommTimeouts.ReadTotalTimeoutMultip lier := 0;
CommTimeouts.ReadTotalTimeoutConsta nt := 0;
CommTimeouts.WriteTotalTimeoutMulti plier := 0;
CommTimeouts.WriteTotalTimeoutConst ant := 0;
SetCommTimeouts(hPort, CommTimeouts);
Велкам! :D http://radiomedtech.ucoz.ru
100GRamm вне форума Ответить с цитированием
Старый 22.03.2011, 00:52   #17
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

Все верно, это просто я туплю)))
Buf:=#255+#255;

и всё красиво!
Правда, получается что полюбому посылается два байта?

а как один байт послать?

Гы! байт у меня какой-то резиновый ("Далее #256... #280") )))))
Изображения
Тип файла: jpg 7.jpg (21.3 Кб, 28 просмотров)
Велкам! :D http://radiomedtech.ucoz.ru

Последний раз редактировалось 100GRamm; 22.03.2011 в 01:05.
100GRamm вне форума Ответить с цитированием
Старый 22.03.2011, 01:05   #18
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
а как один байт послать?
Очевидно так:

ToWrite:=1;
WriteFile(port,Buf^,ToWrite,nWrite, nil);

Т.е. должна быть переменная, которая содержит длинну пакета. А что такое PChar я без понятия, тут вам в раздел по паскалю нужно заглянуть. Как там length работает. В массиве данных могут быть впринципе любые байты, в том числе 0.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 22.03.2011, 01:11   #19
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию

Цитата:
Сообщение от Ulex Посмотреть сообщение
Очевидно так:

ToWrite:=1;
WriteFile(port,Buf^,ToWrite,nWrite, nil);

Т.е. должна быть переменная, которая содержит длинну пакета. А что такое PChar я без понятия, тут вам в раздел по паскалю нужно заглянуть. Как там length работает. В массиве данных могут быть впринципе любые байты, в том числе 0.
Точно! всё работает! Спасибо!
Я просто уже достаточно давно хотел разобраться как из под винды с портом работать (DELPHI) да всё как то не до этого было, теперь понял.
Теперь можно и с аппаратом заняться (повод нашелся), еще раз спасибо за помощь!
Велкам! :D http://radiomedtech.ucoz.ru
100GRamm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Из СОМ-порта в Excel Visp Microsoft Office Excel 1 09.11.2010 23:18
с сом порта бинарном виде alenkov Общие вопросы Delphi 2 01.10.2010 18:35
Как достучаться до занятого Сом порта Goldz60 Win Api 0 11.06.2010 04:33
Не удается настроить прерывание от СОМ-порта Diusha Паскаль, Turbo Pascal, PascalABC.NET 0 30.05.2009 12:10
считывание из СОМ(или USB) порта voron29 Общие вопросы Delphi 1 29.06.2008 13:09