This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Re: Clear Screen
Neither of these options work. I guess that when I built eCos I did not
build it with a terminal that support ansi? How would I do this?
Magnus
Magnus Ottosson wrote:
>I have compiled the application for i386 target. It shall run on a P4-M.
>See atachment for my Makefile.
>
>I have tried printf("\033[2J")
>
>I will try:
>
>void clearToEOL(void)
> {
> printf("\033[K")
> }
>
>void moveCursor(int row, int col)
> {
> printf("\033[%d;%dH",row, col)
> }
>
>To if they work.
>
>//Magnus.
>
>
>
>Grant Edwards wrote:
>
>
>
>>In gmane.os.ecos.general, you wrote:
>>
>>
>>
>>
>>
>>>I wan't to know if it's possible to clear the screen or update a
>>>specific line with eCos?
>>>
>>>
>>>
>>>
>>Depends on what screen you're using.
>>
>>
>>
>>
>>
>>>I have an application that writes data on the screen with
>>>printf() and I want to clear this data and write new. Is there
>>>a clear screen function or something like it?
>>>
>>>
>>>
>>>
>>Assuming you're using an ANSI terminal, writing such functions
>>is pretty simple:
>>
>>void clearScreen(void)
>> {
>> printf("\033[2J")
>> }
>>
>>void clearToEOL(void)
>> {
>> printf("\033[K")
>> }
>>
>>void moveCursor(int row, int col)
>> {
>> printf("\033[%d;%dH",row, col)
>> }
>>
>>and so on.
>>
>>
>>
>>
>>
>
>
>
>------------------------------------------------------------------------
>
>INSTALL_DIR = /home/supersonic/i386library_install
>COMPILER_DIR = /opt/ecos/gnutools/i386-elf/bin
>BOOT_DIR = /boot/
>EXE_SOURCE = sigSonarServer.c
>EXE_OUTPUT = sigSonarServer
>
>include $(INSTALL_DIR)/include/pkgconf/ecos.mak
>
>COMPILER = $(COMPILER_DIR)/i386-elf-gcc
>COMPILER_FLAGS = -I$(INSTALL_DIR)/include
>LINKER_FLAGS = -nostartfiles -L$(INSTALL_DIR)/lib -Ttarget.ld
>
>$(EXE_OUTPUT): obj.o
> $(COMPILER) $(LINKER_FLAGS) $(ECOS_GLOBAL_LDFLAGS) -o $@ obj.o
> -rm -f obj.o
>obj.o: $(EXE_SOURCE)
> $(COMPILER) -c -o obj.o $(COMPILER_FLAGS) $(ECOS_GLOBAL_CFLAGS) \
> $(EXE_SOURCE)
>
>.PHONY: clean install
>clean:
> -rm -f $(EXE_OUTPUT)
>install:
> cp ./$(EXE_OUTPUT) $(BOOT_DIR)
>
>------------------------------------------------------------------------
>
>/*/////////////////////////////////////////////////////////////////////////////
>
> Project: Sea Grid
>
> Module: Sonar Control
>
> Description:
>
> Author: Magnus Ottosson, it3otma@ituniv.se
>
> Co Authors: N/A
>
> Created: 2005-03-31
>
>//////////////////////////////////////////////////////////////////////////////*/
>
>#include <stdlib.h>
>#include <stdio.h>
>#include <cyg/hal/hal_io.h>
>#include <cyg/kernel/kapi.h>
>#include <cyg/io/devtab.h>
>#include "sigSonarControl/sigSonarControl.h"
>
>#define KEYBOARD 0x60
>
>void drawRootMenu(positions* currentPositions);
>void drawPositionsMenu(positions* currentPositions);
>
>void drawRootMenu(positions* currentPositions){
>
> printf("\033[K");
> printf(" -------------------------------------- \n");
> printf(" | ++ Sonar Server ++ |\n");
> printf(" | ~~~~~~~~~~~~ |\n");
> printf(" | (1) See positions |\n");
> printf(" | (q) Quit |\n");
> printf(" | |\n");
> printf(" | Make a choice |\n");
> printf(" | |\n");
> printf(" -------------------------------------- \n");
>
> unsigned int input = 0;
>
> while (1) {
>
> HAL_READ_UINT8(KEYBOARD, input);
>
> if (input == 130) {
> drawPositionsMenu(currentPositions);
> break;
> } else if (input == 129) {
> // QUIT;
> }
> }
>}
>
>void drawPositionsMenu(positions* currentPositions){
>
> unsigned int input = 0;
>
> while (1) {
>
> HAL_READ_UINT8(KEYBOARD, input);
>
> printf("\033[K");
> printf(" -------------------------------------- \n");
> printf(" | ++ Sonar Server Current Positions ++ |\n");
> printf(" | ~~~~~~~~~~~~ |\n");
> printf(" | Lorry |\n");
> printf(" | ---------------- |\n");
> printf(" | Front X: %d |\n",currentPositions -> currentLorryPos.frontX);
> printf(" | Front Y: %d |\n",currentPositions -> currentLorryPos.frontY);
> printf(" | Rear X: %d |\n",currentPositions -> currentLorryPos.rearX);
> printf(" | Rear Y: %d |\n",currentPositions -> currentLorryPos.rearY);
> printf(" | Angle : %f |\n",currentPositions -> currentLorryPos.angle);
> printf(" | |\n");
> printf(" | Barge |\n");
> printf(" | ---------------- |\n");
> printf(" | Front X: %d |\n",currentPositions -> currentBargePos.frontX);
> printf(" | Front Y: %d |\n",currentPositions -> currentBargePos.frontY);
> printf(" | Rear X: %d |\n",currentPositions -> currentBargePos.rearX);
> printf(" | Rear Y: %d |\n",currentPositions -> currentBargePos.rearY);
> printf(" | Angle : %f |\n",currentPositions -> currentBargePos.angle);
> printf(" | |\n");
> printf(" | Press ESC to return to root menu |\n");
> printf(" | |\n");
> printf(" -------------------------------------- \n");
>
> if (input == 129) {
> drawRootMenu(currentPositions);
> break;
> }
> }
>}
>
>
>int main(void) {
>
> // Create the positions struct
> // Allocate the memory for the position struct.
> currentPositions = (positions*) malloc(sizeof(positions));
> // Initialize the values to -1
> currentPositions -> currentBargePos.angle = 1.0;
> currentPositions -> currentBargePos.frontX = 1;
> currentPositions -> currentBargePos.frontY = 1;
> currentPositions -> currentBargePos.rearX = 1;
> currentPositions -> currentBargePos.rearY = 1;
>
> currentPositions -> currentLorryPos.angle = 1.0;
> currentPositions -> currentLorryPos.frontX = 1;
> currentPositions -> currentLorryPos.frontY = 1;
> currentPositions -> currentLorryPos.rearX = 1;
> currentPositions -> currentLorryPos.rearY = 1;
>
> // TODO: Thread
> drawRootMenu(currentPositions);
>
> // TODO: Thread
> // startbeacons();
>
> // TODO: Thread
> // listenToRadioReceiver(currentPositions);
>
>
> return 0;
>}
>
>
>
>
--
-----------------------------------
Contact information
Phone: (+46) (0) 31 206700
Mobile: (+46) (0) 733-908060
Email: it3otma@ituniv.se
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss