Những gì bạn nhìn thấy trên cửa sổ giao diện điều khiển là kết quả của tiếng vang tự động (thường có thể tắt hoặc bật), trong đó chương trình giao diện điều khiển vẽ các ký tự bạn gửi trên màn hình hoặc kết quả nhận các ký tự. Điều này có nghĩa là có hai cách để thay đổi nó:
- Có một chương trình địa phương, trên PC, vẽ lại màn hình.
- Có thiết bị được kết nối vẽ lại màn hình.
Có nhiều cách để làm điều này, nhưng đây là cách tôi tiếp cận với việc thực hiện sở thích đơn giản:
- Đặt độ rộng đường mặc định, như 80 và số hàng, như 24. Tắt tiếng vang tự động.
- Màn hình 80x24 có nghĩa là 1920 ký tự trên mỗi 'khung hình' , có nghĩa là, nếu thiết bị được kết nối đang hoạt động, tốc độ làm mới tối đa khoảng
1920/BAUDRATE/11
hoặc khoảng 5Hz tại 115200 baud (sử dụng 1 bit start, 1 stop, 1 parity, 8 dữ liệu) .
- Ánh xạ các phím mũi tên đến các ký tự hoặc chuỗi cụ thể . Điều này có thể đã được thực hiện đằng sau hậu trường. (Đối với Terminal OSX, bên trái :
\033[5D
; phải : \033[5C
; lên & xuống không xác định theo mặc định.)
- Lập trình thiết bị được kết nối để nhận ra các ký tự và / hoặc chuỗi này và di chuyển tham chiếu con trỏ tương ứng.
- Đầu ra trên dòng nối tiếp không phải bằng ký tự hoặc mảng ký tự, mà theo khung. Cụ thể, giữ hai mảng ký tự dài 1921 (1920 + terminator): một mảng để ghi trong khi cái kia đang được truyền (giả sử sử dụng UART phần cứng và ngắt).
- Việc ghi vào bộ đệm khung có thể được thực hiện bằng cách sử dụng một hàm như thế này:
uint8_t framewrite(const char *s, uint8_t row, uint8_t col)
... *s
Mảng char [chấm dứt] của bạn ở đâu row
và col
là nơi bạn muốn ký tự đầu tiên xuất hiện. (Trả về uint8_t
là để bắt lỗi.)
- Có thể bạn sẽ muốn chức năng thích
uint8_t frame_clear(void)
, uint8_t frame_shiftrowsdown(void)
vv
- Để chỉ ra vị trí con trỏ, bạn có thể thay thế ký tự hiện tại và hộp đen hoặc ký tự bạn chọn (
pblinkchar
), bằng cách sử dụng framewrite(pblinkchar,cursor_row,cursor_col)
.
- Phương pháp tương tự có thể được sử dụng để lặp lại các ký tự trở lại vị trí con trỏ.
Tôi chắc chắn có nhiều cách đơn giản hơn (tôi nghĩ rằng những người làm phần mềm gọi nó là "thanh lịch") để làm điều này bằng cách lập trình một cửa sổ PC, và bạn có thể tìm ra cách bằng cách tìm hiểu hướng dẫn này , nhưng cách trên tương tự như tôi Đã thực hiện trong quá khứ và hoạt động cho các giao diện người dùng đơn giản với micros có nhiều bộ nhớ dự phòng.