本帖最后由 Tj8888 于 2022-8-2 22:07 编辑
你說的是這段code嗎? 不好意思! 可否能再明確一點指導一下改哪裡嗎?, 感謝!
void loop() override
{
static int data_count = 0;
static bool presence_state = true; //无人时不监控,节省运算量
while (available() > 0) // && (id(run_rta).state || id(config_mode).state)
{
bytes.push_back(read());
if (bytes.size() < 6 + 3) //多取3位,用于判断是否有人
{
continue;
}
if (HeaderMatched(bytes, header_data) && id(run_rta).state)
{
if (bytes[8])
{
if (bytes.size() < 6 + sizeof(LDDATA))
{
continue;
}
還是這段........
std::vector<uint8_t> bytes; std::vector<uint8_t> header_parameter = {0xFD, 0xFC, 0xFB, 0xFA,0x1C, 0x00, 0x61, 0x01, 0x00, 0x00, 0xAA}; std::vector<uint8_t> header_data = {0xF4, 0xF3, 0xF2, 0xF1, 0x23,0x00}; //调试用 std::vector<uint8_t> header_feedback= {0xFD, 0xFC, 0xFB, 0xFA, 0x04, 0x00};
boolHeaderMatched(std::vector<uint8_t> bytes, std::vector<uint8_t>header) { if(bytes[0] != header[0] || bytes[1] != header[1] || bytes[2] != header[2] ||bytes[3] != header[3]) { return false; } returnbytes[4] == header[4] && bytes[5] == header[5]; }
|