[Ovmsdev] Transition to new esp-idf

Stephen Casner casner at acm.org
Fri Jan 19 14:36:40 HKT 2018


Mark,

The update of Mongoose to v6.10 removed the change I had made so that
the mg_send() call would transmit on the network immediately if the
socket was ready.  I needed to make that change because we would
otherwise run out of RAM with SSH because mg_send() would just buffer
everything until the next poll.

                                                        -- Steve

On Fri, 19 Jan 2018, Mark Webb-Johnson wrote:

> I re-worked the ovms_server_* framework, and v2 implementation, to use MONGOOSE.
>
> It seems to be _basically_ working. It can connect/disconnect/etc. Some slight memory saving, but standardising the networking throughout on mongoose should simplify things.
>
> I am seeing problems with transmitting the FEATURES and PARAMETERS sometimes - particularly in low memory situations. I’m still trying to find out why.
>
> Regards, Mark.
>
> > On 17 Jan 2018, at 8:33 AM, Mark Webb-Johnson <mark at webb-johnson.net> wrote:
> >
> >
> > This is the issue Michael pointed out. The 'server response is incomplete’ problem with select(). Apologies for this; I am not sure why I didn’t notice it before.
> >
> > Gory details are here:
> >
> > https://github.com/espressif/esp-idf/issues/1510 <https://github.com/espressif/esp-idf/issues/1510>
> >
> > I think Espressif implemented requirement this in a bizarre way, likely to break compatibility, but such is life. They did point it out as a ‘breaking change’ (at the bottom of the release notes for 3.0b1):
> >
> > https://github.com/espressif/esp-idf/releases/tag/v3.0-rc1 <https://github.com/espressif/esp-idf/releases/tag/v3.0-rc1>
> >
> > LWIP socket file descriptors now take higher numeric values (via the LWIP LWIP_SOCKET_OFFSET macro). BSD sockets code should mostly work as expected (and, new in V3.0, some standard POSIX functions can now be used with sockets). However any code which assumes a socket file descriptor is always a low numbered integer may need modifying to account for LWIP_SOCKET_OFFSET.
> >
> > It sure broke us.
> >
> > I’ve made a one-line workaround fix (to ovms_buffer.cpp), and ovms server v2 connections are working again for me. That is committed and pushed already.
> >
> > It is kind of messy to have all these different networking implementations in our code base; I intend to move ovms_server_* to mongoose networking over the next few days. That will mean we won’t need a separate task/stack for server connections, and should save us 7KB internal RAM for each connection. Also ovms_ota. But that will have to wait, as I need to get the hardware complete first (some issues with 1.8v vs 3.3v logic on VDD_SDIO of the wrover module and some of our GPIOs), and that is top priority.
> >
> > Regards, Mark.
> >
> >> On 17 Jan 2018, at 7:05 AM, Greg D. <gregd2350 at gmail.com <mailto:gregd2350 at gmail.com>> wrote:
> >>
> >> But, I'm not getting much love out of the v2 server.  The connection doesn't appear to be working - "server response is incomplete".  Same error whether on wifi or modem.
> >
>
>


More information about the OvmsDev mailing list