← Back to team overview

kicad-developers team mailing list archive

Re: Code execution context

 

* Boost 1.65 being the version Ubuntu 18.04 LTS currently has and are
committed to support until EOL.

On Thu, Feb 25, 2021 at 9:19 AM Mark Roszko <mark.roszko@xxxxxxxxx> wrote:

> Markus,
>
> We currently require support for a minimum of boost 1.59 due to Linux
> distros lagging behind. boost/beast is not a viable option as beast did not
> appear in boost until 1.66.
>
> From some offhand sounding out we may be able to bump the minimum to 1.65
> but that doesn't help :/
>
>
> Regards,
> Mark
>
> On Thu, Feb 25, 2021 at 9:00 AM Jon Evans <jon@xxxxxxxxxxxxx> wrote:
>
>> Hello Markus,
>>
>> This is exciting news, as some of our users are also big fans of
>> 3dconnexion products[1]
>>
>> Others have looked in to what it would take in the past, but there were
>> some questions about the need for proprietary drivers on some platforms[2]
>>
>> It sounds like this websocket interface is a new approach that doesn't
>> require any additional libraries for KiCad to link against?
>> Does the hardware use some other daemon process to bridge between the
>> device driver and websockets?
>>
>> As you may know, KiCad uses wxWidgets as a framework, so you probably
>> want to plug in to the wx event loop on the main thread.
>> There are some guidelines on this in their docs[3].
>>
>> You probably want to check out ./common/view/wx_view_controls.cpp to see
>> how existing input events are handled by the 2D canvases.
>> I guess your new code would hook in here somewhere, and provide
>> additional event handlers to manage the data from the 3D device.
>> Your communication thread should be able to post wxWidgets events to the
>> main thread and then we can consume them here.
>>
>> By the way: although the wx docs use wxThread, I think this general
>> concept should work with C++ standard libraries threads just fine.
>> The documentation for wxEvtHandler::QueueEvent may also be useful[4]
>>
>> Hope this helps!
>>
>> Best,
>> Jon
>>
>> [1] https://gitlab.com/kicad/code/kicad/-/issues/4951
>> [2] https://lists.launchpad.net/kicad-developers/msg29464.html
>> [3]
>> https://wiki.wxwidgets.org/Inter-Thread_and_Inter-Process_communication#Sending_events_to_the_main_thread_-_wxWidgets_3_only
>> [4]
>> https://docs.wxwidgets.org/3.0/classwx_evt_handler.html#acffd03bf407a856166ea71ef0318b59a
>>
>>
>> On Thu, Feb 25, 2021 at 1:47 AM Markus Bonk <markus_bonk@xxxxxxxxxxxxxxx>
>> wrote:
>>
>>> Hi,
>>>
>>>
>>>
>>> I am currently investigating adding support for 3D input devices to
>>> pcbnew. The plan is to use a websocket interface (boost/beast) to
>>> communicate with the 3D device. Effectively the communication runs on an
>>> extra thread. Somewhere the event code will need to switch to executing on
>>> the main thread.
>>>
>>>
>>>
>>> One way of achieving this on say win32 might be to add functors to a
>>> queue post a message to a message window handler in the main thread which
>>> empties the queue and invokes the functor.
>>>
>>>
>>>
>>> Is such a mechanism already in place in KiCAD? What is the KiCAD
>>> recommended solution to the issue?
>>>
>>>
>>>
>>> Thanks
>>>
>>> -Markus
>>>
>>>
>>>
>>>
>>>
>>> ------------------------------
>>>
>>> *Markus Bonk*
>>> Senior Software Engineer
>>>
>>> Clarita-Bernhard-Str. 18
>>> 81249 München
>>> Germany
>>> markus_bonk@xxxxxxxxxxxxxxx <%7BE-mail%7D>
>>> www.3dconnexion.com
>>>
>>> Geschäftsführer: Antonio Pascucci
>>> Sitz der Gesellschaft: München
>>> Registergericht: München HRB 99232
>>>
>>> This email and any files transmitted with are from 3Dconnexion GmbH. The
>>> contents of this email and any attachments are confidential to the intended
>>> recipient. They may not be disclosed to or used by or copied in any way by
>>> anyone other than the intended recipient. If this email is received in
>>> error, please contact 3Dconnexion GmbH by calling +49 89 8974542-0 and then
>>> delete it. Please note that neither 3Dconnexion GmbH nor the sender accepts
>>> any responsibility for viruses and it is your responsibility to scan or
>>> otherwise check this email and any attachments. Any opinion expressed in
>>> this email are those of the individual and not necessarily those of
>>> 3Dconnexion GmbH.
>>> 3Dconnexion GmbH processes and stores for commercial purposes your
>>> personal data, collected upon your consent, in accordance with its privacy
>>> policy available at https://www.3dconnexion.eu/privacy.html, which has
>>> been drafted in accordance with Regulation (EU) no. 679/2016 and all
>>> applicable local data protection laws and regulations of the countries
>>> where the company operates. To revoke your consent or exercise all your
>>> rights with regards to personal data, please contact us at
>>> privacy@xxxxxxxxxxxxxxx.
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~kicad-developers
>>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~kicad-developers
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>>
>
>
> --
> Mark
>


-- 
Mark

GIF image


Follow ups

References