Browse Source
Merge pull request #2543 from meshcore-dev/cmd-send-raw
new CMD_SEND_RAW_PACKET
pull/2552/head
Liam Cottle
3 weeks ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with
16 additions and
1 deletions
-
examples/companion_radio/MyMesh.cpp
-
src/Dispatcher.h
|
|
|
@ -61,6 +61,7 @@ |
|
|
|
#define CMD_SEND_CHANNEL_DATA 62 |
|
|
|
#define CMD_SET_DEFAULT_FLOOD_SCOPE 63 |
|
|
|
#define CMD_GET_DEFAULT_FLOOD_SCOPE 64 |
|
|
|
#define CMD_SEND_RAW_PACKET 65 |
|
|
|
|
|
|
|
// Stats sub-types for CMD_GET_STATS
|
|
|
|
#define STATS_TYPE_CORE 0 |
|
|
|
@ -1963,6 +1964,19 @@ void MyMesh::handleCmdFrame(size_t len) { |
|
|
|
memcpy(&out_frame[i], &r->upper_freq, 4); i += 4; |
|
|
|
} |
|
|
|
_serial->writeFrame(out_frame, i); |
|
|
|
} else if (cmd_frame[0] == CMD_SEND_RAW_PACKET && len >= 4) { |
|
|
|
auto pkt = obtainNewPacket(); |
|
|
|
if (pkt) { |
|
|
|
uint8_t priority = cmd_frame[1]; |
|
|
|
if (tryParsePacket(pkt, &cmd_frame[2], len - 2)) { |
|
|
|
sendPacket(pkt, priority, 0); |
|
|
|
writeOKFrame(); |
|
|
|
} else { |
|
|
|
writeErrFrame(ERR_CODE_ILLEGAL_ARG); |
|
|
|
} |
|
|
|
} else { |
|
|
|
writeErrFrame(ERR_CODE_TABLE_FULL); |
|
|
|
} |
|
|
|
} else { |
|
|
|
writeErrFrame(ERR_CODE_UNSUPPORTED_CMD); |
|
|
|
MESH_DEBUG_PRINTLN("ERROR: unknown command: %02X", cmd_frame[0]); |
|
|
|
|
|
|
|
@ -193,8 +193,9 @@ public: |
|
|
|
bool millisHasNowPassed(unsigned long timestamp) const; |
|
|
|
unsigned long futureMillis(int millis_from_now) const; |
|
|
|
|
|
|
|
private: |
|
|
|
bool tryParsePacket(Packet* pkt, const uint8_t* raw, int len); |
|
|
|
|
|
|
|
private: |
|
|
|
void checkRecv(); |
|
|
|
void checkSend(); |
|
|
|
}; |
|
|
|
|