← Back to team overview

kicad-developers team mailing list archive

Re: Schematic I/O plugin.

 

On 7/6/2016 1:34 PM, Simon Wells wrote:
> just FYI this affects osx whether the -DUSE...SCH_IO... is ON or OFF

I didn't want too many #ifdef/#endif qualifiers all over the code and
cmake files so I only did it for the file load code.  I'm working on
getting this resolved now.

> 
> On Thu, Jul 7, 2016 at 3:48 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
>> On 7/6/2016 11:35 AM, Simon Wells wrote:
>>> hey wayne,
>>>
>>> http://pastebin.com/EVgdXHuf on osx
>>
>> Thanks Simon.  I look at it in the morning.  It looks like an issue with
>> wxString yet again.
>>
>>>
>>> On Thu, Jul 7, 2016 at 3:21 AM, Wayne Stambaugh <stambaughw@xxxxxxxxx> wrote:
>>>> On 7/6/2016 11:10 AM, jp charras wrote:
>>>>> Le 06/07/2016 à 15:53, Wayne Stambaugh a écrit :
>>>>>> On 7/6/2016 8:01 AM, jp charras wrote:
>>>>>>> Le 06/07/2016 à 11:23, Wayne Stambaugh a écrit :
>>>>>>>> I just committed the initial schematic I/O plugin code.  It only
>>>>>>>> supports the schematic file parsing at the moment but soon it should
>>>>>>>> support schematic output formatting.  Symbol library loading and saving
>>>>>>>> will follow shortly there after.  By default, the new is built but it is
>>>>>>>> not used.  The current code is used in the default build config.  I
>>>>>>>> created a new build config option USE_SCH_IO_MANAGER to enable using the
>>>>>>>> plugin.  Set -DUSE_SCH_IO_MANAGER=ON in your config to enable it.  I've
>>>>>>>> been using round tripping (parse the file with the new parser and saving
>>>>>>>> to a new file with the current formatter and comparing the result) to
>>>>>>>> test the parser and I get identical files for every schematic except for
>>>>>>>> the interf_u demo (see below) so I feel pretty good about it's
>>>>>>>> stability.  You also get the added benefit of knowing where in the file
>>>>>>>> a parser error occurs.  One major difference is that if a parse error
>>>>>>>> occurs, the schematic will not continue to load the schematic.  I never
>>>>>>>> really liked that design in current parser.  The current parser is
>>>>>>>> syntactically very loose.  I wrote the new parser to be much more strict
>>>>>>>> so there coud be some issues on older schematics.  I tested some demo
>>>>>>>> schematic files from product branch r800 and they parsed fine but I'm
>>>>>>>> sure there will be a few that do not.  I would appreciate help from the
>>>>>>>> devs with testing this.  Particularly if you have any really old
>>>>>>>> schematic files laying around.  If you find any that fail, please send
>>>>>>>> them to me so I can fix the parser.
>>>>>>>>
>>>>>>>> For some reason, either the current parser or the output formatter for
>>>>>>>> the BITMAP object is broken.  At first I thought it was my new parser
>>>>>>>> but I tested the existing code and the bug is there as well.  You can
>>>>>>>> test this by opening eeschema in the stand alone mode, open the
>>>>>>>> interf_u.sch file, save the file to a new name, and do a diff between
>>>>>>>> the two files and you will see that the last byte of the bitmap data has
>>>>>>>> changed.  This also happens in the stable release.  I couldn't see any
>>>>>>>> visible difference in the bitmaps but it's still a bit odd and should be
>>>>>>>> fixed at some point.
>>>>>>>>
>>>>>>>> Package devs, please continue to build packages as you currently do.
>>>>>>>> Once the new plugin code is complete and tested, I will make it the
>>>>>>>> default config.  Many thanks in advance for the help.  Hopefully it's
>>>>>>>> not too buggy. :)
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>>
>>>>>>>> Wayne
>>>>>>>
>>>>>>> Good work Wayne!
>>>>>>>
>>>>>>> Are you compiling Kicad in debug mode?
>>>>>>> In release mode there is a repetitive issue in sch_legacy_plugin.cpp:
>>>>>>> for instance in ::loadWire() you are using:
>>>>>>>     wxASSERT( strCompare( "Wire", line, &line ) );
>>>>>>>
>>>>>>> It works certainly fine in debug mode, but in release mode
>>>>>>> strCompare( "Wire", line, &line )
>>>>>>> is never executed (not compiled) at least on W7 32 bits, but I am thinking this is not platform
>>>>>>> dependent.
>>>>>>>
>>>>>>> a "invalid wire definition" error is shown and Eeschema crashes.
>>>>>>>
>>>>>>> Sorry,
>>>>>>>
>>>>>>
>>>>>> I just committed the fix for this.  Please test it when you get a chance.
>>>>>>
>>>>>> Cheers,
>>>>>>
>>>>>> Wayne
>>>>>>
>>>>>
>>>>> Thanks.
>>>>> It works now in release mode.
>>>>>
>>>>> However, like previously, Eeschema crashes when something incorrect is encountered in a sch file,
>>>>> after the error message is displayed.
>>>>>
>>>>> Also, (very) old .sch files are not read.
>>>>> Attached a very old file (I have older files).
>>>>>
>>>>> The reason is the fact the plugin expects too many parameters for texts (or fields)
>>>>> Old files do not have as many parameters (justification, style) as now.
>>>>> For the legacy plugin, these parameters must be considered optional.
>>>>>
>>>>> Thanks,
>>>>>
>>>>
>>>> Thanks for the file to test.  I expected that there would be some old
>>>> files that would be problematic.  I'll take a look at this tomorrow.
>>>>
>>>> _______________________________________________
>>>> 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