|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Изменение кодировки в 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
|
||||
|
||||
Скорее всего первое - это все та же ошибка D2009 и выше: String стало синонимом WideString. Попробуй в коде заменить все String на AnsiString.
jmp $ ; Happy End! The Cake Is A Lie. |
#3
|
|||
|
|||
Цитата:
не помогло Реализовал: Код:
procedure TForm1.CS1Read(Sender: TObject; Socket: TCustomWinSocket); var S: AnsiString; begin S:=''; S:= CS1.Socket.ReceiveText; Memo1.Lines.Add(S); end; |
#4
|
|||
|
|||
вторая проблема:
вроде бы решил, но убого решил выключать и включать 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
|
|||
|
|||
решение второй проблемы:
1)модифицировал ClientSocket, закомментировал строку, которая выводила ошибки отдельными сообщениями. 2)в событие "Error" добавил подключение. Это по-быдловски и у меня потом могут быть какие-нибудь проблемы? Программа больше не выдает ошибку: 10060. версия без error 10060: V.3. опа и остальных ошибок нету, шикарно.)) Тема больше не актуальна, буду писать в Delphi 7. Последний раз редактировалось Dzman, 09.02.2013 в 13:34. |