<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><br class=""></div>I’ve added support for a new wifi mode ‘apclient’. This takes AP and STA mode SSIDs, and sets up as both an access point and a client.<div class=""><br class=""></div><div class="">Some caveats:</div><div class=""><br class=""></div><div class=""><ol class="MailOutline"><li class="">There seems to be a problem coming out of the mode (wifi mode off, etc). The network interfaces are not torn down correctly every time. Symptom is the client comes up, wifi shows an IP address on it, but the address is not set correctly on the ’st’ network interface. Reproducibility is random (maybe interface order related?). Not sure if this is my fault, or a bug in the framework. A 'module reset’ works around the problem ;-)<br class=""><br class=""></li><li class="">I updated Michael’s webserver, and the auto framework, to support this, but I’m not too familiar with that so might have got it wrong.<br class=""><br class=""></li><li class="">Wifi sclient style mode (scanning for known SSIDs to join without knowing the _exact_ SSID) is not currently supported. I’m not sure if this can ever be supported properly. The apclient mode works by locking the channel for both the AP and STA to be the same - if we are locked like that, how can we scan across channels?<br class=""><br class=""></li><li class="">I’m guessing that ‘wifi scan’ will be similarly restricted, when in ap or apclient modes.<br class=""><br class=""></li><li class="">This is not a router. Setting the gateway on the ’st’ interface would be trivial, but I don’t think packets can travel AP -> STA. Doing that would require source-nat, plus packet routing, etc. Routing would be easy, SNAT very nasty.</li></ol></div><div class=""><br class=""></div><div class="">It does look pretty cool, and seems to work well:</div><div class=""><br class=""></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">OVMS > network<br class="">Interface#2: ap<br class=""> IPv4: 192.168.4.1/255.255.255.0 gateway 192.168.4.1<br class=""><br class="">Interface#1: st<br class=""> IPv4: 10.x.x.x/255.255.255.0 gateway 10.x.x.x<br class=""><br class="">Interface#0: lo<br class=""> IPv4: 127.0.0.1/255.0.0.0 gateway 127.0.0.1<br class=""><br class="">DNS: 8.8.8.8 8.8.4.4<br class=""><br class=""></span></font></blockquote><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><font face="Andale Mono" class=""><span style="font-size: 14px;" class="">OVMS > wifi</span><br class=""><span style="font-size: 14px;" class="">WiFi</span><br class=""><span style="font-size: 14px;" class=""> Power: on</span><br class=""><span style="font-size: 14px;" class=""> Mode: Access-Point + Client mode</span><br class=""><br class=""><span style="font-size: 14px;" class=""> STA SSID: MY-STA-SSID</span><br class=""><span style="font-size: 14px;" class=""> MAC: re:da:ct:ed:da:ta</span><br class=""><span style="font-size: 14px;" class=""> IP: 10.x.x.x/255.255.255.0</span><br class=""><span style="font-size: 14px;" class=""> GW: 10.x.x.x</span><br class=""><br class=""><span style="font-size: 14px;" class=""> AP SSID: MY-AP-SSID</span><br class=""><span style="font-size: 14px;" class=""> MAC: da:ta:re:da:ct:ed</span><br class=""><span style="font-size: 14px;" class=""> IP: 10.x.x.x</span><br class=""><span style="font-size: 14px;" class=""> AP Stations: 1<br class=""> 1: MAC: da:ta:re:da:ct:ed, IP: 192.168.4.2</span></font></blockquote><div class=""><div><br class=""></div><div>Enjoy, Mark.</div><div><br class=""></div><div><blockquote type="cite" class=""><div class="">Begin forwarded message:</div><br class="Apple-interchange-newline"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><span style="font-family: -webkit-system-font, "Helvetica Neue", Helvetica, sans-serif;" class=""><b class="">Subject: </b></span><span style="font-family: -webkit-system-font, "Helvetica Neue", Helvetica, sans-serif;" class=""><b class="">[openvehicles/Open-Vehicle-Monitoring-System-3] ee023a: Wifi: Support APCLIENT mode (for Access-Point + Cl...</b></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif; color:rgba(0, 0, 0, 1.0);" class=""><b class="">Date: </b></span><span style="font-family: -webkit-system-font, Helvetica Neue, Helvetica, sans-serif;" class="">14 March 2018 at 11:09:21 AM HKT<br class=""></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;" class=""><br class=""></div><div class=""><div class=""> Branch: refs/heads/master<br class=""> Home: <a href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3" class="">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3</a><br class=""> Commit: ee023a5c8383901da2b190e3a42e94ad49724b07<br class=""> <a href="https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/ee023a5c8383901da2b190e3a42e94ad49724b07" class="">https://github.com/openvehicles/Open-Vehicle-Monitoring-System-3/commit/ee023a5c8383901da2b190e3a42e94ad49724b07</a><br class=""> Author: Mark Webb-Johnson <<a href="mailto:mark@webb-johnson.net" class="">mark@webb-johnson.net</a>><br class=""> Date: 2018-03-14 (Wed, 14 Mar 2018)<br class=""><br class=""> Changed paths:<br class=""> M vehicle/OVMS.V3/changes.txt<br class=""> M vehicle/OVMS.V3/components/esp32wifi/src/esp32wifi.cpp<br class=""> M vehicle/OVMS.V3/components/esp32wifi/src/esp32wifi.h<br class=""> M vehicle/OVMS.V3/components/ovms_webserver/src/web_cfg.cpp<br class=""><br class=""> Log Message:<br class=""> -----------<br class=""> Wifi: Support APCLIENT mode (for Access-Point + Client)<br class=""><br class=""><br class=""></div></div></blockquote></div><br class=""></div></body></html>