Browse Source

Merge 13d0f5e01d into adc631f315

pull/1659/merge
Wessel 20 hours ago
committed by GitHub
parent
commit
0de77c2187
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 18
      examples/companion_radio/MyMesh.cpp

18
examples/companion_radio/MyMesh.cpp

@ -719,8 +719,10 @@ void MyMesh::onContactResponse(const ContactInfo &contact, const uint8_t *data,
out_frame[i++] = 0; // reserved out_frame[i++] = 0; // reserved
memcpy(&out_frame[i], contact.id.pub_key, 6); memcpy(&out_frame[i], contact.id.pub_key, 6);
i += 6; // pub_key_prefix i += 6; // pub_key_prefix
memcpy(&out_frame[i], &data[4], len - 4); int copy_len = len - 4;
i += (len - 4); if (copy_len > MAX_FRAME_SIZE - i) copy_len = MAX_FRAME_SIZE - i;
memcpy(&out_frame[i], &data[4], copy_len);
i += copy_len;
_serial->writeFrame(out_frame, i); _serial->writeFrame(out_frame, i);
} else if (len > 4 && tag == pending_telemetry) { // check for matching response tag } else if (len > 4 && tag == pending_telemetry) { // check for matching response tag
pending_telemetry = 0; pending_telemetry = 0;
@ -730,8 +732,10 @@ void MyMesh::onContactResponse(const ContactInfo &contact, const uint8_t *data,
out_frame[i++] = 0; // reserved out_frame[i++] = 0; // reserved
memcpy(&out_frame[i], contact.id.pub_key, 6); memcpy(&out_frame[i], contact.id.pub_key, 6);
i += 6; // pub_key_prefix i += 6; // pub_key_prefix
memcpy(&out_frame[i], &data[4], len - 4); int copy_len = len - 4;
i += (len - 4); if (copy_len > MAX_FRAME_SIZE - i) copy_len = MAX_FRAME_SIZE - i;
memcpy(&out_frame[i], &data[4], copy_len);
i += copy_len;
_serial->writeFrame(out_frame, i); _serial->writeFrame(out_frame, i);
} else if (len > 4 && tag == pending_req) { // check for matching response tag } else if (len > 4 && tag == pending_req) { // check for matching response tag
pending_req = 0; pending_req = 0;
@ -741,8 +745,10 @@ void MyMesh::onContactResponse(const ContactInfo &contact, const uint8_t *data,
out_frame[i++] = 0; // reserved out_frame[i++] = 0; // reserved
memcpy(&out_frame[i], &tag, 4); // app needs to match this to RESP_CODE_SENT.tag memcpy(&out_frame[i], &tag, 4); // app needs to match this to RESP_CODE_SENT.tag
i += 4; i += 4;
memcpy(&out_frame[i], &data[4], len - 4); int copy_len = len - 4;
i += (len - 4); if (copy_len > MAX_FRAME_SIZE - i) copy_len = MAX_FRAME_SIZE - i;
memcpy(&out_frame[i], &data[4], copy_len);
i += copy_len;
_serial->writeFrame(out_frame, i); _serial->writeFrame(out_frame, i);
} }
} }

Loading…
Cancel
Save