コード例 #1
0
 public function saveDataPairs($params)
 {
     if ($this->prepared_pairs) {
         $bucket_size = $this->_findFeatureConstantValue('bucket_size', $params['sensor_features']);
         $total = count($this->prepared_pairs);
         for ($i = 0; $i < $total; $i++) {
             $pair = $this->prepared_pairs[$i];
             $measuring_timestamp = date('Y-m-d H:i:s', isset($pair['measuring_timestamp']) ? $pair['measuring_timestamp'] : $this->incoming_measuring_timestamp);
             $criteria = new CDbCriteria();
             $criteria->compare('DATE_FORMAT(measuring_timestamp, "%Y-%m-%d %H:%i:%s")', $measuring_timestamp);
             $criteria->compare('sensor_id', $params['sensor']->station_sensor_id);
             $sensor_data = SensorDataMinute::model()->find($criteria);
             if (!$sensor_data || $sensor_data->is_tmp || $params['rewrite_prev_values']) {
                 if (!$sensor_data) {
                     $sensor_data = new SensorDataMinute();
                 }
                 $sensor_data->sensor_id = $params['sensor']->station_sensor_id;
                 $sensor_data->station_id = $params['sensor']->station_id;
                 $sensor_data->sensor_value = $pair['value'];
                 $sensor_data->metric_id = $pair['metric_id'];
                 $sensor_data->sensor_feature_normalized_value = $pair['normilized_value'];
                 $sensor_data->bucket_size = $bucket_size;
                 $sensor_data->listener_log_id = $params['listener_log_id'];
                 $sensor_data->measuring_timestamp = $measuring_timestamp;
                 $sensor_data->battery_voltage = $params['battery_voltage'];
                 $sensor_data->is_tmp = 0;
                 $sensor_data->save();
             }
         }
     }
 }
コード例 #2
0
 public function saveDataPairs($params)
 {
     if ($this->prepared_pairs) {
         foreach ($params['sensor_features'] as $key => $value) {
             if ($value['feature_code'] == 'bucket_size') {
                 $bucket_size = $value['feature_constant_value'];
             }
         }
         foreach ($this->prepared_pairs as $key => $pair) {
             $measuring_timestamp = date('Y-m-d H:i:s', isset($pair['measuring_timestamp']) ? $pair['measuring_timestamp'] : $this->incoming_measuring_timestamp);
             $criteria = new CDbCriteria();
             $criteria->compare('DATE_FORMAT(measuring_timestamp, "%Y-%m-%d %H:%i:%s")', $measuring_timestamp);
             $criteria->compare('sensor_id', $params['sensor']->station_sensor_id);
             $sensor_data = SensorDataMinute::model()->find($criteria);
             if (!$sensor_data || $sensor_data->is_tmp || $params['rewrite_prev_values']) {
                 if (!$sensor_data) {
                     $sensor_data = new SensorDataMinute();
                 }
                 $sensor_data->sensor_id = $params['sensor']->station_sensor_id;
                 $sensor_data->station_id = $params['sensor']->station_id;
                 $sensor_data->sensor_value = $pair['value'];
                 $sensor_data->metric_id = $pair['metric_id'];
                 $sensor_data->sensor_feature_normalized_value = $pair['normilized_value'];
                 $sensor_data->bucket_size = $bucket_size;
                 $sensor_data->listener_log_id = $params['listener_log_id'];
                 $sensor_data->measuring_timestamp = $measuring_timestamp;
                 $sensor_data->battery_voltage = $params['battery_voltage'];
                 $sensor_data->is_tmp = 0;
                 $sensor_data->save();
             }
         }
     }
 }
コード例 #3
0
 private function logRainMessage()
 {
     $parts = str_getcsv($this->message_obj->message);
     $date = explode('/', $parts[0]);
     $time = explode(':', $parts[1]);
     $measuring_timestamp = mktime($time[0], $time[1], 0, $date[1], $date[2], '20' . $date[0]);
     $criteria = new CDbCriteria();
     $criteria->condition = "DATE_FORMAT(measuring_timestamp, '%Y-%m-%d %H:%i:%s') = :measuring_timestamp AND sensor_id = :sensor_id";
     $criteria->params = array(':measuring_timestamp' => date('Y-m-d H:i:s', $measuring_timestamp), ':sensor_id' => $this->_sensor->station_sensor_id);
     $sensor_data = SensorDataMinute::model()->find($criteria);
     if (!$sensor_data || $sensor_data->is_tmp || $this->message_obj->rewrite_prev_values) {
         if (!$sensor_data) {
             $sensor_data = new SensorDataMinute();
             $sensor_data->sensor_id = $this->_sensor->station_sensor_id;
             $sensor_data->station_id = $this->message_obj->station_id;
         }
         $sensor_data->sensor_value = $parts[3];
         $sensor_data->bucket_size = $this->_sensor->bucket_size;
         $sensor_data->listener_log_id = $this->message_obj->log_id;
         $sensor_data->measuring_timestamp = date('Y-m-d H:i:s', $measuring_timestamp);
         $sensor_data->battery_voltage = $parts[2];
         $sensor_data->is_tmp = 0;
         $sensor_data->save();
     }
 }