Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> опять com порты, работа с портами 
:(
    Опции темы
СЭНСЭЙ
Дата 17.7.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



в который раз пытаюсь наладить работу с ком портами.
Вроди бы простая штука а столько проблем.
Решил попробовать следующий код
Код

function InPort(PortAddr:word): byte;
{$IFDEF WIN32}
assembler; stdcall;
asm
        mov dx,PortAddr
        in al,dx
end;
{$ELSE}
begin
  Result := Port[PortAddr];
end;
{$ENDIF}

procedure OutPort(PortAddr:  
          word; Databyte: byte);
{$IFDEF WIN32}
assembler; stdcall;
asm
   mov al,Databyte
   mov dx,PortAddr
   out dx,al
end;
{$ELSE}
begin
  Port[PortAddr] := DataByte;
end;
{$ENDIF} 


вопрос - как указывать здесь ком порт?
я так понимаю PortAddr это адрес порта процессора?
PM MAIL   Вверх
СЭНСЭЙ
Дата 17.7.2009, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Еще пробовал использовать компонент Comm32 из книги Флеонова.
Соединил два порта нульмодемным кабелем.
Поместил на форму два компонента для каждого порта.
В один пишу а второй слушаю.
Но почему то посланные данные на один порт на втором не поступают.
Помогите кто нибудь.
PM MAIL   Вверх
bems
Дата 17.7.2009, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



про in забудь


--------------------
Обижено школьников: 8
PM MAIL   Вверх
kami
Дата 17.7.2009, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(СЭНСЭЙ @  17.7.2009,  18:34 Найти цитируемый пост)
Помогите кто нибудь.

Чем? протолкнуть данные от одного порта к другому? smile 
Где выдержки из неработающего кода, описание сделанных настроек компонентов для работы с COM-портом?
Цитата(СЭНСЭЙ @  17.7.2009,  18:34 Найти цитируемый пост)
использовать компонент Comm32 из книги Флеонова

Это когда Фленовы-Фараоновы стали писать свои компоненты?  smile 

Это сообщение отредактировал(а) kami - 17.7.2009, 18:38
PM MAIL WWW   Вверх
Alexeis
Дата 17.7.2009, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



СЭНСЭЙ, на самом деле в разделе WinApi есть куча компонентов и примеров. Я сам пробовал, работает нормально. Только доступ к ком порту нужно осуществлять через WinApi и забыть про команды ОС реального времени типа MSDOS.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
СЭНСЭЙ
Дата 18.7.2009, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Цитата(kami @ 17.7.2009,  18:38)
Чем? протолкнуть данные от одного порта к другому? girl_crazy 


Ты что? Блондинка?

Добавлено через 5 минут и 44 секунды
Цитата(kami @ 17.7.2009,  18:38)
Где выдержки из неработающего кода, описание сделанных 

Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Comm32, StdCtrls;

type
  TForm1 = class(TForm)
    Comm321: TComm32;
    Button1: TButton;
    Edit1: TEdit;
    Button2: TButton;
    Button3: TButton;
    Comm322: TComm32;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Comm322ReceiveData(Buffer: Pointer; BufferLength: Word);
    procedure Comm321ReceiveData(Buffer: Pointer; BufferLength: Word);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
comm321.BaudRate:=9600;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
comm321.StartComm;
//comm322.StartComm;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
send:string;
begin
send:='';
if inputquery('request data','sending data',send)
then
comm321.WriteCommData(PChar(send+#13#10),length(send)+2);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
comm321.StopComm;
//comm322.StopComm;
end;

procedure TForm1.Comm322ReceiveData(Buffer: Pointer; BufferLength: Word);
var
recived:string;
begin
Recived:=PChar(Buffer);
edit1.Text:=recived;
end;

procedure TForm1.Comm321ReceiveData(Buffer: Pointer; BufferLength: Word);
var
recived:string;
begin
Recived:=PChar(Buffer);
edit1.Text:=recived;
end;

end.



как видно здесь используется компонент COMM32, который Фленов конечно же не писал, а всего лишь
продемонстрировал его использование в своей книге "Делфи глазами хакера", и к книге прилагал
дополненный и улучшеный им компонент COMM32. На сколько я понимаю этот компонент
как раз и использует функции WinApi
comm321 настроен как СОМ1
а comm322 как СОМ2

Ошибок в этом коде не возникает но почему то данные посланные с одного порта на втором не принимаются.
Два порта соединены нульмодемным кабелем.
PM MAIL   Вверх
kami
Дата 18.7.2009, 12:40 (ссылка) |   (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(СЭНСЭЙ @  18.7.2009,  11:19 Найти цитируемый пост)
Ты что? Блондинка?

Нет. БлондинкО.
А чего ты ожидал после фразы "у меня не работает программа с Comm32, в чем может быть дело"? (утрирую, конечно, но суть передал).
А второй ком32 подключен к порту, или висит мертвым грузом, чего-то ожидая? (на кнопке button1 его активация закомментирована)

Добавлено через 3 минуты и 36 секунд
Цитата(СЭНСЭЙ @  18.7.2009,  11:19 Найти цитируемый пост)
продемонстрировал его использование в своей книге "Делфи глазами хакера"

Сжечь с соблюдением обрядов черной магии. Не оффтоп и не шутка.
PM MAIL WWW   Вверх
Keeper89
Дата 18.7.2009, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 20
Всего: 58



Цитата(kami @  18.7.2009,  13:40 Найти цитируемый пост)
Сжечь с соблюдением обрядов черной магии. Не оффтоп и не шутка. 

за что ж ты так бедного Фленова )) ну пишет он "пацанские" книжки с крутым словом "хакер" на обложке... может он так молодежь хочет приобщить в программированию smile

СЭНСЭЙ, вот несколько ссылок для прочтения:
http://www.delphisources.ru/pages/faq/base/what_is_port.html
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=388
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=389
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=390
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=399
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=406



--------------------
PM MAIL WWW   Вверх
kami
Дата 18.7.2009, 16:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72




Модератор: Сообщение скрыто.

PM MAIL WWW   Вверх
Christoph
Дата 19.7.2009, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 667
Регистрация: 23.1.2008
Где: Харьков

Репутация: 1
Всего: 11



BCPort есть помоему такой компонент...скачай с инета архив и там примеров куча, а там если что изменишь что то  smile 


--------------------
user posted image
PM MAIL ICQ   Вверх
СЭНСЭЙ
Дата 20.7.2009, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Цитата(kami @ 18.7.2009,  12:40)
А чего ты ожидал после фразы "у меня не работает программа с Comm32, в чем может быть дело"? (утрирую, конечно, но суть передал).
А второй ком32 подключен к порту, или висит мертвым грузом, чего-то ожидая? (на кнопке button1 его активация закомментирована)

просто это вопрос тем кто с этой компонентой сталкивался и имеет опыт
или тем кто может помочь разобраться а не критиковать постановку вопроса так,
как будто это главная цель прибывания на форуме

Добавлено через 1 минуту и 39 секунд
ошибся малеха.
второй порт раскомментирован и тоже включается
это я комментил что бы сторонней программой сканить второй порт

Добавлено через 8 минут и 27 секунд
Keeper89 , спасибо
согласен что содержание книги не соответствует названию,
но все же там есть и другие работающие примеры которые я проверял лично.

спасибо за ссылки, но я уже такого много читал и WinApi шные функции для 
СОМ порта юзать пробовал
но ничего не получалось все равно.
Попробую еще раз сейчас.
Кстати нужно проверить работают ли оба порта.
Вот еще вопрос - можно ли програмно проверить не выгорел ли ком порт?
PM MAIL   Вверх
kami
Дата 20.7.2009, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 23
Всего: 72



Цитата(СЭНСЭЙ @  20.7.2009,  09:45 Найти цитируемый пост)
а не критиковать постановку вопроса так,как будто это главная цель прибывания на форуме

Проблем неработоспособности программы может быть море. Телепаторы не справятся с такой слишком обобщенной постановкой вопроса, которая прозвучала в первом посте.
Цитата(СЭНСЭЙ @  20.7.2009,  09:45 Найти цитируемый пост)
просто это вопрос тем кто с этой компонентой сталкивался и имеет опыт

Все компоненты, которые работают с COM-портами по сути своей однотипны и отличаются по большому счету только названиями методов и свойств.

Цитата(СЭНСЭЙ @  20.7.2009,  09:45 Найти цитируемый пост)
Вот еще вопрос - можно ли програмно проверить не выгорел ли ком порт?

Подключиться к нему гипертерминалом, а в первый отсылать что-нибудь.
PM MAIL WWW   Вверх
СЭНСЭЙ
Дата 20.7.2009, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Цитата(kami @ 20.7.2009,  12:35)
Подключиться к нему гипертерминалом, а в первый отсылать что-нибудь.

Оооо! Сейчас попробую!
PM MAIL   Вверх
СЭНСЭЙ
Дата 20.7.2009, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 432
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



что то ничего не получилось
создал два соединения в гипертерминале
один для СОМ1 а другой для СОМ2
в одном посылаю файл текстовый а во втором принимаю
вобщем одни сбои соединения

PM MAIL   Вверх
Romikgy
Дата 22.7.2009, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



может нуль модем не полный .... юзай програмное управление потоком


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0678 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.