/* * Main program */ void main() { unsigned long i=0, j=0, k=0; unsigned char pwmpos=0, pwmled=0; on_init(); timer1_init(); firstInit(); programInit(); while(1) { if (!wait) { for(pwmled=0; pwmled<23; pwmled++) { setLEDDiscrete(pwmled, PWM[pwmled] > pwmpos); } pwmpos++; if (pwmpos >= PWM_LENGTH) pwmpos = 0; if (k>20) { for(pwmled=0; pwmled<23; pwmled++) { if (framebuffer[pwmled] < PWM[pwmled]) PWM[pwmled]--; if (framebuffer[pwmled] > PWM[pwmled]) PWM[pwmled]++; } k=0; } if (i > (100*delay)) { programRun(); i=0; } } if (j>10) { readInputs(); j=0; } i++; j++; k++; } }
int main(int argc, char *argv[]) { //init program led_set_blue(ledb_vals[0] | ledb_vals[1]); button_wait(0); roombaInit(); programRun(); /*while (true) { intToAscii(query_sensor(PACKET_INFRARED_CHARACTER_OMNI), roomba_sevenseg_digits); write_sevenseg_digits(); my_msleep(50); }*/ return 0; }
int parseRun(token *tok, char **s) { int line = 0; if (matchRun(tok, s)) { if (matchWhiteSpace(tok, s)) { if (matchNumber(tok, s)) line = tok->n; else return 0; } return programRun(line); } return 0; }
void DebuggerMainWnd::initKAction() { // file menu KAction* open = KStandardAction::open(this, SLOT(slotFileOpen()), actionCollection()); open->setText(i18n("&Open Source...")); m_closeAction = KStandardAction::close(m_filesWindow, SLOT(slotClose()), actionCollection()); m_reloadAction = createAction(i18n("&Reload Source"), "view-refresh", 0, m_filesWindow, SLOT(slotFileReload()), "file_reload"); m_fileExecAction = createAction(i18n("&Executable..."), "document-open-executable", 0, this, SLOT(slotFileExe()), "file_executable"); m_recentExecAction = KStandardAction::openRecent(this, SLOT(slotRecentExec(const KUrl&)), actionCollection()); m_recentExecAction->setObjectName("file_executable_recent"); m_recentExecAction->setText(i18n("Recent E&xecutables")); m_coreDumpAction = createAction(i18n("&Core dump..."), 0, this, SLOT(slotFileCore()), "file_core_dump"); KStandardAction::quit(kapp, SLOT(closeAllWindows()), actionCollection()); // settings menu m_settingsAction = createAction(i18n("This &Program..."), 0, this, SLOT(slotFileProgSettings()), "settings_program"); createAction(i18n("&Global Options..."), 0, this, SLOT(slotFileGlobalSettings()), "settings_global"); KStandardAction::keyBindings(this, SLOT(slotConfigureKeys()), actionCollection()); KStandardAction::showStatusbar(this, SLOT(slotViewStatusbar()), actionCollection()); // view menu m_findAction = KStandardAction::find(m_filesWindow, SLOT(slotViewFind()), actionCollection()); KStandardAction::findNext(m_filesWindow, SLOT(slotFindForward()), actionCollection()); KStandardAction::findPrev(m_filesWindow, SLOT(slotFindBackward()), actionCollection()); i18n("Source &code"); struct { QString text; QWidget* w; QString id; QAction** act; } dw[] = { { i18n("Stac&k"), m_btWindow, "view_stack", &m_btWindowAction }, { i18n("&Locals"), m_localVariables, "view_locals", &m_localVariablesAction }, { i18n("&Watched expressions"), m_watches, "view_watched_expressions", &m_watchesAction }, { i18n("&Registers"), m_registers, "view_registers", &m_registersAction }, { i18n("&Breakpoints"), m_bpTable, "view_breakpoints", &m_bpTableAction }, { i18n("T&hreads"), m_threads, "view_threads", &m_threadsAction }, { i18n("&Output"), m_ttyWindow, "view_output", &m_ttyWindowAction }, { i18n("&Memory"), m_memoryWindow, "view_memory", &m_memoryWindowAction } }; for (unsigned i = 0; i < sizeof(dw)/sizeof(dw[0]); i++) { QDockWidget* d = dockParent(dw[i].w); *dw[i].act = new KToggleAction(dw[i].text, actionCollection()); actionCollection()->addAction(dw[i].id, *dw[i].act); connect(*dw[i].act, SIGNAL(triggered()), d, SLOT(show())); } // execution menu m_runAction = createAction(i18n("&Run"), "debug-run", Qt::Key_F5, m_debugger, SLOT(programRun()), "exec_run"); connect(m_runAction, SIGNAL(activated()), this, SLOT(intoBackground())); m_stepIntoAction = createAction(i18n("Step &into"), "debug-step-into", Qt::Key_F8, m_debugger, SLOT(programStep()), "exec_step_into"); connect(m_stepIntoAction, SIGNAL(activated()), this, SLOT(intoBackground())); m_stepOverAction = createAction(i18n("Step &over"), "debug-step-over", Qt::Key_F10, m_debugger, SLOT(programNext()), "exec_step_over"); connect(m_stepOverAction, SIGNAL(activated()), this, SLOT(intoBackground())); m_stepOutAction = createAction(i18n("Step o&ut"), "debug-step-out", Qt::Key_F6, m_debugger, SLOT(programFinish()), "exec_step_out"); connect(m_stepOutAction, SIGNAL(activated()), this, SLOT(intoBackground())); m_toCursorAction = createAction(i18n("Run to &cursor"), "debug-execute-to-cursor", Qt::Key_F7, this, SLOT(slotExecUntil()), "exec_run_to_cursor"); connect(m_toCursorAction, SIGNAL(activated()), this, SLOT(intoBackground())); m_stepIntoIAction = createAction(i18n("Step i&nto by instruction"), "debug-step-into-instruction", Qt::SHIFT+Qt::Key_F8, m_debugger, SLOT(programStepi()), "exec_step_into_by_insn"); connect(m_stepIntoIAction, SIGNAL(activated()), this, SLOT(intoBackground())); m_stepOverIAction = createAction(i18n("Step o&ver by instruction"), "debug-step-instruction", Qt::SHIFT+Qt::Key_F10, m_debugger, SLOT(programNexti()), "exec_step_over_by_insn"); connect(m_stepOverIAction, SIGNAL(activated()), this, SLOT(intoBackground())); m_execMovePCAction = createAction(i18n("&Program counter to current line"), "debug-run-cursor", 0, m_filesWindow, SLOT(slotMoveProgramCounter()), "exec_movepc"); m_breakAction = createAction(i18n("&Break"), 0, m_debugger, SLOT(programBreak()), "exec_break"); m_killAction = createAction(i18n("&Kill"), 0, m_debugger, SLOT(programKill()), "exec_kill"); m_restartAction = createAction(i18n("Re&start"), 0, m_debugger, SLOT(programRunAgain()), "exec_restart"); m_attachAction = createAction(i18n("A&ttach..."), 0, this, SLOT(slotExecAttach()), "exec_attach"); m_argumentsAction = createAction(i18n("&Arguments..."), 0, this, SLOT(slotExecArgs()), "exec_arguments"); // breakpoint menu m_bpSetAction = createAction(i18n("Set/Clear &breakpoint"), "brkpt", Qt::Key_F9, m_filesWindow, SLOT(slotBrkptSet()), "breakpoint_set"); m_bpSetTempAction = createAction(i18n("Set &temporary breakpoint"), Qt::SHIFT+Qt::Key_F9, m_filesWindow, SLOT(slotBrkptSetTemp()), "breakpoint_set_temporary"); m_bpEnableAction = createAction(i18n("&Enable/Disable breakpoint"), Qt::CTRL+Qt::Key_F9, m_filesWindow, SLOT(slotBrkptEnable()), "breakpoint_enable"); // only in popup menus createAction(i18n("Watch Expression"), 0, this, SLOT(slotLocalsToWatch()), "watch_expression"); m_editValueAction = createAction(i18n("Edit Value"), Qt::Key_F2, this, SLOT(slotEditValue()), "edit_value"); // all actions force an UI update QList<QAction*> actions = actionCollection()->actions(); foreach(QAction* action, actions) { connect(action, SIGNAL(activated()), this, SLOT(updateUI())); }
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) { setWindowTitle(QCoreApplication::applicationName()); ui.setupUi(this); // setup preferences dialog connect(&preferences, SIGNAL(accepted()), this, SLOT(getApplicationSettings())); connect(&builder, SIGNAL(highlightLine(const QString &, int, int, const QString &)), this, SLOT(highlightFileLine(const QString &, int, int))); connect(&builder, SIGNAL(finished()), this, SLOT(setBuildAvailable())); connect(&builder, SIGNAL(buildError()), &preferences, SLOT(showPreferences())); parser = language.parser(); connect(&preferences, SIGNAL(updateColors()), this, SLOT(recolorProjectView())); connect(&preferences, SIGNAL(updateFonts(const QFont &)), this, SLOT(recolorProjectView())); connect(&preferences, SIGNAL(updateFonts(const QFont &)), this, SLOT(recolorBuildManager())); connect(&preferences, SIGNAL(accepted()), ui.editorTabs, SIGNAL(accepted())); connect(&preferences, SIGNAL(updateColors()), ui.editorTabs, SIGNAL(updateColors())); connect(&preferences, SIGNAL(updateFonts(const QFont &)), ui.editorTabs, SIGNAL(updateFonts(const QFont &))); recolorProjectView(); recolorBuildManager(); // project editor tabs ui.finder->connectFileManager(ui.editorTabs); QSplitterHandle *hndl = ui.splitter->handle(1); hndl->setEnabled(false); connect(ui.editorTabs, SIGNAL(fileUpdated(int)), this, SLOT(setProject())); // File Menu connect(ui.action_New, SIGNAL(triggered()), ui.editorTabs, SLOT(newFile())); connect(ui.actionNew_From_File, SIGNAL(triggered()), ui.editorTabs, SLOT(newFromFile())); connect(ui.actionNew_From_Template, SIGNAL(triggered()), this, SLOT(newFromTemplate())); connect(ui.action_Open, SIGNAL(triggered()), ui.editorTabs, SLOT(open())); connect(ui.action_Save,SIGNAL(triggered()),ui.editorTabs,SLOT(save())); connect(ui.actionSave_As,SIGNAL(triggered()),ui.editorTabs,SLOT(saveAs())); connect(ui.actionSave_All,SIGNAL(triggered()),ui.editorTabs,SLOT(saveAll())); ui.actionPrint->setEnabled(true); connect(ui.actionPrint,SIGNAL(triggered()),this,SLOT(printFile())); ui.action_Zip->setEnabled(true); connect(ui.action_Zip,SIGNAL(triggered()),this,SLOT(zipFiles())); recentFiles = findChildren<QAction *>(QRegExp("action_[0-9]+_File")); for (int i = 0; i < recentFiles.size(); i++) connect(recentFiles.at(i), SIGNAL(triggered()),this, SLOT(openRecentFile())); connect(ui.action_Close, SIGNAL(triggered()), ui.editorTabs, SLOT(closeFile())); connect(ui.actionClose_All, SIGNAL(triggered()), ui.editorTabs, SLOT(closeAll())); connect(ui.action_Quit, SIGNAL(triggered()), this, SLOT(quitProgram())); connect(ui.editorTabs, SIGNAL(saveAvailable(bool)), this, SLOT(setSaveAvailable(bool))); connect(ui.editorTabs, SIGNAL(saveAvailable(bool)), this, SLOT(setSaveAvailable(bool))); connect(ui.editorTabs, SIGNAL(closeAvailable(bool)), this, SLOT(setCloseAvailable(bool))); connect(ui.editorTabs, SIGNAL(closeAvailable(bool)), this, SLOT(setCloseAvailable(bool))); connect(ui.editorTabs, SIGNAL(closeAvailable(bool)), this, SLOT(setBuildAvailable(bool))); // Edit Menu connect(ui.action_Undo, SIGNAL(triggered()), ui.editorTabs, SLOT(undo())); connect(ui.action_Redo, SIGNAL(triggered()), ui.editorTabs, SLOT(redo())); connect(ui.action_Cut, SIGNAL(triggered()), ui.editorTabs, SLOT(cut())); connect(ui.action_Copy, SIGNAL(triggered()), ui.editorTabs, SLOT(copy())); connect(ui.action_Paste, SIGNAL(triggered()), ui.editorTabs, SLOT(paste())); connect(ui.actionSelect_All, SIGNAL(triggered()), ui.editorTabs, SLOT(selectAll())); connect(ui.action_Find, SIGNAL(triggered()), ui.finder, SLOT(showFinder())); connect(ui.actionFind_Next, SIGNAL(triggered()), ui.finder, SLOT(findNext())); connect(ui.actionFind_Previous,SIGNAL(triggered()), ui.finder, SLOT(findPrevious())); connect(ui.actionPreferences, SIGNAL(triggered()), &preferences, SLOT(showPreferences())); connect(ui.editorTabs, SIGNAL(undoAvailable(bool)), ui.action_Undo,SLOT(setEnabled(bool))); connect(ui.editorTabs, SIGNAL(redoAvailable(bool)), ui.action_Redo,SLOT(setEnabled(bool))); connect(ui.editorTabs, SIGNAL(copyAvailable(bool)), ui.action_Cut,SLOT(setEnabled(bool))); connect(ui.editorTabs, SIGNAL(copyAvailable(bool)), ui.action_Copy,SLOT(setEnabled(bool))); // View Menu connect(ui.actionShow_Browser, SIGNAL(triggered()), this, SLOT(showBrowser())); connect(ui.actionBigger_Font, SIGNAL(triggered()), this, SLOT(fontBigger())); connect(ui.actionSmaller_Font, SIGNAL(triggered()), this, SLOT(fontSmaller())); ui.actionBigger_Font->setShortcuts(QList<QKeySequence>() << QKeySequence::ZoomIn << Qt::CTRL+Qt::Key_Equal); // Project Menu connect(ui.actionMemory_Map,SIGNAL(triggered()), this, SLOT(spawnMemoryMap())); connect(ui.actionBuild, SIGNAL(triggered()), this, SLOT(programBuild())); connect(ui.actionRun, SIGNAL(triggered()), this, SLOT(programRun())); connect(ui.actionWrite, SIGNAL(triggered()), this, SLOT(programWrite())); connect(ui.actionTerminal, SIGNAL(triggered()), this, SLOT(spawnTerminal())); // Help Menu connect(ui.actionPropeller_Quick_Reference, SIGNAL(triggered()), this, SLOT(propellerQuickReference())); connect(ui.actionPropeller_Datasheet, SIGNAL(triggered()), this, SLOT(propellerDatasheet())); connect(ui.actionPropeller_Manual, SIGNAL(triggered()), this, SLOT(propellerManual())); connect(ui.actionPropBASIC_Manual, SIGNAL(triggered()), this, SLOT(propBasicManual())); connect(ui.action_About, SIGNAL(triggered()), this, SLOT(about())); // Toolbar Extras cbPort = new QComboBox(this); cbPort->setLayoutDirection(Qt::LeftToRight); cbPort->setToolTip(tr("Select Serial Port")); cbPort->setSizeAdjustPolicy(QComboBox::AdjustToContents); ui.toolBar->addWidget(cbPort); connect(ui.projectview, SIGNAL(showFileLine(QString, int)), this, SLOT(highlightFileLine(QString, int))); updateRecentFileActions(); connect(ui.editorTabs, SIGNAL(sendMessage(const QString &)), this,SLOT(showMessage(const QString &))); connect(ui.finder, SIGNAL(sendMessage(const QString &)), this,SLOT(showMessage(const QString &))); restoreGeometry(QSettings().value("windowSize").toByteArray()); getApplicationSettings(); connect(&manager, SIGNAL(portListChanged()), this, SLOT(updatePorts())); manager.enablePortMonitor(true); updatePorts(); QSettings settings; QString lastport = settings.value("lastPort", QString()).toString(); if (!lastport.isEmpty()) { int index = cbPort->findText(lastport); if (index != -1) cbPort->setCurrentIndex(index); } ui.editorTabs->newFile(); loadSession(); installEventFilter(this); statusBar(); }
void readInputs() { if (SW1 == 1 || SW2 == 1 || SW3 == 1 || SW4 == 1) { if (!wait) { if(program == 14) { if (SW1 == 1) { setColor(globalI,0,0); globalI = (globalI - 1) % 6; setColor(globalI,1,0); } if (SW4 == 1) { setColor(globalI,0,0); globalI = (globalI + 1) % 6; setColor(globalI,1,0); } if (SW2 == 1) { if (program <= 0) program = PROGRAM_COUNT-1; else program--; setAll(1); newProgram = 1; } if (SW3 == 1) { program++; if (program >= PROGRAM_COUNT) program = 0; setAll(1); newProgram = 1; } wait = 1; } else { if (SW1 == 1) { if (delay < 40) delay++; } if (SW4 == 1) { if (delay > 0) delay--; } if (SW2 == 1) { if (program <= 0) program = PROGRAM_COUNT-1; else program--; setAll(1); newProgram = 1; } if (SW3 == 1) { program++; if (program >= PROGRAM_COUNT) program = 0; setAll(1); newProgram = 1; } wait = 1; } } } else { if (wait) { if (newProgram) { newProgram = 0; programInit(); programRun(); } wait = 0; } } }