snaiks-study
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
snaiks [2016/05/20 17:09] – [Info-System] dokuwikiadmin | snaiks-study [2024/09/19 12:16] (aktuell) – dokuwikiadmin | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Snaiks ====== | + | ====== Snaiks |
- | **Signals and Systems from KiCad to C++** | + | **Signals and Systems from KiCad to Cpp** |
{{ :: | {{ :: | ||
- | 7.4.2016 | + | 7.4.2016\\ |
+ | For Updates please see [[Snaiks]] | ||
---- | ---- | ||
Zeile 9: | Zeile 10: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | Signals and Systems is here a collection of C++ classes on one hand, and a collection of corresponding KiCad components on the other hand. | + | Signals and Systems is here a collection of Cpp classes on one hand, and a collection of corresponding KiCad components on the other hand. |
- | It's purpose is to create complex systems by drawing them in KiCad' | + | It's purpose is to create complex systems by drawing them in KiCad' |
It can be used to implement PLCs or digital signal processing like filtering. | It can be used to implement PLCs or digital signal processing like filtering. | ||
- | The C++ classes are based heavily on templates, so most of the components can be used either for floating point or for integer calculations. | + | The Cpp classes are based heavily on templates, so most of the components can be used either for floating point or for integer calculations. |
+ | ===== Goals ===== | ||
+ | * Generate beautiful Cpp code from a KiCad schematic | ||
+ | * Compiles without dynamic memory allocation (embedded, savety) | ||
+ | * Read and write system states during runtime (e.g. with a simple terminal) | ||
+ | * Simple custom system creation (KiCad component editor + sub-class implementation) | ||
+ | * Hierarchical design (sub-systems) | ||
+ | * full documentation within the schematic | ||
===== Mini-Demo ===== | ===== Mini-Demo ===== | ||
{{ :: | {{ :: | ||
Zeile 89: | Zeile 97: | ||
* a setter method | * a setter method | ||
* a getter method | * a getter method | ||
+ | * a method to store a changed value into the persistent memory | ||
==== Info-System ==== | ==== Info-System ==== | ||
A system generated by Snaiks should be fully discoverable and manipulatable during runtime. | A system generated by Snaiks should be fully discoverable and manipulatable during runtime. | ||
Zeile 109: | Zeile 118: | ||
It should be possible to combine a set of systems to a sub-system, where new inputs and outputs are defined. | It should be possible to combine a set of systems to a sub-system, where new inputs and outputs are defined. | ||
- | KiCads hierarchical schematic structure could be used out of the box, but in C++ we do not see anything from this. Similar to the KiCad PCB layout, which also doesn' | + | KiCads hierarchical schematic structure could be used out of the box, but in Cpp we do not see anything from this. Similar to the KiCad PCB layout, which also doesn' |
For the systems we should make something similar to the properties, which live in a SnsPropertyContainer. We should make a SnsSystemContainer, | For the systems we should make something similar to the properties, which live in a SnsPropertyContainer. We should make a SnsSystemContainer, | ||
+ | ==== Any-Type Inputs/ | ||
+ | Perhaps it would be useful, that not all inputs must have the same type. For example a mute gate, where the enable is bool and the signal is double. | ||
+ | Pros: | ||
+ | * more flexible systems | ||
+ | Cons: | ||
+ | * every pin must have a type specified in KiCad (could be done with net-annotators, | ||
+ | * we cannot use a simple template-interface class any more, such as the SnsHybrid or SnsNumeric. | ||
+ | === Proposal === | ||
+ | * in cases, where this is really needed, a specific Cpp class could be implemented | ||
+ | * mixture of numbers and bool shouldn' | ||
+ | |||
+ | {{tag> |
snaiks-study.1463756997.txt.gz · Zuletzt geändert: 2016/05/20 17:09 von dokuwikiadmin