Clubcos  0.0.0
Clubcos - Clubc Operating System
 모두 데이타 구조 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 매크로 페이지들
terminal.c 파일 참조
#include <stdarg.h>
#include "terminal.h"
#include "coshell.h"
#include "keys.h"
#include "port.h"
#include "string.h"
#include "array.h"
#include "binary_semaphore.h"
#include "circular_queue.h"
#include "memory_map.h"
#include "task.h"
terminal.c에 대한 include 의존 그래프

매크로

#define s_TermBuffer   (((const ProcessData * restrict)g_pTaskStruct->pProcData)->TermBuffer)
 

함수

void ckTerminalInitialize (void)
 터미널을 초기화합니다. 더 자세히 ...
 
void ckTerminalSetColor (uint8_t color)
 터미널의 색을 설정합니다. 더 자세히 ...
 
void ckTerminalSetStatus (TermStatus stat)
 터미널의 상태를 설정합니다. 더 자세히 ...
 
void ckTerminalPutEntryAt (char c, uint8_t color, uint16_t x, uint16_t y)
 특정 위치에 지정한 색 코드로 문자를 출력합니다. 더 자세히 ...
 
void ckTerminalPutCharEntryAt (char c, uint16_t x, uint16_t y)
 특정 위치에 문자를 출력합니다. 더 자세히 ...
 
bool ckTerminalPutChar (char c)
 터미널에 문자를 출력합니다. 더 자세히 ...
 
void ckTerminalDelete (void)
 커서가 가리키고 있는 입력 문자를 삭제합니다. 더 자세히 ...
 
void ckTerminalBackspace (void)
 커서 바로 뒤의 입력 문자를 삭제합니다. 더 자세히 ...
 
void ckTerminalOnInput (uint8_t cascii)
 사용자의 입력을 터미널로 전송합니다. 더 자세히 ...
 
void ckTerminalClearLineBuffer (void)
 사용자가 현재 입력한 내용을 비웁니다. 더 자세히 ...
 
void ckTerminalWriteStringAt (uint16_t x, uint16_t y, uint8_t color, const char *str)
 특정 위치에 문자열을 출력합니다. 더 자세히 ...
 
void ckTerminalWriteStringAtF (uint16_t x, uint16_t y, uint8_t color, const char *format,...)
 특정 위치에 서식 문자열을 조립해 출력합니다. 더 자세히 ...
 
void ckTerminalPrintStatusBar (const char *str)
 상태 바에 문자열을 출력합니다. 더 자세히 ...
 
void ckTerminalPrintStatusBar_unsafe (const char *str)
 동기화 없이 상태 바에 문자열을 출력합니다. 더 자세히 ...
 
void ckTerminalPrintStatusBarF (const char *format,...)
 상태 바에 서식 문자열을 조립해 출력합니다. 더 자세히 ...
 
void ckTerminalClearStatusBar (void)
 상태 바를 비웁니다. 더 자세히 ...
 
void ckTerminalPanic (const char *str)
 panic 메시지를 출력하고 시스템을 panic 상태로 만듭니다. 더 자세히 ...
 
void ckTerminalCls (void)
 화면을 지웁니다. 더 자세히 ...
 
void ckTerminalSetCursorWidth (uint8_t BeginHeight, uint8_t EndHeight)
 커서의 모양을 설정합니다. 더 자세히 ...
 
void ckTerminalSetCursorType (TerminalCursorType cur)
 커서의 모양을 지정된 타입으로 설정합니다. 더 자세히 ...
 
uint16_t ckTerminalWhereX (void)
 커서의 현재 위치의 x 좌표를 구합니다. 더 자세히 ...
 
uint16_t ckTerminalWhereY (void)
 커서의 현재 위치의 y 좌표를 구합니다. 더 자세히 ...
 
void ckTerminalGotoXY (uint16_t x, uint16_t y)
 커서를 이동합니다. 더 자세히 ...
 
void ckTerminalPrintString_unsafe (const char *str)
 동기화 없이 문자열을 출력합니다. 더 자세히 ...
 
void ckTerminalPrintString (const char *str)
 문자열을 출력합니다. 더 자세히 ...
 
void ckTerminalPrintStringF (const char *format,...)
 서식 문자열을 조립해 출력합니다. 더 자세히 ...
 
size_t ckTerminalGetLine (char *buf, size_t size)
 입력 문자 버퍼에서 한 행을 꺼냅니다. 더 자세히 ...
 
char ckTerminalGetChar (void)
 입력 문자 버퍼에서 한 문자를 꺼냅니다. 더 자세히 ...
 
uint8_t ckTerminalGetch (void)
 입력 키 버퍼에서 cascii 문자 하나를 꺼냅니다. 더 자세히 ...
 
void ckTerminalClearInputBuffer (void)
 입력 문자 버퍼를 지웁니다. 더 자세히 ...
 
void ckTerminalClearHitKeyBuffer (void)
 입력 키 버퍼를 지웁니다. 더 자세히 ...
 
bool ckTerminalIsHitKeyBufferFull (void)
 입력 키 버퍼에 키가 있는지의 여부를 검사합니다. 더 자세히 ...
 
void ckTerminalClearAllBuffers (void)
 사용자의 입력 내용, 입력 문자 버퍼, 입력 키 버퍼를 모두 비웁니다. 더 자세히 ...
 

상세한 설명

작성자
dlarudgus20

매크로 문서화

#define s_TermBuffer   (((const ProcessData * restrict)g_pTaskStruct->pProcData)->TermBuffer)

함수 문서화

void ckTerminalBackspace ( void  )

커서 바로 뒤의 입력 문자를 삭제합니다.

키보드의 [BackSpace] 키를 누른 효과가 납니다.

void ckTerminalClearAllBuffers ( void  )

사용자의 입력 내용, 입력 문자 버퍼, 입력 키 버퍼를 모두 비웁니다.

Remarks
이 함수는 ckTerminalClearHitKeyBuffer ckTerminalClearInputBuffer ckTerminalClearLineBuffer 를 차례대로 호출합니다.
void ckTerminalClearHitKeyBuffer ( void  )

입력 키 버퍼를 지웁니다.

void ckTerminalClearInputBuffer ( void  )

입력 문자 버퍼를 지웁니다.

void ckTerminalClearLineBuffer ( void  )

사용자가 현재 입력한 내용을 비웁니다.

Remarks
이 함수를 호출하면 사용자가 입력했던 내용이 모두 무효화됩니다. 화면에 echo된 문자가 지워지지 않는다는 점에 유의하십시오.
void ckTerminalClearStatusBar ( void  )

상태 바를 비웁니다.

void ckTerminalCls ( void  )

화면을 지웁니다.

void ckTerminalDelete ( void  )

커서가 가리키고 있는 입력 문자를 삭제합니다.

키보드의 [del] 키를 누른 효과가 납니다.

uint8_t ckTerminalGetch ( void  )

입력 키 버퍼에서 cascii 문자 하나를 꺼냅니다.

반환값
입력된 키의 cascii 코드입니다.
char ckTerminalGetChar ( void  )

입력 문자 버퍼에서 한 문자를 꺼냅니다.

표준 C의 getchar() 함수와 같은 역할을 합니다.

반환값
입력된 문자입니다.
Remarks
이 함수는 ckTerminalClearHitKeyBuffer 함수를 호출해서 입력 키 버퍼를 비웁니다.
size_t ckTerminalGetLine ( char *  buf,
size_t  size 
)

입력 문자 버퍼에서 한 행을 꺼냅니다.

표준 C의 gets() 함수와 같은 역할을 합니다.

매개변수
[out]buf입력한 문자열입니다.
[in]size버퍼의 크기입니다.
반환값
입력된 문자열의 길이입니다.
Remarks
이 함수는 ckTerminalClearHitKeyBuffer 함수를 호출해서 입력 키 버퍼를 비웁니다.
void ckTerminalGotoXY ( uint16_t  x,
uint16_t  y 
)

커서를 이동합니다.

매개변수
[in]x커서가 이동될 위치의 x 좌표입니다.
[in]y커서가 이동될 위치의 y 좌표입니다.
Remarks
이 함수가 커서를 이동할 때 ckTerminalClearLineBuffer 함수를 호출해서 사용자의 입력을 비우고, ckTerminalClearInputBuffer 함수를 호출해 입력 문자 버퍼의 내용을 비웁니다.
void ckTerminalInitialize ( void  )

터미널을 초기화합니다.

bool ckTerminalIsHitKeyBufferFull ( void  )

입력 키 버퍼에 키가 있는지의 여부를 검사합니다.

kbhit() 함수와 같은 역할을 합니다.

반환값
입력 키 버퍼에 키가 있다면 true고, 그렇지 않으면 false입니다.
void ckTerminalOnInput ( uint8_t  cascii)

사용자의 입력을 터미널로 전송합니다.

매개변수
[in]cascii사용자가 입력한 키의 cascii 코드입니다.
Remarks
사용자가 키를 입력했을 때, 사용자의 입력을 처리하는 함수입니다. 이 함수는 키보드 처리기에서 호출됩니다.
void ckTerminalPanic ( const char *  str)

panic 메시지를 출력하고 시스템을 panic 상태로 만듭니다.

assert 매크로에서 사용됩니다.

매개변수
[in]str출력할 panic 문자열입니다.
void ckTerminalPrintStatusBar ( const char *  str)

상태 바에 문자열을 출력합니다.

매개변수
[in]str상태 바에 출력할 문자열입니다. TERMINAL_WIDTH 보다 길이가 클 경우 짤라서 출력됩니다.
void ckTerminalPrintStatusBar_unsafe ( const char *  str)

동기화 없이 상태 바에 문자열을 출력합니다.

매개변수
[in]str상태 바에 출력할 문자열입니다. TERMINAL_WIDTH 보다 길이가 클 경우 짤라서 출력됩니다.
void ckTerminalPrintStatusBarF ( const char *  format,
  ... 
)

상태 바에 서식 문자열을 조립해 출력합니다.

매개변수
[in]format상태 바에 출력할 서식 문자열입니다. TERMINAL_WIDTH 보다 길이가 클 경우 짤라서 출력됩니다.
void ckTerminalPrintString ( const char *  str)

문자열을 출력합니다.

매개변수
[in]str출력할 문자열입니다.
참고
ckTerminalPutChar
void ckTerminalPrintString_unsafe ( const char *  str)

동기화 없이 문자열을 출력합니다.

매개변수
[in]str출력할 문자열입니다.
void ckTerminalPrintStringF ( const char *  format,
  ... 
)

서식 문자열을 조립해 출력합니다.

매개변수
[in]format출력할 서식 문자열입니다.
bool ckTerminalPutChar ( char  c)

터미널에 문자를 출력합니다.

매개변수
[in]c출력할 문자입니다.
void ckTerminalPutCharEntryAt ( char  c,
uint16_t  x,
uint16_t  y 
)

특정 위치에 문자를 출력합니다.

매개변수
[in]c출력할 문자입니다.
[in]x출력할 위치의 x 좌표입니다.
[in]y출력할 위치의 y 좌표입니다.
void ckTerminalPutEntryAt ( char  c,
uint8_t  color,
uint16_t  x,
uint16_t  y 
)

특정 위치에 지정한 색 코드로 문자를 출력합니다.

매개변수
[in]c출력할 문자입니다.
[in]color출력할 문자의 색 코드입니다.
[in]x출력할 위치의 x 좌표입니다.
[in]y출력할 위치의 y 좌표입니다.
void ckTerminalSetColor ( uint8_t  color)

터미널의 색을 설정합니다.

매개변수
[in]color터미널의 색 코드입니다.
void ckTerminalSetCursorType ( TerminalCursorType  cur)

커서의 모양을 지정된 타입으로 설정합니다.

매개변수
[in]cur커서의 모양 타입입니다.
void ckTerminalSetCursorWidth ( uint8_t  BeginHeight,
uint8_t  EndHeight 
)

커서의 모양을 설정합니다.

매개변수
[in]BeginHeight커서의 시작 높이입니다. 0 ~ 0x1f 사이의 값입니다.
[in]EndHeight커서의 끝 높이입니다. 0 ~ 0x1f 사이의 값입니다.
Remarks
이 함수는 VGA 포트에 직접 커서의 높이를 전달합니다. 일반적인 경우엔 ckTerminalSetCursorType 함수의 사용를 권장합니다.
void ckTerminalSetStatus ( TermStatus  stat)

터미널의 상태를 설정합니다.

매개변수
[in]stat터미널의 상태입니다.
uint16_t ckTerminalWhereX ( void  )

커서의 현재 위치의 x 좌표를 구합니다.

반환값
커서의 현재 x 좌표입니다.
uint16_t ckTerminalWhereY ( void  )

커서의 현재 위치의 y 좌표를 구합니다.

반환값
커서의 현재 y 좌표입니다.
void ckTerminalWriteStringAt ( uint16_t  x,
uint16_t  y,
uint8_t  color,
const char *  str 
)

특정 위치에 문자열을 출력합니다.

매개변수
[in]x출력할 위치의 x 좌표입니다.
[in]y출력할 위치의 y 좌표입니다.
[in]color출력할 문자열의 색 코드입니다.
[in]str출력할 문자열입니다.
void ckTerminalWriteStringAtF ( uint16_t  x,
uint16_t  y,
uint8_t  color,
const char *  format,
  ... 
)

특정 위치에 서식 문자열을 조립해 출력합니다.

매개변수
[in]x출력할 위치의 x 좌표입니다.
[in]y출력할 위치의 y 좌표입니다.
[in]color출력할 문자열의 색 코드입니다.
[in]format출력할 서식 문자열입니다.