E-DRONE / Protocol / Structs / Display
Modified : 2019.8.30
Display 제어와 관련된 정의 및 구조체들을 소개합니다.
Definitions
Display::Pixel::Type
픽셀 색상
namespace Display
{
namespace Pixel
{
enum Type
{
Black,
White,
Inverse
};
}
}
Display::Font::Type
폰트
namespace Display
{
namespace Font
{
enum Type
{
LiberationMono5x8,
LiberationMono10x16,
};
}
}
Display::Align::Type
문자열 정렬
namespace Display
{
namespace Align
{
enum Type
{
Left,
Center,
Right
};
}
}
Display::Line::Type
선
namespace Display
{
namespace Line
{
enum Type
{
Solid,
Dotted,
Dashed,
};
}
}
Structs
Protocol::Display::ClearAll
화면 전체 지우기
namespace Protocol
{
namespace Display
{
struct ClearAll
{
u8 pixel;
};
}
}
변수 이름 | 형식 | 크기 | 범위 | 설명 |
---|---|---|---|---|
pixel | Display::Pixel::Type | 1 Byte | - | 채울 색상 |
Protocol::Display::Clear
선택 영역 지우기
namespace Protocol
{
namespace Display
{
struct Clear
{
s16 x;
s16 y;
s16 width;
s16 height;
u8 pixel;
};
}
}
변수 이름 | 형식 | 크기 | 범위 | 설명 |
---|---|---|---|---|
x | int16_t | 2 Byte | -2000 ~ 2000 | X축 시작 위치 |
y | int16_t | 2 Byte | -2000 ~ 2000 | Y축 시작 위치 |
width | int16_t | 2 Byte | -2000 ~ 2000 | 너비 |
height | int16_t | 2 Byte | -2000 ~ 2000 | 높이 |
pixel | Display::Pixel::Type | 1 Byte | - | 채울 색상 |
Protocol::Display::Invert
선택 영역 반전
namespace Protocol
{
namespace Display
{
struct Invert
{
s16 x;
s16 y;
s16 width;
s16 height;
};
}
}
변수 이름 | 형식 | 크기 | 범위 | 설명 |
---|---|---|---|---|
x | int16_t | 2 Byte | -2000 ~ 2000 | X축 시작 위치 |
y | int16_t | 2 Byte | -2000 ~ 2000 | Y축 시작 위치 |
width | int16_t | 2 Byte | -2000 ~ 2000 | 너비 |
height | int16_t | 2 Byte | -2000 ~ 2000 | 높이 |
Protocol::Display::DrawPoint
점 찍기
namespace Protocol
{
namespace Display
{
struct DrawPoint
{
s16 x;
s16 y;
u8 pixel;
};
}
}
변수 이름 | 형식 | 크기 | 범위 | 설명 |
---|---|---|---|---|
x | int16_t | 2 Byte | -2000 ~ 2000 | X축 위치 |
y | int16_t | 2 Byte | -2000 ~ 2000 | Y축 위치 |
pixel | Display::Pixel::Type | 1 Byte | - | 점 색상 |
Protocol::Display::DrawLine
선 그리기
namespace Protocol
{
namespace Display
{
struct DrawLine
{
s16 x1;
s16 y1;
s16 x2;
s16 y2;
u8 pixel;
u8 line;
};
}
}
변수 이름 | 형식 | 크기 | 범위 | 설명 |
---|---|---|---|---|
x1 | int16_t | 2 Byte | -2000 ~ 2000 | X축 시작 위치 |
y1 | int16_t | 2 Byte | -2000 ~ 2000 | Y축 시작 위치 |
x2 | int16_t | 2 Byte | -2000 ~ 2000 | X축 끝 위치 |
y2 | int16_t | 2 Byte | -2000 ~ 2000 | Y축 끝 위치 |
pixel | Display::Pixel::Type | 1 Byte | - | 선 색상 |
line | Display::Line::Type | 1 Byte | - | 선 형태 |
Protocol::Display::DrawRect
네모 상자 그리기
namespace Protocol
{
namespace Display
{
struct DrawRect
{
s16 x;
s16 y;
s16 width;
s16 height;
u8 pixel;
u8 flagFill;
u8 line;
};
}
}
변수 이름 | 형식 | 크기 | 범위 | 설명 |
---|---|---|---|---|
x | int16_t | 2 Byte | -2000 ~ 2000 | X축 시작 위치 |
y | int16_t | 2 Byte | -2000 ~ 2000 | Y축 시작 위치 |
width | int16_t | 2 Byte | -2000 ~ 2000 | 너비 |
height | int16_t | 2 Byte | -2000 ~ 2000 | 높이 |
pixel | Display::Pixel::Type | 1 Byte | - | 색상 |
flagFill | uint8_t | 1 Byte | - | 0(채우지 않음), 1(채움) |
line | Display::Line::Type | 1 Byte | - | 선 형태 |
Protocol::Display::DrawCircle
원 그리기
namespace Protocol
{
namespace Display
{
struct DrawCircle
{
s16 x;
s16 y;
s16 radius;
u8 pixel;
u8 flagFill;
};
}
}
변수 이름 | 형식 | 크기 | 범위 | 설명 |
---|---|---|---|---|
x | int16_t | 2 Byte | -2000 ~ 2000 | X축 중심점 위치 |
y | int16_t | 2 Byte | -2000 ~ 2000 | Y축 중심점 위치 |
radius | int16_t | 2 Byte | 1 ~ 2000 | 반지름 |
pixel | Display::Pixel::Type | 1 Byte | - | 색상 |
flagFill | uint8_t | 1 Byte | - | 0(채우지 않음), 1(채움) |
Protocol::Display::DrawString
문자열 그리기
화면에 표시할 문자열은 DrawString 구조체 뒤에 이어서 ASCII 문자열을 붙여서 전송.
헤더의 length는 (Protocol::Display::DrawString의 길이 + 화면에 표시할 문자열의 길이) 값을 넣어야 합니다.
namespace Protocol
{
namespace Display
{
struct DrawString
{
s16 x;
s16 y;
u8 font;
u8 pixel;
};
}
}
변수 이름 | 형식 | 크기 | 범위 | 설명 |
---|---|---|---|---|
x | int16_t | 2 Byte | -2000 ~ 2000 | X축 위치 |
y | int16_t | 2 Byte | -2000 ~ 2000 | Y축 위치 |
font | Display::Font::Type | 1 Byte | - | 폰트 |
pixel | Display::Pixel::Type | 1 Byte | - | 색상 |
message | ASCII String | 30 Byte 이하 | - | 표시할 문자열 |
Protocol::Display::DrawStringAlign
문자열 정렬하여 그리기
화면에 문자열 쓰기. 문자열은 xStart와 xEnd 사이에서 align으로 지정한 위치에 놓입니다.
화면에 표시할 문자열은 DrawStringAlign 구조체 뒤에 이어서 ASCII 문자열을 붙여서 전송합니다.
헤더의 length는 (Protocol::Display::DrawStringAlign 길이 + 화면에 표시할 문자열의 길이) 값을 넣어야 합니다.
namespace Protocol
{
namespace Display
{
struct DrawStringAlign
{
s16 xStart;
s16 xEnd;
s16 y;
u8 align;
u8 font;
u8 pixel;
};
}
}
변수 이름 | 형식 | 크기 | 범위 | 설명 |
---|---|---|---|---|
xStart | int16_t | 2 Byte | -2000 ~ 2000 | X축 시작 위치 |
xEnd | int16_t | 2 Byte | -2000 ~ 2000 | X축 끝 위치 |
y | int16_t | 2 Byte | -2000 ~ 2000 | Y축 위치 |
align | Display::Align::Type | 1 Byte | - | 정렬 |
font | Display::Font::Type | 1 Byte | - | 폰트 |
pixel | Display::Pixel::Type | 1 Byte | - | 색상 |
message | ASCII String | 30 Byte 이하 | - | 표시할 문자열 |
Protocol::Display::DrawImage
이미지 그리기
LCD에 기본 문자열 이외의 모양이나 그림을 넣을 때 사용합니다.
세로 8픽셀이 한 바이트이며, 최하위 비트부터 위에서 아래로 그려집니다.
화면에 표시할 이미지 데이터는 DrawImage 구조체 뒤에 이어붙이면 됩니다.
헤더의 length는 (Protocol::Display::DrawImage 길이 + imageArray의 길이) 값을 넣어야 합니다.
아래는 직각 삼각형을 배열에 담은 예제입니다.
// ********
// *******
// ******
// *****
// ****
// ***
// **
// *
const u8 triangle[] = { 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF };
namespace Protocol
{
namespace Display
{
struct DrawImage
{
s16 x;
s16 y;
s16 width;
s16 height;
};
}
}
변수 이름 | 형식 | 크기 | 범위 | 설명 |
---|---|---|---|---|
x | int16_t | 2 Byte | -2000 ~ 2000 | X축 시작 위치 |
y | int16_t | 2 Byte | -2000 ~ 2000 | Y축 시작 위치 |
width | int16_t | 2 Byte | -2000 ~ 2000 | 너비 |
height | int16_t | 2 Byte | -2000 ~ 2000 | 높이 |
imageArray | uint8_t Array | 128 Byte 이하 | - | 이미지 배열 |
E-DRONE
- Intro
- Typedef
- DataType
- Definitions
- Structs
- Structs - Light
- Structs - Display
- Structs - Card