← Back to team overview

kicad-developers team mailing list archive

Re: PcbNew netlist updating codepaths

 

I've just done this small patch in my branch:
https://github.com/craftyjon/kicad/pull/1/commits/4551318e7c20d1d577a1aab3a4bb21bab8e22f0e
I may leave it alone there until the branch is merged and then the big
refactor can happen.
If you're excited about taking it on at that point, I'll leave it to you
since I have a few other running projects and don't want to juggle too many
at once.

-Jon

On Mon, Mar 18, 2019 at 7:29 PM Jeff Young <jeff@xxxxxxxxx> wrote:

> I suspect the original intent was to move both to the new one, it just
> never got done.
>
> If you want help with it Jon, give a scream.  I’ve been in that code a bit.
>
> Cheers,
> Jeff.
>
>
> On 18 Mar 2019, at 17:37, Jon Evans <jon@xxxxxxxxxxxxx> wrote:
>
> Thanks for the history.  I don't want to remove the manual netlist
> workflow, but I do think it would be good for the under-the-hood part to be
> unified to BOARD_NETLIST_UPDATER.
> I'm looking at some possible bugs/enhancements here related to the bus
> upgrades, so I will see if it is practical to combine them.
>
> -Jon
>
> On Mon, Mar 18, 2019 at 1:35 PM Wayne Stambaugh <stambaughw@xxxxxxxxx>
> wrote:
>
>> Hi Jon,
>>
>> On 3/18/2019 12:21 PM, Jon Evans wrote:
>> > Does anyone know why we have two different netlist update codepaths?
>> >
>> > When using "Update PCB from Schematic" workflow, the netlist is
>> > processed by BOARD_NETLIST_UPDATER called
>> from PCB_EDIT_FRAME::KiwayMailIn()
>>
>> This was created when the "Update PCB from Schematic" workflow was
>> implemented.  Judging by the error messages in BOARD_NETLIST_UPDATER, I
>> would guess this was derived from the original BOARD::ReplaceNetlist()
>> and split into more manageable chunks.  I believe this was written by
>> either Tom or Orson so maybe they can shed some more light on it.
>>
>> >
>> > When using "Load Netlist" workflow, the netlist is processed
>> > by BOARD::ReplaceNetlist() called by PCB_EDIT_FRAME::ReadPcbNetlist()
>>
>> This is the original netlist import code and is called when loading the
>> netlist using an external netlist file.  I'm not sure why this was not
>> replaced with the new BOARD_NETLIST_UPDATER object when the above was
>> written.  I wrote this by merging the original netlist update code into
>> BOARD::ReplaceNetlist which used to require access to the frame window.
>>  I removed that dependency because it was preventing the BOARD object
>> from being built without UI code which I consider a worthwhile objective.
>>
>> Now we have two separate netlist update code paths to maintain. :( I
>> would prefer that we used BOARD_NETLIST_UPDATER in both code paths.  I'm
>> not completely sure we can or should remove the manual netlist update
>> code.  There was talk of some day having a real command line interface
>> for performing automated tasks so this would have to remain if we wanted
>> to update the netlist from the command line.
>>
>> Cheers,
>>
>> Wayne
>>
>> >
>> > Best,
>> > Jon
>> >
>> > _______________________________________________
>> > 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
>>
> _______________________________________________
> 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
>
>
>

References