get and send messages impl
This commit is contained in:
@@ -52,6 +52,14 @@ class CoreParser {
|
||||
return self::parseCodeStatusResponse($payload);
|
||||
case CoreProtocol::RESP_CODE_DEVICE_INFO:
|
||||
return self::parseDeviceInfoResponse($payload);
|
||||
case CoreProtocol::RESP_CODE_CHANNEL_INFO:
|
||||
return self::parseChannelInfoResponse($payload);
|
||||
case CoreProtocol::PUSH_CODE_MSG_WAITING:
|
||||
return ['code'=>CoreProtocol::PUSH_CODE_MSG_WAITING];
|
||||
case CoreProtocol::RESP_CODE_CONTACT_MSG_RECV_V3:
|
||||
case CoreProtocol::RESP_CODE_CHANNEL_MSG_RECV_V3:
|
||||
case CoreProtocol::RESP_CODE_CHANNEL_MSG_RECV:
|
||||
return $payload;
|
||||
default:
|
||||
echo "Unparsed response: " . \Menking\Meshcore\Util\Debug::hexDump($payload) . "\n";
|
||||
return $payload;
|
||||
@@ -353,6 +361,17 @@ class CoreParser {
|
||||
return $info;
|
||||
}
|
||||
|
||||
public static function parseChannelInfoResponse(string $payload) {
|
||||
$info = [
|
||||
'code'=>ord($payload[0]),
|
||||
'channel_idx'=>ord($payload[1]),
|
||||
'channel_name'=>self::readCstring(substr($payload, 2, 32)),
|
||||
'channel_secret'=>substr($payload, 34, 16)
|
||||
];
|
||||
|
||||
return $info;
|
||||
}
|
||||
|
||||
public static function parseMessage(string $payload) {
|
||||
$data = [
|
||||
'code'=>ord($payload[0]),
|
||||
@@ -365,4 +384,15 @@ class CoreParser {
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public static function readCstring($str) {
|
||||
$x = strpos($str, "\0");
|
||||
|
||||
if( $x === false ) {
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
return trim(substr($str, 0, $x));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user