![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго всем времени суток!
В среде Ардуино ИДЕ для вышеозвученной железяки был написан скетч: Код:
#include <ESP8266WiFi.h> #include <WiFiUdp.h> const char *ssid = "ESP-007.1"; unsigned int localPort = 8086; // local port to listen on // buffers for receiving and sending data char packetBuffer[UDP_TX_PACKET_MAX_SIZE + 1]; //buffer to hold incoming packet, работает (обменивается сообщениями и т. д.) за исключением того, что к Точке Доступа (ESP-007.1) приходится подключаться вручную (силами Винды) и тут: ВНИМАНИЕ - центральный вопрос темы: как законнектиться с нею (ТД or AP) силами Delphi???? Имею на вооружении такое: (опять е...у - господа админы/модеры, это - Ваш "минус": почему нельзя вместо ссылки показать скриншот того о чём идёт речь?): https://yadi.sk/i/m155vx3L1NEHgQ - как в ВиФиСканере заюзать WlanConnect (точнее:_) как правильно заполнить структуру WLAN_CONNECTION_PARAMETERS? В частности её мембера ucSSID?) А то получаю Acces violation... Код:
procedure TForm1.btWifiConnectClick(Sender: TObject);
var
ConPrms : Tndu_WLAN_CONNECTION_PARAMETERS;
profile, s: string;
mySSID: Pndu_DOT11_SSID;
uchSSID: array[0..NDU_DOT11_SSID_MAX_LENGTH - 1] of uchar;
i: integer;
u: ulong;
begin
s:= edSSID.Text;{"ESP-007.1}
for I := 0 to High(uchSSID) do
uchSSID[i]:= 0;
for I := 1 to Length(s) +1 do
uchSSID[i-1]:= ord(s[i]);
profile:= '<?xml version="1.0"?><WLANProfile xmlns="http://www.microsoft.com/networking/WLAN/profile/v1">' +
'<name>{0}</name><SSIDConfig><SSID><name>{0}</name></SSID></SSIDConfig><connectionType>ESS</connectionType>' +
'<connectionMode>manual</connectionMode><autoSwitch>false</autoSwitch><MSM><security><authEncryption>' +
'<authentication>WPA2PSK</authentication><encryption>AES</encryption><useOneX>false</useOneX></authEncryption>' +
'<sharedKey><keyType>passPhrase</keyType><protected>false</protected><keyMaterial>{1}</keyMaterial></sharedKey>' +
'<keyIndex>0</keyIndex></security></MSM></WLANProfile>';
u:= Length(s);
mySSID.uSSIDLength:= u;
mySSID.ucSSID:= uchSSID;// Вот тут: НЕСООТВЕТСТВИЕ!!! типов
ConPrms.strProfile := PWChar(profile);
ConPrms.pDot11Ssid := mySSID;
// Windows XP: pDesiredBssidList member must be NULL.
ConPrms.pDesiredBssidList := NIL;
ConPrms.dot11BssType := dot11_BSS_type_any;
// Windows XP: dwFlags must be set to 0
ConPrms.dwFlags := 0;
if WlanConnect(Gwifihandle, pIfaceGuid, @ConPrms, nil) = ERROR_SUCCESS then//Gwifihandle = Глобальный хэндл сессии, что возвращает ф-ция Скан,
//pIfaceGuid = опять же Скан указывает на: Беспроводной сетевой USB-адаптер N 150 D-Link DWA-125 (версия B) - эти парам-тры: оба О,К
showmessage('Вродь как подключено') else;
showmessage('Дулю тебе, а не ВайФай');
end;а по насущной проблеме := nil Обчем буду благодарен за любую подсказку: в какую сторону копать... Последний раз редактировалось UFO 007, 10.10.2020 в 16:06. |