KiCad PCB EDA Suite
Loading...
Searching...
No Matches
sim_model_spice.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2022 Mikolaj Wielgus
5 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation; either version 3
10 * of the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
19 */
20
21#ifndef SIM_MODEL_SPICE_H
22#define SIM_MODEL_SPICE_H
23
24#include <sim/sim_model.h>
25#include <sim/spice_generator.h>
27
29
30
32{
33public:
35
36 std::string Preview( const SPICE_ITEM& aItem ) const override;
37};
38
39
41{
42public:
44 friend class SPICE_MODEL_PARSER;
45
46 static std::unique_ptr<SIM_MODEL_SPICE> Create( const SIM_LIBRARY_SPICE& aLibrary,
47 const std::string& aSpiceCode,
48 bool aFirstPass, REPORTER& aReporter );
49
50 SIM_MODEL_SPICE( TYPE aType,
51 std::unique_ptr<SPICE_GENERATOR> aSpiceGenerator );
52
53 SIM_MODEL_SPICE( TYPE aType,
54 std::unique_ptr<SPICE_GENERATOR> aSpiceGenerator,
55 std::unique_ptr<SPICE_MODEL_PARSER> aSpiceModelParser );
56
57protected:
58 virtual void SetParamFromSpiceCode( const std::string& aParamName,
59 const std::string& aParamValue,
61
62 std::string m_spiceCode;
63
64private:
65 std::unique_ptr<SPICE_MODEL_PARSER> m_spiceModelParser;
66};
67
68#endif // SIM_MODEL_SPICE_H
A pure virtual class used to derive REPORTER objects from.
Definition reporter.h:71
friend class SPICE_MODEL_PARSER
std::string m_spiceCode
SIM_MODEL_SPICE(TYPE aType, std::unique_ptr< SPICE_GENERATOR > aSpiceGenerator)
virtual void SetParamFromSpiceCode(const std::string &aParamName, const std::string &aParamValue, SIM_VALUE_GRAMMAR::NOTATION aNotation=SIM_VALUE_GRAMMAR::NOTATION::SPICE)
friend class SPICE_GENERATOR_SPICE
std::unique_ptr< SPICE_MODEL_PARSER > m_spiceModelParser
static std::unique_ptr< SIM_MODEL_SPICE > Create(const SIM_LIBRARY_SPICE &aLibrary, const std::string &aSpiceCode, bool aFirstPass, REPORTER &aReporter)
SIM_MODEL()=delete
SPICE_GENERATOR(const SIM_MODEL &aModel)
std::string Preview(const SPICE_ITEM &aItem) const override
SPICE_GENERATOR(const SIM_MODEL &aModel)
SIM_MODEL::TYPE TYPE
Definition sim_model.cpp:54