diff --git a/src/CoreParser.php b/src/CoreParser.php index 6f6f8ef..c8cbc85 100644 --- a/src/CoreParser.php +++ b/src/CoreParser.php @@ -78,9 +78,11 @@ class CoreParser { $m->code = ord($payload[$idx]); $idx++; + $m->snr = 0; + if( $m->code == CoreProtocol::RESP_CODE_CHANNEL_MSG_RECV_V3 ) { - $m->snr = unpack('V', substr($payload, 1, 4))[1] / 4; - $idx = 5; + $m->snr = unpack('V', substr($payload, $idx, 4))[1] / 4; + $idx += 4; } $m->channel_idx = ord($payload[$idx]); @@ -89,7 +91,6 @@ class CoreParser { $m->timestamp = unpack('V', substr($payload, $idx+3, 4))[1]; $m->message = substr($payload, $idx+7); - return $m; } @@ -412,6 +413,7 @@ class CoreParser { return $m; } + /* public static function parseMessage(string $payload) { $data = [ 'code'=>ord($payload[0]), @@ -424,6 +426,7 @@ class CoreParser { return $data; } + */ public static function readCstring($str) { $x = strpos($str, "\0");