push code adverts

This commit is contained in:
Ben Menking
2026-05-29 09:50:37 -04:00
parent 2201890975
commit 9b8dacbe80
3 changed files with 28 additions and 4 deletions
+27
View File
@@ -60,12 +60,39 @@ class CoreParser {
case CoreProtocol::RESP_CODE_CHANNEL_MSG_RECV_V3:
case CoreProtocol::RESP_CODE_CHANNEL_MSG_RECV:
return $payload;
case CoreProtocol::PUSH_CODE_ADVERT:
case CoreProtocol::PUSH_CODE_NEW_ADVERT:
return self::parseAdvert($payload);
default:
echo "Unparsed response: " . \Menking\Meshcore\Util\Debug::hexDump($payload) . "\n";
return $payload;
}
}
protected static function parseAdvert(string $payload): mixed {
$data = [
'code'=>ord($payload[0]),
'pub_key'=>base64_encode(substr($payload, 1, CoreProtocol::PUB_KEY_SIZE))
];
if( strlen($payload) > CoreProtocol::PUB_KEY_SIZE ) {
$new_data = [
'type'=>ord($payload[33]),
'flags'=>ord($payload[34]),
'out_path'=>substr($payload, 35, CoreProtocol::MAX_PATH_SIZE),
'name'=>substr($payload, 99, 32),
'last_advert_time'=>unpack('V', substr($payload, 203, 4))[1],
'lat'=>unpack('V', substr($payload, 207, 4))[1],
'lon'=>unpack('V', substr($payload, 211, 4))[1],
'last_mod'=>unpack('V', substr($payload, 215, 4))[1],
];
$data = array_merge($data, $new_data);
}
return $data;
}
/**
*
* @param string $payload
+1
View File
@@ -150,6 +150,7 @@ class CoreProtocol {
}
const PUB_KEY_SIZE = 32;
const MAX_PATH_SIZE = 64;
const CMD_APP_START = 1;
const CMD_SEND_TXT_MSG = 2;
-4
View File
@@ -356,10 +356,6 @@ class Meshcore {
usleep(250000);
$response = $this->readFrame();
echo "readFrame: " . \Menking\Meshcore\Util\Debug::hexDump($response) . "\n";
usleep(250000);
}
while( ((time() - $mark) * 1000) < $timeout_ms );