| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 | 
							- <?php
 
- namespace App\Service;
 
- use App\Model\DeviceData;
 
- class ClearDataService extends Service
 
- {
 
-     /*
 
-      * 压力传感器数据
 
-      * [    "obj" => array:10 [
 
-             "applicationID" => "2"  // 应用ID
 
-             "applicationName" => "cloud2"  // 应用名称
 
-             "data" => "A3sAAA=="
 
-             "devEUI" => "24e124126c481114" // 设备EUI
 
-             "deviceName" => "设备二" // 设备名称
 
-             "fCnt" => 6  // 帧计数
 
-             "fPort" => 85 // 应用端口
 
-             "rxInfo" => array:1 [
 
-               0 => array:8 [
 
-                 "altitude" => 0 // 网关海拔
 
-                 "latitude" => 0 // 网关经度
 
-                 "longitude" => 0 // 网关纬度
 
-                 "loRaSNR" => 13.2 // 信噪比
 
-                 "mac" => "24e124fffef7887c" // 网关ID
 
-                 "name" => "Local Gateway" // 网关名称
 
-                 "rssi" => -24    // 信号强度 (dBm)
 
-                 "time" => "2023-08-03T05:47:47.337673Z"
 
-               ]
 
-             ]
 
-             "time" => "2023-08-03T05:47:47.337673Z"
 
-             "txInfo" => array:4 [ // 节点信息
 
-               "adr" => true  // 设备ADR状态
 
-               "codeRate" => "4/5" // 编码率
 
-               "dataRate" => array:3 [
 
-                 "bandwidth" => 125  // 带宽
 
-                 "modulation" => "LORA" // LORA调制
 
-                 "spreadFactor" => 7  // 扩频因子
 
-               ]
 
-               "frequency" => 473300000 // 使用频率
 
-             ]
 
-           ]
 
-        "pressure" => 0
 
-      ]
 
-      *
 
-      *温度传感器数据
 
-      *
 
-      *  ["obj" => array:10 [
 
-         "applicationID" => "1"
 
-         "applicationName" => "cloud"
 
-         "data" => "A2cAAQ=="
 
-         "devEUI" => "24e124126d054217"
 
-         "deviceName" => "设备一"
 
-         "fCnt" => 983
 
-         "fPort" => 85
 
-         "rxInfo" => array:1 [
 
-           0 => array:8 [
 
-             "altitude" => 0
 
-             "latitude" => 0
 
-             "loRaSNR" => 13.5
 
-             "longitude" => 0
 
-             "mac" => "24e124fffef7887c"
 
-             "name" => "Local Gateway"
 
-             "rssi" => -31
 
-             "time" => "2023-08-02T09:50:44.880803Z"
 
-           ]
 
-         ]
 
-         "time" => "2023-08-02T09:50:44.880803Z"
 
-         "txInfo" => array:4 [
 
-           "adr" => true
 
-           "codeRate" => "4/5"
 
-           "dataRate" => array:3 [
 
-             "bandwidth" => 125
 
-             "modulation" => "LORA"
 
-             "spreadFactor" => 7
 
-           ]
 
-           "frequency" => 471900000
 
-         ]
 
-       ]
 
-     "temperature" => 25.6
 
-     ]
 
-      *
 
-      * */
 
-     public static function saveData($data){
 
-         //保存数据
 
-         $model = new DeviceData();
 
-         $model->data = json_encode($data);//源数据
 
-         $model->dev_eui = $data['obj']['devEUI'];
 
-         $model->device_name = $data['obj']['deviceName'];
 
-         $model->source_ip = self::getIP();
 
-         if(isset($data['temperature'])){
 
-             $model->data_type = 1;
 
-             $model->happening_data = $data['temperature'];
 
-         }elseif (isset($data['pressure'])){
 
-             $model->data_type = 2;
 
-             $model->happening_data = $data['pressure'];
 
-         }
 
-         $model->save();
 
-     }
 
-     public static function clearData($data){
 
-         $return['is_clear_data'] = 1;
 
-         $return['dev_eui'] = $data['obj']['devEUI'] ?? '';
 
-         if(isset($data['temperature'])){
 
-             $return['value'] = $data['temperature'];
 
-         }elseif (isset($data['pressure'])){
 
-             $return['value'] = $data['pressure'];
 
-         }else{
 
-             $return['value'] = 0;
 
-         }
 
-         return $return;
 
-     }
 
-     public static function getUrl($data){
 
-         //根据业务将数据发送到对应的地址
 
-         // 温度传感器数据包含temperature 字段  压力传感器包含pressure 字段
 
-         $url = 'http://fyy_api.qingyaokeji.com/api/testData';
 
-         $url = '';
 
-         return $url;
 
-     }
 
-     public static function getIP(){
 
-         if (getenv('HTTP_CLIENT_IP')) {
 
-             $ip = getenv('HTTP_CLIENT_IP');
 
-         }
 
-         elseif (getenv('HTTP_X_REAL_IP')) {
 
-             $ip = getenv('HTTP_X_REAL_IP');
 
-         } elseif (getenv('HTTP_X_FORWARDED_FOR')) {
 
-             $ip = getenv('HTTP_X_FORWARDED_FOR');
 
-             $ips = explode(',', $ip);
 
-             $ip = $ips[0];
 
-         } elseif (getenv('REMOTE_ADDR')) {
 
-             $ip = getenv('REMOTE_ADDR');
 
-         } else {
 
-             $ip = '0.0.0.0';
 
-         }
 
-         return $ip;
 
-     }
 
- }
 
 
  |