From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11248 invoked by alias); 15 Apr 2005 08:40:27 -0000 Mailing-List: contact ecos-discuss-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@ecos.sourceware.org Received: (qmail 10703 invoked from network); 15 Apr 2005 08:39:55 -0000 Received: from unknown (HELO mail.chl.chalmers.se) (129.16.214.14) by sourceware.org with SMTP; 15 Apr 2005 08:39:55 -0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by mail.chl.chalmers.se (Postfix) with ESMTP id 4156E1D3A33 for ; Fri, 15 Apr 2005 10:39:53 +0200 (CEST) Received: from mail.chl.chalmers.se ([127.0.0.1]) by localhost (morbo [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 14979-01-97 for ; Fri, 15 Apr 2005 10:39:52 +0200 (CEST) Received: from [129.16.45.230] (dynamic-45-230.chl.chalmers.se [129.16.45.230]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by mail.chl.chalmers.se (Postfix) with ESMTP id C80E21D3943 for ; Fri, 15 Apr 2005 10:39:52 +0200 (CEST) Message-ID: <425F7DD0.7000008@ituniv.se> Date: Fri, 15 Apr 2005 08:58:00 -0000 From: Magnus Ottosson User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050325) MIME-Version: 1.0 Cc: ecos-discuss@ecos.sourceware.org References: <425E8B28.1000607@ituniv.se> <20050414155549.E1AF648F83@rivatek.dnsalias.net> <425F789E.6090500@ituniv.se> In-Reply-To: <425F789E.6090500@ituniv.se> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Subject: Re: [ECOS] Re: Clear Screen X-SW-Source: 2005-04/txt/msg00171.txt.bz2 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 >#include >#include >#include >#include >#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