This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]