Skip to content

Commit

Permalink
Merge pull request #847 from ra3xdh/upd_news
Browse files Browse the repository at this point in the history
Update news and fixes before release
  • Loading branch information
ra3xdh authored Jul 18, 2024
2 parents b6750a1 + f180746 commit e67a0f3
Show file tree
Hide file tree
Showing 6 changed files with 70 additions and 6 deletions.
45 changes: 45 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,48 @@
# Qucs-S 24.3.0

## New features

* SpiceLibComp redesign. This device is renamed to *Spice Library Device* and provides an easy way
to add SPICE model to schematic and assign symbol to it. See #679
* Added possibity to import SPICE model for Diode, BJT, MOSFET, and JFET unified devices (blue) #795
* Implemeted symbol files (`*.sym`) editing mode. These files are needed to attach symbol to SPICE devices #700
* Redesign of schematic rendering engine. Improve rendering quality on HiDPI displays #723
* Improved Qucsconv GUI to reflect new converter features #826
* Improved libraries portability, relative path support for libraries, show libraries from project directory #567
* QucsatorRF updated to version 1.0.1

## Deprecated features

* The `*.qucs` binary archives are not supported anymore. Use system archivers to pack the projects instead #811
* The `SweepModel` property of *Parameter Sweep* simulaiton has been deprecated. It is not needed anymore after Ngspice
has added variable sweep feature. Use variable sweep instead #839

## Packaging

* Introduced continous release of Linux, Windows, and Mac packages #719
* Added MacOS package build #797

## General improvements

* The TEMP and TEMPER variables are recognized by parameter sweep to apply temperature sweep #816
* Fixed ASCO optimization with QucsatorRF #830
* Enabled variables as parameters for unified nonlinear devices and pulsed source #838 and #808
* Fixed issues with XYCE simulation #701
* Improved attenuator synthesis tool #722
* Improved filter synthesis tool #715 #673
* Redesign *File->Open examples* menu. Show open dialog instead of file manager #672
* Qucs-S now follows XDG standard for cached data location #145
* Apply .OPTION INTERP when simulating transient with parameter sweep; prevent broken par. sweep data #766

## Component library

* Added new Varactor library #759
* Added new PIN diode library #764

## Localization

* Russian translation update

# Qucs-S 24.2.1

This release contains no new features except the fixing of the critical bugs.
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
24.2.1
24.3.0
17 changes: 17 additions & 0 deletions qucs/dialogs/fillfromspicedialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ fillFromSpiceDialog::fillFromSpiceDialog(Component *pc, QWidget *w)
: QDialog(w)
{
Comp = pc;
ModelLevel = 1;

edtModel = new QPlainTextEdit;
QLabel *lblModel = new QLabel(tr("Insert .MODEL text here"));
Expand Down Expand Up @@ -127,6 +128,17 @@ int fillFromSpiceDialog::parseModelcard()
value += "M";
}

if (ModelType == "nmos" || ModelType == "pmos") { // check MOS level
if (name == "level") {
ModelLevel = value.toInt();
QList<int> allowed_levels;
allowed_levels<<1<<2<<3<<4<<5<<6<<7<<9;
if (!allowed_levels.contains(ModelLevel)) {
return wrongLevel;
}
}
}

if (value.size() >=2) {
// Ngspice doesn't accept numbers without leading zero
if (value.at(0) == '.' && value.at(1).isDigit()) {
Expand Down Expand Up @@ -187,6 +199,11 @@ void fillFromSpiceDialog::showErrorMsg(int code)
msg = tr("Subcircuit model (.SUBCKT) found\n"
"Modelcard (.MODEL) expected");
break;
case wrongLevel:
msg = QString(tr("Model LEVEL=%1 is not allowed for unified MOS device\n"
"Use red SPICE device from Microelectronics group\n"
"Allowed LEVELS are: 1,2,3,4,5,6,9")).arg(ModelLevel);
break;
default:
break;
}
Expand Down
3 changes: 2 additions & 1 deletion qucs/dialogs/fillfromspicedialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ class fillFromSpiceDialog : public QDialog {
QMap<QString,QString> parsedProps;
QString ModelName;
QString ModelType;
int ModelLevel;

enum errorCode { noError = 0, noModel = 1, modelMismatch = 2, wrongModel = 3, subcirFound = 4,
numberError = 5 };
numberError = 5, wrongLevel = 6 };

QPlainTextEdit *edtModel;
QPushButton *btnOK, *btnCancel;
Expand Down
7 changes: 4 additions & 3 deletions qucs/dialogs/simmessage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -611,14 +611,15 @@ void SimMessage::startSimulator()
env.insert("PATH", env.value("PATH") + sep + QucsSettings.BinDir );
if (Program.endsWith(QString("asco") + executableSuffix)) {
#ifdef Q_OS_UNIX
auto tmpdir = std::filesystem::temp_directory_path();
auto tmpdir = std::filesystem::path(QucsSettings.tempFilesDir.absolutePath().toStdString());
tmpdir /= "qucs_ascodir"; // ASCO doesn't accept qucsator_rf name;
std::filesystem::create_directory(tmpdir); // qucsator is hardcoded inside ASCO
auto tmp_qucsator = tmpdir / "qucsator";
auto target = QFileInfo(QucsSettings.Qucsator).absoluteFilePath().toStdString();
if (!std::filesystem::exists(tmp_qucsator)){
std::filesystem::create_symlink(std::filesystem::path(target), tmp_qucsator);
if (std::filesystem::exists(tmp_qucsator)){
std::filesystem::remove(tmp_qucsator);
}
std::filesystem::create_symlink(std::filesystem::path(target), tmp_qucsator);
//env.insert("ASCO_SIM_PATH",QucsSettings.Qucsator);
env.insert("PATH", env.value("PATH") + sep + QString::fromStdString(tmpdir.string()));
#endif
Expand Down
2 changes: 1 addition & 1 deletion qucs/qucs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1460,7 +1460,7 @@ void QucsApp::slotMenuProjClose()

slotResetWarnings();
setWindowTitle(windowTitle);
QucsSettings.QucsWorkDir.setPath(QDir::homePath()+QDir::toNativeSeparators ("/.qucs"));
QucsSettings.QucsWorkDir.setPath(QucsSettings.qucsWorkspaceDir.absolutePath());
octave->adjustDirectory();

Content->setProjPath("");
Expand Down

0 comments on commit e67a0f3

Please sign in to comment.