Server
 
로딩중...
검색중...
일치하는것 없음
board_control.h
이 파일의 Documentation 페이지로 가기
1
7#pragma once
8#include <vector>
9#include <string>
10#include <cstdint>
11
12
15#define DLE 0x10
18#define STX 0x02
21#define ETX 0x03
24#define ACK 0xAA
27#define NACK 0x55
30#define CMD_LCD_ON 0x01
33#define CMD_LCD_OFF 0x02
36#define CMD_SYNC_TIME 0x03 // 시간 프레임 추가!
37
38
45uint8_t reverse(uint8_t val, int bits);
46
52uint16_t crc16(const std::vector<uint8_t>& data);
53
60uint16_t reverse16(uint16_t val, int bits);
61
62
68public:
74 BoardController(const std::string& device, int board_id);
75
80
84 void send_lcd_on();
85
89 void send_lcd_off();
90
96
103 bool send_lcd_on_with_ack(int retries = 3, int timeout_ms = 1000);
104
111 bool send_lcd_off_with_ack(int retries = 3, int timeout_ms = 1000);
112
113private:
117 int fd;
118
122 int id;
123
128 void open_port(const std::string& device);
129
134 void send_frame(uint8_t command);
135
143 bool send_frame_with_ack(uint8_t command, int retries, int timeout_ms);
144
151 std::vector<uint8_t> encode_frame(uint8_t command, const std::vector<uint8_t>& extra_data);
152};
uint16_t crc16(const std::vector< uint8_t > &data)
데이터 벡터에 대해 CRC16을 계산합니다.
Definition board_control.cpp:288
uint16_t reverse16(uint16_t val, int bits)
16비트 값을 비트 단위로 반전합니다.
Definition board_control.cpp:276
uint8_t reverse(uint8_t val, int bits)
8비트 값을 비트 단위로 반전합니다.
Definition board_control.cpp:263
보드 제어를 위한 클래스 (시리얼 통신 기반)
Definition board_control.h:67
~BoardController()
소멸자. 포트를 닫음
Definition board_control.cpp:50
void send_lcd_on()
LCD ON 명령을 보냄
Definition board_control.cpp:83
bool send_time_sync_from_system()
시스템 시간 기반 시간 동기화 명령을 보냄
Definition board_control.cpp:131
bool send_lcd_off_with_ack(int retries=3, int timeout_ms=1000)
LCD OFF 명령을 전송하고 ACK를 대기
Definition board_control.cpp:122
bool send_lcd_on_with_ack(int retries=3, int timeout_ms=1000)
LCD ON 명령을 전송하고 ACK를 대기
Definition board_control.cpp:112
void send_lcd_off()
LCD OFF 명령을 보냄
Definition board_control.cpp:91