I've switched wifi and modem on and off a
couple times, it always correctly
reconfigured, with priority for wifi, and
ota flash was usable on all connections.
I'll do some road tests later on.
Michael
Am 17.03.2018
um 16:49 schrieb Mark Webb-Johnson:
I found and fixed an issue
with wifi not attempting STA
reconnections in APCLIENT mode. That
may have been the cause of some of
Greg’s issues.
Regarding Wifi and Modem co-existing, I
think this is a similar issue to what I
saw with APCLIENT. Sometimes wifi
doesn’t remove the interface. There is
also a race condition where an interface
is ‘up’, but has not yet been assigned
an IP address (as is the case with the
‘pp’ interface you show below).
I remain convinced that
the correct way to deal with this is
to bind our source address to the
preferred interface, whenever we want
to make an outgoing call. But, looking
at the mongoose library code they
simply don’t seem to offer that
option. The standard socket API does,
of course, have the bind option after
socket creation but before connect.
LWIP does, however, seem
to have an alternative: netif_set_default().
That function supposedly sets the
default interface to be used, unless
one is specified manually (presumably
by binding the socket). I think we can
have net manager use that whenever
modem/wifi comes up or goes down.
Going down that route, I
added it, but then found some messy
handling (in netmanager)
of m_connected_wifi. That would be set
if either a STA or AP wifi came up,
but that doesn’t seem right. We don’t
want to set default routes out an AP
link. So, I refactored that, and added
a separate m_wifi_ap flag in
netmanager to track AP being up/down.
Then, that introduced a problem into
MDNS as it was listening on
the network.wifi.up event (as it needs
to come up both in AP and STA modes),
so I fixed MDNS to work like the
others. I may re-visit this tomorrow,
as perhaps two new events
‘wifi.any.up’ and ‘wifi.any.down’ may
be a better way to do this (rather
than the generic network manager
messages we are using at the moment,
with the client then checking the
flags to see which one came up - wifi
or modem).
There is a new Info level
output from ‘netmanager’ to show if it
changes the default interface, and I
extended ‘network status’ to show link
status on interfaces, interface
numbers, and default interface status.
This should give us some more
visibility as to what is going on.
I haven’t managed to find
the issue with wifi AP not bringing
down interfaces correctly.
Overall, this was a fairly
large re-factor, and I am concerned
about unintended consequences. I do,
however, think that the approach is
right. I haven’t got cellular coverage
at home (almost midnight here) so
can’t test modem connections. I’ll
take it for a drive tomorrow and try
then.
This is what it looks like
for me, tonight:
OVMS > wifi mode
apclient AP STA
Starting WIFI as Access
Point and Client...
...
I (21957) wifi: mode :
sta (re:da:ct:ed:da:ta) + softAP
(al:so:re:da:ct:ed)
I (21967) events:
Signal(system.wifi.sta.start)
I (21977) events:
Signal(system.wifi.ap.start)
I (21987) esp32wifi: AP
started with SSID: STA, MAC:
al:so:re:da:ct:ed, IP:
192.168.4.1
I (21987) events:
Signal(network.mgr.init)
I (22027) ovms-mdns:
Launching MDNS service
OVMS > network
Interface#2: ap2
(ifup=1 linkup=1)
IPv4:
192.168.4.1/255.255.255.0
gateway 192.168.4.1
Interface#1: st1
(ifup=0 linkup=1)
IPv4: 0.0.0.0/0.0.0.0
gateway 0.0.0.0
Interface#0: lo0
(ifup=1 linkup=1)
IPv4:
127.0.0.1/255.0.0.0 gateway
127.0.0.1
DNS: None
Default Interface: ap2
(192.168.4.1/255.255.255.0
gateway 192.168.4.1)
...
I (24377) wifi: connected
with STA, channel 11
I (24387) events:
Signal(system.wifi.sta.connected)
I (27737) event: sta
ip: 10.x.x.212, mask:
255.255.255.0, gw: 10.x.x.64
I (27747) events:
Signal(network.interface.up)
I (27747) netmanager:
Set DNS#0 8.8.8.8
I (27757) netmanager:
Set DNS#1 8.8.4.4
I (27757) events:
Signal(system.wifi.sta.gotip)
I (27767) netmanager:
Interface priority is st1
(10.x.x.212/255.255.255.0
gateway 10.x.x.64)
I (27767) events:
Signal(network.wifi.up)
I (27777) events:
Signal(network.up)
I (27787) time:
Starting SNTP client
I (27787) esp32wifi:
WiFi UP with SSID: STA, MAC:
re:da:ct:ed:da:ta, IP:
10.x.x.212, mask: 255.x.x.0, gw:
10.x.x.64
D (27827) time: ntp
(stratum 1 trusted 1) provides
time Sat Mar 17 15:30:37 2018
(135125us) UTC
OVMS > network
Interface#2: ap2
(ifup=1 linkup=1)
IPv4:
192.168.4.1/255.255.255.0
gateway 192.168.4.1
Interface#1: st1
(ifup=1 linkup=1)
IPv4:
10.x.x.212/255.255.25.0 gateway
10.x.x.64
Interface#0: lo0
(ifup=1 linkup=1)
IPv4:
127.0.0.1/255.0.0.0 gateway
127.0.0.1
DNS: 8.8.8.8 8.8.4.4
Default Interface: st1
(10.x.x.212/255.255.255.0
gateway 10.x.x.64)
All the above is
committed, and pushed.
Regards, Mark.
New issue, possibly also
routing related: powering
down the modem to force
using Wifi used to work
before, I now get:
I (724597)
gsm-ppp: status_cb:
Connected
I (724597)
gsm-ppp: our_ipaddr =
10.170.195.13
I (724597)
gsm-ppp: his_ipaddr =
10.64.64.64
I (724597)
gsm-ppp: netmask =
255.255.255.255
I (724597)
gsm-ppp: our6_ipaddr =
::
I (724597)
netmanager: Set DNS#0
8.8.8.8
I (724597)
netmanager: Set DNS#1
8.8.4.4
I (724597)
time: Starting SNTP client
OVMS > network status
Interface#2:
pp
IPv4:
10.170.195.13/255.255.255.255
gateway 10.64.64.64
Interface#1:
st
IPv4:
192.168.2.105/255.255.255.0
gateway 192.168.2.1
Interface#0:
lo
IPv4:
127.0.0.1/255.0.0.0
gateway 127.0.0.1
DNS:
8.8.8.8 8.8.4.4
OVMS > ota flash http
ovms.dexters-web.de/g/spacer.gif
Current
running partition is:
factory
Target
partition is: ota_0
Download
firmware from ovms.dexters-web.de/g/spacer.gif
to ota_0
Expected
file size is 67
Preparing
flash partition...
Error:
ESP32 error #5379 when
writing to flash - state
is inconsistent
E (763827)
esp_ota_ops: OTA image has
invalid magic byte
(expected 0xE9, saw 0x47
OVMS > power simcom
off
Power mode
of simcom is now off
I (782817)
simcom: State: Enter
PoweringOff state
I (782817)
gsm-ppp: Shutting down
(soft)...
I (782817)
time: Restarting SNTP
client
I (782827)
gsm-nmea: Shutdown
(direct)
I (782837)
simcom: Power Cycle
OVMS > network status
Interface#2:
pp
IPv4:
0.0.0.0/255.255.255.255
gateway 0.0.0.0
Interface#1:
st
IPv4:
192.168.2.105/255.255.255.0
gateway 192.168.2.1
Interface#0:
lo
IPv4:
127.0.0.1/255.0.0.0
gateway 127.0.0.1
DNS:
8.8.8.8 8.8.4.4
I (793147)
simcom: State timeout,
transition to 1
I (793147)
simcom: State: Enter
CheckPowerOff state
I (794657)
gsm-ppp: StatusCallBack:
User Interrupt
I (794657)
gsm-ppp: PPP connection
has been closed
OVMS >
network status
Interface#2:
pp
IPv4:
0.0.0.0/255.255.255.255
gateway 0.0.0.0
Interface#1:
st
IPv4:
192.168.2.105/255.255.255.0
gateway 192.168.2.1
Interface#0:
lo
IPv4:
127.0.0.1/255.0.0.0
gateway 127.0.0.1
DNS:
8.8.8.8 8.8.4.4
OVMS > ota
flash http ovms.dexters-web.de/g/spacer.gif
Current
running partition is:
factory
Target
partition is: ota_0
Download
firmware from ovms.dexters-web.de/g/spacer.gif
to ota_0
Error:
Request failed
W (807247) net:
Error: Failed to connect
server ovms.dexters-web.de
(error: 118)
Error 118 = Host is
unreachable.
Same with modem setstate.
The problem occurs after the
first ppp init.
Regards,
Michael
--
Michael Balzer * Helkenberger Weg 9 * D-58256 Ennepetal
Fon 02333 / 833 5735 * Handy 0176 / 206 989 26
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.teslaclub.hk
http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.teslaclub.hk
http://lists.teslaclub.hk/mailman/listinfo/ovmsdev