diff --git a/codeloader.cpp b/codeloader.cpp index 6782a33de..bc39647c1 100644 --- a/codeloader.cpp +++ b/codeloader.cpp @@ -88,10 +88,10 @@ bool CodeLoader::lispErase(int size) if (erRes == -10) { msg = tr("Erase timed out"); } else if (erRes == -1) { - msg = tr("Erasing Lisp Code failed"); + msg = tr("Erasing LispBM Code failed"); } - mVesc->emitMessageDialog(tr("Erase Lisp"), msg, false); + mVesc->emitMessageDialog(tr("Erase LispBM"), msg, false); return false; } @@ -142,13 +142,13 @@ QString CodeLoader::reduceLispFile(QString fileData) int fileNum = QDir("lispReduceBefore"). entryInfoList(QDir::NoFilter, QDir::Name).size(); - QFile fBefore(QString("lispReduceBefore/lispBeforeReduce%1.lisp").arg(fileNum)); + QFile fBefore(QString("lispReduceBefore/lispBeforeReduce%1.lbm").arg(fileNum)); if (fBefore.open(QIODevice::WriteOnly | QIODevice::Text)) { fBefore.write(fileData.toUtf8()); fBefore.close(); } - QFile fAfter(QString("lispReduceAfter/lispAfterReduce%1.lisp").arg(fileNum)); + QFile fAfter(QString("lispReduceAfter/lispAfterReduce%1.lbm").arg(fileNum)); if (fAfter.open(QIODevice::WriteOnly | QIODevice::Text)) { fAfter.write(res.toUtf8()); fAfter.close(); @@ -270,7 +270,9 @@ QByteArray CodeLoader::lispPackImports(QString codeStr, QString editorPath, bool } } } else { - if (reduceLisp && fi.absoluteFilePath().endsWith(".lisp", Qt::CaseInsensitive)) { + bool hasExtension = fi.absoluteFilePath().endsWith(".lbm", Qt::CaseInsensitive) + || fi.absoluteFilePath().endsWith(".lisp", Qt::CaseInsensitive); + if (reduceLisp && hasExtension) { fileData = reduceLispFile(QString::fromUtf8(fileData)).toUtf8(); } fileData.append('\0'); // Pad with 0 in case it is a text file @@ -365,7 +367,7 @@ bool CodeLoader::lispUpload(VByteArray vb) data.vbAppendUint16(crc); data.append(vb); - // The ESP32 partition table has 512k space for lisp scripts. The STM32 + // The ESP32 partition table has 512k space for LispBM scripts. The STM32 // has one 128k flash page. Subtract 6 bytes for fw size and crc. auto fwParams = mVesc->getLastFwRxParams(); int max_size = 1024 * 512 - 6; @@ -597,7 +599,7 @@ QString CodeLoader::lispRead(QWidget *parent, QString &lispPath) QString dirName = QFileDialog::getExistingDirectory(parent, tr("Choose Directory")); if (!dirName.isEmpty()) { - QFile fileLisp(dirName + "/From VESC.lisp"); + QFile fileLisp(dirName + "/From VESC.lbm"); if (!fileLisp.exists()) { if (fileLisp.open(QIODevice::WriteOnly)) { fileLisp.write(res.toUtf8()); @@ -651,8 +653,8 @@ QString CodeLoader::lispRead(QWidget *parent, QString &lispPath) } } - mVesc->emitMessageDialog(tr("Get Lisp"), - tr("Could not read Lisp code"), + mVesc->emitMessageDialog(tr("Get LispBM"), + tr("Could not read LispBM code"), false); disconnect(conn); @@ -1165,15 +1167,15 @@ bool CodeLoader::createPackageFromDescription(QString path, VescPackage *pkgRes, // Empty array means an error. Otherwise, lispPackImports() always returns data. if (pkg.lispData.isEmpty()) { - qWarning() << "Errors when processing lisp imports."; + qWarning() << "Errors when processing LispBM imports."; result = false; } f.close(); - qDebug() << "Package lisp found and parsed!"; + qDebug() << "Package LispBM found and parsed!"; } else { - qWarning() << "Could not open lisp file."; + qWarning() << "Could not open LispBM file."; result = false; } } diff --git a/main.cpp b/main.cpp index d034237f6..66b08d480 100755 --- a/main.cpp +++ b/main.cpp @@ -102,16 +102,16 @@ static void showHelp() qDebug() << "--getCustomConf [confPath] : Connect and read custom configuration 1 and store the XML to confPath."; qDebug() << "--setCustomConf [confPath] : Connect and write custom configuration 1 XML from confPath."; qDebug() << "--debugOutFile [path] : Print debug output to file with path."; - qDebug() << "--uploadLisp [path] : Upload lisp-script."; + qDebug() << "--uploadLisp [path] : Upload LispBM script."; qDebug() << "--reduceLisp : Reduce LispBM file size by removing comments, spaces and imports."; - qDebug() << "--eraseLisp : Erase lisp-script."; + qDebug() << "--eraseLisp : Erase LispBM script."; qDebug() << "--uploadFirmware [path] : Upload firmware-file from path."; qDebug() << "--uploadBootloaderBuiltin : Upload bootloader from generic included bootloaders."; qDebug() << "--queryDeviceFwParams : Connect and print out device fw parameters."; qDebug() << "--writeFileToSdCard [fileLocal:pathSdcard] : Write file to SD-card."; qDebug() << "--packFirmware [fileIn:fileOut] : Pack firmware-file for compatibility with the bootloader. "; - qDebug() << "--packLisp [fileIn:fileOut] : Pack lisp-file and the included imports."; - qDebug() << "--bridgeAppData : Send app data (such as data from send-data in lisp) to stdout."; + qDebug() << "--packLisp [fileIn:fileOut] : Pack LispBM file and the included imports."; + qDebug() << "--bridgeAppData : Send app data (such as data from send-data in LispBM) to stdout."; qDebug() << "--offscreen : Use offscreen QPA so that X is not required for the CLI-mode."; qDebug() << "--downloadPackageArchive : Download package archive to application data directory."; } @@ -859,8 +859,9 @@ int main(int argc, char *argv[]) } if (!lispPackIn.isEmpty()) { - if (!lispPackIn.endsWith(".lisp", Qt::CaseInsensitive)) { - qWarning() << "Warning: Unexpected file extension for a lisp-file."; + if (!lispPackIn.endsWith(".lbm", Qt::CaseInsensitive) + && !lispPackIn.endsWith(".lisp", Qt::CaseInsensitive)) { + qWarning() << "Warning: Unexpected file extension for a LispBM file."; } QFile fIn(lispPackIn); @@ -942,7 +943,7 @@ int main(int argc, char *argv[]) if (!lispPath.isEmpty()) { QFile f(lispPath); if (!f.open(QIODevice::ReadOnly)) { - qWarning() << "Could not open lisp file for reading."; + qWarning() << "Could not open LispBM file for reading."; return 1; } @@ -950,12 +951,12 @@ int main(int argc, char *argv[]) pkg.lispData = loader.lispPackImports(f.readAll(), fi.canonicalPath(), reduceLisp); // Empty array means an error. Otherwise, CodeLoader.lispPackImports() always returns data. if (pkg.lispData.isEmpty()) { - qWarning() << "Errors when processing lisp imports."; + qWarning() << "Errors when processing LispBM imports."; return 1; } f.close(); - qDebug() << "Read lisp script done"; + qDebug() << "Read LispBM script done"; } if (!qmlPath.isEmpty()) { @@ -1157,9 +1158,9 @@ int main(int argc, char *argv[]) if (eraseLisp) { if (loader.lispErase(16)) { - qDebug() << "Lisp erase OK!"; + qDebug() << "LispBM erase OK!"; } else { - qWarning() << "Could not erase lisp"; + qWarning() << "Could not erase LispBM"; exitCode = -10; } } @@ -1176,23 +1177,23 @@ int main(int argc, char *argv[]) if (ok) { ok = loader.lispUpload(lispData); } else { - qWarning() << "Could not erase lisp"; + qWarning() << "Could not erase LispBM"; exitCode = -10; } if (ok) { - qDebug() << "Lisp upload OK!"; + qDebug() << "LispBM upload OK!"; vesc->commands()->lispSetRunning(1); Utility::sleepWithEventLoop(100); } else { - qWarning() << "Could not upload lisp"; + qWarning() << "Could not upload LispBM"; exitCode = -11; } } else { - qWarning() << "Empty or invalid lisp-file."; + qWarning() << "Empty or invalid LispBM file."; exitCode = -12; } } else { - qWarning() << "Could not open lisp file for reading."; + qWarning() << "Could not open LispBM file for reading."; exitCode = -13; } } diff --git a/mainwindow.cpp b/mainwindow.cpp index 44aee0fa0..30f31a4bd 100755 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -693,8 +693,8 @@ void MainWindow::closeEvent(QCloseEvent *event) if (mPageLisp->hasUnsavedTabs()) { QMessageBox::StandardButton answer = QMessageBox::question( this, - tr("Unsaved Lisp-Tabs"), - tr("There are unsaved Lisp-tabs open. Do you want to close " + tr("Unsaved LispBM Tabs"), + tr("There are unsaved LispBM tabs open. Do you want to close " "VESC Tool without saving them?"), QMessageBox::Yes | QMessageBox::Cancel ); diff --git a/pages/pageespprog.cpp b/pages/pageespprog.cpp index 754eea2f3..ca40903f8 100644 --- a/pages/pageespprog.cpp +++ b/pages/pageespprog.cpp @@ -366,11 +366,11 @@ void PageEspProg::listAllFw() void PageEspProg::on_eraseLispButton_clicked() { ui->eraseLispButton->setEnabled(false); - ui->progWidget->setText("Erasing Lisp..."); + ui->progWidget->setText("Erasing LispBM..."); ui->progWidget->setValue(0.0); mEspFlash.eraseFlash(512 * 1024, ui->lispOffsetBox->value()); ui->eraseLispButton->setEnabled(true); - ui->progWidget->setText("Done erasing Lisp!"); + ui->progWidget->setText("Done erasing LispBM!"); } void PageEspProg::on_eraseQmlButton_clicked() diff --git a/pages/pageespprog.ui b/pages/pageespprog.ui index 72953c60e..3a6b2ce1a 100644 --- a/pages/pageespprog.ui +++ b/pages/pageespprog.ui @@ -313,7 +313,7 @@ - Erase Lisp + Erase LispBM @@ -376,7 +376,7 @@ - Lisp: 0x + LispBM: 0x 9999999 diff --git a/pages/pagelisp.cpp b/pages/pagelisp.cpp index 23b5e9583..70ec9e713 100644 --- a/pages/pagelisp.cpp +++ b/pages/pagelisp.cpp @@ -112,7 +112,7 @@ PageLisp::PageLisp(QWidget *parent) : updateRecentList(); // Load examples - foreach (auto &fi, QDir("://res/Lisp/Examples/").entryInfoList(QDir::NoFilter, QDir::Name)) { + foreach (auto &fi, QDir("://res/LispBM/Examples/").entryInfoList(QDir::NoFilter, QDir::Name)) { QListWidgetItem *item = new QListWidgetItem; item->setText(fi.fileName()); item->setData(Qt::UserRole, fi.filePath()); @@ -229,8 +229,8 @@ void PageLisp::setVesc(VescInterface *vesc) connect(mVesc->commands(), &Commands::lispRunningResRx, [this](bool ok) { if (!ok) { - mVesc->emitMessageDialog(tr("Start/Stop Lisp"), - tr("Start/Stop Lisp failed. Did you forget to upload the code?"), false); + mVesc->emitMessageDialog(tr("Start/Stop LispBM"), + tr("Start/Stop LispBM failed. Did you forget to upload the code?"), false); } }); @@ -511,7 +511,7 @@ void PageLisp::openExample() QFile file(item->data(Qt::UserRole).toString()); if (!file.open(QIODevice::ReadOnly)) { - QMessageBox::critical(this, "Open Lisp File", + QMessageBox::critical(this, "Open LispBM File", "Could not open example for reading"); return; } @@ -534,7 +534,7 @@ void PageLisp::openRecentList() QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { - QMessageBox::critical(this, "Open Lisp File", + QMessageBox::critical(this, "Open LispBM File", "Could not open\n " + fileName + " for reading"); return; } @@ -739,13 +739,13 @@ void PageLisp::on_rescaleButton_clicked() void PageLisp::on_helpButton_clicked() { - QString html = "VESC Lisp Editor

" + QString html = "VESC LispBM Editor

" "" "For documentation, go to
" "https://github.com/vedderb/bldc/blob/master/lispBM/README.md

" "" "You can also join the unofficial VESC Discord server and ask questions " - "in the lisp-scripting chat at
" + "in the lisp-and-qml-scripting chat at
" "https://discord.gg/JgvV5NwYts

" "Keyboard Commands
" "Ctrl + '+' : Increase font size
" @@ -857,7 +857,7 @@ void PageLisp::on_infoButton_clicked() "Reduction enabled : %3
" "
" "The sizes include the size of all imports. All " - "imports that end with .lisp are also reduced. " + "imports that end with .lbm or .lisp are also reduced. " "The reduction option can be enabled in the preferences." ).arg(vbNoReduce.size()). arg(vbReduce.size()). diff --git a/pages/pagelisp.ui b/pages/pagelisp.ui index 5e509b603..aacd30f46 100644 --- a/pages/pagelisp.ui +++ b/pages/pagelisp.ui @@ -33,7 +33,7 @@ - Erase lisp application from VESC. This will also prevent it from starting on next boot (as expected). + Erase LispBM application from VESC. This will also prevent it from starting on next boot (as expected). Erase @@ -72,7 +72,7 @@ - Read lisp code from connected VESC + Read LispBM code from connected VESC Read diff --git a/pages/pagevescpackage.cpp b/pages/pagevescpackage.cpp index eca16f186..bf19cb394 100644 --- a/pages/pagevescpackage.cpp +++ b/pages/pagevescpackage.cpp @@ -136,8 +136,8 @@ void PageVescPackage::on_chooseLoadButton_clicked() void PageVescPackage::on_chooseLispButton_clicked() { QString filename = QFileDialog::getOpenFileName(this, - tr("Choose Lisp File"), ui->lispEdit->text(), - tr("Lisp files (*.lisp)")); + tr("Choose LispBM File"), ui->lispEdit->text(), + tr("LispBM files (*.lbm *.lisp)")); if (!filename.isNull()) { ui->lispEdit->setText(filename); } @@ -213,7 +213,7 @@ void PageVescPackage::on_saveButton_clicked() QFile f(ui->lispEdit->text()); if (!f.open(QIODevice::ReadOnly)) { mVesc->emitMessageDialog(tr("Save Package"), - tr("Could not open lisp file for reading."), + tr("Could not open LispBM file for reading."), false, false); return; } @@ -482,7 +482,7 @@ void PageVescPackage::packageSelected(VescPackage pkg) ui->installButton->setToolTip(""); } else { ui->installButton->setToolTip("This is a library, so it is not supposed to be installed. You can use " - "it from your own LispBM-scripts without installing it."); + "it from your own LispBM scripts without installing it."); } } diff --git a/pages/pagevescpackage.ui b/pages/pagevescpackage.ui index 6610dffec..5003b3751 100644 --- a/pages/pagevescpackage.ui +++ b/pages/pagevescpackage.ui @@ -222,7 +222,7 @@ - Lisp + LispBM true diff --git a/res/CHANGELOG.md b/res/CHANGELOG.md index d6e381d8a..33b28f84a 100644 --- a/res/CHANGELOG.md +++ b/res/CHANGELOG.md @@ -1,14 +1,14 @@ ### 6.06 #### Released TBD * Auto-save UI-state on regular intervals. -* Movable lisp-tabs and better tab behavior in general. +* Movable LispBM tabs and better tab behavior in general. * Detect file system changes in script editor. * Duplicate line shortcut in script editor. * Use temperature convention on BMS page. * Show Min, Max and Diff voltage on BMS page. * Support building VESC Packages from QML description file. * Filter package store based on rules from QML description. -* Added option to reduce Lisp file size by removing comments, spaces and imports. +* Added option to reduce LispBM file size by removing comments, spaces and imports. * Disable motor commands after using the stop button or ESC key for 5 seconds (configurable in preferences). * Show dialog with package description in mobile UI when installing from file. diff --git a/res/Lisp/Examples/aux_out.lisp b/res/LispBM/Examples/aux_out.lbm similarity index 100% rename from res/Lisp/Examples/aux_out.lisp rename to res/LispBM/Examples/aux_out.lbm diff --git a/res/Lisp/Examples/balance.lisp b/res/LispBM/Examples/balance.lbm similarity index 98% rename from res/Lisp/Examples/balance.lisp rename to res/LispBM/Examples/balance.lbm index e0558ad2d..8b45dcd61 100644 --- a/res/Lisp/Examples/balance.lisp +++ b/res/LispBM/Examples/balance.lbm @@ -1,4 +1,4 @@ -; Balance robot controller written in lisp +; Balance robot controller written in LispBM (defun #abs (x) (if (> x 0) x (- x))) diff --git a/res/Lisp/Examples/can_js.lisp b/res/LispBM/Examples/can_js.lbm similarity index 100% rename from res/Lisp/Examples/can_js.lisp rename to res/LispBM/Examples/can_js.lbm diff --git a/res/Lisp/Examples/can_pos_follow.lisp b/res/LispBM/Examples/can_pos_follow.lbm similarity index 100% rename from res/Lisp/Examples/can_pos_follow.lisp rename to res/LispBM/Examples/can_pos_follow.lbm diff --git a/res/Lisp/Examples/control_servo_from_duty.lisp b/res/LispBM/Examples/control_servo_from_duty.lbm similarity index 100% rename from res/Lisp/Examples/control_servo_from_duty.lisp rename to res/LispBM/Examples/control_servo_from_duty.lbm diff --git a/res/Lisp/Examples/control_servo_from_encoder.lisp b/res/LispBM/Examples/control_servo_from_encoder.lbm similarity index 100% rename from res/Lisp/Examples/control_servo_from_encoder.lisp rename to res/LispBM/Examples/control_servo_from_encoder.lbm diff --git a/res/Lisp/Examples/crc16.lisp b/res/LispBM/Examples/crc16.lbm similarity index 100% rename from res/Lisp/Examples/crc16.lisp rename to res/LispBM/Examples/crc16.lbm diff --git a/res/Lisp/Examples/crc16_v2.lisp b/res/LispBM/Examples/crc16_v2.lbm similarity index 100% rename from res/Lisp/Examples/crc16_v2.lisp rename to res/LispBM/Examples/crc16_v2.lbm diff --git a/res/Lisp/Examples/duty_ramp_functional.lisp b/res/LispBM/Examples/duty_ramp_functional.lbm similarity index 100% rename from res/Lisp/Examples/duty_ramp_functional.lisp rename to res/LispBM/Examples/duty_ramp_functional.lbm diff --git a/res/Lisp/Examples/duty_ramp_imperative.lisp b/res/LispBM/Examples/duty_ramp_imperative.lbm similarity index 100% rename from res/Lisp/Examples/duty_ramp_imperative.lisp rename to res/LispBM/Examples/duty_ramp_imperative.lbm diff --git a/res/Lisp/Examples/encoder_sincos_cal.lisp b/res/LispBM/Examples/encoder_sincos_cal.lbm similarity index 100% rename from res/Lisp/Examples/encoder_sincos_cal.lisp rename to res/LispBM/Examples/encoder_sincos_cal.lbm diff --git a/res/Lisp/Examples/est_temp.lisp b/res/LispBM/Examples/est_temp.lbm similarity index 100% rename from res/Lisp/Examples/est_temp.lisp rename to res/LispBM/Examples/est_temp.lbm diff --git a/res/Lisp/Examples/event_custom_data.lisp b/res/LispBM/Examples/event_custom_data.lbm similarity index 100% rename from res/Lisp/Examples/event_custom_data.lisp rename to res/LispBM/Examples/event_custom_data.lbm diff --git a/res/Lisp/Examples/foc_melody.lisp b/res/LispBM/Examples/foc_melody.lbm similarity index 100% rename from res/Lisp/Examples/foc_melody.lisp rename to res/LispBM/Examples/foc_melody.lbm diff --git a/res/Lisp/Examples/fw_update.lisp b/res/LispBM/Examples/fw_update.lbm similarity index 100% rename from res/Lisp/Examples/fw_update.lisp rename to res/LispBM/Examples/fw_update.lbm diff --git a/res/Lisp/Examples/gc_time_test.lisp b/res/LispBM/Examples/gc_time_test.lbm similarity index 100% rename from res/Lisp/Examples/gc_time_test.lisp rename to res/LispBM/Examples/gc_time_test.lbm diff --git a/res/Lisp/Examples/hfi_start_analyze.lisp b/res/LispBM/Examples/hfi_start_analyze.lbm similarity index 100% rename from res/Lisp/Examples/hfi_start_analyze.lisp rename to res/LispBM/Examples/hfi_start_analyze.lbm diff --git a/res/Lisp/Examples/i2c_mpu9250.lisp b/res/LispBM/Examples/i2c_mpu9250.lbm similarity index 100% rename from res/Lisp/Examples/i2c_mpu9250.lisp rename to res/LispBM/Examples/i2c_mpu9250.lbm diff --git a/res/Lisp/Examples/icu_pwm_encoder.lisp b/res/LispBM/Examples/icu_pwm_encoder.lbm similarity index 100% rename from res/Lisp/Examples/icu_pwm_encoder.lisp rename to res/LispBM/Examples/icu_pwm_encoder.lbm diff --git a/res/Lisp/Examples/input_capture.lisp b/res/LispBM/Examples/input_capture.lbm similarity index 100% rename from res/Lisp/Examples/input_capture.lisp rename to res/LispBM/Examples/input_capture.lbm diff --git a/res/Lisp/Examples/lbm_update.lisp b/res/LispBM/Examples/lbm_update.lbm similarity index 100% rename from res/Lisp/Examples/lbm_update.lisp rename to res/LispBM/Examples/lbm_update.lbm diff --git a/res/Lisp/Examples/list_with_lists.lisp b/res/LispBM/Examples/list_with_lists.lbm similarity index 100% rename from res/Lisp/Examples/list_with_lists.lisp rename to res/LispBM/Examples/list_with_lists.lbm diff --git a/res/Lisp/Examples/log_can.lisp b/res/LispBM/Examples/log_can.lbm similarity index 100% rename from res/Lisp/Examples/log_can.lisp rename to res/LispBM/Examples/log_can.lbm diff --git a/res/Lisp/Examples/log_vesc_tool.lisp b/res/LispBM/Examples/log_vesc_tool.lbm similarity index 100% rename from res/Lisp/Examples/log_vesc_tool.lisp rename to res/LispBM/Examples/log_vesc_tool.lbm diff --git a/res/Lisp/Examples/loop.lisp b/res/LispBM/Examples/loop.lbm similarity index 100% rename from res/Lisp/Examples/loop.lisp rename to res/LispBM/Examples/loop.lbm diff --git a/res/Lisp/Examples/loop_tests.lisp b/res/LispBM/Examples/loop_tests.lbm similarity index 100% rename from res/Lisp/Examples/loop_tests.lisp rename to res/LispBM/Examples/loop_tests.lbm diff --git a/res/Lisp/Examples/m365_dash.lisp b/res/LispBM/Examples/m365_dash.lbm similarity index 100% rename from res/Lisp/Examples/m365_dash.lisp rename to res/LispBM/Examples/m365_dash.lbm diff --git a/res/Lisp/Examples/play_mp3.lisp b/res/LispBM/Examples/play_mp3.lbm similarity index 100% rename from res/Lisp/Examples/play_mp3.lisp rename to res/LispBM/Examples/play_mp3.lbm diff --git a/res/Lisp/Examples/plot_interpolation.lisp b/res/LispBM/Examples/plot_interpolation.lbm similarity index 100% rename from res/Lisp/Examples/plot_interpolation.lisp rename to res/LispBM/Examples/plot_interpolation.lbm diff --git a/res/Lisp/Examples/plot_vesc_tool.lisp b/res/LispBM/Examples/plot_vesc_tool.lbm similarity index 100% rename from res/Lisp/Examples/plot_vesc_tool.lisp rename to res/LispBM/Examples/plot_vesc_tool.lbm diff --git a/res/Lisp/Examples/plot_vesc_tool_current.lisp b/res/LispBM/Examples/plot_vesc_tool_current.lbm similarity index 100% rename from res/Lisp/Examples/plot_vesc_tool_current.lisp rename to res/LispBM/Examples/plot_vesc_tool_current.lbm diff --git a/res/Lisp/Examples/ppm_read.lisp b/res/LispBM/Examples/ppm_read.lbm similarity index 100% rename from res/Lisp/Examples/ppm_read.lisp rename to res/LispBM/Examples/ppm_read.lbm diff --git a/res/Lisp/Examples/print.lisp b/res/LispBM/Examples/print.lbm similarity index 89% rename from res/Lisp/Examples/print.lisp rename to res/LispBM/Examples/print.lbm index a8b431274..850d01165 100644 --- a/res/Lisp/Examples/print.lisp +++ b/res/LispBM/Examples/print.lbm @@ -1,7 +1,7 @@ ; This is how to print a string in LispBM to the console below (print "Hello World!") -; You can also print lisp types, such as the list (1 2 3 4 5) +; You can also print other types, such as the list (1 2 3 4 5) (print (list 1 2 3 4 5)) ; Here we print the index of a range loop diff --git a/res/Lisp/Examples/print_bms_data.lisp b/res/LispBM/Examples/print_bms_data.lbm similarity index 100% rename from res/Lisp/Examples/print_bms_data.lisp rename to res/LispBM/Examples/print_bms_data.lbm diff --git a/res/Lisp/Examples/raw_current.lisp b/res/LispBM/Examples/raw_current.lbm similarity index 100% rename from res/Lisp/Examples/raw_current.lisp rename to res/LispBM/Examples/raw_current.lbm diff --git a/res/Lisp/Examples/raw_hall.lisp b/res/LispBM/Examples/raw_hall.lbm similarity index 100% rename from res/Lisp/Examples/raw_hall.lisp rename to res/LispBM/Examples/raw_hall.lbm diff --git a/res/Lisp/Examples/raw_voltage.lisp b/res/LispBM/Examples/raw_voltage.lbm similarity index 100% rename from res/Lisp/Examples/raw_voltage.lisp rename to res/LispBM/Examples/raw_voltage.lbm diff --git a/res/Lisp/Examples/raw_voltage_mod.lisp b/res/LispBM/Examples/raw_voltage_mod.lbm similarity index 100% rename from res/Lisp/Examples/raw_voltage_mod.lisp rename to res/LispBM/Examples/raw_voltage_mod.lbm diff --git a/res/Lisp/Examples/remote.lisp b/res/LispBM/Examples/remote.lbm similarity index 100% rename from res/Lisp/Examples/remote.lisp rename to res/LispBM/Examples/remote.lbm diff --git a/res/Lisp/Examples/rgbled_demo.lisp b/res/LispBM/Examples/rgbled_demo.lbm similarity index 100% rename from res/Lisp/Examples/rgbled_demo.lisp rename to res/LispBM/Examples/rgbled_demo.lbm diff --git a/res/Lisp/Examples/sort_test1.lisp b/res/LispBM/Examples/sort_test1.lbm similarity index 94% rename from res/Lisp/Examples/sort_test1.lisp rename to res/LispBM/Examples/sort_test1.lbm index 3fefc5b6a..be62bf39d 100644 --- a/res/Lisp/Examples/sort_test1.lisp +++ b/res/LispBM/Examples/sort_test1.lbm @@ -26,7 +26,7 @@ (defun test () { (var ts (systime)) (repeat '(sort2 < numbers) 50) - (print (list "Lisp" (secs-since ts))) + (print (list "LispBM" (secs-since ts))) (var ts (systime)) (repeat '(sort < numbers) 50) diff --git a/res/Lisp/Examples/sort_test2.lisp b/res/LispBM/Examples/sort_test2.lbm similarity index 100% rename from res/Lisp/Examples/sort_test2.lisp rename to res/LispBM/Examples/sort_test2.lbm diff --git a/res/Lisp/Examples/speed_test.lisp b/res/LispBM/Examples/speed_test.lbm similarity index 100% rename from res/Lisp/Examples/speed_test.lisp rename to res/LispBM/Examples/speed_test.lbm diff --git a/res/Lisp/Examples/speed_test_i64.lisp b/res/LispBM/Examples/speed_test_i64.lbm similarity index 100% rename from res/Lisp/Examples/speed_test_i64.lisp rename to res/LispBM/Examples/speed_test_i64.lbm diff --git a/res/Lisp/Examples/speed_test_strings.lisp b/res/LispBM/Examples/speed_test_strings.lbm similarity index 100% rename from res/Lisp/Examples/speed_test_strings.lisp rename to res/LispBM/Examples/speed_test_strings.lbm diff --git a/res/Lisp/Examples/speed_test_tak_q2.lisp b/res/LispBM/Examples/speed_test_tak_q2.lbm similarity index 100% rename from res/Lisp/Examples/speed_test_tak_q2.lisp rename to res/LispBM/Examples/speed_test_tak_q2.lbm diff --git a/res/Lisp/Examples/ssd1306_oled.lisp b/res/LispBM/Examples/ssd1306_oled.lbm similarity index 100% rename from res/Lisp/Examples/ssd1306_oled.lisp rename to res/LispBM/Examples/ssd1306_oled.lbm diff --git a/res/Lisp/Examples/ssd1306_oled_cube.lisp b/res/LispBM/Examples/ssd1306_oled_cube.lbm similarity index 100% rename from res/Lisp/Examples/ssd1306_oled_cube.lisp rename to res/LispBM/Examples/ssd1306_oled_cube.lbm diff --git a/res/Lisp/Examples/ssd1306_oled_cube_native.lisp b/res/LispBM/Examples/ssd1306_oled_cube_native.lbm similarity index 100% rename from res/Lisp/Examples/ssd1306_oled_cube_native.lisp rename to res/LispBM/Examples/ssd1306_oled_cube_native.lbm diff --git a/res/Lisp/Examples/ssd1306_oled_largefont.lisp b/res/LispBM/Examples/ssd1306_oled_largefont.lbm similarity index 100% rename from res/Lisp/Examples/ssd1306_oled_largefont.lisp rename to res/LispBM/Examples/ssd1306_oled_largefont.lbm diff --git a/res/Lisp/Examples/ssd1306_oled_rt_data.lisp b/res/LispBM/Examples/ssd1306_oled_rt_data.lbm similarity index 100% rename from res/Lisp/Examples/ssd1306_oled_rt_data.lisp rename to res/LispBM/Examples/ssd1306_oled_rt_data.lbm diff --git a/res/Lisp/Examples/str_find_any.lisp b/res/LispBM/Examples/str_find_any.lbm similarity index 100% rename from res/Lisp/Examples/str_find_any.lisp rename to res/LispBM/Examples/str_find_any.lbm diff --git a/res/Lisp/Examples/test_extensions.lisp b/res/LispBM/Examples/test_extensions.lbm similarity index 100% rename from res/Lisp/Examples/test_extensions.lisp rename to res/LispBM/Examples/test_extensions.lbm diff --git a/res/Lisp/Examples/threads.lisp b/res/LispBM/Examples/threads.lbm similarity index 100% rename from res/Lisp/Examples/threads.lisp rename to res/LispBM/Examples/threads.lbm diff --git a/res/Lisp/Examples/threads_create_many.lisp b/res/LispBM/Examples/threads_create_many.lbm similarity index 100% rename from res/Lisp/Examples/threads_create_many.lisp rename to res/LispBM/Examples/threads_create_many.lbm diff --git a/res/Lisp/Examples/uart.lisp b/res/LispBM/Examples/uart.lbm similarity index 100% rename from res/Lisp/Examples/uart.lisp rename to res/LispBM/Examples/uart.lbm diff --git a/res/Lisp/Examples/ws2812_native.lisp b/res/LispBM/Examples/ws2812_native.lbm similarity index 100% rename from res/Lisp/Examples/ws2812_native.lisp rename to res/LispBM/Examples/ws2812_native.lbm diff --git a/res/config/6.06/info.xml b/res/config/6.06/info.xml index 20e32432f..8c0261161 100644 --- a/res/config/6.06/info.xml +++ b/res/config/6.06/info.xml @@ -621,7 +621,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Qml Scripting</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Qml is an extension of javascript that is used to make mobile applications in Qt. The mobile version of VESC Tool as well as the wizards in the desktop version are written in Qml. The Qml-editor in VESC Tool can be used to write custom user interface pages that are loaded and run in VESC Tool. There are many examples available that can be used as a starting point.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Lisp Scripting</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">LispBM Scripting</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The VESC motor control firmware as well as the VESC Express firmware have a built-in version of LispBM, which is a modern embedded scripting language based on lisp. Code written in LispBM runs directly on the hardware and can be used for custom functionality not covered by the basic applications. </p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">CAN Tools</span></p> diff --git a/res/config/6.06/parameters_mcconf.xml b/res/config/6.06/parameters_mcconf.xml index dedb6a496..5f5ec88c1 100644 --- a/res/config/6.06/parameters_mcconf.xml +++ b/res/config/6.06/parameters_mcconf.xml @@ -3732,7 +3732,7 @@ p, li { white-space: pre-wrap; } <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Wires must be shielded and/or run together or you will get communication errors.<br /><br />“SSC SW” Connections: H1 = SCK, H2 = DATA , H3 = CS <br />“SSC HW” Connections: ADC1 = SCK, TX = DATA , NSS = CS</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">Custom Encoder</span></p> -<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This means that a native library is loaded that handles reading of the encoder and provides the decoded angle. Lisp can also be used to implement a custom encoder.</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">This means that a native library is loaded that handles reading of the encoder and provides the decoded angle. LispBM can also be used to implement a custom encoder.</p> <p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600;">PWM</span></p> <p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Use the PPM/PWM input for the encoder. Make sure that the PPM-app is disabled.</p> diff --git a/res/qml/Examples/Mp3Stream.qml b/res/qml/Examples/Mp3Stream.qml index fe17c75ab..bd3d03343 100644 --- a/res/qml/Examples/Mp3Stream.qml +++ b/res/qml/Examples/Mp3Stream.qml @@ -51,7 +51,7 @@ Item { Text { Layout.fillWidth: true Layout.fillHeight: true - text: "Sample server running. The play_mp3.lisp example should work now." + text: "Sample server running. The play_mp3.lbm example should work now." color: "white" wrapMode: Text.WordWrap } diff --git a/res_lisp.qrc b/res_lisp.qrc index 0659523dd..dcdc3182f 100644 --- a/res_lisp.qrc +++ b/res_lisp.qrc @@ -1,61 +1,61 @@ - res/Lisp/Examples/can_pos_follow.lisp - res/Lisp/Examples/control_servo_from_duty.lisp - res/Lisp/Examples/control_servo_from_encoder.lisp - res/Lisp/Examples/ppm_read.lisp - res/Lisp/Examples/print_bms_data.lisp - res/Lisp/Examples/speed_test.lisp - res/Lisp/Examples/loop.lisp - res/Lisp/Examples/can_js.lisp - res/Lisp/Examples/aux_out.lisp - res/Lisp/Examples/raw_current.lisp - res/Lisp/Examples/raw_voltage.lisp - res/Lisp/Examples/raw_voltage_mod.lisp - res/Lisp/Examples/balance.lisp - res/Lisp/Examples/uart.lisp - res/Lisp/Examples/threads.lisp - res/Lisp/Examples/i2c_mpu9250.lisp - res/Lisp/Examples/threads_create_many.lisp - res/Lisp/Examples/list_with_lists.lisp - res/Lisp/Examples/gc_time_test.lisp - res/Lisp/Examples/remote.lisp - res/Lisp/Examples/duty_ramp_functional.lisp - res/Lisp/Examples/duty_ramp_imperative.lisp - res/Lisp/Examples/loop_tests.lisp - res/Lisp/Examples/raw_hall.lisp - res/Lisp/Examples/print.lisp - res/Lisp/Examples/ssd1306_oled.lisp - res/Lisp/Examples/ssd1306_oled_cube.lisp - res/Lisp/Examples/ssd1306_oled_largefont.lisp - res/Lisp/Examples/ssd1306_oled_rt_data.lisp - res/Lisp/Examples/m365_dash.lisp - res/Lisp/Examples/ssd1306_oled_cube_native.lisp - res/Lisp/Examples/ws2812_native.lisp - res/Lisp/Examples/plot_vesc_tool.lisp - res/Lisp/Examples/log_can.lisp - res/Lisp/Examples/crc16.lisp - res/Lisp/Examples/encoder_sincos_cal.lisp - res/Lisp/Examples/test_extensions.lisp - res/Lisp/Examples/est_temp.lisp - res/Lisp/Examples/plot_interpolation.lisp - res/Lisp/Examples/input_capture.lisp - res/Lisp/Examples/event_custom_data.lisp - res/Lisp/Examples/crc16_v2.lisp - res/Lisp/Examples/speed_test_tak_q2.lisp - res/Lisp/Examples/log_vesc_tool.lisp - res/Lisp/Examples/fw_update.lisp - res/Lisp/Examples/lbm_update.lisp - res/Lisp/Examples/sort_test1.lisp - res/Lisp/Examples/sort_test2.lisp - res/Lisp/Examples/foc_melody.lisp - res/Lisp/Examples/play_mp3.lisp - res/Lisp/Examples/rgbled_demo.lisp - res/Lisp/Examples/speed_test_i64.lisp - res/Lisp/Examples/speed_test_strings.lisp - res/Lisp/Examples/str_find_any.lisp - res/Lisp/Examples/hfi_start_analyze.lisp - res/Lisp/Examples/plot_vesc_tool_current.lisp - res/Lisp/Examples/icu_pwm_encoder.lisp + res/LispBM/Examples/can_pos_follow.lbm + res/LispBM/Examples/control_servo_from_duty.lbm + res/LispBM/Examples/control_servo_from_encoder.lbm + res/LispBM/Examples/ppm_read.lbm + res/LispBM/Examples/print_bms_data.lbm + res/LispBM/Examples/speed_test.lbm + res/LispBM/Examples/loop.lbm + res/LispBM/Examples/can_js.lbm + res/LispBM/Examples/aux_out.lbm + res/LispBM/Examples/raw_current.lbm + res/LispBM/Examples/raw_voltage.lbm + res/LispBM/Examples/raw_voltage_mod.lbm + res/LispBM/Examples/balance.lbm + res/LispBM/Examples/uart.lbm + res/LispBM/Examples/threads.lbm + res/LispBM/Examples/i2c_mpu9250.lbm + res/LispBM/Examples/threads_create_many.lbm + res/LispBM/Examples/list_with_lists.lbm + res/LispBM/Examples/gc_time_test.lbm + res/LispBM/Examples/remote.lbm + res/LispBM/Examples/duty_ramp_functional.lbm + res/LispBM/Examples/duty_ramp_imperative.lbm + res/LispBM/Examples/loop_tests.lbm + res/LispBM/Examples/raw_hall.lbm + res/LispBM/Examples/print.lbm + res/LispBM/Examples/ssd1306_oled.lbm + res/LispBM/Examples/ssd1306_oled_cube.lbm + res/LispBM/Examples/ssd1306_oled_largefont.lbm + res/LispBM/Examples/ssd1306_oled_rt_data.lbm + res/LispBM/Examples/m365_dash.lbm + res/LispBM/Examples/ssd1306_oled_cube_native.lbm + res/LispBM/Examples/ws2812_native.lbm + res/LispBM/Examples/plot_vesc_tool.lbm + res/LispBM/Examples/log_can.lbm + res/LispBM/Examples/crc16.lbm + res/LispBM/Examples/encoder_sincos_cal.lbm + res/LispBM/Examples/test_extensions.lbm + res/LispBM/Examples/est_temp.lbm + res/LispBM/Examples/plot_interpolation.lbm + res/LispBM/Examples/input_capture.lbm + res/LispBM/Examples/event_custom_data.lbm + res/LispBM/Examples/crc16_v2.lbm + res/LispBM/Examples/speed_test_tak_q2.lbm + res/LispBM/Examples/log_vesc_tool.lbm + res/LispBM/Examples/fw_update.lbm + res/LispBM/Examples/lbm_update.lbm + res/LispBM/Examples/sort_test1.lbm + res/LispBM/Examples/sort_test2.lbm + res/LispBM/Examples/foc_melody.lbm + res/LispBM/Examples/play_mp3.lbm + res/LispBM/Examples/rgbled_demo.lbm + res/LispBM/Examples/speed_test_i64.lbm + res/LispBM/Examples/speed_test_strings.lbm + res/LispBM/Examples/str_find_any.lbm + res/LispBM/Examples/hfi_start_analyze.lbm + res/LispBM/Examples/plot_vesc_tool_current.lbm + res/LispBM/Examples/icu_pwm_encoder.lbm diff --git a/treefmt.nix b/treefmt.nix index 0ddfbad82..10477a2c5 100644 --- a/treefmt.nix +++ b/treefmt.nix @@ -37,7 +37,7 @@ "*.ttf" "*.md" "*.xml" - "*.lisp" + "*.lbm" "*.yml" "*.conf" "*.txt" diff --git a/widgets/scripteditor.cpp b/widgets/scripteditor.cpp index 0a313a5dc..b8791f329 100644 --- a/widgets/scripteditor.cpp +++ b/widgets/scripteditor.cpp @@ -194,13 +194,13 @@ void ScriptEditor::on_openFileButton_clicked() } QString fileName = QFileDialog::getOpenFileName(this, - tr("Open %1 File").arg(mIsModeLisp ? "Lisp" : "Qml"), path, - mIsModeLisp ? tr("Lisp files (*.lisp)") : tr("QML files (*.qml)")); + tr("Open %1 File").arg(mIsModeLisp ? "LispBM" : "Qml"), path, + mIsModeLisp ? tr("LispBM files (*.lbm *.lisp)") : tr("QML files (*.qml)")); if (!fileName.isEmpty()) { QFile file(fileName); if (!file.open(QIODevice::ReadOnly)) { - QMessageBox::critical(this, tr("Open %1 File").arg(mIsModeLisp ? "Lisp" : "Qml"), + QMessageBox::critical(this, tr("Open %1 File").arg(mIsModeLisp ? "LispBM" : "Qml"), "Could not open\n" + fileName + "\nfor reading"); return; } @@ -228,7 +228,7 @@ void ScriptEditor::on_saveButton_clicked() QFile file(fileName); if (!file.open(QIODevice::WriteOnly)) { - QMessageBox::critical(this, tr("Save %1 File").arg(mIsModeLisp ? "Lisp" : "Qml"), + QMessageBox::critical(this, tr("Save %1 File").arg(mIsModeLisp ? "LispBM" : "Qml"), "Could not open\n" + fileName + "\nfor writing"); return; } @@ -247,19 +247,26 @@ void ScriptEditor::on_saveButton_clicked() void ScriptEditor::on_saveAsButton_clicked() { QString fileName = QFileDialog::getSaveFileName(this, - tr("Save %1").arg(mIsModeLisp ? "Lisp" : "Qml"), fileNow(), - mIsModeLisp ? tr("Lisp files (*.lisp)") : tr("QML files (*.qml)")); - - QString ending = mIsModeLisp ? ".lisp" : ".qml"; + tr("Save %1").arg(mIsModeLisp ? "LispBM" : "Qml"), fileNow(), + mIsModeLisp ? tr("LispBM files (*.lbm *.lisp)") : tr("QML files (*.qml)")); if (!fileName.isEmpty()) { - if (!fileName.endsWith(ending, Qt::CaseInsensitive)) { - fileName.append(ending); + QString extension = mIsModeLisp ? ".lbm" : ".qml"; + bool hasExtension; + if (mIsModeLisp) { + hasExtension = fileName.endsWith(".lbm", Qt::CaseInsensitive) + || fileName.endsWith(".lisp", Qt::CaseInsensitive); + } else { + hasExtension = fileName.endsWith(".qml", Qt::CaseInsensitive); + } + + if (!hasExtension) { + fileName.append(extension); } QFile file(fileName); if (!file.open(QIODevice::WriteOnly)) { - QMessageBox::critical(this, tr("Save %1 File").arg(mIsModeLisp ? "Lisp" : "Qml"), + QMessageBox::critical(this, tr("Save %1 File").arg(mIsModeLisp ? "LispBM" : "Qml"), "Could not open\n" + fileName + "\nfor writing"); return; }