use Jundayw\JTT808\Message;
use Jundayw\JTT808\MessageRequest\Message0100Request;
use Jundayw\JTT808\MessageRequest\Message0200Request;
use Jundayw\JTT808\MessageResponse\Message8001Response;
use Jundayw\JTT808\MessageResponse\Message8100Response;
$bytes = hex2bin('7E0100002D01234567891200B800010002313233000034353600000000000000000000000000000000003132333435000002B2E2413132333435187E');
$bytes = hex2bin('7E8100000D0123456789124B3000B80031323334353637383930D57E');
$bytes = hex2bin('7E0200002601234567891200B900000000000000030261136106F0124D0058029400002304261530320104000004CE02020000AA7E');
$bytes = hex2bin('7E800100050123456789124B3E00B9020000D17E');
$bytes = hex2bin('7E0200003001234567891200B900000010000000030261136106F0124D0058029400002304261530320104000004ce020200372504000000052a020001967E');
try {
$message = new Message();
$message->decode($bytes);
switch ($message->getMsgId()) {
case '0100':
// 终端注册
$request = new Message0100Request($message);
var_dump([
'制造商ID' => $request->manufacturerId,
'终端型号' => $request->terminalModel,
'终端ID' => $request->terminalId,
'车牌颜色' => $request->plateColor,
'车辆标识' => $request->plateNumber,
]);
// 终端注册应答
$response = new Message8100Response($message);
$response->response(0, '123456');
var_dump(bin2hex($message->encode($response)));
break;
case '0200':
// 位置信息汇报
$request = new Message0200Request($message);
var_dump([
'报警信息' => $request->alarmList,
'状态位信息' => $request->statusList,
'纬度' => $request->latitude,
'经度' => $request->longitude,
'高程' => $request->height,
'速度' => $request->speed,
'时间' => $request->time,
'扩展信息' => $request->extendList,
]);
// 平台通用应答
$response = new Message8001Response($message);
$response->response(0);
var_dump(bin2hex($message->encode($response)));
break;
}
} catch (Exception $e) {
var_dump('Eexception', $e->getMessage());
die;
}