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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2011, 03:14   #1
KopfSchuss
Новичок
Джуниор
 
Регистрация: 26.04.2011
Сообщений: 3
Восклицание Проблема с отправкой строки в com-порт. Delphi

Здравствуйте, столкнулся с такой проблемой. Мне нужно передать строку на ком-порт. Но на порт приходит всякая кракозябра, вместо той строки что я отправляю.

Код:
var
 Command: string;
 TempXml: TXMLDocument;
 root: IXMLNode;
 com_param: IXMLNode;
 dwWrite: DWORD;
 OverWrite: TOverlapped;
 ComReadThead: WaitComData;

 buf: Pchar;
 menu: tmenuitem;
 begin
  //messagebox(0, PAnsiChar((Sender as TMenuItem).Caption), 'com', MB_OK );
  menu:=(Sender as TMenuItem);
  Command:=menu.Hint;
  TempXml := TXMLDocument.Create(Application);
  TempXml.Active := true;
  form1.Caption:=command;
  TempXml.LoadFromFile(ExtractFilePath(Application.ExeName)+'command_library\'+Command+'.xml');

  
  root := TempXml.ChildNodes.Nodes['command'];//Получаем корень командного файла
  com_param:=root.ChildNodes.Nodes['title'];//Узнаем заголовок команды
  
  buf:=pchar(Command);
  OverWrite.hEvent := CreateEvent(nil, True, False, nil);
  WriteFile(hPort, buf, sizeof(buf), dwWrite, @OverWrite);
  Memo1.Text:=Memo1.Text+com_param.Text;
    form1.MemoSeparator;
  ComReadThead := WaitComData.Create(True);
  ComReadThead.FreeOnTerminate := True;
  ComReadThead.xml_file:=Command+'.xml';
  ComReadThead.Resume;
 end;
Поскольку меню создается динамически для каждой строковой команды, текст команды берется из свойства Hint вызвавшего обработчик меню.

Пожалуйста , скажите где у меня ошибка?
KopfSchuss вне форума Ответить с цитированием
Старый 26.04.2011, 08:21   #2
Азамат Казанчев
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 110
По умолчанию

тебе строку послать надо или ат команды, в чем задача вообще?
Азамат Казанчев вне форума Ответить с цитированием
Старый 26.04.2011, 10:44   #3
KopfSchuss
Новичок
Джуниор
 
Регистрация: 26.04.2011
Сообщений: 3
Смущение

Вообще, AT-команду. но я думал что АТ-команда это тоже строка.
KopfSchuss вне форума Ответить с цитированием
Старый 26.04.2011, 11:01   #4
Азамат Казанчев
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 110
По умолчанию

посылай ат- команду, да и строку, по 1 символу(заранее переведеную в аски код, я так делал и работало
Азамат Казанчев вне форума Ответить с цитированием
Старый 26.04.2011, 16:44   #5
KopfSchuss
Новичок
Джуниор
 
Регистрация: 26.04.2011
Сообщений: 3
По умолчанию

Спасибо, помогло
KopfSchuss вне форума Ответить с цитированием
Старый 26.04.2011, 20:54   #6
Азамат Казанчев
Форумчанин
 
Регистрация: 25.04.2011
Сообщений: 110
По умолчанию

всегда пожалуйста, обращайся если что
Азамат Казанчев вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с отправкой почты WinMen Общие вопросы Delphi 12 28.12.2010 13:00
Проблема с отправкой почты. DeDoK Работа с сетью в Delphi 0 12.12.2010 19:05
Проблема с отправкой текста через tclientsocket (delphi) v2.0 dyonysos Работа с сетью в Delphi 18 08.09.2009 23:20
Проблема с отправкой текста через tclientsocket (delphi) dyonysos Помощь студентам 1 30.08.2009 20:37