This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Re: Re: Clear Screen
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.
>
>
>
--
-----------------------------------
Contact information
Phone: (+46) (0) 31 206700
Mobile: (+46) (0) 733-908060
Email: it3otma@ituniv.se
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;
}
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss