Benutzer-Werkzeuge

Webseiten-Werkzeuge


snaiks-study

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
snaiks [2016/05/20 17:13] – [Properties] dokuwikiadminsnaiks-study [2024/09/19 12:16] (aktuell) dokuwikiadmin
Zeile 1: Zeile 1:
-====== Snaiks ====== +====== Snaiks Study ====== 
-**Signals and Systems from KiCad to C++**+**Signals and Systems from KiCad to Cpp**
 {{ ::snaiks-logo.png?nolink&200|}} {{ ::snaiks-logo.png?nolink&200|}}
  
-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's schematic editor and generate out of the netlist a working C++ code, which also compiles for micro controllers without dynamic memory allocation. +It's purpose is to create complex systems by drawing them in KiCad's schematic editor and generate out of the netlist a working Cpp code, which also compiles for micro controllers without dynamic memory allocation. 
  
 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 =====
 {{ ::2016-04-07_001.png?direct&900 |}} \\ {{ ::2016-04-07_001.png?direct&900 |}} \\
Zeile 110: 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't know anything about a hierarchical sheets. Altium Designer has the so called rooms, which group and synchronize footprint arrangement and traces between multiple instances of one hierarchical sheet. +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't know anything about a hierarchical sheets. Altium Designer has the so called rooms, which group and synchronize footprint arrangement and traces between multiple instances of one hierarchical sheet. 
  
 For the systems we should make something similar to the properties, which live in a SnsPropertyContainer. We should make a SnsSystemContainer, which provides on one hand memory for the different objects of a sub-system and on the other hand new inputs and outputs.  For the systems we should make something similar to the properties, which live in a SnsPropertyContainer. We should make a SnsSystemContainer, which provides on one hand memory for the different objects of a sub-system and on the other hand new inputs and outputs. 
  
  
 +==== Any-Type Inputs/Outputs ====
 +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, similar to PWR_FLAG). 
 +  * 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't be any problem
 +
 +{{tag>english software signals kicad snaiks technical}}
snaiks-study.1463757201.txt.gz · Zuletzt geändert: 2016/05/20 17:13 von dokuwikiadmin