[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Parts DB API



On Wednesday 19 December 2007 12:17:02 Levente wrote:
> Peter TB Brett <peter@xxxxxxxxxxxxx> wrote:

> > I still haven't been convinced by these arguments, especially since
> > _nothing_ you've described can't be implemented with symbols which are
> > embedded by default. (So there. :P )
>
> Ok, you might be right, but I think it is another issue. Yes, I confused
> the attributes in the symbol file, and the attributes attached by gschem,
> after placement. Sorry.

Yes, this is a tricky issue, which I need to think about some more.

> > My vision of how the database could work is as follows:
> >
> > - Each symbol (or part) has to be uniquely identified by a string, and
> > each database/website/directory gets queried in reverse order of being
> > added to the library.  This is as currently.
> >
> >  For databases, this could just be a concatenation of the database name
> > and some sort of unique identifier number.  The unique identifier string
> > would be stored in the schematic file where the "symbol name" currently
> > is.
> >
> >  This provides a way to store exactly which part was selected by the user
> >  in a backwards-compatible manner.
>
> Yes, but I think we should copy the information coming from the database to
> have ability to read/process schematic off line, when there is no remote
> database seen. Or did I interpret something wrong?

That's called embedding. :)  Without a file-format change, the only 
non-ambiguous way of associating a symbol in the schematic with a symbol in 
the library/database/whatever is to use the field in the component 
specification reserved for the component name.  (This has the added advantage 
of reducing the amount of code that needs to be changed in gschem & libgeda).  
Of course, a local cache might well be a sensible part of a usable backend... 
The problem with promoting the attributes into the schematic by default is 
that the user might mess with them.  _Forcing_ the user to add the attributes 
to override them is a good way to make sure that the user only messes with 
the attributes from the database if he really means to.

> [snip]
>
> >  If the user selects a part, the component to be updated will get
> > replaced with the new symbol from the backend.
> >
> >  "Old-fashioned" backends such as flat-files probably couldn't support
> >  the "compatible" mechanism, but it is possible to imagine that databases
> >  could provide lists of compatible parts for the basic symbols such as
> >  resistors, capacitors and diodes from the default libraries.
> >
> >  One tricky problem will be how to update attributes.  Database overrides
> >  all?  Or some other method?
>
> I think we should have some border between "Old-fashioned" symbols, light
> symbols to be made heavy, and heavy symbols already updated from the
> database. Then there will be no confusion.

Um... I think exactly the opposite.  What you're suggesting would just make 
the already-steep gschem learning curve even worse.  I'm trying to find a way 
to make it so that there is *one* unified part/symbol library that's 
sufficiently powerful and flexible for people to do whatever arcane things 
they like with it, while still being capable of being used in a simple way if 
that's required.  I honestly think this is achievable, and I hope you agree 
with me that it's a worthwhile goal...

                                Peter

-- 
Peter Brett

Electronic Systems Engineer
Integral Informatics Ltd

Attachment: signature.asc
Description: This is a digitally signed message part.


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user