You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.3 KiB
103 lines
3.3 KiB
<?php
|
|
|
|
namespace app\common\SzxfjkSdk;
|
|
|
|
/**
|
|
* 智能门锁数据接口
|
|
*/
|
|
class SmartLocks
|
|
{
|
|
protected static $url = 'http://1.12.73.13:30014/admin-api';
|
|
|
|
protected static $v = 'v1';
|
|
|
|
protected static $token = 'eGluZmFuZ3pob3VfcHVzaHNldA==';
|
|
|
|
protected static function getUrl()
|
|
{
|
|
return self::$url . '/' . self::$v . '/';
|
|
}
|
|
|
|
/**
|
|
* 设备实时上报数据
|
|
* @param $param
|
|
* @return array
|
|
*/
|
|
public static function TimingDataPush($param)
|
|
{
|
|
|
|
$requestUrl = self::getUrl() . 'HumanBodyInductionDetector/TimingdataPush' . '?token=' . self::$token;
|
|
|
|
$data = [
|
|
'id' => $param['deviceSerial'].'001',//设备唯一标识
|
|
'pk' => 'CS-HD50-NB',//产品型号
|
|
'did' => $param['deviceSerial'],//设备编号
|
|
'deviceType' => $param['deviceName'],//设备类型
|
|
'deviceModel' => $param['model'],//设备型号
|
|
'uid' => '',//关联编号(人员或方案)
|
|
'dtype' => '实时上报',//数据类型(实时上报、报警上报)
|
|
'site' => '',//安装地址
|
|
'longitude' => '',//经度(当设备无定位芯片时,则字段不显示)
|
|
'latitude' => '',//纬度(当设备无定位芯片时,则字段不显示)
|
|
'companyName' => '深圳市新方舟文化科技有限公司',//设备供应商名称
|
|
'timestamp' => date("Y-m-d H:i:s.v"),//数据上传时间
|
|
'data' => [
|
|
'onlineStatus' => $param['status'],//在线状态//0 为在线,1 为离线
|
|
'quantityElectricity' => $param['battryStatus'],//电量
|
|
'alarmReason' => '',//报警原因
|
|
'alarmType' => '',//报警类型
|
|
'eventName' => '',//事件名称
|
|
'eventType' => '',//事件类型(0:测试报警,1:正式报警)
|
|
'alarmTime' => '',//报警时间
|
|
],//数据内容
|
|
];
|
|
|
|
return $result = self::curlPost($requestUrl, $data);
|
|
|
|
// if (!$result['code']) {
|
|
// return ['status' => 1,'msg' => '推送成功'];
|
|
// }
|
|
//
|
|
// return ['status' => 0,'msg' => '推送失败'];
|
|
}
|
|
|
|
/**
|
|
* post请求
|
|
* @param $url
|
|
* @param array $data
|
|
* @return bool|string
|
|
*/
|
|
protected static function curlPost($url, array $data)
|
|
{
|
|
$dataJson = json_encode($data);
|
|
|
|
$curl = curl_init();
|
|
|
|
curl_setopt_array($curl, [
|
|
CURLOPT_PORT => "30014",
|
|
CURLOPT_URL => $url,
|
|
CURLOPT_RETURNTRANSFER => true,
|
|
CURLOPT_ENCODING => "",
|
|
CURLOPT_MAXREDIRS => 10,
|
|
CURLOPT_TIMEOUT => 30,
|
|
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
|
CURLOPT_CUSTOMREQUEST => "POST",
|
|
CURLOPT_POSTFIELDS => $dataJson,
|
|
CURLOPT_HTTPHEADER => [
|
|
"content-type: application/json"
|
|
],
|
|
]);
|
|
|
|
$response = curl_exec($curl);
|
|
$err = curl_error($curl);
|
|
|
|
curl_close($curl);
|
|
|
|
if ($err) {
|
|
return $err;
|
|
} else {
|
|
return json_decode($response, true);
|
|
}
|
|
}
|
|
|
|
}
|