Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.02.2013, 17:14
Dzman Dzman вне форума
Прохожий
 
Регистрация: 29.01.2013
Сообщения: 9
Репутация: 10
По умолчанию Изменение кодировки в Builder & error 10060 & error 10057.

Я делаю проект на управление оборудованием через модуль Ethernet Jerome и столкнулся с рядом проблем:
1)Кодировка сообщений которые приходят с модуля.
как приходит:

как должно приходить:

проблема именно в Buider'e 2009 т.к в Borland Delphi 7 такой проблемы нет, но чисто эстетически мне нравится Bulder.
2)После подключения примерно через 15-20 секунд выводится ошибка:
Error 10060

искал в интернете решение проблемы, нашел только смутное объяснение о том , что программа превысила время данное ей на ответ.
3)Если я подключился к модулю каким либо образом (через браузер/стандартный терминал/свою программу) то на попытку подключиться к ней через мою программу снова выскакивает ошибки:

или
http://s1.ipicture.ru/uploads/20130208/C6qFwDJE.jpg
но при этом я могу подключиться к модулю через браузер или стандартный терминал и ошибки не выскакивают.

Код:
procedure TForm1.B1Click(Sender: TObject);
begin
CS1.Socket.SendText('$KE,PSW,SET,Jerome'+#13+#10);
end;

procedure TForm1.B2Click(Sender: TObject);
begin
CS1.Socket.SendText('$KE'+#13+#10);
end;

procedure TForm1.CS1Connect(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add('Connect');
end;

procedure TForm1.CS1Read(Sender: TObject; Socket: TCustomWinSocket);
begin
Memo1.Lines.Add(CS1.Socket.ReceiveText);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CS1.Close;
CS1.Active:=False;
CS1.Destroy;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear;
CS1.Active:=True;
CS1.Open;
end;

procedure TForm1.N1Click(Sender: TObject);
begin
CS1.Socket.SendText('$KE,WR,1,0'+#13+#10);
end;

procedure TForm1.N2Click(Sender: TObject);
begin
CS1.Socket.SendText('$KE,WR,1,1'+#13+#10);
end;

end.

Последний раз редактировалось Dzman, 09.02.2013 в 11:33.
Ответить с цитированием
  #2  
Старый 08.02.2013, 21:56
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Скорее всего первое - это все та же ошибка D2009 и выше: String стало синонимом WideString. Попробуй в коде заменить все String на AnsiString.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 08.02.2013, 22:56
Dzman Dzman вне форума
Прохожий
 
Регистрация: 29.01.2013
Сообщения: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от Bargest
Скорее всего первое - это все та же ошибка D2009 и выше: String стало синонимом WideString. Попробуй в коде заменить все String на AnsiString.

не помогло

Реализовал:
Код:
procedure TForm1.CS1Read(Sender: TObject; Socket: TCustomWinSocket);
var S: AnsiString;
begin
S:='';
S:= CS1.Socket.ReceiveText;
Memo1.Lines.Add(S);
end;
Итог:
Ответить с цитированием
  #4  
Старый 08.02.2013, 23:43
Dzman Dzman вне форума
Прохожий
 
Регистрация: 29.01.2013
Сообщения: 9
Репутация: 10
По умолчанию

вторая проблема:
вроде бы решил, но убого
решил выключать и включать ClientSocket каждые 15 секунд.
ошибка все равно есть, но программа после ошибки продолжает работать.

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
m:=m+1;
f:=m Mod 16;
if f=15 then
begin
CS1.Active:=False;
end;

if f=1 then
begin
CS1.Active:=True
end;

end;

Последний раз редактировалось Dzman, 08.02.2013 в 23:49.
Ответить с цитированием
  #5  
Старый 09.02.2013, 11:10
Dzman Dzman вне форума
Прохожий
 
Регистрация: 29.01.2013
Сообщения: 9
Репутация: 10
По умолчанию

решение второй проблемы:
1)модифицировал ClientSocket, закомментировал строку, которая выводила ошибки отдельными сообщениями.
2)в событие "Error" добавил подключение.
Это по-быдловски и у меня потом могут быть какие-нибудь проблемы?

Программа больше не выдает ошибку: 10060.

версия без error 10060: V.3. опа и остальных ошибок нету, шикарно.))

Тема больше не актуальна, буду писать в Delphi 7.

Последний раз редактировалось Dzman, 09.02.2013 в 13:34.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 03:43.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter