void ShellService::echo(char ch) { // int length = echo.size(); // int* params = new int[length + 1]; int posX = SHELL_X_START + (_currentColumn * COLUMN_WIDTH); if (posX >= SHELL_X_END) { newLine(); posX = SHELL_X_START; } int posY = SHELL_Y_START + (_currentLine * LINE_HEIGHT); if (posY > SHELL_Y_END) { setColor(0x0); moveTo(SHELL_X_START, SHELL_Y_START - (LINE_HEIGHT + 5)); drawRect(SHELL_X_END, SHELL_Y_END); _currentColumn = 0; _currentLine = 0; posY = SHELL_Y_START; posX = SHELL_X_START; } while (!hasScreen()); setColor(0xFFFFFF); moveTo(posX, posY); drawChar(ch, 2); _currentColumn++; // params[0] = 0; // HDMI WRITE COMMAND :) // for (int i = 0; i < length; i++) { // params[i + 1] = (int)(echo.c_str()[i]); // } // performServiceCall(DISPLAY_SERVICE_ID, 2, params); }
int main_Test() { switchLEDOff(LED1); int i=0; while (1) { i = 0; while (i < 800000) { i++; } if (getLEDState(LED2)) { switchLEDOff(LED2); switchLEDOn(LED1); if (hasScreen()) { // Set LED1 On setColor(0x0000FF); moveTo(580, 200); drawChar('1', 5); // Set LED2 Off setColor(0xFF0000); moveTo(640, 200); drawChar('2', 5); } } else { switchLEDOn(LED2); switchLEDOff(LED1); if (hasScreen()) { // Set LED1 On setColor(0xFF0000); moveTo(580, 200); drawChar('1', 5); // Set LED2 On setColor(0x0000FF); moveTo(640, 200); drawChar('2', 5); } } } }
void MainLoop::removeScreen(shared_ptr<Screen> screen) { if (!hasScreen(screen)) { Log::get() << "Trying unexisting screen." << LogLevel::error; return; } Log::get() << "Removing screen." << LogLevel::info; screens.remove(screen); }
void MainLoop::addScreen(shared_ptr<Screen> screen) { if (hasScreen(screen)) { Log::get() << "Trying to insert existing screen." << LogLevel::error; return; } Log::get() << "Inserting screen." << LogLevel::info; screens.push_back(screen); }