EAGLE Central Forums
Where the EAGLE community meets. Sponsored by Stratford Digital.

Home » CadSoft Support Forums » eagle.betatest » Issue in 7.6.2 beta
Issue in 7.6.2 beta [message #166600] Mon, 15 August 2016 13:22 Go to next message
Morten Leikvoll
Messages: 1352
Registered: November 2007
Senior Member
I have this ULP with a redundant bug detector that kicked in all of a
sudden.

Using CONTEXT menu, my test detected if more than one item was in the
ingroup() when executed from context menu from a wire perspective. Of
course this should not be possible.

I tried a few tricks to get rid of the bug, but finally I had to close,
then reopen the project before the bug went away.

Unfortunately I can not recreate it at command, but this may give a hint
what to look for.

This is how the detector looks like:
---------------
found="";
if(schematic) schematic(SCH)//Look for the selected net
{
SCH.sheets(SHT) SHT.nets(NET) NET.segments(SEG) SEG.wires(WIR)
if(ingroup(WIR))
{
if(found!="")//Redundant test
{
dlgMessageBox("Bug detected? Several grouped wires detected in
Sch.MenuContext.Wire context");
exit(0);
}
found=NET.name;
found_page=SHT.number;
}
}
----------------
Re: Issue in 7.6.2 beta [message #167088 is a reply to message #166600] Wed, 14 September 2016 11:53 Go to previous messageGo to next message
Morten Leikvoll
Messages: 1352
Registered: November 2007
Senior Member
On 15.08.2016 15:22, Morten Leikvoll wrote:
> I have this ULP with a redundant bug detector that kicked in all of a
> sudden.
>
> Using CONTEXT menu, my test detected if more than one item was in the
> ingroup() when executed from context menu from a wire perspective. Of
> course this should not be possible.
>
> I tried a few tricks to get rid of the bug, but finally I had to close,
> then reopen the project before the bug went away.
>
> Unfortunately I can not recreate it at command, but this may give a hint
> what to look for.
>
> This is how the detector looks like:
> ---------------
> found="";
> if(schematic) schematic(SCH)//Look for the selected net
> {
> SCH.sheets(SHT) SHT.nets(NET) NET.segments(SEG) SEG.wires(WIR)
> if(ingroup(WIR))
> {
> if(found!="")//Redundant test
> {
> dlgMessageBox("Bug detected? Several grouped wires detected
> in Sch.MenuContext.Wire context");
> exit(0);
> }
> found=NET.name;
> found_page=SHT.number;
> }
> }
> ----------------

I just wanted to lift this issue and ask for a confirmation. This
happens all too often to me. If you like me to contribute, please let me
know what to try. Unfortunally this is not a saveable state.

I suspect the group function has some conflicts with the rightclick
context selection that doesnt get resolved properly. Maybe related to
latest SET CONTEXT repair attempts.
Re: Issue in 7.6.2 beta [message #167109 is a reply to message #167088] Thu, 15 September 2016 10:16 Go to previous messageGo to next message
Morten Leikvoll
Messages: 1352
Registered: November 2007
Senior Member
I did some deeper digging here and found ingrouped wires inside objects
that were not themself ingrouped, or even at the page where the context
function was triggered.
I was browsing schematic->sheets->nets->segments->wires and segments and
their ancestors were not part of ingroup even if the wire was. I guess
those are false ingrouped.

I see I may add some redundancy to my script to only pick those ingroups
where the parent is also part of the ingroup, but still this is flaky.
Re: Issue in 7.6.2 beta [message #167110 is a reply to message #167109] Thu, 15 September 2016 10:23 Go to previous messageGo to next message
Morten Leikvoll
Messages: 1352
Registered: November 2007
Senior Member
On 15.09.2016 12:16, Morten Leikvoll wrote:
> I did some deeper digging here and found ingrouped wires inside objects
> that were not themself ingrouped, or even at the page where the context
> function was triggered.
> I was browsing schematic->sheets->nets->segments->wires and segments and
> their ancestors were not part of ingroup even if the wire was. I guess
> those are false ingrouped.
>
> I see I may add some redundancy to my script to only pick those ingroups
> where the parent is also part of the ingroup, but still this is flaky.
>

Another interesting issue.. Those false ingrouped wires were something I
moved to a different sheet not long ago. When just grouping them again,
the false ingroup flags seems to get cleared.

Maybe the context ingroup function should get a new function name, like
incontext()? I guess its not too late to do that, flaky as it has been.
Logically they are totally different, and using the ingroup() for this
seems to be a horrible shortcut.
Re: Issue in 7.6.2 beta [message #167167 is a reply to message #167110] Mon, 19 September 2016 13:50 Go to previous messageGo to next message
CadSoft Support
Messages: 542
Registered: September 2006
Senior Member
Am 15.09.2016 um 12:23 schrieb Morten Leikvoll:
> On 15.09.2016 12:16, Morten Leikvoll wrote:
>> I did some deeper digging here and found ingrouped wires inside objects
>> that were not themself ingrouped, or even at the page where the context
>> function was triggered.
>> I was browsing schematic->sheets->nets->segments->wires and segments and
>> their ancestors were not part of ingroup even if the wire was. I guess
>> those are false ingrouped.
>>
>> I see I may add some redundancy to my script to only pick those ingroups
>> where the parent is also part of the ingroup, but still this is flaky.
>>
>
> Another interesting issue.. Those false ingrouped wires were something I
> moved to a different sheet not long ago. When just grouping them again,
> the false ingroup flags seems to get cleared.
>
> Maybe the context ingroup function should get a new function name, like
> incontext()? I guess its not too late to do that, flaky as it has been.
> Logically they are totally different, and using the ingroup() for this
> seems to be a horrible shortcut.
>


We tried this and could not reproduce the problem. Do you have any
further news on ths in order to reproduce it reliable meanwhile?


--
Mit freundlichen Gruessen / Best regards
Richard Hammerl
CadSoft Support -- hotline@cadsoft.de
FAQ: http://www.cadsoft.de/training/faq/
Re: Issue in 7.6.2 beta [message #167174 is a reply to message #167167] Tue, 20 September 2016 08:15 Go to previous messageGo to next message
Morten Leikvoll
Messages: 1352
Registered: November 2007
Senior Member
On 19.09.2016 15:50, Richard Hammerl wrote:
> Am 15.09.2016 um 12:23 schrieb Morten Leikvoll:
>> On 15.09.2016 12:16, Morten Leikvoll wrote:
>>> I did some deeper digging here and found ingrouped wires inside objects
>>> that were not themself ingrouped, or even at the page where the context
>>> function was triggered.
>>> I was browsing schematic->sheets->nets->segments->wires and segments and
>>> their ancestors were not part of ingroup even if the wire was. I guess
>>> those are false ingrouped.
>>>
>>> I see I may add some redundancy to my script to only pick those ingroups
>>> where the parent is also part of the ingroup, but still this is flaky.
>>>
>>
>> Another interesting issue.. Those false ingrouped wires were something I
>> moved to a different sheet not long ago. When just grouping them again,
>> the false ingroup flags seems to get cleared.
>>
>> Maybe the context ingroup function should get a new function name, like
>> incontext()? I guess its not too late to do that, flaky as it has been.
>> Logically they are totally different, and using the ingroup() for this
>> seems to be a horrible shortcut.
>>
>
>
> We tried this and could not reproduce the problem. Do you have any
> further news on ths in order to reproduce it reliable meanwhile?

I can reproduce this now. As I thought it seems to be related to moving
schematic across pages.

How to reproduce:
0-Unzip the files attached using the opensource 7zip tool (free download
at 7zip.org)

1-Use the attached tiny test project

2-In the schematic editor, run the attached ulp using "run
test_wire_context install" to install context menu

3-Group and move everything on page 1 to page 2

4-Undo

5-Rightclick the the wire between C3 and C4, get a multiple ingroup item
error message and read the ingroup() status list in debug.txt.
  • Attachment: test.7z
    (Size: 6.02KB, Downloaded 174 times)
Re: Issue in 7.6.2 beta [message #167178 is a reply to message #167174] Tue, 20 September 2016 15:14 Go to previous messageGo to next message
Walter Spermann
Messages: 540
Registered: August 2010
Senior Member
On 09/20/2016 10:15 AM, Morten Leikvoll wrote:
> On 19.09.2016 15:50, Richard Hammerl wrote:
>> Am 15.09.2016 um 12:23 schrieb Morten Leikvoll:
>>> On 15.09.2016 12:16, Morten Leikvoll wrote:
>>>> I did some deeper digging here and found ingrouped wires inside objects
>>>> that were not themself ingrouped, or even at the page where the context
>>>> function was triggered.
>>>> I was browsing schematic->sheets->nets->segments->wires and segments and
>>>> their ancestors were not part of ingroup even if the wire was. I guess
>>>> those are false ingrouped.
>>>>
>>>> I see I may add some redundancy to my script to only pick those ingroups
>>>> where the parent is also part of the ingroup, but still this is flaky.
>>>>
>>>
>>> Another interesting issue.. Those false ingrouped wires were something I
>>> moved to a different sheet not long ago. When just grouping them again,
>>> the false ingroup flags seems to get cleared.
>>>
>>> Maybe the context ingroup function should get a new function name, like
>>> incontext()? I guess its not too late to do that, flaky as it has been.
>>> Logically they are totally different, and using the ingroup() for this
>>> seems to be a horrible shortcut.
>>>
>>
>>
>> We tried this and could not reproduce the problem. Do you have any
>> further news on ths in order to reproduce it reliable meanwhile?
>
> I can reproduce this now. As I thought it seems to be related to moving schematic across pages.
>
> How to reproduce:
> 0-Unzip the files attached using the opensource 7zip tool (free download at 7zip.org)
>
> 1-Use the attached tiny test project
>
> 2-In the schematic editor, run the attached ulp using "run test_wire_context install" to install
> context menu
>
> 3-Group and move everything on page 1 to page 2
>
> 4-Undo
>
> 5-Rightclick the the wire between C3 and C4, get a multiple ingroup item error message and read the
> ingroup() status list in debug.txt.
>
>
We also could reproduce it and fixed it for next beta.
Thanks for your effort!

Regards,
Walter Spermann

--
--------------------------------------------------------------------------- -------------------------------
Walter Spermann
Software Development
CadSoft Computer GmbH
Pleidolfweg 15
84568 Pleiskirchen
Tel.: 08635/6989-10
www.cadsoft.io
--------------------------------------------------------------------------- -------------------------------
Re: Issue in 7.6.2 beta [message #168058 is a reply to message #167178] Wed, 14 December 2016 11:57 Go to previous message
Morten Leikvoll
Messages: 1352
Registered: November 2007
Senior Member
On 20.09.2016 17:14, Walter Spermann wrote:
> We also could reproduce it and fixed it for next beta.
> Thanks for your effort!

I just found another leftover of this in 7.7.0. I can still not repeat
it, but here is a snapshot of the debug text generated by my script
confirming the same issue:

schematic net SIGNAL1:no
schematic net segment:no
schematic net segment wire:yes
schematic net SIGNAL2:no
schematic net segment:no
schematic net segment wire:yes
schematic net SIGNAL3:no
schematic net segment:no
schematic net segment wire:yes


I think those nets may have been involved in some group mirror function.
That's the best clue I can give now. I will followup as soon as I see
more of it.
Previous Topic: Pad names in thru-hole pads
Next Topic: V8 is out: Coredump
Goto Forum:
  


Current Time: Tue Oct 17 01:53:09 GMT 2017