kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #25387
Re: Schematic I/O plugin.
Simon,
Thanks. I think commit r6971 should resolve this. Please let me know
if it doesn't.
Thanks,
Wayne
On 7/6/2016 11:35 AM, Simon Wells wrote:
> hey wayne,
>
> http://pastebin.com/EVgdXHuf on osx
>
> 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